char *aX_get_prog_res(const char *resname, const char* resclass) { XrmValue value; char *str_type; if(XrmGetResource(rDB, pname(resname), pclass(resclass), &str_type, &value)) return (char *)value.addr; else return NULL; }
//********************************************************************************************************************** vector<string> KruskalWallisCommand::setParameters(){ try { CommandParameter pdesign("design", "InputTypes", "", "", "none", "none", "none","",false,true,true); parameters.push_back(pdesign); CommandParameter pshared("shared", "InputTypes", "", "", "none", "none", "none","summary",false,true,true); parameters.push_back(pshared); CommandParameter pclass("class", "String", "", "", "", "", "","",false,false); parameters.push_back(pclass); CommandParameter plabel("label", "String", "", "", "", "", "","",false,false); parameters.push_back(plabel); CommandParameter pclasses("classes", "String", "", "", "", "", "","",false,false); parameters.push_back(pclasses); //every command must have inputdir and outputdir. This allows mothur users to redirect input and output files. CommandParameter pinputdir("inputdir", "String", "", "", "", "", "","",false,false); parameters.push_back(pinputdir); CommandParameter poutputdir("outputdir", "String", "", "", "", "", "","",false,false); parameters.push_back(poutputdir); vector<string> myArray; for (int i = 0; i < parameters.size(); i++) { myArray.push_back(parameters[i].name); } return myArray; } catch(exception& e) { m->errorOut(e, "KruskalWallisCommand", "setParameters"); exit(1); } }
void aX_open_disp(aX_options *useropt, int useroptlen, int *argcp, char *argv[], aX_default_resources *defres) { XrmValue value; char *str_type; char *disp_res; char *environment; char *display_name = NULL; char filename[MAX_FILENAME_LEN]; int i; XrmDatabase commandlineDB = NULL, usercommandlineDB = NULL; XrmDatabase homeDB, serverDB, applicationDB; /* if(disp_start.next_disp != NULL) { fprintf(stderr, "aX_open_disp: Cannot open first display twice.\n"); exit(-1); } */ XrmInitialize(); class_name[0] = '\0'; class_name[MAX_CLASS_NAME_LEN] = '\0'; if(defres->class_name != NULL) strncpy(class_name, defres->class_name, MAX_CLASS_NAME_LEN); fill_event_info(); for(i = 1; i < *argcp; i++) if(strcmp(argv[i], "-name") == 0 && ++i < *argcp){ defres->prog_name = argv[i]; break; } prog_name[0] = '\0'; prog_name[MAX_PROG_NAME_LEN] = '\0'; if(defres->prog_name != NULL) strncpy(prog_name, defres->prog_name, MAX_PROG_NAME_LEN); else strncpy(prog_name, argv[0], MAX_PROG_NAME_LEN); defres->prog_name = prog_name; XrmParseCommand(&commandlineDB, (XrmOptionDescRec *) opTable, opTableEntries, prog_name, argcp, argv); if(useropt != NULL) XrmParseCommand(&usercommandlineDB, (XrmOptionDescRec *) useropt, useroptlen, prog_name, argcp, argv); else usercommandlineDB = NULL; /* if(*argcp != 1) { fprintf(stderr, "%s: aX_open_disp: Unrecognised options in command line!\n", prog_name); exit(-1); } */ if(XrmGetResource(commandlineDB, pname(".display"), pclass(".Display"), &str_type, &value)) display_name = (char *) value.addr; if((defres->disp = XOpenDisplay(display_name)) == NULL) { fprintf(stderr, "%s: aX_open_disp: cannot connect to X server %s\n", prog_name, XDisplayName(display_name)); exit(-1); } applicationDB = XrmGetFileDatabase( addstr("/usr/lib/X11/app-defaults/", class_name, filename, MAX_FILENAME_LEN)); /* if(defres->disp->xdefaults) serverDB = XrmGetStringDatabase(defres->disp->xdefaults); else serverDB = NULL; */ disp_res = XResourceManagerString(defres->disp); if(disp_res) serverDB = XrmGetStringDatabase(disp_res); else serverDB = NULL; if((environment = getenv("XENVIRONMENT")) != NULL) homeDB = XrmGetFileDatabase(environment); else homeDB = NULL; XrmMergeDatabases(applicationDB, &rDB); XrmMergeDatabases(serverDB, &rDB); XrmMergeDatabases(homeDB, &rDB); XrmMergeDatabases(commandlineDB, &rDB); XrmMergeDatabases(usercommandlineDB, &rDB); get_def_res(defres); add_disp(defres); }
static void get_def_res(aX_default_resources *defres) { XrmValue value; char *str_type; int flags; XColor color_def; unsigned long tmp_pixel; Colormap def_map; int font_spec; defres->window_name = prog_name; defres->icon_name = prog_name; defres->scr = DefaultScreen(defres->disp); defres->scr_ptr = ScreenOfDisplay(defres->disp, defres->scr); def_map = DefaultColormapOfScreen(defres->scr_ptr); if(XrmGetResource(rDB, pname(".title"), pclass(".Title"), &str_type, &value)) defres->window_name = (char *) value.addr; defres->sflags = PSize; if(XrmGetResource(rDB, pname(".geometry"), pclass(".Geometry"), &str_type, &value)) { flags = XParseGeometry((char *) value.addr, &(defres->x), &(defres->y), &(defres->width), &(defres->height)); if((XValue | YValue) & flags) defres->sflags |= USPosition; if((WidthValue | HeightValue) & flags) defres->sflags = (defres->sflags & ~PSize) | USSize; } defres->background = defres->background ? WhitePixel(defres->disp, defres->scr) : BlackPixel(defres->disp, defres->scr); if(XrmGetResource(rDB, pname(".background"), pclass(".Background"), &str_type, &value)) { if(XParseColor(defres->disp, def_map, value.addr, &color_def)) { if(XAllocColor(defres->disp, def_map, &color_def)) defres->background = color_def.pixel; } else fprintf(stderr, "%s: aX: warning: Invalid color specification %s\n", prog_name, value.addr); } defres->foreground = defres->foreground ? WhitePixel(defres->disp, defres->scr) : BlackPixel(defres->disp, defres->scr); if(XrmGetResource(rDB, pname(".foreground"), pclass(".Foreground"), &str_type, &value)) { if(XParseColor(defres->disp, def_map, value.addr, &color_def)) { if(XAllocColor(defres->disp, def_map, &color_def)) defres->foreground = color_def.pixel; } else fprintf(stderr, "%s: aX: warning: Invalid color specification %s\n", prog_name, value.addr); } if(XrmGetResource(rDB, pname(".borderWidth"), pclass(".BorderWidth"), &str_type, &value)) { defres->border_width = atoi(value.addr); } defres->border_color = defres->foreground; if(XrmGetResource(rDB, pname(".borderColor"), pclass(".BorderColor"), &str_type, &value)) { if(XParseColor(defres->disp, def_map, value.addr, &color_def)) { if(XAllocColor(defres->disp, def_map, &color_def)) defres->border_color = color_def.pixel; } else fprintf(stderr, "%s: aX: warning: Invalid color specification %s\n", prog_name, value.addr); } font_spec = 0; if(XrmGetResource(rDB, pname(".font"), pclass(".Font"), &str_type, &value)) { defres->font_name = value.addr; if(defres->font_name != NULL) font_spec = 1; } if(XrmGetResource(rDB, pname(".fallbackFont"), pclass(".Font"), &str_type, &value)) defres->fallback_font_name = value.addr; if(defres->font_name == NULL || (defres->font = XLoadQueryFont(defres->disp, defres->font_name)) == NULL) { if(font_spec) fprintf(stderr, "%s: aX: warning: cannot open %s font, ", prog_name, defres->font_name); defres->font_name = defres->fallback_font_name; if(font_spec && defres->font_name != NULL) fprintf(stderr, "trying %s...\n",defres->font_name); if(defres->font_name == NULL || (defres->font = XLoadQueryFont(defres->disp, defres->fallback_font_name)) == NULL) { if(defres->font_name != NULL) { fprintf(stderr, "%s: aX: warning: cannot open %s font, ", prog_name, defres->font_name); } defres->font_name = "fixed"; fprintf(stderr, "trying %s...\n",defres->font_name); if((defres->font = XLoadQueryFont(defres->disp, defres->font_name)) == NULL) { fprintf(stderr, "%s: aX: warning: cannot open %s font\n", prog_name, defres->font_name); exit(-1); } } else defres->font_name = defres->fallback_font_name; } if(XrmGetResource(rDB, pname(".reverseVideo"), pclass(".ReverseVideo"), &str_type, &value)) if(strcmp(value.addr, "on") == 0) { tmp_pixel = defres->foreground; defres->foreground = defres->background; defres->background = tmp_pixel; } }