1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#include <vcl/ctrl.hxx>
#include <vector>
class ToolbarMenuEntry;
typedef std::vector< ToolbarMenuEntry * > ToolbarMenuEntryVector;
class ToolbarMenu : public Control
{
private:
ToolbarMenuEntryVector maEntryVector;
int mnCheckPos;
int mnImagePos;
int mnTextPos;
int mnHighlightedEntry;
int mnSelectedEntry;
Size maSize;
Link maHighlightHdl;
Link maSelectHdl;
void StateChanged( StateChangedType nType );
void DataChanged( const DataChangedEvent& rDCEvt );
void initWindow();
Size implCalcSize();
void appendEntry( ToolbarMenuEntry* pEntry );
void implPaint( ToolbarMenuEntry* pThisOnly = NULL, bool bHighlight = false );
void implHighlightEntry( int nHighlightEntry, bool bHighlight );
void implHighlightEntry( const MouseEvent& rMEvt, bool bMBDown );
void implChangeHighlightEntry( int nEntry );
void implSelectEntry( int nSelectedEntry );
ToolbarMenuEntry* implCursorUpDown( bool bUp, bool bHomeEnd );
ToolbarMenuEntry* implGetEntry( int nEntry ) const;
ToolbarMenuEntry* implSearchEntry( int nEntryId ) const;
public:
ToolbarMenu( Window* pParent, WinBits nStyle );
~ToolbarMenu();
virtual void MouseMove( const MouseEvent& rMEvt );
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void MouseButtonUp( const MouseEvent& rMEvt );
virtual void KeyInput( const KeyEvent& rKEvent );
virtual void Command( const CommandEvent& rCEvt );
virtual void Paint( const Rectangle& rRect );
virtual void RequestHelp( const HelpEvent& rHEvt );
virtual void Resize();
virtual void GetFocus();
virtual void LoseFocus();
void appendEntry( int nEntryId, const String& rStr, MenuItemBits nItemBits = 0 );
void appendEntry( int nEntryId, const Image& rImage, MenuItemBits nItemBits = 0 );
void appendEntry( int nEntryId, const String& rStr, const Image& rImage, MenuItemBits nItemBits = 0 );
void appendEntry( int nEntryId, Control* pControl, MenuItemBits nItemBits = 0 );
void appendEntry( int nEntryId, const String& rStr, Control* pControl, MenuItemBits nItemBits = 0 );
void appendSeparator();
void checkEntry( int nEntryId, bool bCheck = true );
bool isEntryChecked( int nEntryId ) const;
void enableEntry( int nEntryId, bool bEnable = true );
bool isEntryEnabled( int nEntryId ) const;
void setEntryText( int nEntryId, const String& rStr );
const String& getEntryText( int nEntryId ) const;
void setEntryImage( int nEntryId, const Image& rImage );
const Image& getEntryImage( int nEntryId ) const;
const Size& getMenuSize() const { return maSize; }
void SetHighlightHdl( const Link& rLink ) { maHighlightHdl = rLink; }
const Link& GetHighlightHdl() const { return maHighlightHdl; }
void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; }
const Link& GetSelectHdl() const { return maSelectHdl; }
int getSelectedEntryId() const;
int getHighlightedEntryId() const;
};
|