GUILE NCURSES 2.2: An example

Previous: , Up: Initialization [Contents][Index]


4.4.2 An example

Let’s write a program that will clarify the usage of these functions.

#!/usr/bin/guile
!#
(use-modules (ncurses curses))
(define stdscr (initscr)) ; Start curses mode
(raw!) ; Line buffering disabled
(keypad! stdscr #t) ; We get F1, F2, etc
(noecho!) ; Don't echo when we get a keypress
(addstr stdscr "Type any character to see it in bold\n")
(let ((ch (getch stdscr))) ; Read a key press, put it in 'ch'
 (addstr stdscr "The pressed key is ")
 (if (char? ch) ; If a non-function key is pressed
 (addch stdscr (bold ch)) ; print its name
 (addchstr stdscr (bold (keyname ch)))) ; Or, print the function
 ; key name
 (refresh stdscr)			; Print it on the real screen
 (getch stdscr)			; Wait for user input
 (endwin)) ; End curses mode

Hopefully this program is easy to follow even though I used functions that aren’t explained yet. The procedure getch is used to get a character from the user. If it returns a character, the user pressed a character key. If it returns a number, the use pressed a function key. The (bold ch) adds the bold attribute to the character, and addch prints the character on the screen.

AltStyle によって変換されたページ (->オリジナル) /