Hugin trunk 0.1
Loading...
Searching...
No Matches
SplitButton.h
Go to the documentation of this file.
1// -*- c-basic-offset: 4 -*-
22#ifndef __SPLIT_BUTTON_H__
23#define __SPLIT_BUTTON_H__
24
25#include <wx/wx.h>
26#include <wx/menu.h>
27#include <wx/xrc/xmlres.h>
28
29class SplitButton : public wxPanel
30{
31public:
33 SplitButton():wxPanel() {};
36 const wxString& label = wxEmptyString,
38 const wxSize& size = wxDefaultSize,
39 const wxString& name = "splitbutton"
40 )
41 {
42 Create(parent, id, label, pos, size, name);
43 };
45 bool Create(wxWindow* parent,
47 const wxString& label = wxEmptyString,
49 const wxSize& size = wxDefaultSize,
50 const wxString& name = "splitbutton"
51 );
56 bool Enable(bool enable = true) override;
58 wxBitmap GetBitmap() const;
60 void SetBitmap(const wxBitmapBundle& bitmap);
62 wxMenu* LoadMenu(const wxString& name);
64 void SetLabel(const wxString& label) override;
66 wxString GetLabel() const override;
67
68protected:
79 bool HasBitmap() const;
81 void UpdateMinSize();
82
83private:
85 int m_stateMenu = 0;
86 bool m_IsEnabled = true;
87 const int m_arrowButtonWidth = 20;
91};
92
94class SplitButtonXmlHandler : public wxXmlResourceHandler
95{
97
98public:
100 virtual wxObject* DoCreateResource();
101 virtual bool CanHandle(wxXmlNode* node);
102};
103
104#endif /*__SPLIT_BUTTON_H__*/
xrc handler for split button
Definition SplitButton.h:95
virtual wxObject * DoCreateResource()
virtual bool CanHandle(wxXmlNode *node)
void SetLabel(const wxString &label) override
set the label string
const int m_arrowButtonWidth
Definition SplitButton.h:87
void OnPaint(wxPaintEvent &WXUNUSED(event))
paint handler to draw to the button
wxMenu * m_dropDownMenu
Definition SplitButton.h:89
void OnMouseLeave(wxMouseEvent &event)
wxString m_label
Definition SplitButton.h:88
wxBitmapBundle m_bitmap
Definition SplitButton.h:90
wxBitmap GetBitmap() const
returns the currently active bitmap
void OnLeftButtonDown(wxMouseEvent &event)
int m_stateButton
Definition SplitButton.h:84
wxMenu * LoadMenu(const wxString &name)
loads the drop down menu from the XRC ressource
SplitButton()
constructor
Definition SplitButton.h:33
void OnMouseEnter(wxMouseEvent &event)
bool m_IsEnabled
Definition SplitButton.h:86
void UpdateMinSize()
update the internal size calculation
void OnKillFocus(wxFocusEvent &event)
some event handler to mimic default mouse over behaviour
wxMenu * GetSplitButtonMenu()
returns a pointer to the drop down menu
wxString GetLabel() const override
return the label of the button
void OnLeftButtonUp(wxMouseEvent &event)
handle left mouse button on button and drop down button
bool HasBitmap() const
return true if buttons has a bitmap assigned
bool Enable(bool enable=true) override
enable or disable the control
void SetBitmap(const wxBitmapBundle &bitmap)
sets bitmap bundle
SplitButton(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &label=wxEmptyString, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, const wxString &name="splitbutton")
Definition SplitButton.h:34
bool Create(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &label=wxEmptyString, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, const wxString &name="splitbutton")
for two-step creation
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.
Definition threshold.h:41