static Boolean XmuCvtStringToXftColor(Display *dpy, XrmValue *args, Cardinal *num_args, XrmValue *fromVal, XrmValue *toVal, XtPointer *converter_data) { char *spec; XRenderColor renderColor; XftColor xftColor; Screen *screen; Colormap colormap; if (*num_args != 2) { XtAppErrorMsg (XtDisplayToApplicationContext (dpy), "cvtStringToXftColor", "wrongParameters", "XtToolkitError", "String to render color conversion needs screen and colormap arguments", (String *) NULL, (Cardinal *)NULL); return False; } screen = *((Screen **) args[0].addr); colormap = *((Colormap *) args[1].addr); spec = (char *) fromVal->addr; if (strcasecmp (spec, XtDefaultForeground) == 0) { renderColor.red = 0; renderColor.green = 0; renderColor.blue = 0; renderColor.alpha = 0xffff; } else if (strcasecmp (spec, XtDefaultBackground) == 0) { renderColor.red = 0xffff; renderColor.green = 0xffff; renderColor.blue = 0xffff; renderColor.alpha = 0xffff; } else if (!XRenderParseColor (dpy, spec, &renderColor)) return False; if (!XftColorAllocValue (dpy, DefaultVisual (dpy, XScreenNumberOfScreen (screen)), colormap, &renderColor, &xftColor)) return False; donestr (XftColor, xftColor, XtRXftColor); }
Resources::Resources(Display *dpy): _dpy(dpy) { if (_instance != 0) printf("Resources singleton created twice!\n"); _instance = this; _wallpaper = 0; // Loading header images _headerLeft = new Image(_dpy, Settings::instance()->headerLeftFilename()); _headerRight = new Image(_dpy, Settings::instance()->headerRightFilename()); _headerMiddle = new Image(_dpy, Settings::instance()->headerMiddleFilename()); _headerMiddle->setRepeatType(RepeatNormal); _headerLeftSelected = new Image(_dpy, Settings::instance()->headerLeftSelectedFilename()); _headerRightSelected = new Image(_dpy, Settings::instance()->headerRightSelectedFilename()); _headerMiddleSelected = new Image(_dpy, Settings::instance()->headerMiddleSelectedFilename()); _headerMiddleSelected->setRepeatType(RepeatNormal); _brokenPattern = new Image(_dpy, Settings::instance()->brokenPatternFilename()); _brokenPattern->setRepeatType(RepeatNormal); _textBackground = new Image(_dpy, Settings::instance()->textBackgroundFilename()); XRenderParseColor(_dpy, Settings::instance()->borderColor(), &_borderColor); XRenderParseColor(_dpy, Settings::instance()->borderActiveColor(), &_borderActiveColor); XRenderParseColor(_dpy, Settings::instance()->backgroundColor(), &_backgroundColor); reloadWallpaper(); }