2025-11-27 16:46:48 +09:00

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;
};