14 #ifndef T3_WIDGET_EXPANDER_H
15 #define T3_WIDGET_EXPANDER_H
17 #include <t3widget/widgets/widget.h>
18 #include <t3widget/widgets/smartlabel.h>
25 enum expander_focus_t {
31 struct implementation_t {
32 expander_focus_t focus, last_focus;
35 cleanup_t3_window_ptr symbol_window;
36 cleanup_ptr<widget_t>::t child;
38 sigc::connection move_up_connection, move_down_connection, move_right_connection, move_left_connection;
39 implementation_t(
const char *text) : focus(FOCUS_NONE), last_focus(FOCUS_NONE), is_expanded(
false), label(text),
40 child(NULL), full_height(2) {}
42 pimpl_ptr<implementation_t>::t impl;
44 void focus_up_from_child(
void);
57 void set_expanded(
bool expand);
59 virtual bool process_key(
key_t key);
60 virtual void update_contents(
void);
61 virtual void set_focus(focus_t _focus);
63 virtual bool is_hotkey(
key_t key);
64 virtual void set_enabled(
bool enable);
65 virtual void force_redraw(
void);
71 T3_WIDGET_SIGNAL(expanded,
void,
bool);