void SolidTexture::read(const string &prefix) { backgroundColor = GetConfigColor(prefix, "Color", RGB(128, 128, 128)); bevel = GetConfigBoolean(prefix, "Bevel"); darkBevelColor = GetConfigColor(prefix, "DarkBevelColor", DarkenColor(backgroundColor)); lightBevelColor = GetConfigColor(prefix, "LightBevelColor", LightenColor(backgroundColor)); }
void CRollupGripper::OnPaint() { CPaintDC dc(this); // device context for painting if(m_bInit) { if(MemDC.m_hDC != NULL) { if(pOldMemBMP) { MemDC.SelectObject(pOldMemBMP); #ifdef _DEBUG pOldMemBMP = NULL; #endif } MemDC.DeleteDC(); } MemDC.CreateCompatibleDC((CDC*)&dc); if(MemBMP.m_hObject != NULL) MemBMP.DeleteObject(); MemBMP.CreateCompatibleBitmap((CDC*)&dc, RUP_GRIPPERWIDTH, RUP_GRIPPERHEIGHT); pOldMemBMP = MemDC.SelectObject(&MemBMP); m_bInit = false; } MemDC.FillSolidRect(0,0,RUP_GRIPPERWIDTH,RUP_GRIPPERHEIGHT,GetSysColor(COLOR_BTNFACE)); switch(m_iState) { case GRIPPER_STATE_NORMAL: { // COLORREF hicolor = GetSysColor(COLOR_3DSHADOW); // COLORREF locolor = GetSysColor(COLOR_3DLIGHT); COLORREF hicolor = LightenColor(GetSysColor(COLOR_BTNFACE), -0x50); COLORREF locolor = LightenColor(GetSysColor(COLOR_BTNFACE), 0x10); int yp = 0; for(int yc = 0; yc < GRIPPER_ROWCOUNT; yc++, yp+=5) { int xp = 0; for(int xc = 0; xc < 12; xc++, xp+=5) DrawDot(&MemDC, xp, yp, locolor, hicolor); } break; } case GRIPPER_STATE_MOUSEOVER: { // COLORREF hicolor = GetSysColor(COLOR_3DDKSHADOW); // COLORREF locolor = GetSysColor(COLOR_3DHILIGHT); COLORREF hicolor = LightenColor(GetSysColor(COLOR_BTNFACE), -0x80); COLORREF locolor = LightenColor(GetSysColor(COLOR_BTNFACE), 0x80); int yp = 0; for(int yc = 0; yc < GRIPPER_ROWCOUNT; yc++, yp+=5) { int xp = 0; for(int xc = 0; xc < 12; xc++, xp+=5) DrawDot(&MemDC, xp, yp, locolor, hicolor); } break; } case GRIPPER_STATE_PRESSED: //pressed { COLORREF hicolor = LightenColor(GetSysColor(COLOR_BTNFACE), -0x50); COLORREF locolor = LightenColor(GetSysColor(COLOR_BTNFACE), 0x80); int yp = 0; for(int yc = 0; yc < GRIPPER_ROWCOUNT; yc++, yp+=5) { int xp = 0; for(int xc = 0; xc < 12; xc++, xp+=5) DrawDot(&MemDC, xp, yp, hicolor, locolor); } break; } default: break; } dc.BitBlt(0, 0, RUP_GRIPPERWIDTH, RUP_GRIPPERHEIGHT, &MemDC, 0, 0, SRCCOPY); }
/** Startup color support. */ void StartupColors() { unsigned int x; int red, green, blue; XColor c; /* Determine how to convert between RGB triples and pixels. */ Assert(rootVisual); switch(rootVisual->class) { case DirectColor: case TrueColor: ComputeShiftMask(rootVisual->red_mask, &redShift, &redMask); ComputeShiftMask(rootVisual->green_mask, &greenShift, &greenMask); ComputeShiftMask(rootVisual->blue_mask, &blueShift, &blueMask); map = NULL; break; default: /* Attempt to get 256 colors, pretend it worked. */ redMask = 0xE0; greenMask = 0x1C; blueMask = 0x03; ComputeShiftMask(redMask, &redShift, &redMask); ComputeShiftMask(greenMask, &greenShift, &greenMask); ComputeShiftMask(blueMask, &blueShift, &blueMask); map = Allocate(sizeof(unsigned long) * 256); /* RGB: 3, 3, 2 */ x = 0; for(red = 0; red < 8; red++) { for(green = 0; green < 8; green++) { for(blue = 0; blue < 4; blue++) { c.red = (unsigned short)(74898 * red / 8); c.green = (unsigned short)(74898 * green / 8); c.blue = (unsigned short)(87381 * blue / 4); c.flags = DoRed | DoGreen | DoBlue; JXAllocColor(display, rootColormap, &c); map[x] = c.pixel; ++x; } } } /* Compute the reverse pixel mapping (pixel -> 24-bit RGB). */ rmap = Allocate(sizeof(unsigned long) * 256); for(x = 0; x < 256; x++) { c.pixel = x; JXQueryColor(display, rootColormap, &c); GetDirectPixel(&c); rmap[x] = c.pixel; } break; } /* Inherit unset colors. */ if(names) { for(x = 0; x < INHERIT_COUNT; x++) { if(!names[INHERIT_COLORS[x].dest]) { names[INHERIT_COLORS[x].dest] = CopyString(names[INHERIT_COLORS[x].src]); } } } /* Get color information used for JWM stuff. */ for(x = 0; x < COLOR_COUNT; x++) { if(names && names[x]) { if(ParseColor(names[x], &c)) { colors[x] = c.pixel; rgbColors[x] = GetRGBFromXColor(&c); } else { SetDefaultColor(x); } } else { SetDefaultColor(x); } } /* If not explicity set, select an outline for active menu items. */ if(!names || !names[COLOR_MENU_ACTIVE_OL]) { DarkenColor(COLOR_MENU_ACTIVE_BG1, COLOR_MENU_ACTIVE_OL); } LightenColor(COLOR_TRAY_BG1, COLOR_TRAY_UP); DarkenColor(COLOR_TRAY_BG2, COLOR_TRAY_DOWN); DarkenColor(COLOR_TASK_BG1, COLOR_TASK_DOWN); LightenColor(COLOR_TASK_ACTIVE_BG1, COLOR_TASK_ACTIVE_UP); LightenColor(COLOR_TRAYBUTTON_ACTIVE_BG1, COLOR_TRAYBUTTON_ACTIVE_UP); DarkenColor(COLOR_TRAYBUTTON_BG1, COLOR_TRAYBUTTON_DOWN); LightenColor(COLOR_MENU_BG, COLOR_MENU_UP); DarkenColor(COLOR_MENU_BG, COLOR_MENU_DOWN); if(names) { for(x = 0; x < COLOR_COUNT; x++) { if(names[x]) { Release(names[x]); } } Release(names); names = NULL; } }