a more reliable/robust/less complex version of previous commit
[ardour.git] / gtk2_ardour / floating_text_entry.h
index 41ad7f6d3505f920833157d1251deeb9cae02466..596914c317ae9e810852ca61588478573326a64f 100644 (file)
 #define __floating_text_entry_h__
 
 #include <gtkmm/entry.h>
+#include <gtkmm/window.h>
 
-#include "ardour_window.h"
-
-class FloatingTextEntry : public ArdourWindow
+class FloatingTextEntry : public Gtk::Window
 {
   public:
-        FloatingTextEntry ();
+       FloatingTextEntry (Gtk::Window* parent, const std::string& initial_contents);
 
-        sigc::signal1<void,std::string> use_text;
+       /* 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;
+       bool by_popup_menu;
 
+        /* 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 populate_popup (Gtk::Menu*);
+
+        /* handlers for window events */
+
         void on_realize ();
         void on_hide ();
-        void activated ();
-        
 };
 
 #endif // __ardour_window_h__
-