| X11 Considerations |
| ================== |
| |
| PDCurses for X11 uses the System V IPC shared memory facility, along |
| with sockets, to share data between the curses program and the child |
| process created to manage the X stuff. |
| |
| When compiling your application, you need to include the <curses.h> or |
| <xcurses.h> that comes with PDCurses. You also need to link your code |
| with libXCurses. You may need to link with the following libraries under |
| X11R5: |
| Xaw Xmu Xt X11 |
| |
| or, under X11R6: |
| Xaw Xmu Xt X11 SM ICE Xext |
| |
| You can run "xcurses-config --libs" to show the link parameters for your |
| system. If using dynamic linking, on some systems, "-lXCurses" suffices. |
| |
| By calling Xinitscr() rather than initscr(), you can pass your program |
| name and resource overrides to PDCurses. The program name is used as the |
| title of the X window, and for defining X resources specific to your |
| program. |
| |
| |
| Interaction with stdio |
| ---------------------- |
| |
| Be aware that curses programs that expect to have a normal tty |
| underneath them will be very disappointed! Output directed to stdout |
| will go to the xterm that invoked the PDCurses application, or to the |
| console if not invoked directly from an xterm. Similarly, stdin will |
| expect its input from the same place as stdout. |
| |
| |
| X Resources |
| ----------- |
| |
| PDCurses for X11 recognizes the following resources: |
| |
| lines |
| cols |
| normalFont |
| italicFont |
| pointer |
| pointerForeColor |
| pointerBackColor |
| cursorColor |
| textCursor |
| colorBlack |
| colorRed |
| colorGreen |
| colorYellow |
| colorBlue |
| colorMagenta |
| colorCyan |
| colorWhite |
| colorBoldBlack |
| colorBoldRed |
| colorBoldGreen |
| colorBoldYellow |
| colorBoldBlue |
| colorBoldMagenta |
| colorBoldCyan |
| colorBoldWhite |
| bitmap |
| pixmap |
| translations |
| shmmin |
| borderWidth |
| borderColor |
| clickPeriod |
| doubleClickPeriod |
| composeKey |
| |
| lines: Specifies the number of lines the "screen" will have. |
| Directly equates to LINES. |
| There is no theoretical maximum. |
| The minimum value must be 2. |
| Default: 24 |
| |
| cols: Specifies the number of columns the "screen" will have. |
| Directly equates to COLS. |
| There is no theoretical maximum. |
| The minimum value must be 2. |
| Default: 80 |
| |
| normalFont: The name of a fixed width font. |
| Default: 7x13 |
| |
| italicFont: The name of a fixed width font to be used for |
| characters with A_ITALIC attributes. Must have the |
| same cell size as normalFont. |
| Default: 7x13 (obviously not an italic font) |
| |
| pointer: The name of a valid pointer cursor. |
| Default: xterm |
| |
| pointerForeColor: The foreground color of the pointer. |
| Default: black |
| |
| pointerBackColor: The background color of the pointer. |
| Default: white |
| |
| textCursor: The alignment of the text cursor; horizontal or vertical. |
| Default: horizontal |
| |
| colorBlack: The color of the COLOR_BLACK attribute. |
| Default: Black |
| |
| colorRed: The color of the COLOR_RED attribute. |
| Default: red3 |
| |
| colorGreen: The color of the COLOR_GREEN attribute. |
| Default: green3 |
| |
| colorYellow: The color of the COLOR_YELLOW attribute. |
| Default: yellow3 |
| |
| colorBlue: The color of the COLOR_BLUE attribute. |
| Default: blue3 |
| |
| colorMagenta: The color of the COLOR_MAGENTA attribute. |
| Default: magenta3 |
| |
| colorCyan: The color of the COLOR_CYAN attribute. |
| Default: cyan3 |
| |
| colorWhite: The color of the COLOR_WHITE attribute. |
| Default: Grey |
| |
| colorBoldBlack: COLOR_BLACK combined with A_BOLD. |
| Default: grey40 |
| |
| colorBoldRed: COLOR_RED combined with A_BOLD. |
| Default: red1 |
| |
| colorBoldGreen: COLOR_GREEN combined with A_BOLD. |
| Default: green1 |
| |
| colorBoldYellow: COLOR_YELLOW combined with A_BOLD. |
| Default: yellow1 |
| |
| colorBoldBlue: COLOR_BLUE combined with A_BOLD. |
| Default: blue1 |
| |
| colorBoldMagenta: COLOR_MAGENTA combined with A_BOLD. |
| Default: magenta1 |
| |
| colorBoldCyan: COLOR_CYAN combined with A_BOLD. |
| Default: cyan1 |
| |
| colorBoldWhite: COLOR_WHITE combined with A_BOLD. |
| Default: White |
| |
| bitmap: The name of a valid bitmap file of depth 1 (black and white) |
| used for the application's icon. The file is an X bitmap. |
| Default: a 32x32 or 64x64 pixmap depending on the |
| window manager |
| |
| pixmap: The name of a valid pixmap file of any depth |
| supported by the window manager (color) for the |
| application's icon, The file is an X11 pixmap. This |
| resource is only available if the libXpm package has |
| been installed (most systems have this by default). |
| This resource overrides the "bitmap" resource. |
| Default: none, uses default bitmap above |
| |
| translations: Translations enable the user to customize the action |
| that occurs when a key, combination of keys, or a |
| button is pressed. The translations are similar to |
| those used by xterm. |
| Defaults: |
| <Key>: XCursesKeyPress() |
| <KeyUp>: XCursesKeyPress() |
| <BtnDown>: XCursesButton() |
| <BtnUp>: XCursesButton() |
| <BtnMotion>: XCursesButton() |
| |
| The most useful action for KeyPress translations is |
| string(). The argument to the string() action can be |
| either a string or a hex representation of a |
| character; e.g., string(0x1b) will send the ASCII |
| escape character to the application; string("[11~") |
| will send [ 1 1 ~ , as separate keystrokes. |
| |
| shmmin: On most systems, there are two Unix kernel parameters |
| that determine the allowable size of a shared memory |
| segment. These parameters are usually something like |
| SHMMIN and SHMMAX. To use shared memory, a program |
| must allocate a segment of shared memory that is |
| between these two values. Usually these values are |
| like 1 for SHMMIN and some large number for SHMMAX. |
| Sometimes the Unix kernel is configured to have a |
| value of SHMMIN that is bigger than the size of one |
| of the shared memory segments that libXCurses uses. |
| On these systems an error message like: |
| |
| Cannot allocate shared memory for SCREEN: Invalid argument |
| |
| will result. To overcome this problem, this resource |
| should be set to the kernel value for SHMMIN. This |
| ensures that a shared memory segment will always be |
| bigger than the kernel value for SHMMIN (and |
| hopefully less than SHMMAX!) |
| |
| Default: 0 |
| |
| borderColor: The color of the border around the screen. |
| Default: black |
| |
| borderWidth: The width in pixels of the border around the screen. |
| Default: 0 |
| |
| clickPeriod: The period (in milliseconds) between a button |
| press and a button release that determines if a click |
| of a button has occurred. |
| Default: 100 |
| |
| doubleClickPeriod: The period (in milliseconds) between two button |
| press events that determines if a double click |
| of a button has occurred. |
| Default: 200 |
| |
| composeKey: The name of the X key that defines the "compose key", |
| which is used to enter characters in the Latin-1 |
| character set above 0xA0. (See "Compose Keys for |
| Latin-1" below.) This is used only when PDCurses is |
| built without XIM support. While in compose mode, the |
| text cursor will appear as a hollow rectangle. |
| Default: Multi_key |
| |
| |
| Using Resources |
| --------------- |
| |
| All applications have a top-level class name of "XCurses". If Xinitscr() |
| is used, it sets an application's top-level widget name. (Otherwise the |
| name defaults to "PDCurses".) |
| |
| Examples for app-defaults or .Xdefaults: |
| |
| ! |
| ! resources for XCurses class of programs |
| ! |
| XCurses*lines: 30 |
| XCurses*cols: 80 |
| XCurses*normalFont: 9x13 |
| XCurses*bitmap: /tmp/xcurses.xbm |
| XCurses*pointer: top_left_arrow |
| ! |
| ! resources for testcurs - XCurses |
| ! |
| testcurs.colorRed: orange |
| testcurs.colorBlack: midnightblue |
| testcurs.lines: 25 |
| *testcurs.Translations: #override \n \ |
| <Key>F12: string(0x1b) string("[11~") \n |
| ! |
| ! resources for THE - XCurses |
| ! |
| ! resources with the * wildcard can be overridden by a parameter passed |
| ! to initscr() |
| ! |
| the*normalFont: 9x15 |
| the*lines: 40 |
| the*cols: 86 |
| the*pointer: xterm |
| the*pointerForeColor: white |
| the*pointerBackColor: black |
| ! |
| ! resources with the . format can not be overridden by a parameter passed |
| ! to Xinitscr() |
| ! |
| the.bitmap: /home/mark/the/the64.xbm |
| the.pixmap: /home/mark/the/the64.xpm |
| |
| Resources may also be passed as parameters to the Xinitscr() function. |
| Parameters are strings in the form of switches; e.g., to set the color |
| "red" to "indianred", and the number of lines to 30, the string passed |
| to Xinitscr would be: "-colorRed indianred -lines 30" |
| |
| |
| Compose Keys for Latin-1 |
| ------------------------ |
| |
| When built without XIM support, PDCurses for X11 provides its own, |
| limited compose key system for Latin-1 characters. The available |
| combinations are listed here. For a given character, any of the |
| combinations shown in the last column may be used. To generate a |
| character, press the "compose" key followed by one of the pairs of |
| keystrokes. Where no key is evident, the spacebar is used. Thus, to |
| generate the NO-BREAK SPACE, press the "compose" key followed by two |
| hits of the spacebar. |
| |
| With a typical modern X server, you can get many more compose key |
| combinations by using XIM instead. Configure PDCurses with --enable-xim |
| to use XIM support. |
| |
| This document is encoded in UTF-8. |
| |
| +----+-----+---+---------------------------------+---------------------------+ |
| |Hex | Dec |Chr| Description ISO 10646-1:1993(E) | Compose key combinations | |
| +----+-----+---+---------------------------------+---------------------------+ |
| | A0 | 160 | | NO-BREAK SPACE | | |
| | A1 | 161 | ¡ | INVERTED EXCLAMATION MARK | ! !! | |
| | A2 | 162 | ¢ | CENT SIGN | c| |c c/ c$ C$ C| | |
| | A3 | 163 | £ | POUND SIGN | L- L$ L= l- l$ l= |-| |
| | A4 | 164 | ¤ | CURRENCY SIGN | xo ox XO g$ | |
| | A5 | 165 | ¥ | YEN SIGN | =y y= =Y Y= Y- y$ y-| |
| | A6 | 166 | ¦ | BROKEN BAR | | || vb VB |^ | |
| | A7 | 167 | § | SECTION SIGN | SO SS s! S! so | |
| | A8 | 168 | ¨ | DIAERESIS | " "" | |
| | A9 | 169 | © | COPYRIGHT SIGN | CO co OC | |
| | AA | 170 | ª | FEMININE ORDINAL INDICATOR | sa SA a_ A_ | |
| | AB | 171 | « | LEFT DOUBLE ANGLE QUOTES | << | |
| | AC | 172 | ¬ | NOT SIGN | -, no NO | |
| | AD | 173 | | SOFT HYPHEN | - -- | |
| | AE | 174 | ® | REGISTERED SIGN | RO ro OR | |
| | AF | 175 | ¯ | MACRON | -^ _^ __ | |
| | B0 | 176 | ° | DEGREE SIGN | o 0^ 0* de DE ^0 | |
| | B1 | 177 | ± | PLUS-MINUS SIGN | -+ +- | |
| | B2 | 178 | ² | SUPERSCRIPT TWO | 2 2^ s2 ^2 | |
| | B3 | 179 | ³ | SUPERSCRIPT THREE | 3 3^ s3 ^3 | |
| | B4 | 180 | ´ | ACUTE ACCENT | ' '' | |
| | B5 | 181 | µ | MICRO SIGN | u /u /U *m *M | |
| | B6 | 182 | ¶ | PILCROW SIGN | p! P! pg PG | |
| | B7 | 183 | · | MIDDLE DOT | . .^ .. | |
| | B8 | 184 | ¸ | CEDILLA | , ,, | |
| | B9 | 185 | ¹ | SUPERSCRIPT ONE | 1 1^ s1 ^1 | |
| | BA | 186 | º | MASCULINE ORDINAL INDICATOR | o_ s0 S0 | |
| | BB | 187 | » | RIGHT DOUBLE ANGLE QUOTES | >> | |
| | BC | 188 | ¼ | VULGAR FRACTION ONE QUARTER | 14 | |
| | BD | 189 | ½ | VULGAR FRACTION ONE HALF | 12 | |
| | BE | 190 | ¾ | VULGAR FRACTION THREE QUARTERS | 34 | |
| | BF | 191 | ¿ | INVERTED QUESTION MARK | ? ?? | |
| | C0 | 192 | À | CAPITAL A WITH GRAVE ACCENT | `A A` | |
| | C1 | 193 | Á | CAPITAL A WITH ACUTE ACCENT | 'A A' | |
| | C2 | 194 | Â | CAPITAL A WITH CIRCUMFLEX ACCENT| ^A A^ A> | |
| | C3 | 195 | Ã | CAPITAL A WITH TILDE | ~A A~ A- | |
| | C4 | 196 | Ä | CAPITAL A WITH DIAERESIS | "A A" | |
| | C5 | 197 | Å | CAPITAL A WITH RING ABOVE | oA Ao A* OA *A | |
| | C6 | 198 | Æ | CAPITAL LIGATURE AE | AE | |
| | C7 | 199 | Ç | CAPITAL C WITH CEDILLA | ,C C, | |
| | C8 | 200 | È | CAPITAL E WITH GRAVE ACCENT | `E E` | |
| | C9 | 201 | É | CAPITAL E WITH ACUTE ACCENT | 'E E' | |
| | CA | 202 | Ê | CAPITAL E WITH CIRCUMFLEX ACCENT| ^E E^ E> | |
| | CB | 203 | Ë | CAPITAL E WITH DIAERESIS | "E E" | |
| | CC | 204 | Ì | CAPITAL I WITH GRAVE ACCENT | `I I` | |
| | CD | 205 | Í | CAPITAL I WITH ACUTE ACCENT | 'I I' | |
| | CE | 206 | Î | CAPITAL I WITH CIRCUMFLEX ACCENT| ^I I^ I> | |
| | CF | 207 | Ï | CAPITAL I WITH DIAERESIS | "I I" | |
| | D0 | 208 | Ð | CAPITAL ETH | D- | |
| | D1 | 209 | Ñ | CAPITAL N WITH TILDE | ~N N~ N- | |
| | D2 | 210 | Ò | CAPITAL O WITH GRAVE ACCENT | `O O` | |
| | D3 | 211 | Ó | CAPITAL O WITH ACUTE ACCENT | 'O O' | |
| | D4 | 212 | Ô | CAPITAL O WITH CIRCUMFLEX ACCENT| ^O O^ O> | |
| | D5 | 213 | Õ | CAPITAL O WITH TILDE | ~O O~ O- | |
| | D6 | 214 | Ö | CAPITAL O WITH DIAERESIS | "O O" | |
| | D7 | 215 | × | MULTIPLICATION SIGN | x xx XX mu MU | |
| | D8 | 216 | Ø | CAPITAL O WITH STROKE | /O O/ | |
| | D9 | 217 | Ù | CAPITAL U WITH GRAVE ACCENT | `U U` | |
| | DA | 218 | Ú | CAPITAL U WITH ACUTE ACCENT | 'U U' | |
| | DB | 219 | Û | CAPITAL U WITH CIRCUMFLEX ACCENT| ^U U^ U> | |
| | DC | 220 | Ü | CAPITAL U WITH DIAERESIS | "U U" | |
| | DD | 221 | Ý | CAPITAL Y WITH ACUTE ACCENT | 'Y Y' | |
| | DE | 222 | Þ | CAPITAL THORN | P TH |P | |
| | DF | 223 | ß | SMALL SHARP S | ss | |
| | E0 | 224 | à | SMALL A WITH GRAVE ACCENT | `a a` | |
| | E1 | 225 | á | SMALL A WITH ACUTE ACCENT | 'a a' | |
| | E2 | 226 | â | SMALL A WITH CIRCUMFLEX ACCENT | ^a a^ a> | |
| | E3 | 227 | ã | SMALL A WITH TILDE | ~a a~ a- | |
| | E4 | 228 | ä | SMALL A WITH DIAERESIS | "a a" | |
| | E5 | 229 | å | SMALL A WITH RING ABOVE | oa ao Oa a* *a | |
| | E6 | 230 | æ | SMALL LIGATURE AE | ae | |
| | E7 | 231 | ç | SMALL C WITH CEDILLA | ,c c, | |
| | E8 | 232 | è | SMALL E WITH GRAVE ACCENT | `e e` | |
| | E9 | 233 | é | SMALL E WITH ACUTE ACCENT | 'e e' | |
| | EA | 234 | ê | SMALL E WITH CIRCUMFLEX ACCENT | ^e e^ e> | |
| | EB | 235 | ë | SMALL E WITH DIAERESIS | "e e" | |
| | EC | 236 | ì | SMALL I WITH GRAVE ACCENT | `i i` | |
| | ED | 237 | í | SMALL I WITH ACUTE ACCENT | 'i i' | |
| | EE | 238 | î | SMALL I WITH CIRCUMFLEX ACCENT | ^i i^ i> | |
| | EF | 239 | ï | SMALL I WITH DIAERESIS | "i i" | |
| | F0 | 240 | ð | SMALL ETH | d- | |
| | F1 | 241 | ñ | SMALL N WITH TILDE | ~n n~ n- | |
| | F2 | 242 | ò | SMALL O WITH GRAVE ACCENT | `o o` | |
| | F3 | 243 | ó | SMALL O WITH ACUTE ACCENT | 'o o' | |
| | F4 | 244 | ô | SMALL O WITH CIRCUMFLEX ACCENT | ^o o^ o> | |
| | F5 | 245 | õ | SMALL O WITH TILDE | ~o o~ o- | |
| | F6 | 246 | ö | SMALL O WITH DIAERESIS | "o o" | |
| | F7 | 247 | ÷ | DIVISION SIGN | -: :- | |
| | F8 | 248 | ø | SMALL O WITH OBLIQUE BAR | /o o/ | |
| | F9 | 249 | ù | SMALL U WITH GRAVE ACCENT | `u u` | |
| | FA | 250 | ú | SMALL U WITH ACUTE ACCENT | 'u u' | |
| | FB | 251 | û | SMALL U WITH CIRCUMFLEX ACCENT | ^u u^ u> | |
| | FC | 252 | ü | SMALL U WITH DIAERESIS | "u u" | |
| | FD | 253 | ý | SMALL Y WITH ACUTE ACCENT | 'y y' | |
| | FE | 254 | þ | SMALL THORN | p th |p | |
| | FF | 255 | ÿ | SMALL Y WITH DIAERESIS | "y y" | |
| +----+-----+---+---------------------------------+---------------------------+ |
| |
| |
| Deprecated |
| ---------- |
| |
| XCursesProgramName is no longer used. To set the program name, you must |
| use Xinitscr(), or PDC_set_title() to set just the window title. |
| |
| The XCursesExit() function is now called automatically via atexit(). |
| (Multiple calls to it are OK, so you don't need to remove it if you've |
| already added it for previous versions of PDCurses.) |
| |
| XCURSES is no longer defined automatically, but need not be defined, |
| unless you want the X11-specific prototypes. (Normal curses programs |
| won't need it.) |