|
|
1.1 ! root 1: /* ! 2: * GIZMO.H ! 3: * GizmoBar Version 1.00, March 1993 ! 4: * ! 5: * Data structure and type definitions for the GIZMO data structure. Each ! 6: * gizmo on a gizmobar has one of these structures associated with it. ! 7: * ! 8: * Copyright (c)1992 Microsoft Corporation, All Rights Reserved ! 9: * ! 10: * Kraig Brockschmidt, Software Design Engineer ! 11: * Microsoft Systems Developer Relations ! 12: * ! 13: * Internet : [email protected] ! 14: * Compuserve: >INTERNET:[email protected] ! 15: */ ! 16: ! 17: ! 18: #ifndef _GIZMO_H_ ! 19: #define _GIZMO_H_ ! 20: ! 21: #ifdef __cplusplus ! 22: extern "C" ! 23: { ! 24: #endif ! 25: ! 26: ! 27: typedef struct tagGIZMO ! 28: { ! 29: struct tagGIZMO FAR *pPrev; ! 30: struct tagGIZMO FAR *pNext; ! 31: UINT iType; ! 32: HWND hWnd; //Texts, edits, lists, and combos only. ! 33: UINT uID; ! 34: UINT x, y; ! 35: UINT dx, dy; ! 36: UINT cxImage; //From UIToolConfigureForDisplay ! 37: UINT cyImage; ! 38: HBITMAP hBmp; //Buttons only. ! 39: UINT iBmp; ! 40: BOOL fNotify; //Indicates whether we send WM_COMMANDs ! 41: BOOL fHidden; //Independent of state ! 42: BOOL fDisabled; ! 43: UINT uState; ! 44: UINT uStateOrg; ! 45: DWORD dwData; //Application-supplied data. ! 46: } GIZMO, FAR *PGIZMO; ! 47: ! 48: typedef PGIZMO FAR *PPGIZMO; ! 49: #define CBGIZMO sizeof(GIZMO) ! 50: ! 51: //Property name we attach to controls in a gizmo to identify control type ! 52: #define SZTYPEPROP "iType" ! 53: ! 54: //Number of controls we subclass ! 55: #define CSUBGIZMOS 4 ! 56: ! 57: //ID of edit controls in comboboxes ! 58: #define ID_COMBOEDIT 1001 ! 59: ! 60: ! 61: /* ! 62: * Conversion of iType (a positioned bit) into its position. ! 63: * The BITPOSITION macro does not need to be fast because we only ! 64: * use it once when creating a gizmo. POSITIONBIT does, however, since ! 65: * we use it in subclass procedures. ! 66: */ ! 67: #define BITPOSITION(i, j) {int k=i; for (j=0; k>>=1; j++);} ! 68: #define POSITIONBIT(i) (1 << i) ! 69: ! 70: //Control classifications. GIZMOBAR.H must be included first. ! 71: #define GIZMOTYPE_WINDOWS (GIZMOTYPE_TEXT | GIZMOTYPE_EDIT | GIZMOTYPE_LISTBOX | GIZMOTYPE_COMBOBOX | GIZMOTYPE_BUTTONNORMAL) ! 72: #define GIZMOTYPE_BUTTONS (GIZMOTYPE_BUTTONATTRIBUTEIN | GIZMOTYPE_BUTTONATTRIBUTEEX | GIZMOTYPE_BUTTONCOMMAND | GIZMOTYPE_BUTTONNORMAL) ! 73: #define GIZMOTYPE_DRAWN (GIZMOTYPE_BUTTONATTRIBUTEIN | GIZMOTYPE_BUTTONATTRIBUTEEX | GIZMOTYPE_BUTTONCOMMAND) ! 74: ! 75: ! 76: //These must stay in sync with GIZMOBAR.H ! 77: #define GIZMOTYPE_MIN GIZMOTYPE_EDIT ! 78: #define GIZMOTYPE_MAX GIZMOTYPE_BUTTONCOMMAND ! 79: ! 80: ! 81: //Enumeration callback ! 82: typedef BOOL (FAR PASCAL *PFNGIZMOENUM)(PGIZMO, UINT, DWORD); ! 83: ! 84: ! 85: //GIZMO.C ! 86: PGIZMO GizmoPAllocate(LPINT, PPGIZMO, HWND, UINT, UINT, UINT, UINT, UINT, LPSTR, HBITMAP, UINT, UINT); ! 87: void GizmosExpand(PGIZMO); ! 88: PGIZMO GizmoPFree(PPGIZMO, PGIZMO); ! 89: void GizmosCompact(PGIZMO); ! 90: PGIZMO GizmoPFind(PPGIZMO, UINT); ! 91: PGIZMO GizmoPEnum(PPGIZMO, PFNGIZMOENUM, DWORD); ! 92: UINT GizmoPStateSet(HWND, PGIZMO, UINT); ! 93: BOOL GizmoPCheck(HWND, PGIZMO, BOOL); ! 94: ! 95: ! 96: LRESULT FAR PASCAL EXPORT GenericSubProc(HWND, UINT, WPARAM, LPARAM); ! 97: ! 98: ! 99: #ifdef __cplusplus ! 100: } ! 101: #endif ! 102: ! 103: #endif //_GIZMO_H_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.