Prevent endless read of silent files
[ardour.git] / gtk2_ardour / floating_text_entry.h
index 116ba346513d28af76c9aefec6ada9c1c62610dd..0527feca9949ee2f33ee2112388c4ac8f7c55081 100644 (file)
 
 class FloatingTextEntry : public Gtk::Window
 {
-  public:
+public:
        FloatingTextEntry (Gtk::Window* parent, 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 ();
+       /* 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__
-