DOC PREVIEW
TRINITY CSCI 1320 - Lecture Notes

This preview shows page 1-2-3-4 out of 13 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1Fun Day11/21/20072Opening Discussion■Let's look at solutions to the interclass problem.■Vote was 7 for ASCII, 10 for X11.■Do you have any questions about the assignment?3Full Terminal Control■The ncurses library provides you with functions that allow you to write any ASCII character that you want to any point on the screen.■This can allow you to do ASCII animations.■It also includes functions for doing non-blocking input and input of non-character keys.■Normal scanf and getchar functions only read from a terminal once enter has been pressed.■Note that this isn't portable code. It won't work on a Windows box unless perhaps you have something like Cygwin.4Setup■In order to set up a window so that you can use curses function with it you need to initialize it.■You do this with the WINDOW *initscr() function. Let's look at the man page for this function.■The WINDOW* that is returned needs to be remembered because it has to be passed to most of the functions that will draw out characters for us.5“Drawing” Functions■There are number of different functions that can output to the screen. I'm not going to type them all up here, but I'll give a little list. We can look at a web page for a more complete list.mvaddch(win,y,x,ch)mvwaddstr(win,y,x,str)mvwaddchstr(win,y,x,chstr)■After calling one of these call refresh(win) to see the change.■You can use the See Also section of the man pages to find more related functions.6Input Functions■There are a number of functions for getting input in curses. The simplest is wgetch(win).■Unless you set other options this will work just like getchar() blocking the program and printing to screen.■The following lines will allow non-blocking, non-printed input that doesn't print.keypad(win,1);wtimeout(win,0);necho();7X-Windows and X11■Linux and Unix boxes use a windowing system called X-windows. This is a very general graphical system that allows a lot of flexibility.■One of the most significant features of X-windows is the ability to display windows remotely.■Cygwin can give you X-windows under Windows, but by default you can't use it there.8Windows■There are several steps in getting an X window.Get a display. (XOpenDisplay)Get a screen number on the display. (XDefaultScreen)Create the window. (XCreateSimpleWindow)■Here again, the man pages can help us get more information.9Events■Most GUI environments use events for user input. That's because you can't block the thread and there are many different event types (key presses, mouse actions, exposures, etc.)■The is a big union called XEvent that has the different events. Every structure in it shares certain elements at the beginning.■The XNextEvent function will return the next event to you. You switch on the type of the event to determine what you should do about it.■For X-programs the event handling likely belongs in a loop.10Exposures■One type of event that is particular to the X system is exposures.■They tell you that some part of the window has been exposed and that you need to redraw it.■By default, X-windows don't remember what is drawn in them so the refresh has to be done manually.11Graphics Context■The graphics context in X is a struct that tells X how to draw things.■You can create multiple instances of this structure and set them up to draw in different ways. You can think of each one as being like a pencil or brush with a different color, width, etc.■The struct is called XGCValues.12Drawing and Colors■There are a bunch of drawing functions in X11 that begin with XDraw and XFill. They are fairly simply to master and running a command like “man -k XDraw” will list them.■Colors are more challenging. The XAllocNamedColor will give you a color from a set of “named” colors. For more variety you need to use XCreateColormap to make a full color map. This makes X applications more cross-platform compatible, but harder to work with.13Minute Essay■What are you doing for Thanksgiving?■Interclass Problem – Write a little program to use one of these two


View Full Document

TRINITY CSCI 1320 - Lecture Notes

Documents in this Course
Functions

Functions

10 pages

Functions

Functions

10 pages

Graphics

Graphics

10 pages

Graphics

Graphics

11 pages

Loops

Loops

4 pages

Loops

Loops

3 pages

Strings

Strings

9 pages

Functions

Functions

10 pages

Loops

Loops

11 pages

Graphics

Graphics

11 pages

Graphics

Graphics

12 pages

Sorting

Sorting

11 pages

Sorting

Sorting

10 pages

Arrays

Arrays

10 pages

Loops

Loops

18 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?