153 lines
4.4 KiB
C
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;
|