From 21bb5bd2bd4243dc83a08d6e0329b5de2f96b1fe Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 3 Oct 2015 14:34:20 +0200 Subject: Refactor ComboBox and ListBox(Thin and Basic). --- plugingui/listbox.h | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'plugingui/listbox.h') diff --git a/plugingui/listbox.h b/plugingui/listbox.h index c8677e7..cd54aa9 100644 --- a/plugingui/listbox.h +++ b/plugingui/listbox.h @@ -24,8 +24,7 @@ * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef __DRUMGIZMO_LISTBOX_H__ -#define __DRUMGIZMO_LISTBOX_H__ +#pragma once #include #include @@ -38,31 +37,31 @@ namespace GUI { class ListBox : public Widget { public: - ListBox(Widget *parent); - ~ListBox(); + ListBox(Widget *parent); + ~ListBox(); - void addItem(std::string name, std::string value); - void addItems(std::vector &items); + void addItem(std::string name, std::string value); + void addItems(std::vector &items); - void clear(); - bool selectItem(int index); - std::string selectedName(); - std::string selectedValue(); - void clearSelectedValue(); + void clear(); + bool selectItem(int index); + std::string selectedName(); + std::string selectedValue(); + void clearSelectedValue(); - void registerSelectHandler(void (*handler)(void *), void *ptr); - void registerClickHandler(void (*handler)(void *), void *ptr); - void registerValueChangeHandler(void (*handler)(void *), void *ptr); + // From Widget: + virtual void repaintEvent(RepaintEvent *e) override; + virtual void resize(int w, int h) override; - virtual void repaintEvent(GUI::RepaintEvent *e); - virtual void resize(int w, int h); + // Forwarded notifiers from ListBoxBasic::basic + Notifier<>& selectionNotifier; + Notifier<>& clickNotifier; + Notifier<>& valueChangedNotifier; private: - ListBoxBasic *basic; + ListBoxBasic basic; - Painter::Box box; + Painter::Box box; }; -}; - -#endif/*__DRUMGIZMO_LISTBOX_H__*/ +} // GUI:: -- cgit v1.2.3