#define __floating_text_entry_h__
#include <gtkmm/entry.h>
-#include <gtkmm/Window.h>
+#include <gtkmm/window.h>
class FloatingTextEntry : public Gtk::Window
{
- public:
- FloatingTextEntry (const std::string& initial_contents);
-
- sigc::signal1<void,std::string> use_text;
-
- private:
- Gtk::Entry entry;
- bool entry_changed;
-
- /* handlers for Entry events */
- bool entry_focus_out (GdkEventFocus*);
- bool key_press (GdkEventKey*);
- void activated ();
- bool button_press (GdkEventButton*);
- void changed ();
-
- /* handlers for window events */
-
- void on_realize ();
- void on_hide ();
+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<void,std::string,int> 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<sigc::connection> _connections;
+
+ /* handlers for window events */
+
+ void on_realize ();
+ void on_hide ();
};
#endif // __ardour_window_h__
-