Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

83 lines
3.1 KiB

// common stuff for the toolbar control
typedef struct { /* info for recreating the bitmaps */
int nButtons;
HINSTANCE hInst;
UINT wID;
} TBBMINFO, NEAR *PTBBMINFO;
typedef struct { /* instance data for toolbar window */
CONTROLINFO ci;
HDC hdcMono;
HBITMAP hbmMono;
PTBBUTTON pCaptureButton;
HWND hwndToolTips;
HWND hdlgCust;
HFONT hfontIcon;
int nBitmaps;
#ifdef GLYPHCACHE
int nSelectedBM; // currently selected pBitmaps index
#endif
PTBBMINFO pBitmaps;
#ifdef FACECACHE
HBITMAP hbmCache;
#endif
PTSTR *pStrings;
int nStrings;
int nTextRows; // # Rows of text per button
UINT uStructSize;
int iDxBitmap;
int iDyBitmap;
int iButWidth;
int iButHeight;
int iButMinWidth; // The min and max width of the button. If the app does not
int iButMaxWidth; // have an opinion on what the min and max should be, these will be 0
int iYPos;
int iNumButtons;
int dyIconFont;
int xFirstButton;
BOOL fHimlValid : 1;
BOOL fHimlNative : 1;
HIMAGELIST himl;
HIMAGELIST himlHot; // Image list for the hot-tracked image
HIMAGELIST himlDisabled; // Image list for the hot-tracked image
int nCurHTButton; // Index of the currently Hot Tracked Button
BOOL fMouseTrack; // Are we currently tracking Mouse over this toolbar ?
TBBUTTON Buttons[1]; // BUGBUG: make this a ptr to avoid lots
// of bogus code that has to deal with reallocing
// the ptb data
} TBSTATE, NEAR *PTBSTATE;
typedef struct {
/*REVIEW: index, command, flag words, resource ids should be UINT */
int iBitmap; /* index into bitmap of this button's picture */
int idCommand; /* WM_COMMAND menu ID that this button sends */
BYTE fsState; /* button's state */
BYTE fsStyle; /* button's style */
int idsHelp; /* string ID for button's status bar help */
} OLDTBBUTTON, FAR* LPOLDTBBUTTON;
HBITMAP FAR PASCAL SelectBM(HDC hDC, PTBSTATE pTBState, int nButton);
void FAR PASCAL DrawButton(HDC hdc, int x, int y, PTBSTATE pTBState, LPTBBUTTON ptButton);
void NEAR PASCAL DrawFace(PTBSTATE ptb, LPTBBUTTON ptButton, HDC hdc, int x, int y,
int offx, int offy, int dx, UINT state);
int FAR PASCAL TBHitTest(PTBSTATE pTBState, int xPos, int yPos);
int FAR PASCAL PositionFromID(PTBSTATE pTBState, int id);
void FAR PASCAL BuildButtonTemplates(void);
void FAR PASCAL TBInputStruct(PTBSTATE pTBState, LPTBBUTTON pButtonInt, LPTBBUTTON pButtonExt);
BOOL FAR PASCAL SaveRestore(PTBSTATE pTBState, BOOL bWrite, LPTSTR FAR *lpNames);
BOOL FAR PASCAL SaveRestoreFromReg(PTBSTATE ptb, BOOL bWrite, HKEY hkr, LPCTSTR pszSubKey, LPCTSTR pszValueName);
void FAR PASCAL CustomizeTB(PTBSTATE pTBState, int iPos);
void FAR PASCAL MoveButton(PTBSTATE pTBState, int nSource);
BOOL FAR PASCAL DeleteButton(PTBSTATE ptb, UINT uIndex);
BOOL FAR PASCAL InsertButtons(PTBSTATE ptb, UINT uWhere, UINT uButtons, LPTBBUTTON lpButtons);
BOOL FAR PASCAL SendItemNotify(PTBSTATE ptb, int iItem, int code);
void FAR PASCAL FlushToolTipsMgr(PTBSTATE ptb);
void PASCAL ReleaseMonoDC(PTBSTATE ptb);
extern const int g_dxButtonSep;