156 lines
4.3 KiB
C
156 lines
4.3 KiB
C
/*****************************************************************************\
|
|
FILE: PreviewSM.h
|
|
|
|
DESCRIPTION:
|
|
This code will display a preview of system metrics.
|
|
NOTE: This code will >hand< draw all the window controls, so if
|
|
windows changes the way the windows controls are draw, this code
|
|
needs to be manually updated. This is an issue for skinning.
|
|
|
|
BryanSt 4/4/2000
|
|
Copyright (C) Microsoft Corp 2000-2000. All rights reserved.
|
|
\*****************************************************************************/
|
|
|
|
#ifndef _PREVIEWSYSTEMMETRICS_H
|
|
#define _PREVIEWSYSTEMMETRICS_H
|
|
|
|
#include "regutil.h"
|
|
|
|
|
|
#define PREVIEWSM_CLASSA "PreviewSystemMetrics"
|
|
#define PREVIEWSM_CLASS TEXT(PREVIEWSM_CLASSA)
|
|
|
|
|
|
|
|
#define FONT_NONE -1
|
|
#define FONT_CAPTION 0
|
|
#define FONT_SMCAPTION 1
|
|
#define FONT_MENU 2
|
|
#define FONT_ICONTITLE 3
|
|
#define FONT_STATUS 4
|
|
#define FONT_MSGBOX 5
|
|
|
|
#define NUM_FONTS 6
|
|
typedef struct {
|
|
HFONT hfont;
|
|
LOGFONT lf;
|
|
} LOOK_FONT;
|
|
extern LOOK_FONT g_fonts[];
|
|
|
|
#define COLOR_NONE -1
|
|
extern COLORREF g_rgb[];extern HBRUSH g_brushes[];
|
|
extern HPALETTE g_hpal3D;
|
|
|
|
#define SIZE_NONE -1
|
|
#define SIZE_FRAME 0
|
|
#define SIZE_SCROLL 1
|
|
#define SIZE_CAPTION 2
|
|
#define SIZE_SMCAPTION 3
|
|
#define SIZE_MENU 4
|
|
#define SIZE_DXICON 5
|
|
#define SIZE_DYICON 6
|
|
#define SIZE_ICON 7
|
|
#define SIZE_SMICON 8
|
|
|
|
#define NUM_SIZES 9
|
|
|
|
typedef struct {
|
|
int CurSize;
|
|
int MinSize;
|
|
int MaxSize;
|
|
} LOOK_SIZE;
|
|
extern LOOK_SIZE g_sizes[];
|
|
|
|
typedef struct {
|
|
int iMainColor;
|
|
int iSize;
|
|
BOOL fLinkSizeToFont;
|
|
int iTextColor;
|
|
int iFont;
|
|
int iResId; // id of name in resource (or -1 if duplicate)
|
|
int iBaseElement; // index of element that this overlaps (or -1)
|
|
int iGradientColor; // index of element for Gradient Caption Bar (or -1)
|
|
RECT rc;
|
|
} LOOK_ELEMENT;
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
//this order has to match the array order in lookdlg.c
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
enum _ELEMENTS {
|
|
ELEMENT_APPSPACE = 0,
|
|
ELEMENT_DESKTOP, // 1
|
|
ELEMENT_INACTIVEBORDER, // 2
|
|
ELEMENT_ACTIVEBORDER, // 3
|
|
ELEMENT_INACTIVECAPTION, // 4
|
|
ELEMENT_INACTIVESYSBUT1, // 5
|
|
ELEMENT_INACTIVESYSBUT2, // 6
|
|
ELEMENT_ACTIVECAPTION, // 7
|
|
ELEMENT_ACTIVESYSBUT1, // 8
|
|
ELEMENT_ACTIVESYSBUT2, // 9
|
|
ELEMENT_MENUNORMAL, // 10
|
|
ELEMENT_MENUSELECTED, // 11
|
|
ELEMENT_MENUDISABLED, // 12
|
|
ELEMENT_WINDOW, // 13
|
|
ELEMENT_MSGBOX, // 14
|
|
ELEMENT_MSGBOXCAPTION, // 15
|
|
ELEMENT_MSGBOXSYSBUT, // 16
|
|
ELEMENT_SCROLLBAR, // 17
|
|
ELEMENT_SCROLLUP, // 18
|
|
ELEMENT_SCROLLDOWN, // 19
|
|
ELEMENT_BUTTON, // 20
|
|
ELEMENT_SMCAPTION, // 21
|
|
ELEMENT_ICON, // 22
|
|
ELEMENT_ICONHORZSPACING, // 23
|
|
ELEMENT_ICONVERTSPACING, // 24
|
|
ELEMENT_INFO // 25
|
|
};
|
|
// BOGUS: need to get a size from somewhere
|
|
#define NUM_ELEMENTS ELEMENT_INFO+1
|
|
|
|
#if 0
|
|
// go fix lookdlg.cpp if you decide to add this back in
|
|
ELEMENT_SMICON,
|
|
#endif
|
|
|
|
|
|
#define CPI_VGAONLY 0x0001
|
|
#define CPI_PALETTEOK 0x0002
|
|
|
|
typedef struct {
|
|
HWND hwndParent; // parent for any modal dialogs (choosecolor et al)
|
|
HWND hwndOwner; // control that owns mini color picker
|
|
COLORREF rgb;
|
|
UINT flags;
|
|
HPALETTE hpal;
|
|
} COLORPICK_INFO, FAR * LPCOLORPICK_INFO;
|
|
|
|
#define WM_RECREATEBITMAP (WM_USER)
|
|
extern int cyBorder;
|
|
extern int cxBorder;
|
|
extern int cyEdge;
|
|
extern int cxEdge;
|
|
|
|
// NOTE: the order in g_elements must match the enum order above
|
|
extern LOOK_ELEMENT g_elements[];
|
|
|
|
BOOL RegisterPreviewSystemMetricClass(HINSTANCE hInst);
|
|
BOOL WINAPI ChooseColorMini(LPCOLORPICK_INFO lpcpi);
|
|
DWORD FAR PASCAL AdjustLuma(DWORD rgb, int n, BOOL fScale);
|
|
BOOL CreateGlobals(void);
|
|
|
|
HRESULT DrawAppearance(HDC hdc, LPRECT prc, SYSTEMMETRICSALL* psysMet, BOOL fOnlyShowActiveWindow, BOOL fRTL);
|
|
|
|
extern HDC g_hdcMem;
|
|
|
|
|
|
// Macro to replace MAKEPOINT() since points now have 32 bit x & y
|
|
#define LPARAM2POINT( lp, ppt ) \
|
|
((ppt)->x = (int)(short)LOWORD(lp), (ppt)->y = (int)(short)HIWORD(lp))
|
|
|
|
#define CCH_MAX_STRING 256
|
|
#define CCH_NONE 20 /* ARRAYSIZE( "(None)" ), big enough for German */
|
|
|
|
|
|
|
|
#endif // _PREVIEWSYSTEMMETRICS_H
|