X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ftheme.c;h=265378539fd08fd779023526c0879c831ef5df57;hb=d158b642820910adf2d4f73370cf3537749230a6;hp=ae2819482703c0ea755575f9a04082fdc67fea84;hpb=6dec1c213b236d2e6c234071b492b32706b211bf;p=chaz%2Fopenbox diff --git a/render/theme.c b/render/theme.c index ae281948..26537853 100644 --- a/render/theme.c +++ b/render/theme.c @@ -1760,14 +1760,20 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst, { gboolean ret = FALSE; gchar *rclass = create_class_name(rname); - gchar *cname, *ctoname, *bcname, *icname; + gchar *cname, *ctoname, *bcname, *icname, *hname, *sname; + gchar *csplitname, *ctosplitname; gchar *rettype; XrmValue retvalue; + gint i; cname = g_strconcat(rname, ".color", NULL); ctoname = g_strconcat(rname, ".colorTo", NULL); bcname = g_strconcat(rname, ".border.color", NULL); icname = g_strconcat(rname, ".interlace.color", NULL); + hname = g_strconcat(rname, ".highlight", NULL); + sname = g_strconcat(rname, ".shadow", NULL); + csplitname = g_strconcat(rname, ".color.splitTo", NULL); + ctosplitname = g_strconcat(rname, ".colorTo.splitTo", NULL); if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) && retvalue.addr != NULL) { @@ -1790,9 +1796,52 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst, if (!read_color(db, inst, icname, &value->surface.interlace_color)) value->surface.interlace_color = RrColorNew(inst, 0, 0, 0); + if (read_int(db, hname, &i) && i >= 0) + value->surface.bevel_light_adjust = i; + if (read_int(db, sname, &i) && i >= 0 && i <= 256) + value->surface.bevel_dark_adjust = i; + + if (value->surface.grad == RR_SURFACE_SPLIT_VERTICAL) { + gint r, g, b; + + if (!read_color(db, inst, csplitname, + &value->surface.split_primary)) + { + r = value->surface.primary->r; + r += r >> 2; + g = value->surface.primary->g; + g += g >> 2; + b = value->surface.primary->b; + b += b >> 2; + if (r > 0xFF) r = 0xFF; + if (g > 0xFF) g = 0xFF; + if (b > 0xFF) b = 0xFF; + value->surface.split_primary = RrColorNew(inst, r, g, b); + } + + if (!read_color(db, inst, ctosplitname, + &value->surface.split_secondary)) + { + r = value->surface.secondary->r; + r += r >> 4; + g = value->surface.secondary->g; + g += g >> 4; + b = value->surface.secondary->b; + b += b >> 4; + if (r > 0xFF) r = 0xFF; + if (g > 0xFF) g = 0xFF; + if (b > 0xFF) b = 0xFF; + value->surface.split_secondary = RrColorNew(inst, r, g, b); + } + } + ret = TRUE; } + g_free(ctosplitname); + g_free(csplitname); + g_free(sname); + g_free(hname); g_free(icname); g_free(bcname); g_free(ctoname);