43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "oxdllext.h"
|
|
|
|
// This class is the workhorse of the hyperbar. Both the CToolbar derived class and the overlay class maintain a pointer to an instance of this class, and call it
|
|
// to perform all rendering operations. The class keeps a list of an internal struct which is used to track numerous things, most importantly, the commandID to send
|
|
// to the main window if we need to simulate a click on this button.
|
|
class OX_CLASS_DECL COXHyperBarRender
|
|
{
|
|
private:
|
|
//
|
|
struct buttonInfo
|
|
{
|
|
int width;
|
|
int defaultWidth;
|
|
int height;
|
|
int defaultHeight;
|
|
int bitmapIndex;
|
|
int commandID;
|
|
};
|
|
|
|
public:
|
|
COXHyperBarRender(CToolBar * pToolbar);
|
|
~COXHyperBarRender(void);
|
|
|
|
// Passing NULL for these last paramters means the mouse is not over the toolbar.
|
|
void RenderToolbar(CDC * pDC, RECT * pRect, SIZE szBtn) { RenderToolbar(pDC, pRect, szBtn, NULL, NULL); }
|
|
void RenderToolbar(CDC * pDC, RECT * pRect, SIZE szBtn, POINT * pMouse, CBitmap * pOverlay);
|
|
void SetActiveItem(POINT pt);
|
|
|
|
int GetActiveItemMsg(){return m_nCmd;};
|
|
|
|
static double m_Focus;
|
|
|
|
private:
|
|
int m_nCmd;
|
|
CToolBar * m_pToolbar;
|
|
COXHyperBarRender(void){};
|
|
buttonInfo * m_buttonInfo;
|
|
void Initialise(SIZE szBtn);
|
|
CBitmap * m_buffer;
|
|
};
|