X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Ffloating_text_entry.h;h=0527feca9949ee2f33ee2112388c4ac8f7c55081;hb=abf1f286d49482ade939da7e49863a3d63048b42;hp=41ad7f6d3505f920833157d1251deeb9cae02466;hpb=cbb4be908a88c0f845242fd476cfbd54de23a3cc;p=ardour.git diff --git a/gtk2_ardour/floating_text_entry.h b/gtk2_ardour/floating_text_entry.h index 41ad7f6d35..0527feca99 100644 --- a/gtk2_ardour/floating_text_entry.h +++ b/gtk2_ardour/floating_text_entry.h @@ -21,25 +21,41 @@ #define __floating_text_entry_h__ #include +#include -#include "ardour_window.h" - -class FloatingTextEntry : public ArdourWindow +class FloatingTextEntry : public Gtk::Window { - public: - FloatingTextEntry (); - - sigc::signal1 use_text; - - private: - Gtk::Entry entry; - - bool key_press (GdkEventKey*); - void on_realize (); - void on_hide (); - void activated (); - +public: + FloatingTextEntry (Gtk::Window* parent, const std::string& initial_contents); + + /* 1st argument to handler is the new text + * 2nd argument is 0, 1 or -1 to indicate: + * - do not move to next editable field + * - move to next editable field + * - move to previous editable field. + */ + sigc::signal2 use_text; + +private: + Gtk::Entry entry; + bool entry_changed; + + /* handlers for Entry events */ + bool entry_focus_out (GdkEventFocus*); + bool key_press (GdkEventKey*); + bool key_release (GdkEventKey*); + void activated (); + bool button_press (GdkEventButton*); + void changed (); + void idle_delete_self (); + void disconect_signals (); + + std::list _connections; + + /* handlers for window events */ + + void on_realize (); + void on_hide (); }; #endif // __ardour_window_h__ -