windows-nt/Source/XPSP1/NT/shell/osshell/themes/themesw/fakewin.h
2020-09-26 16:20:57 +08:00

153 lines
4.4 KiB
C

// fakewin.h
//
// include file for FAKEWIN.C
//
// Frosting: Master Theme Selector for Windows '95
// Copyright (c) 1994-1998 Microsoft Corporation. All rights reserved.
//
// external routines
extern int FAR WriteBytesToBuffer(LPTSTR);
//
// typedefs and defines
// fonts
#define FONT_NONE -1
#define FONT_CAPTION 0
#define FONT_MENU 1
#define FONT_ICONTITLE 2
#define FONT_STATUS 3
#define FONT_MSGBOX 4
//#define FONT_SMCAPTION 1
#define NUM_FONTS 5
typedef struct {
HFONT hfont;
LOGFONT lf;
} LOOK_FONT;
typedef struct {
int iFont;
RECT rc;
} LOOK_ELEMENT;
// JDK:
// Actually, this only seems to be used to get the count of elements
// directly following this defn. Otherwise unused in CPL code.
//
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//this order has to match the array order in lookdlg.c // g_elements below
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
enum _ELEMENTS {
ELEMENT_APPSPACE = 0,
// ELEMENT_DESKTOP,
ELEMENT_INACTIVEBORDER,
ELEMENT_ACTIVEBORDER,
ELEMENT_INACTIVECAPTION,
ELEMENT_INACTIVESYSBUT1,
ELEMENT_INACTIVESYSBUT2,
ELEMENT_ACTIVECAPTION,
ELEMENT_ACTIVESYSBUT1,
ELEMENT_ACTIVESYSBUT2,
ELEMENT_MENUNORMAL,
ELEMENT_MENUSELECTED,
ELEMENT_MENUDISABLED,
ELEMENT_WINDOW,
ELEMENT_MSGBOX,
ELEMENT_MSGBOXCAPTION,
ELEMENT_MSGBOXSYSBUT,
ELEMENT_SCROLLBAR,
ELEMENT_SCROLLUP,
ELEMENT_SCROLLDOWN,
ELEMENT_BUTTON,
// ELEMENT_SMCAPTION,
ELEMENT_ICON,
ELEMENT_ICONHORZSPACING,
ELEMENT_ICONVERTSPACING,
ELEMENT_INFO
};
// BOGUS: need to get a size from somewhere
#define NUM_ELEMENTS (ELEMENT_INFO+1)
// KEEP IN SYNC WITH pRegColors in REGUTILS.C!!
// BOGUS twice: need to get a size from somewhere
#define MAX_COLORS (COLOR_GRADIENTINACTIVECAPTION+1)
//
// globals
// jdk: see note above enum above
// NOTE: the order in g_elements must match the enum order above
HPALETTE hpal3D = NULL; // only exist if palette device
BOOL bPalette = FALSE; // is this a palette device?
int cyFixedBorder;
int cxFixedBorder;
int cxFixedEdge;
int cyFixedEdge;
int cxSize; // ***DEBUG*** this shouldn't really be fixed, should it?
LOOK_FONT g_fonts[NUM_FONTS];
COLORREF g_rgb[MAX_COLORS];
HBRUSH g_brushes[MAX_COLORS];
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//this order has to match the enum order above
// jdk: see also not above
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LOOK_ELEMENT g_elements[] = {
/* ELEMENT_APPSPACE */ {FONT_NONE, {-1,-1,-1,-1}},
// /* ELEMENT_DESKTOP */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_INACTIVEBORDER */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_ACTIVEBORDER */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_INACTIVECAPTION */ {FONT_CAPTION, {-1,-1,-1,-1}},
/* ELEMENT_INACTIVESYSBUT1 */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_INACTIVESYSBUT2 */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_ACTIVECAPTION */ {FONT_CAPTION, {-1,-1,-1,-1}},
/* ELEMENT_ACTIVESYSBUT1 */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_ACTIVESYSBUT2 */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_MENUNORMAL */ {FONT_MENU, {-1,-1,-1,-1}},
/* ELEMENT_MENUSELECTED */ {FONT_MENU, {-1,-1,-1,-1}},
/* ELEMENT_MENUDISABLED */ {FONT_MENU, {-1,-1,-1,-1}},
/* ELEMENT_WINDOW */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_MSGBOX */ {FONT_MSGBOX, {-1,-1,-1,-1}},
/* ELEMENT_MSGBOXCAPTION */ {FONT_CAPTION, {-1,-1,-1,-1}},
/* ELEMENT_MSGBOXSYSBUT */ {FONT_CAPTION, {-1,-1,-1,-1}},
// do not even try to set a scr
/* ELEMENT_SCROLLBAR */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_SCROLLUP */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_SCROLLDOWN */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_BUTTON */ {FONT_NONE, {-1,-1,-1,-1}},
// /* ELEMENT_SMCAPTION */ {FONT_SMCAPTION, {-1,-1,-1,-1}},
/* ELEMENT_ICON */ {FONT_ICONTITLE, {-1,-1,-1,-1}},
/* ELEMENT_ICONHORZSPACING */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_ICONVERTSPACING */ {FONT_NONE, {-1,-1,-1,-1}},
/* ELEMENT_INFO */ {FONT_STATUS, {-1,-1,-1,-1}},
};
#define RCZ(element) g_elements[element].rc
TCHAR szFakeActive[40];
TCHAR szFakeInactive[40];
TCHAR szFakeMinimized[40];
TCHAR szFakeIconTitle[40];
TCHAR szFakeNormal[40];
TCHAR szFakeDisabled[40];
TCHAR szFakeSelected[40];
TCHAR szFakeMsgBox[40];
TCHAR szFakeButton[40];
//TCHAR szFakeSmallCaption[40];
TCHAR szFakeWindowText[40];
TCHAR szFakeMsgBoxText[40];
TCHAR szFakeABC[] = TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
HMENU hmenuFake;