|
|
#include "mit-copyright.h"
#include "X_driver.h"
#include <X11/Xresource.h>
#include "formatter.h"
#include "mux.h"
#include "variables.h"
#include "error.h"
#include "X_gram.h"
#include "xselect.h"
#include "ulong_dictionary.h"
Go to the source code of this file.
Defines | |
#define | APPNAME "jwgc" |
#define | APPCLASS "Jwgc" |
#define | NUMBER_OF_OPTIONS ((sizeof (cmd_options))/ sizeof(cmd_options[0])) |
Functions | |
void | xshowinit () |
char * | get_string_resource (string name, string class) |
int | get_bool_resource (string name, string class, int default_value) |
unsigned long | x_string_to_color (char *name, unsigned long def) |
int | open_display_and_load_resources (int *pargc, char **argv) |
int | X_driver_ioerror (Display *display) |
void | x_get_input () |
int | X_driver_init (char *drivername, char notfirst, int *pargc, char **argv) |
void | X_driver_reset () |
char * | X_driver (string text) |
Variables | |
char * | app_instance |
Display * | dpy = NULL |
|
Definition at line 57 of file X_driver.c. Referenced by get_string_resource(). |
|
Definition at line 49 of file X_driver.c. Referenced by get_string_resource(), and open_display_and_load_resources(). |
|
Definition at line 229 of file X_driver.c. Referenced by open_display_and_load_resources(). |
|
Definition at line 129 of file X_driver.c. References get_string_resource(). 00133 { 00134 int result; 00135 char *temp; 00136 00137 if (!(temp = get_string_resource(name, class))) 00138 return (default_value); 00139 00140 result = convert_string_to_bool(temp); 00141 if (result == -1) 00142 result = default_value; 00143 00144 return (result); 00145 }
|
|
Definition at line 97 of file X_driver.c. References APPCLASS, APPNAME, string, string_Concat, string_Concat2, and string_Neq. 00100 { 00101 string full_name, full_class; 00102 int status; 00103 char *type; 00104 XrmValue value; 00105 00106 full_name = string_Concat(APPNAME, "."); 00107 full_name = string_Concat2(full_name, name); 00108 full_class = string_Concat(APPCLASS, "."); 00109 full_class = string_Concat2(full_class, class); 00110 00111 status = XrmGetResource(x_resources, full_name, full_class, &type, &value); 00112 free(full_name); 00113 free(full_class); 00114 00115 if (status != True) 00116 return (NULL); 00117 00118 if (string_Neq(type, "String")) 00119 return (NULL); 00120 00121 return (value.addr); 00122 }
|
|
Definition at line 236 of file X_driver.c. References APPNAME, dpy, get_string_resource(), getenv(), and NUMBER_OF_OPTIONS. Referenced by X_driver_init(). 00239 { 00240 XrmDatabase temp_db1, temp_db2, temp_db3; 00241 char *filename, *res, *xdef; 00242 char dbasename[128]; 00243 extern char *getenv(); 00244 00245 /* Initialize X resource manager: */ 00246 XrmInitialize(); 00247 00248 /* 00249 * Parse X toolkit command line arguments (including -display) 00250 * into resources: 00251 */ 00252 XrmParseCommand(&x_resources, cmd_options, NUMBER_OF_OPTIONS, APPNAME, 00253 pargc, argv); 00254 00255 /* 00256 * Try and open the display using the display specified if given. 00257 * If can't open the display, return an error code. 00258 */ 00259 dpy = XOpenDisplay(get_string_resource("display", "display")); 00260 if (!dpy) 00261 return (1); 00262 00263 /* Read in our application-specific resources: */ 00264 sprintf(dbasename, "%s/jwgc_resources", DATADIR); 00265 temp_db1 = XrmGetFileDatabase(dbasename); 00266 00267 /* 00268 * Get resources from the just opened display: 00269 */ 00270 xdef = XResourceManagerString(dpy); 00271 if (xdef) 00272 temp_db2 = XrmGetStringDatabase(xdef); 00273 else 00274 temp_db2 = NULL; 00275 00276 /* 00277 * Merge the 4 sets of resources together such that when searching 00278 * for resources, they are checking in the following order: 00279 * command arguments, XENVIRONMENT resources, server resources, 00280 * application resources 00281 */ 00282 XrmMergeDatabases(temp_db2, &temp_db1); 00283 00284 #if XlibSpecificationRelease > 4 00285 /* X11 R5 per-screen resources */ 00286 res = XScreenResourceString(DefaultScreenOfDisplay(dpy)); 00287 if (res != NULL) 00288 XrmMergeDatabases(XrmGetStringDatabase(res), &temp_db1); 00289 #endif 00290 00291 /* 00292 * Get XENVIRONMENT resources, if they exist, and merge 00293 */ 00294 if ((filename = getenv("XENVIRONMENT"))) { 00295 temp_db3 = XrmGetFileDatabase(filename); 00296 XrmMergeDatabases(temp_db3, &temp_db1); 00297 } 00298 XrmMergeDatabases(x_resources, &temp_db1); 00299 x_resources = temp_db1; 00300 00301 return (0); 00302 }
|
|
Definition at line 388 of file X_driver.c. References desctype, disp_get_cmds(), dpy, free_desc(), string, string_Copy, and xshow(). 00390 { 00391 string text_copy; 00392 desctype *desc; 00393 int numstr, numnl; 00394 00395 text_copy = string_Copy(text); 00396 desc = disp_get_cmds(text_copy, &numstr, &numnl); 00397 00398 xshow(dpy, desc, numstr, numnl); 00399 00400 free(text_copy); 00401 free_desc(desc); 00402 return (NULL); 00403 }
|
|
Definition at line 332 of file X_driver.c. References app_instance, dpy, ERROR, get_bool_resource(), get_string_resource(), mux_add_input_source(), open_display_and_load_resources(), string, string_Copy, ulong_dictionary_Create(), var_set_variable(), X_driver_ioerror(), x_get_input(), x_gram_init(), xicccmInitAtoms(), and xshowinit(). 00337 { 00338 string temp; 00339 int sync; 00340 00341 /* 00342 * Attempt to open display and read resources, including from the 00343 * command line. If fail, exit with error code, disabling this 00344 * driver: 00345 */ 00346 if (open_display_and_load_resources(pargc, argv)) { 00347 ERROR("Unable to open X display -- disabling X driver.\n"); 00348 return (1); 00349 } 00350 00351 XSetIOErrorHandler(X_driver_ioerror); 00352 00353 /* 00354 * For now, set some useful variables using resources: 00355 */ 00356 if ((sync = get_bool_resource("synchronous", "Synchronous", 0))) 00357 XSynchronize(dpy, sync); 00358 if ((temp = get_string_resource("geometry", "Geometry"))) 00359 var_set_variable("default_X_geometry", temp); 00360 00361 temp = strrchr(argv[0], '/'); 00362 00363 app_instance = string_Copy(temp ? temp + 1 : argv[0]); 00364 00365 color_dict = ulong_dictionary_Create(37); 00366 00367 xshowinit(); 00368 x_gram_init(dpy); 00369 xicccmInitAtoms(dpy); 00370 00371 mux_add_input_source(ConnectionNumber(dpy), x_get_input, dpy); 00372 00373 return (0); 00374 }
|
|
Definition at line 316 of file X_driver.c. References ERROR2. Referenced by X_driver_init(). 00318 { 00319 ERROR2("X IO error on display '%s'--exiting\n", DisplayString(display)); 00320 exit(1); 00321 }
|
|
Definition at line 377 of file X_driver.c. 00378 { 00379 }
|
|
Referenced by X_driver_init(), and x_gram_create(). |
|
Definition at line 161 of file X_driver.c. References dpy, ERROR2, ulong_dictionary_binding, ulong_dictionary_Define(), ulong_dictionary_Delete(), and _ulong_dictionary_binding::value. 00164 { 00165 ulong_dictionary_binding *binding; 00166 int exists; 00167 XColor xc; 00168 00169 if (name == NULL) 00170 return (def); 00171 00172 binding = ulong_dictionary_Define(color_dict, name, &exists); 00173 00174 if (exists) { 00175 return ((unsigned long) binding->value); 00176 } 00177 else { 00178 if (XParseColor(dpy, DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)), 00179 name, &xc)) { 00180 if (XAllocColor(dpy, 00181 DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)), 00182 &xc)) { 00183 binding->value = (ulong) xc.pixel; 00184 return (xc.pixel); 00185 } 00186 else { 00187 ERROR2("Error in XAllocColor on \"%s\": using default color\n", 00188 name); 00189 } 00190 } 00191 else { 00192 ERROR2("Error in XParseColor on \"%s\": using default color\n", 00193 name); 00194 } 00195 ulong_dictionary_Delete(color_dict, binding); 00196 return (def); 00197 } 00198 /* NOTREACHED */ 00199 }
|
|
Definition at line 34 of file xshow.c. Referenced by X_driver_init(). 00035 { 00036 desc_context = XUniqueContext(); 00037 }
|
|
Definition at line 29 of file X_driver.c. Referenced by X_driver_init(). |
|
Definition at line 36 of file X_driver.c. Referenced by end_xerror_trap(), fixup_and_draw(), get_font(), getLastEvent(), open_display_and_load_resources(), X_driver(), X_driver_init(), x_get_input(), x_gram_create(), x_gram_draw(), x_gram_expose(), x_gram_init(), x_set_icccm_hints(), x_string_to_color(), xcut(), xdestroygram(), xicccmInitAtoms(), xmarkExpose(), xmarkRedraw(), xselGetOwnership(), xselGiveUpOwnership(), xselProcessSelection(), xshow(), and xunmark(). |
Last updated at Tue Dec 18 21:07:42 PST 2007. | This site and project hosted by... |