summaryrefslogtreecommitdiff
path: root/wx+/toggle_button.h
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:15:16 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:15:16 +0200
commitbd6336c629841c6db3a6ca53a936d629d34db53b (patch)
tree3721ef997864108df175ce677a8a7d4342a6f1d2 /wx+/toggle_button.h
parent4.0 (diff)
downloadFreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.gz
FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.bz2
FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.zip
4.1
Diffstat (limited to 'wx+/toggle_button.h')
-rw-r--r--wx+/toggle_button.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/wx+/toggle_button.h b/wx+/toggle_button.h
new file mode 100644
index 00000000..98a39e32
--- /dev/null
+++ b/wx+/toggle_button.h
@@ -0,0 +1,94 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+
+#ifndef TOGGLEBUTTON_H_INCLUDED
+#define TOGGLEBUTTON_H_INCLUDED
+
+#include <wx/bmpbuttn.h>
+
+class ToggleButton : public wxBitmapButton
+{
+public:
+ ToggleButton(wxWindow* parent,
+ wxWindowID id,
+ const wxBitmap& bitmap,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr) :
+ wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name),
+ active(false)
+ {
+ SetLayoutDirection(wxLayout_LeftToRight); //avoid mirroring RTL languages like Hebrew or Arabic
+ }
+
+ void init(const wxBitmap& activeBmp,
+ const wxString& activeTooltip,
+ const wxBitmap& inactiveBmp,
+ const wxString& inactiveTooltip);
+
+ void setActive(bool value);
+ bool isActive() const { return active; }
+ void toggle() { setActive(!active); }
+
+private:
+ bool active;
+
+ wxBitmap m_activeBmp;
+ wxString m_activeTooltip;
+
+ wxBitmap m_inactiveBmp;
+ wxString m_inactiveTooltip;
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+//######################## implementation ########################
+inline
+void ToggleButton::init(const wxBitmap& activeBmp,
+ const wxString& activeTooltip,
+ const wxBitmap& inactiveBmp,
+ const wxString& inactiveTooltip)
+{
+ m_activeBmp = activeBmp;
+ m_activeTooltip = activeTooltip;
+ m_inactiveBmp = inactiveBmp;
+ m_inactiveTooltip = inactiveTooltip;
+
+ //load resources
+ setActive(active);
+}
+
+
+inline
+void ToggleButton::setActive(bool value)
+{
+ active = value;
+
+ if (active)
+ {
+ SetBitmapLabel(m_activeBmp);
+ SetToolTip(m_activeTooltip);
+ }
+ else
+ {
+ SetBitmapLabel(m_inactiveBmp);
+ SetToolTip(m_inactiveTooltip);
+ }
+}
+
+#endif // TOGGLEBUTTON_H_INCLUDED
bgstack15