Changeset 1138 for trunk/src


Ignore:
Timestamp:
Oct 5, 1999, 6:02:53 PM (26 years ago)
Author:
cbratschi
Message:

changed to use Windows colors

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 sandervl Exp $ */
     1/* $Id: syscolor.cpp,v 1.7 1999-10-05 16:02:53 cbratschi Exp $ */
    22
    33/*
     
    2222#include "syscolor.h"
    2323
    24 struct SysColorObjects sysColorObjects;
     24#define NUM_SYS_COLORS     (COLOR_GRADIENTINACTIVECAPTION+1)
    2525
    26 static const char * const DefSysColors[] =
     26/* Win98 colors */
     27
     28static COLORREF SysColors[NUM_SYS_COLORS] =
    2729{
    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
    5759};
    5860
    59 
    60 #define NUM_SYS_COLORS     (COLOR_GRADIENTINACTIVECAPTION+1)
    61 
    62 static HBRUSH SysColors[NUM_SYS_COLORS] = {0};
    6361static HPEN   SysColorPens[NUM_SYS_COLORS] = {0};
     62static HBRUSH SysColorBrushes[NUM_SYS_COLORS] = {0};
    6463static BOOL   fColorInit = FALSE;
    6564
     
    6766       (PALETTEINDEX(GetNearestPaletteIndex(STOCK_DEFAULT_PALETTE,(color))))
    6867
    69 //******************************************************************************
    70 //******************************************************************************
    7168static void SYSCOLOR_SetColor( int index, COLORREF color )
    7269{
    73     if (index < 0 || index >= NUM_SYS_COLORS) return;
     70    if (index < 0 || index >= NUM_SYS_COLORS || (SysColors[index] == color && fColorInit)) return;
    7471    SysColors[index] = color;
    7572    /* set pen */
    7673    if (SysColorPens[index]) DeleteObject(SysColorPens[index]);
    7774    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);
    20378}
    20479//******************************************************************************
    20580//******************************************************************************
    206 void SYSCOLOR_Init(void)
     81void SYSCOLOR_Load(void)
    20782{
     83/* CB: load colors from Odin ini file
    20884    int i, r, g, b;
    20985    const char * const *p;
     
    21591        SYSCOLOR_SetColor( i, RGB(r,g,b) );
    21692    }
     93*/
     94
     95}
     96//******************************************************************************
     97//******************************************************************************
     98void SYSCOLOR_Save(void)
     99{
     100  //CB: todo
     101}
     102//******************************************************************************
     103//******************************************************************************
     104void 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]);
    217110}
    218111//******************************************************************************
     
    220113COLORREF WIN32API GetSysColor(INT nIndex)
    221114{
    222   if(fColorInit == FALSE) {
    223         SYSCOLOR_Init();
    224         fColorInit = TRUE;
     115  if(fColorInit == FALSE)
     116  {
     117    SYSCOLOR_Init();
     118    fColorInit = TRUE;
    225119  }
    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;
    235123}
    236124//******************************************************************************
     
    241129 int i;
    242130
    243     if(fColorInit == FALSE) {
    244         SYSCOLOR_Init();
    245         fColorInit = TRUE;
     131    if(fColorInit == FALSE)
     132    {
     133      SYSCOLOR_Init();
     134      fColorInit = TRUE;
    246135    }
    247136
     
    255144
    256145    return SetSysColors(nChanges, lpSysColor, lpColorValues);
    257 #if 0
     146
    258147    /* Send WM_SYSCOLORCHANGE message to all windows */
    259148
    260     SendMessage32A( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );
     149    SendMessageA( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );
    261150
    262151    /* Repaint affected portions of all visible windows */
    263152
    264     RedrawWindow32( GetDesktopWindow32(), NULL, 0,
     153    RedrawWindow( GetDesktopWindow(), NULL, 0,
    265154                RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW | RDW_ALLCHILDREN );
    266155    return TRUE;
    267 #endif
    268156}
    269157//******************************************************************************
     
    271159HBRUSH WIN32API GetSysColorBrush(int nIndex)
    272160{
    273  static BOOL fFirst = TRUE;
    274  LOGBRUSH    lbrush;
    275  int         i;
    276 
    277161#ifdef DEBUG
    278162  WriteLog("OS2GetSysColorBrush %d returned", nIndex);
    279163#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;
    288168  }
    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
    299173}
    300174//******************************************************************************
     
    307181HPEN WIN32API GetSysColorPen(INT index)
    308182{
    309     if (fColorInit == FALSE)
     183    if (!fColorInit)
    310184    {
    311185      SYSCOLOR_Init();
     
    313187    }
    314188
    315     return SysColorPens[index];
     189    if (index >= 0 && index < NUM_SYS_COLORS) return SysColorPens[index];
     190    else return 0;
    316191}
    317 //******************************************************************************
    318 //******************************************************************************
    319192
  • trunk/src/user32/syscolor.h

    r949 r1138  
    1 /* $Id: syscolor.h,v 1.4 1999-09-15 23:18:56 sandervl Exp $ */
     1/* $Id: syscolor.h,v 1.5 1999-10-05 16:02:53 cbratschi Exp $ */
    22
    33/*
     
    66 *
    77 * Copyright  Alexandre Julliard, 1994
     8 * Copyright 1999 Christoph Bratschi
    89 */
    910
     
    3334HBRUSH WIN32API OS2GetSysColorBrush(int nIndex);
    3435
    35 struct SysColorObjects
    36 {
    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 
    7136extern void SYSCOLOR_Init(void);
    72 extern struct SysColorObjects sysColorObjects;
    7337
    7438#endif  /* __WINE_SYSCOLOR_H */
Note: See TracChangeset for help on using the changeset viewer.