- Timestamp:
- Oct 5, 1999, 6:02:53 PM (26 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/syscolor.cpp
r949 r1138 1 /* $Id: syscolor.cpp,v 1. 6 1999-09-15 23:18:56 sandervlExp $ */1 /* $Id: syscolor.cpp,v 1.7 1999-10-05 16:02:53 cbratschi Exp $ */ 2 2 3 3 /* … … 22 22 #include "syscolor.h" 23 23 24 struct SysColorObjects sysColorObjects; 24 #define NUM_SYS_COLORS (COLOR_GRADIENTINACTIVECAPTION+1) 25 25 26 static const char * const DefSysColors[] = 26 /* Win98 colors */ 27 28 static COLORREF SysColors[NUM_SYS_COLORS] = 27 29 { 28 "Scrollbar", "192 192 192", /* COLOR_SCROLLBAR */29 "Background", "192 192 192", /* COLOR_BACKGROUND */30 "ActiveTitle", "255 0 128", /* COLOR_ACTIVECAPTION */31 "InactiveTitle", "128 128 128", /* COLOR_INACTIVECAPTION */32 "Menu", "192 192 192", /* COLOR_MENU */33 "Window", "255 255 255", /* COLOR_WINDOW */34 "WindowFrame", "0 0 0", /* COLOR_WINDOWFRAME */35 "MenuText", "0 0 0", /* COLOR_MENUTEXT */36 "WindowText", "0 0 0", /* COLOR_WINDOWTEXT */37 "TitleText", "255 255 255", /* COLOR_CAPTIONTEXT */38 "ActiveBorder", "192 192 192", /* COLOR_ACTIVEBORDER */39 "InactiveBorder", "192 192 192", /* COLOR_INACTIVEBORDER */40 "AppWorkspace", "128 128 128", /* COLOR_APPWORKSPACE */41 "Hilight", "168 200 240", /* COLOR_HIGHLIGHT */42 "HilightText", "255 255 255", /* COLOR_HIGHLIGHTTEXT */43 "ButtonFace", "192 192 192", /* COLOR_BTNFACE */44 "ButtonShadow", "128 128 128", /* COLOR_BTNSHADOW */45 "GrayText", "128 128 128", /* COLOR_GRAYTEXT */46 "ButtonText", "0 0 0", /* COLOR_BTNTEXT */47 "InactiveTitleText", "192 192 192", /* COLOR_INACTIVECAPTIONTEXT */48 "ButtonHilight", "255 255 255", /* COLOR_BTNHIGHLIGHT */49 "3DDarkShadow", "0 0 0", /* COLOR_3DDKSHADOW */50 "3DLight", "224 224 224", /* COLOR_3DLIGHT */51 "InfoText", "0 0 0", /* COLOR_INFOTEXT */52 "InfoBackground", "255 255 192", /* COLOR_INFOBK */53 "AlternateButtonFace", "0 0 0", /* COLOR_ALTERNATEBTNFACE */54 "HotTrackingColor", "0 0 0", /* COLOR_HOTLIGHT */55 "GradientActiveTitle", "0 0 0", /* COLOR_GRADIENTACTIVECAPTION */56 "GradientInactiveTitle", "0 0 0" /* COLOR_GRADIENTINACTIVECAPTION */30 RGB(192,192,192), //COLOR_SCROLLBAR 31 RGB(192,192,192), //COLOR_BACKGROUND 32 RGB(255,0,128), //COLOR_ACTIVECAPTION 33 RGB(128,128,128), //COLOR_INACTIVECAPTION 34 RGB(192,192,192), //COLOR_MENU 35 RGB(255,255,255), //COLOR_WINDOW 36 RGB(0,0,0), //COLOR_WINDOWFRAME 37 RGB(0,0,0), //COLOR_MENUTEXT 38 RGB(0,0,0), //COLOR_WINDOWTEXT 39 RGB(255,255,255), //COLOR_CAPTIONTEXT 40 RGB(255,255,255), //COLOR_ACTIVEBORDER 41 RGB(192,192,192), //COLOR_INACTIVEBORDER 42 RGB(128,128,128), //COLOR_APPWORKSPACE 43 RGB(168,200,240), //COLOR_HIGHLIGHT 44 RGB(255,255,255), //COLOR_HIGHLIGHTTEXT 45 RGB(192,192,192), //COLOR_BTNFACE 46 RGB(128,128,128), //COLOR_BTNSHADOW 47 RGB(128,128,128), //COLOR_GRAYTEXT 48 RGB(0,0,0), //COLOR_BTNTEXT 49 RGB(192,192,192), //COLOR_INACTIVECAPTIONTEXT 50 RGB(255,255,255), //COLOR_BTNHIGHLIGHT 51 RGB(0,0,0), //COLOR_3DDKSHADOW 52 RGB(224,224,224), //COLOR_3DLIGHT 53 RGB(0,0,0), //COLOR_INFOTEXT 54 RGB(255,255,255), //COLOR_INFOBK 55 RGB(0,0,0), //COLOR_ALTERNATEBTNFACE 56 RGB(0,0,0), //COLOR_HOTLIGHT 57 RGB(0,0,0), //COLOR_GRADIENTACTIVECAPTION 58 RGB(0,0,0) //COLOR_GRADIENTINACTIVECAPTION 57 59 }; 58 60 59 60 #define NUM_SYS_COLORS (COLOR_GRADIENTINACTIVECAPTION+1)61 62 static HBRUSH SysColors[NUM_SYS_COLORS] = {0};63 61 static HPEN SysColorPens[NUM_SYS_COLORS] = {0}; 62 static HBRUSH SysColorBrushes[NUM_SYS_COLORS] = {0}; 64 63 static BOOL fColorInit = FALSE; 65 64 … … 67 66 (PALETTEINDEX(GetNearestPaletteIndex(STOCK_DEFAULT_PALETTE,(color)))) 68 67 69 //******************************************************************************70 //******************************************************************************71 68 static void SYSCOLOR_SetColor( int index, COLORREF color ) 72 69 { 73 if (index < 0 || index >= NUM_SYS_COLORS ) return;70 if (index < 0 || index >= NUM_SYS_COLORS || (SysColors[index] == color && fColorInit)) return; 74 71 SysColors[index] = color; 75 72 /* set pen */ 76 73 if (SysColorPens[index]) DeleteObject(SysColorPens[index]); 77 74 SysColorPens[index] = CreatePen(PS_SOLID, 1, color); 78 switch(index) 79 { 80 case COLOR_SCROLLBAR: 81 DeleteObject( sysColorObjects.hbrushScrollbar ); 82 sysColorObjects.hbrushScrollbar = CreateSolidBrush( color ); 83 break; 84 case COLOR_BACKGROUND: 85 DeleteObject( sysColorObjects.hbrushBackground ); 86 sysColorObjects.hbrushBackground = CreateSolidBrush( color ); 87 break; 88 case COLOR_ACTIVECAPTION: 89 DeleteObject( sysColorObjects.hbrushActiveCaption ); 90 sysColorObjects.hbrushActiveCaption = CreateSolidBrush( color ); 91 break; 92 case COLOR_INACTIVECAPTION: 93 DeleteObject( sysColorObjects.hbrushInactiveCaption ); 94 sysColorObjects.hbrushInactiveCaption = CreateSolidBrush( color ); 95 break; 96 case COLOR_MENU: 97 DeleteObject( sysColorObjects.hbrushMenu ); 98 // sysColorObjects.hbrushMenu = CreateSolidBrush( MAKE_SOLID(color) ); 99 sysColorObjects.hbrushMenu = CreateSolidBrush( color ); 100 break; 101 case COLOR_WINDOW: 102 DeleteObject( sysColorObjects.hbrushWindow ); 103 sysColorObjects.hbrushWindow = CreateSolidBrush( color ); 104 break; 105 case COLOR_WINDOWFRAME: 106 DeleteObject( sysColorObjects.hbrushWindowFrame ); 107 sysColorObjects.hbrushWindowFrame = CreateSolidBrush( color ); 108 /* FIXME: we should not need this pen */ 109 DeleteObject( sysColorObjects.hpenWindowFrame ); 110 sysColorObjects.hpenWindowFrame = CreatePen( PS_SOLID, 1, color ); 111 break; 112 case COLOR_MENUTEXT: 113 DeleteObject( sysColorObjects.hbrushMenuText ); 114 sysColorObjects.hbrushMenuText = CreateSolidBrush( color ); 115 break; 116 case COLOR_WINDOWTEXT: 117 DeleteObject( sysColorObjects.hbrushWindowText ); 118 sysColorObjects.hbrushWindowText = CreateSolidBrush( color ); 119 /* FIXME: we should not need this pen */ 120 DeleteObject( sysColorObjects.hpenWindowText ); 121 sysColorObjects.hpenWindowText = CreatePen( PS_DOT, 1, color ); 122 break; 123 case COLOR_CAPTIONTEXT: 124 DeleteObject( sysColorObjects.hbrushCaptionText ); 125 sysColorObjects.hbrushCaptionText = CreateSolidBrush( color ); 126 break; 127 case COLOR_ACTIVEBORDER: 128 DeleteObject( sysColorObjects.hbrushActiveBorder ); 129 sysColorObjects.hbrushActiveBorder = CreateSolidBrush( color ); 130 break; 131 case COLOR_INACTIVEBORDER: 132 DeleteObject( sysColorObjects.hbrushInactiveBorder ); 133 sysColorObjects.hbrushInactiveBorder = CreateSolidBrush( color ); 134 break; 135 case COLOR_APPWORKSPACE: 136 DeleteObject( sysColorObjects.hbrushAppWorkspace ); 137 sysColorObjects.hbrushAppWorkspace = CreateSolidBrush( color ); 138 break; 139 case COLOR_HIGHLIGHT: 140 DeleteObject( sysColorObjects.hbrushHighlight ); 141 sysColorObjects.hbrushHighlight = CreateSolidBrush( color ); 142 break; 143 case COLOR_HIGHLIGHTTEXT: 144 DeleteObject( sysColorObjects.hbrushHighlightText ); 145 sysColorObjects.hbrushHighlightText = CreateSolidBrush( color ); 146 break; 147 case COLOR_BTNFACE: 148 DeleteObject( sysColorObjects.hbrushBtnFace ); 149 sysColorObjects.hbrushBtnFace = CreateSolidBrush( color ); 150 break; 151 case COLOR_BTNSHADOW: 152 DeleteObject( sysColorObjects.hbrushBtnShadow ); 153 sysColorObjects.hbrushBtnShadow = CreateSolidBrush( color ); 154 break; 155 case COLOR_GRAYTEXT: 156 DeleteObject( sysColorObjects.hbrushGrayText ); 157 sysColorObjects.hbrushGrayText = CreateSolidBrush( color ); 158 case COLOR_BTNTEXT: 159 DeleteObject( sysColorObjects.hbrushBtnText ); 160 sysColorObjects.hbrushBtnText = CreateSolidBrush( color ); 161 break; 162 case COLOR_INACTIVECAPTIONTEXT: 163 DeleteObject( sysColorObjects.hbrushInactiveCaptionText ); 164 sysColorObjects.hbrushInactiveCaptionText = CreateSolidBrush(color); 165 break; 166 case COLOR_BTNHIGHLIGHT: 167 DeleteObject( sysColorObjects.hbrushBtnHighlight ); 168 sysColorObjects.hbrushBtnHighlight = CreateSolidBrush( color ); 169 break; 170 case COLOR_3DDKSHADOW: 171 DeleteObject( sysColorObjects.hbrush3DDkShadow ); 172 sysColorObjects.hbrush3DDkShadow = CreateSolidBrush( color ); 173 break; 174 case COLOR_3DLIGHT: 175 DeleteObject( sysColorObjects.hbrush3DLight ); 176 sysColorObjects.hbrush3DLight = CreateSolidBrush( color ); 177 break; 178 case COLOR_INFOTEXT: 179 DeleteObject( sysColorObjects.hbrushInfoText ); 180 sysColorObjects.hbrushInfoText = CreateSolidBrush( color ); 181 break; 182 case COLOR_INFOBK: 183 DeleteObject( sysColorObjects.hbrushInfoBk ); 184 sysColorObjects.hbrushInfoBk = CreateSolidBrush( color ); 185 break; 186 case COLOR_ALTERNATEBTNFACE: 187 DeleteObject(sysColorObjects.hbrushAlternateBtnFace); 188 sysColorObjects.hbrushAlternateBtnFace = CreateSolidBrush(color); 189 break; 190 case COLOR_HOTLIGHT: 191 DeleteObject(sysColorObjects.hbrushHotLight); 192 sysColorObjects.hbrushHotLight = CreateSolidBrush(color); 193 break; 194 case COLOR_GRADIENTACTIVECAPTION: 195 DeleteObject(sysColorObjects.hbrushGradientActiveCaption); 196 sysColorObjects.hbrushGradientActiveCaption = CreateSolidBrush(color); 197 break; 198 case COLOR_GRADIENTINACTIVECAPTION: 199 DeleteObject(sysColorObjects.hbrushGradientInactiveCaption); 200 sysColorObjects.hbrushGradientInactiveCaption = CreateSolidBrush(color); 201 break; 202 } 75 /* set brush */ 76 if (SysColorBrushes[index]) DeleteObject(SysColorBrushes[index]); 77 SysColorBrushes[index] = CreateSolidBrush(color); 203 78 } 204 79 //****************************************************************************** 205 80 //****************************************************************************** 206 void SYSCOLOR_ Init(void)81 void SYSCOLOR_Load(void) 207 82 { 83 /* CB: load colors from Odin ini file 208 84 int i, r, g, b; 209 85 const char * const *p; … … 215 91 SYSCOLOR_SetColor( i, RGB(r,g,b) ); 216 92 } 93 */ 94 95 } 96 //****************************************************************************** 97 //****************************************************************************** 98 void SYSCOLOR_Save(void) 99 { 100 //CB: todo 101 } 102 //****************************************************************************** 103 //****************************************************************************** 104 void SYSCOLOR_Init(void) 105 { 106 INT x; 107 108 SYSCOLOR_Load(); 109 for (x = 0;x < NUM_SYS_COLORS;x++) SYSCOLOR_SetColor(x,SysColors[x]); 217 110 } 218 111 //****************************************************************************** … … 220 113 COLORREF WIN32API GetSysColor(INT nIndex) 221 114 { 222 if(fColorInit == FALSE) { 223 SYSCOLOR_Init(); 224 fColorInit = TRUE; 115 if(fColorInit == FALSE) 116 { 117 SYSCOLOR_Init(); 118 fColorInit = TRUE; 225 119 } 226 #if 0 227 if (nIndex >= 0 && nIndex < NUM_SYS_COLORS) 228 return SysColors[nIndex]; 229 else return 0; 230 #else 231 if(nIndex < COLOR_3DDKSHADOW) 232 return O32_GetSysColor(nIndex); 233 else return SysColors[nIndex]; 234 #endif 120 121 if (nIndex >= 0 && nIndex < NUM_SYS_COLORS) return SysColors[nIndex]; 122 else return 0; 235 123 } 236 124 //****************************************************************************** … … 241 129 int i; 242 130 243 if(fColorInit == FALSE) { 244 SYSCOLOR_Init(); 245 fColorInit = TRUE; 131 if(fColorInit == FALSE) 132 { 133 SYSCOLOR_Init(); 134 fColorInit = TRUE; 246 135 } 247 136 … … 255 144 256 145 return SetSysColors(nChanges, lpSysColor, lpColorValues); 257 #if 0 146 258 147 /* Send WM_SYSCOLORCHANGE message to all windows */ 259 148 260 SendMessage 32A( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );149 SendMessageA( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 ); 261 150 262 151 /* Repaint affected portions of all visible windows */ 263 152 264 RedrawWindow 32( GetDesktopWindow32(), NULL, 0,153 RedrawWindow( GetDesktopWindow(), NULL, 0, 265 154 RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW | RDW_ALLCHILDREN ); 266 155 return TRUE; 267 #endif268 156 } 269 157 //****************************************************************************** … … 271 159 HBRUSH WIN32API GetSysColorBrush(int nIndex) 272 160 { 273 static BOOL fFirst = TRUE;274 LOGBRUSH lbrush;275 int i;276 277 161 #ifdef DEBUG 278 162 WriteLog("OS2GetSysColorBrush %d returned", nIndex); 279 163 #endif 280 if(fFirst == TRUE) { 281 for(i=0;i<sizeof(SysColors)/sizeof(HBRUSH);i++) { 282 lbrush.lbStyle = BS_SOLID; 283 lbrush.lbHatch = 0; 284 lbrush.lbColor = GetSysColor(i); 285 SysColors[i] = CreateBrushIndirect(&lbrush); 286 } 287 fFirst = FALSE; 164 if (!fColorInit) 165 { 166 SYSCOLOR_Init(); 167 fColorInit = TRUE; 288 168 } 289 if(nIndex < sizeof(SysColors)/sizeof(HBRUSH)) { 290 #ifdef DEBUG 291 WriteLog(" %X\n", SysColors[nIndex]); 292 #endif 293 return(SysColors[nIndex]); 294 } 295 #ifdef DEBUG 296 WriteLog(" unknown index!\n"); 297 #endif 298 return(GetStockObject(LTGRAY_BRUSH)); 169 170 if (nIndex >= 0 && nIndex < NUM_SYS_COLORS) return SysColorBrushes[nIndex]; 171 else return(GetStockObject(LTGRAY_BRUSH)); 172 299 173 } 300 174 //****************************************************************************** … … 307 181 HPEN WIN32API GetSysColorPen(INT index) 308 182 { 309 if ( fColorInit == FALSE)183 if (!fColorInit) 310 184 { 311 185 SYSCOLOR_Init(); … … 313 187 } 314 188 315 return SysColorPens[index]; 189 if (index >= 0 && index < NUM_SYS_COLORS) return SysColorPens[index]; 190 else return 0; 316 191 } 317 //******************************************************************************318 //******************************************************************************319 192 -
trunk/src/user32/syscolor.h
r949 r1138 1 /* $Id: syscolor.h,v 1. 4 1999-09-15 23:18:56 sandervlExp $ */1 /* $Id: syscolor.h,v 1.5 1999-10-05 16:02:53 cbratschi Exp $ */ 2 2 3 3 /* … … 6 6 * 7 7 * Copyright Alexandre Julliard, 1994 8 * Copyright 1999 Christoph Bratschi 8 9 */ 9 10 … … 33 34 HBRUSH WIN32API OS2GetSysColorBrush(int nIndex); 34 35 35 struct SysColorObjects36 {37 HBRUSH hbrushScrollbar; /* COLOR_SCROLLBAR */38 HBRUSH hbrushBackground; /* COLOR_BACKGROUND */39 HBRUSH hbrushActiveCaption; /* COLOR_ACTIVECAPTION */40 HBRUSH hbrushInactiveCaption; /* COLOR_INACTIVECAPTION */41 HBRUSH hbrushMenu; /* COLOR_MENU */42 HBRUSH hbrushWindow; /* COLOR_WINDOW */43 HBRUSH hbrushWindowFrame; /* COLOR_WINDOWFRAME */44 HBRUSH hbrushMenuText; /* COLOR_MENUTEXT */45 HBRUSH hbrushWindowText; /* COLOR_WINDOWTEXT */46 HBRUSH hbrushCaptionText; /* COLOR_CAPTIONTEXT */47 HBRUSH hbrushActiveBorder; /* COLOR_ACTIVEBORDER */48 HBRUSH hbrushInactiveBorder; /* COLOR_INACTIVEBORDER */49 HBRUSH hbrushAppWorkspace; /* COLOR_APPWORKSPACE */50 HBRUSH hbrushHighlight; /* COLOR_HIGHLIGHT */51 HBRUSH hbrushHighlightText; /* COLOR_HIGHLIGHTTEXT */52 HBRUSH hbrushBtnFace; /* COLOR_BTNFACE */53 HBRUSH hbrushBtnShadow; /* COLOR_BTNSHADOW */54 HBRUSH hbrushGrayText; /* COLOR_GRAYTEXT */55 HBRUSH hbrushBtnText; /* COLOR_BTNTEXT */56 HBRUSH hbrushInactiveCaptionText; /* COLOR_INACTIVECAPTIONTEXT */57 HBRUSH hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */58 HBRUSH hbrush3DDkShadow; /* COLOR_3DDKSHADOW */59 HBRUSH hbrush3DLight; /* COLOR_3DLIGHT */60 HBRUSH hbrushInfoText; /* COLOR_INFOTEXT */61 HBRUSH hbrushInfoBk; /* COLOR_INFOBK */62 HBRUSH hbrushAlternateBtnFace; /* COLOR_ALTERNATEBTNFACE */63 HBRUSH hbrushHotLight; /* COLOR_HOTLIGHT */64 HBRUSH hbrushGradientActiveCaption; /* COLOR_GRADIENTACTIVECAPTION */65 HBRUSH hbrushGradientInactiveCaption; /* COLOR_GRADIENTINACTIVECAPTION */66 67 HPEN hpenWindowFrame; /* COLOR_WINDOWFRAME */68 HPEN hpenWindowText; /* COLOR_WINDOWTEXT */69 };70 71 36 extern void SYSCOLOR_Init(void); 72 extern struct SysColorObjects sysColorObjects;73 37 74 38 #endif /* __WINE_SYSCOLOR_H */
Note:
See TracChangeset
for help on using the changeset viewer.