mirror of
https://github.com/reactos/reactos.git
synced 2024-11-05 22:26:39 +00:00
116 lines
4.3 KiB
C
116 lines
4.3 KiB
C
|
|
||
|
typedef enum
|
||
|
{
|
||
|
TOP_DOCK = 0,
|
||
|
LEFT_DOCK,
|
||
|
RIGHT_DOCK,
|
||
|
BOTTOM_DOCK,
|
||
|
NO_DOCK
|
||
|
} DOCK_POSITION;
|
||
|
|
||
|
typedef struct _DOCKBAR
|
||
|
{
|
||
|
UINT BarId;
|
||
|
LPCTSTR lpName;
|
||
|
UINT DisplayTextId;
|
||
|
DOCK_POSITION Position;
|
||
|
} DOCKBAR, *PDOCKBAR;
|
||
|
|
||
|
struct _TOOLBAR_DOCKS;
|
||
|
|
||
|
typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
HWND hParent,
|
||
|
HWND *hwnd);
|
||
|
typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
HWND hwnd);
|
||
|
typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
UINT *Index,
|
||
|
LPREBARBANDINFO rbi);
|
||
|
typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
DOCK_POSITION DockFrom,
|
||
|
DOCK_POSITION DockTo,
|
||
|
LPREBARBANDINFO rbi);
|
||
|
typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
HWND hwndChild,
|
||
|
LPNMREBARCHEVRON lpnm);
|
||
|
|
||
|
typedef struct _DOCKBAR_ITEM_CALLBACKS
|
||
|
{
|
||
|
PDOCKBAR_CREATECLIENT CreateClient;
|
||
|
PDOCKBAR_DESTROYCLIENT DestroyClient;
|
||
|
PDOCKBAR_INSERTBAND InsertBand;
|
||
|
PDOCKBAR_DOCKBAND DockBand;
|
||
|
PDOCKBAR_CHEVRONPUSHED ChevronPushed;
|
||
|
} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS;
|
||
|
|
||
|
typedef struct _DOCKBAR_ITEM
|
||
|
{
|
||
|
struct _DOCKBAR_ITEM *Next;
|
||
|
DOCKBAR DockBar;
|
||
|
PVOID Context;
|
||
|
HWND hWndTool;
|
||
|
HWND hWndClient;
|
||
|
DOCK_POSITION PrevDock;
|
||
|
UINT PrevBandIndex;
|
||
|
const DOCKBAR_ITEM_CALLBACKS *Callbacks;
|
||
|
} DOCKBAR_ITEM, *PDOCKBAR_ITEM;
|
||
|
|
||
|
typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context,
|
||
|
WORD cx,
|
||
|
WORD cy);
|
||
|
|
||
|
#define DOCKS_COUNT 4
|
||
|
typedef struct _TOOLBAR_DOCKS
|
||
|
{
|
||
|
HWND hParent;
|
||
|
PVOID Context;
|
||
|
HWND hRebar[DOCKS_COUNT];
|
||
|
RECT rcRebar[DOCKS_COUNT];
|
||
|
RECT rcClient;
|
||
|
PDOCKBAR_ITEM Items;
|
||
|
PDOCKBAR_PARENTRESIZE ParentResize;
|
||
|
PDOCKBAR_ITEM Dragging;
|
||
|
UINT DraggingBandId;
|
||
|
TCHAR szTempText[255];
|
||
|
} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS;
|
||
|
|
||
|
VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks,
|
||
|
HWND hWndParent,
|
||
|
PVOID Context,
|
||
|
PDOCKBAR_PARENTRESIZE ParentResizeProc);
|
||
|
INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks,
|
||
|
PRECT rcClient);
|
||
|
HDWP TbdDeferDocks(HDWP hWinPosInfo,
|
||
|
PTOOLBAR_DOCKS TbDocks);
|
||
|
BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks,
|
||
|
const DOCKBAR *Dockbar,
|
||
|
PVOID Context,
|
||
|
const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks);
|
||
|
BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks,
|
||
|
HWND hWndClient,
|
||
|
UINT *Id);
|
||
|
BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks,
|
||
|
LPNMHDR pnmh,
|
||
|
LRESULT *Result);
|
||
|
VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks,
|
||
|
HWND hWnd,
|
||
|
BOOL Enable);
|
||
|
VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks,
|
||
|
HWND hWnd,
|
||
|
WPARAM *wParam,
|
||
|
LPARAM *lParam);
|
||
|
VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks,
|
||
|
BOOL Show);
|
||
|
BOOL TbdInitImpl(VOID);
|
||
|
VOID TbdUninitImpl(VOID);
|