|
|
1.1 ! root 1: .NH 2 ! 2: User Preference Subroutines ! 3: .PP ! 4: .IN "Keyboard" "Bell Volume" ! 5: .IN "Keyboard" "Keyclick Volume" ! 6: .IN "Mouse" "Programming" ! 7: In this category are the user preference options of bell, keyclick, ! 8: mouse behavior, etc. ! 9: The default values for many of these functions are determined by ! 10: .IN "File" "/etc/ttys" ! 11: command line arguments to the X server, typically set in \fI/etc/ttys\fP. ! 12: Not all implementations will actually be able to control all of these ! 13: parameters. ! 14: .FD ! 15: .IN "Definitions" "XMouseControl" ! 16: .IN "XMouseControl" ! 17: .IN "Mouse" "Behavior" ! 18: XMouseControl (acceleration, threshold) ! 19: int acceleration, threshold; ! 20: .FN ! 21: Defines how the mouse moves. ! 22: The \fIacceleration\fP is a multiplier for movement. ! 23: For example, ! 24: specifying 3 means the cursor moves three times as fast as the mouse. ! 25: Acceleration only takes effect if the mouse moves more than ! 26: threshold pixels at once, ! 27: and only applies to the amount beyond the \fIthreshold\fP. ! 28: .FD ! 29: .IN "Definitions" "XFeepControl" ! 30: .IN "XFeepControl" ! 31: XFeepControl (volume) ! 32: int volume; /* 0 to 7 */ ! 33: .FN ! 34: Defines the base volume for \fIXFeep\fP request. ! 35: The volume is in the range ! 36: 0 to 7, with 7 the loudest. ! 37: .FD ! 38: .IN "Definitions" "XFeep" ! 39: .IN "XFeep" ! 40: XFeep (volume) ! 41: int volume; /* -7 to 7 */ ! 42: .FN ! 43: \fIXFeep\fP rings a bell on the display. ! 44: The ! 45: sound \fIvolume\fP is in the range -7 to 7 ! 46: and is added to the base \fIvolume\fP defined by \fIXFeepControl\fP. ! 47: .FD ! 48: .IN "Definitions" "XKeyClickControl" ! 49: .IN "XKeyClickControl" ! 50: XKeyClickControl (volume) ! 51: int volume; /* 0 to 8 */ ! 52: .FN ! 53: \fIXKeyClick\fP controls the volume of the `click' that the keyboard makes ! 54: when a key is pressed. ! 55: 0 is `off', 8 is the loudest \fIvolume\fP. ! 56: .FD ! 57: .IN "Keyboard" "Auto-Repeat" ! 58: .IN "Definitions" "XAutoRepeatOn" ! 59: .IN "Definitions" "XAutoRepeatOff" ! 60: .IN "XAutoRepeatOn" ! 61: .IN "XAutoRepeatOff" ! 62: XAutoRepeatOn () ! 63: ! 64: XAutoRepeatOff () ! 65: .FN ! 66: \fIXAutoRepeatOn\fP turns the keyboard's auto-repeat on. ! 67: \fIXAutoRepeatOff\fP turns the keyboard's auto-repeat off. ! 68: .FD ! 69: .IN "Keyboard" "Lock Key" ! 70: .IN "Definitions" "XLockUpDown" ! 71: .IN "XLockUpDown" ! 72: .IN "Definitions" "XLockToggle" ! 73: .IN "XLockToggle" ! 74: XLockUpDown () ! 75: ! 76: XLockToggle () ! 77: .FN ! 78: Some people hate the behavior of the shift lock key. ! 79: These subroutines change the mode of the Shift LOCK key on the keyboard. ! 80: When the keyboard is in \fILockUpDown\fP mode, ! 81: KeyPressed and KeyReleased events are sent as for any other key, and the ! 82: ShiftLockMask sent in events gives the current state of the key. ! 83: .IN "KeyPressed Events" ! 84: In \fILockToggle\fP mode, ! 85: \fIKeyPressed\fP and \fIKeyReleased\fP events are never sent ! 86: for the Lock key, ! 87: and the state of the \fIShiftLockMask\fP sent in events is toggled on every ! 88: press of the LOCK key. ! 89: .FD ! 90: .IN "Screen Saver" ! 91: .IN "Definitions" "XScreenSaver" ! 92: .IN "XScreenSaver" ! 93: XScreenSaver (savetimeout, patterntimeout, video) ! 94: int savetimeout, patterntimeout; /* in minutes */ ! 95: int video; ! 96: .FN ! 97: If the server remains idle for the specified number of minutes, ! 98: the server will blank the screen, usually with a pattern that changes at the ! 99: specified rate. ! 100: The screen state will typically be restored when the next request or input ! 101: event occurs, unless the server was out of memory, in which case exposure ! 102: events to all mapped windows are generated. ! 103: If \fIvideo\fP is non-zero, the server will attempt to disable the video to ! 104: implement the screen saver, rather than change to the background ! 105: grey. ! 106: .FD ! 107: .IN "XGetDefault" ! 108: .IN "Definitions" "XGetDefault" ! 109: .IN "Default Options" ! 110: char *XGetDefault(program, name) ! 111: char *program; /* usually name of program */ ! 112: char *name; ! 113: .FN ! 114: The number of options that a program may need can be very large in the X ! 115: environment. ! 116: (Fonts of various sorts, colors of characters, mouse, background, text, ! 117: cursor, etc.) ! 118: If only command line options could be used to specify each of these, ! 119: things quickly become unmanageable as your tastes in windows will often ! 120: be drastically different from someone else's. ! 121: .PP ! 122: \fIXGetDefault\fP ! 123: makes it easy to find out what the user wants for his favorite ! 124: font, colors, etc. ! 125: Its use is highly encouraged. ! 126: .PP ! 127: \fIXGetDefault\fP will return NULL if no option of the specified name exists for ! 128: the program. ! 129: Defaults are read out of a file called ! 130: .IN "File" "$HOME/.Xdefaults" ! 131: \fI~/.Xdefaults\fP in the user's home directory. ! 132: See the X manual page ! 133: for details of its format. ! 134: .PP ! 135: The strings returned by \fIXGetDefault\fP are owned by Xlib and should not ! 136: be modified or freed by the client. ! 137: .FD ! 138: .IN "XParseGeometry" ! 139: .IN "Definitions" "XParseGeometry" ! 140: .IN "Window" "Initial Location" ! 141: int XParseGeometry (string, x, y, width, height) ! 142: char *string; ! 143: int *x, *y, *width, *height; /* RETURN */ ! 144: .FN ! 145: By convention, ! 146: X applications use a standard string to indicate window size and placement. ! 147: This subroutine makes it easy to conform to this standard. ! 148: It is not normally used by user programs, which typically use ! 149: .IN "XCreate" ! 150: .IN "XCreateTerm" ! 151: the \fIXCreate\fP or \fIXCreateTerm\fP subroutines to create the window. ! 152: This subroutine is used to parse strings of form ! 153: \fI=<width>x<height>{+-}<xoffset>{+-}<yoffset>\fP where ! 154: width, height, xoffset and yoffset are returned in the \fIwidth\fP, ! 155: \fIheight\fP, \fIx\fP and \fIy\fP arguments. ! 156: It returns a bitmask that indicates which of the four values were ! 157: actually found in the string, and whether the x and y values ! 158: are negative (remember, -0 is not equal +0 in this system!). ! 159: For each value found, the corresponding argument is updated; ! 160: for each value not found, the argument is left unchanged. ! 161: The bits are \fIXValue\fP, \fIYValue\fP, \fIWidthValue\fP, \fIHeightValue\fP, ! 162: \fIXNegative\fP, \fIYNegative\fP, and are defined in \fI<X/Xlib.h>\fP. ! 163: .IN "File" "<X/Xlib.h> ! 164: They will be set whenever one of the values are defined or signs ! 165: are set. ! 166: .FD ! 167: .IN "XGeometry" ! 168: .IN "Definitions" "Geometry" ! 169: .IN "Window" "Initial Location" ! 170: .IN "Window" "Computing Placement" ! 171: int XGeometry (position, default, bwidth, fwidth, fheight, xadd, yadd, x, y, width, height) ! 172: char *position, default; /* geometry specs */ ! 173: int bwidth; /* border width */ ! 174: int fwidth, fheight; /* size of units of width and height spec */ ! 175: int xadd, yadd; /* any additional interior space */ ! 176: int *x, *y, *width, *height; /* RETURN */ ! 177: .FN ! 178: This routine does all the work required to determine the placement of ! 179: a window using the current format to position windows. ! 180: Given a fully qualified default geometry specification and a (possibly) ! 181: incompletely specified geometry specification, it will return a bitmask ! 182: value as defined above in the \fIXParseGeometry\fP call. ! 183: It is not normally used by user programs, which typically use ! 184: .IN "XCreate" ! 185: .IN "XCreateTerm" ! 186: the \fIXCreate\fP or \fIXCreateTerm\fP subroutines to create the window. ! 187: The position the window should be placed will be returned in the ! 188: x, y, width, and height arguments. ! 189: If either the function returns the \fIXValue\fP or \fIYValue\fP flag, ! 190: you should ! 191: place the window at the requested position. ! 192: The border width (\fIbwidth\fP), ! 193: size of the increments \fIfwidth\fP and \fIfheight\fP ! 194: (typically font width and height), ! 195: and any additional interior space (\fIxadd\fP and \fIyadd\fP) ! 196: are passed in to make it easy to compute the resulting size. ! 197: .FD ! 198: .IN "XReadBitmapFile" ! 199: .IN "Definitions" "Bitmap file format" ! 200: .IN "Definitions" "XReadBitmapFile" ! 201: Status XReadBitmapFile (filename, width, height, data, x_hot, y_hot) ! 202: char *filename; ! 203: int *width, *height; /* RETURN; must be non-NULL */ ! 204: short **data; /* RETURN */ ! 205: int *x_hot, *y_hot; /* RETURN; may be NULL */ ! 206: .FN ! 207: \fIXReadBitmapFile\fP reads a file produced by the ! 208: .I bitmap(1) ! 209: program. The format of that file is described in the man page for ! 210: that program. ! 211: .PP ! 212: If the cannot be opened, \fIXReadBitmapFile\fP returns a Status of 0. If the ! 213: file can be opened but is not syntactically valid, the procedure returns ! 214: a negative Status. If the file is readable and valid, it returns a Status of 1. ! 215: .PP ! 216: \fIXReadBitmapFile\fP assigns the bitmap's \fIheight\fP and \fIwidth\fP, ! 217: as read from the file, ! 218: to the caller's variables ! 219: \fIwidth\fP ! 220: and ! 221: \fIheight\fP. ! 222: It then allocates an appropriate ! 223: amount of storage, reads the bitmap data from the file, and assigns to the ! 224: caller's variable ! 225: .I data. ! 226: The caller must free ! 227: .I data ! 228: when he is done with it. ! 229: .PP ! 230: If ! 231: .I x_hot ! 232: and ! 233: .I y_hot ! 234: are non-NULL, then \fIXReadBitmapFile\fP will set ! 235: .I *x_hot ! 236: and ! 237: .I *y_hot ! 238: to the value of the hot spot as defined in the file. If no hot spot is ! 239: defined, \fIXReadBitmapFile\fP will set ! 240: .I *x_hot ! 241: and ! 242: .I *y_hot ! 243: to -1. ! 244:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.