mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
127
src/InterfaceGraphic/InterfaceGraphic_Palette.c
Executable file
127
src/InterfaceGraphic/InterfaceGraphic_Palette.c
Executable file
@@ -0,0 +1,127 @@
|
||||
|
||||
#ifndef WNT
|
||||
|
||||
int _a_horreur_du_vide_a_la_compilation;
|
||||
|
||||
#else
|
||||
|
||||
#define STRICT
|
||||
#include <windows.h>
|
||||
|
||||
#pragma comment( lib, "user32.lib" )
|
||||
#pragma comment( lib, "gdi32.lib" )
|
||||
|
||||
#if WINVER >= 0x0400
|
||||
# define NB_STATIC_COLORS ( COLOR_INFOBK - COLOR_SCROLLBAR + 1 )
|
||||
#else
|
||||
# define NB_STATIC_COLORS ( COLOR_BTNHIGHLIGHT - COLOR_SCROLLBAR + 1 )
|
||||
#endif /* WINVER . . . */
|
||||
|
||||
#define BLACK RGB( 0, 0, 0 )
|
||||
#define WHITE RGB( 255, 255, 255 )
|
||||
|
||||
static int s_sysPalIdx[ NB_STATIC_COLORS ] = {
|
||||
|
||||
COLOR_SCROLLBAR,
|
||||
COLOR_BACKGROUND,
|
||||
COLOR_ACTIVECAPTION,
|
||||
COLOR_INACTIVECAPTION,
|
||||
COLOR_MENU,
|
||||
COLOR_WINDOW,
|
||||
COLOR_WINDOWFRAME,
|
||||
COLOR_MENUTEXT,
|
||||
COLOR_WINDOWTEXT,
|
||||
COLOR_CAPTIONTEXT,
|
||||
COLOR_ACTIVEBORDER,
|
||||
COLOR_INACTIVEBORDER,
|
||||
COLOR_APPWORKSPACE,
|
||||
COLOR_HIGHLIGHT,
|
||||
COLOR_HIGHLIGHTTEXT,
|
||||
COLOR_BTNFACE,
|
||||
COLOR_BTNSHADOW,
|
||||
COLOR_GRAYTEXT,
|
||||
COLOR_BTNTEXT,
|
||||
COLOR_INACTIVECAPTIONTEXT,
|
||||
COLOR_BTNHIGHLIGHT
|
||||
#if WINVER >= 0x0400
|
||||
,COLOR_3DDKSHADOW,
|
||||
COLOR_3DLIGHT,
|
||||
COLOR_INFOTEXT,
|
||||
COLOR_INFOBK
|
||||
#endif /* WINVER . . . */
|
||||
};
|
||||
|
||||
static COLORREF s_sysPalBW[ NB_STATIC_COLORS ] = {
|
||||
|
||||
WHITE, /* COLOR_SCROLLBAR */
|
||||
BLACK, /* COLOR_BACKGROUND */
|
||||
BLACK, /* COLOR_ACTIVECAPTION */
|
||||
WHITE, /* COLOR_INACTIVECAPTION */
|
||||
WHITE, /* COLOR_MENU */
|
||||
WHITE, /* COLOR_WINDOW */
|
||||
BLACK, /* COLOR_WINDOWFRAME */
|
||||
BLACK, /* COLOR_MENUTEXT */
|
||||
BLACK, /* COLOR_WINDOWTEXT */
|
||||
WHITE, /* COLOR_CAPTIONTEXT */
|
||||
WHITE, /* COLOR_ACTIVEBORDER */
|
||||
WHITE, /* COLOR_INACTIVEBORDER */
|
||||
WHITE, /* COLOR_APPWORKSPACE */
|
||||
BLACK, /* COLOR_HIGHLIGHT */
|
||||
WHITE, /* COLOR_HIGHLIGHTTEXT */
|
||||
WHITE, /* COLOR_BTNFACE */
|
||||
BLACK, /* COLOR_BTNSHADOW */
|
||||
BLACK, /* COLOR_GRAYTEXT */
|
||||
BLACK, /* COLOR_BTNTEXT */
|
||||
BLACK, /* COLOR_INACTIVECAPTIONTEXT */
|
||||
BLACK /* COLOR_BTNHIGHLIGHT */
|
||||
#if WINVER >= 0x0400
|
||||
,BLACK, /* BLACKCOLOR_3DDKSHADOW */
|
||||
BLACK, /* COLOR_3DLIGHT */
|
||||
BLACK, /* COLOR_INFOTEXT */
|
||||
BLACK /* COLOR_INFOBK */
|
||||
#endif /* WINVER . . . */
|
||||
};
|
||||
|
||||
static BOOL s_sysUse;
|
||||
static COLORREF s_sysPal[ NB_STATIC_COLORS ];
|
||||
|
||||
__declspec( dllexport ) long InterfaceGraphic_RealizePalette ( HDC hdc, HPALETTE hPal, BOOL fBkg, BOOL fUseStatic ) {
|
||||
|
||||
int i;
|
||||
long retVal = 0;
|
||||
|
||||
if ( fUseStatic ) {
|
||||
|
||||
if ( !s_sysUse )
|
||||
|
||||
for ( i = 0; i < NB_STATIC_COLORS; ++i ) s_sysPal[ i ] = GetSysColor ( s_sysPalIdx[ i ] );
|
||||
|
||||
SetSystemPaletteUse ( hdc, fBkg ? SYSPAL_STATIC : SYSPAL_NOSTATIC );
|
||||
|
||||
if ( UnrealizeObject ( hPal ) && SelectPalette ( hdc, hPal, fBkg ) ) retVal = RealizePalette ( hdc );
|
||||
|
||||
if ( fBkg ) {
|
||||
|
||||
SetSysColors ( NB_STATIC_COLORS, s_sysPalIdx, s_sysPal );
|
||||
s_sysUse = FALSE;
|
||||
|
||||
} else {
|
||||
|
||||
SetSysColors ( NB_STATIC_COLORS, s_sysPalIdx, s_sysPalBW );
|
||||
s_sysUse = TRUE;
|
||||
|
||||
} // end else
|
||||
|
||||
PostMessage ( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );
|
||||
|
||||
} else {
|
||||
|
||||
SelectPalette ( hdc, hPal, FALSE );
|
||||
retVal = RealizePalette ( hdc );
|
||||
|
||||
} // end else
|
||||
|
||||
return retVal;
|
||||
} // end RealizePaletteNow
|
||||
|
||||
#endif /* WNT */
|
Reference in New Issue
Block a user