GIZMOINT.H

/* 
* GIZMOINT.H
* GizmoBar Version 1.01
*
* Internal definitions for the GizmoBar DLL
*
* Copyright (c)1993-1996 Microsoft Corporation, All Rights Reserved
*
* Kraig Brockschmidt, Software Design Engineer
* Microsoft Systems Developer Relations
*
* Internet : kraigb@microsoft.com
* Compuserve: >INTERNET:kraigb@microsoft.com
*/


#ifndef _GIZMOINT_H_
#define _GIZMOINT_H_

#include "gizmobar.h"
#include "win1632.h"
#include "gizmo.h"

#ifdef __cplusplus
extern "C"
{
#endif


/*
* The main gizmobar structure itself. There's only one of these,
* but it references the first GIZMO in the list.
*/

typedef struct tagGIZMOBAR
{
PGIZMO pGizmos; //List of gizmos we own.
HWND hWnd; //Window handle of ourselves.
HINSTANCE hInst;
HWND hWndAssociate; //Associate who gets messages.
DWORD dwStyle; //Copy of GWL_STYLE
UINT uState; //State flags
UINT uID; //Control ID.

HBRUSH hBrFace; //Static control background color
COLORREF crFace; //Color of hBrFace
HFONT hFont; //Font in use
BOOL fEnabled; //Are we enabled?

PGIZMO pGizmoTrack; //Current pressed button.
BOOL fTracking;
BOOL fMouseOut;
} GIZMOBAR, * PGIZMOBAR;

#define CBGIZMOBAR sizeof(GIZMOBAR)


//Extra bytes for the window if the size of a local handle.
#define CBWINDOWEXTRA sizeof(PGIZMOBAR)

#define GBWL_STRUCTURE 0


//Structure for passing paint info to a gizmo enumeration callback.
typedef struct
{
HDC hDC;
BOOL fPaint;
} PAINTGIZMO, * PPAINTGIZMO;



//Private functions specific to the control.

//INIT.C
BOOL FRegisterControl(HINSTANCE);
PGIZMOBAR GizmoBarPAllocate(int *, HWND, HINSTANCE, HWND
, DWORD, UINT, UINT);
PGIZMOBAR GizmoBarPFree(PGIZMOBAR);


//PAINT.C
void GizmoBarPaint(HWND, PGIZMOBAR);
BOOL WINAPI FEnumPaintGizmos(PGIZMO, UINT, DWORD);


//GIZMOBAR.C
LRESULT WINAPI GizmoBarWndProc(HWND, UINT, WPARAM, LPARAM);
BOOL WINAPI FEnumChangeFont(PGIZMO, UINT, DWORD);
BOOL WINAPI FEnumEnable(PGIZMO, UINT, DWORD);
BOOL WINAPI FEnumHitTest(PGIZMO, UINT, DWORD);


//API.C Also see GIZMOBAR.H for others
LRESULT GBMessageHandler(HWND, UINT, WPARAM, LPARAM, PGIZMOBAR);
PGIZMO PGizmoFromHwndID(HWND, UINT);


#endif //_GIZMOINT_H_