along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id$
*/
#ifndef __gtkmm2ext_prompter_h__
#define __gtkmm2ext_prompter_h__
#include <string>
-#include <gtkmm.h>
+#include <gtkmm/box.h>
+#include <gtkmm/entry.h>
+#include <gtkmm/label.h>
+#include <gtkmm/dialog.h>
#include <sigc++/sigc++.h>
+namespace Gtk {
+ class Window;
+}
+
namespace Gtkmm2ext {
-class Prompter : public Gtk::Window
+class Prompter : public Gtk::Dialog
{
public:
Prompter (bool modal = false);
+ Prompter (Gtk::Window& parent, bool modal = false);
~Prompter () {};
void set_prompt (std::string prompt) {
void change_labels (std::string ok, std::string cancel);
- enum PrompterStatus {
- entered,
- cancelled
- };
-
- PrompterStatus status;
- void get_result (std::string &str);
-
- /* the prompter will send a `done' signal when it is finished.
- the "caller" can then check `status' and if it wants to
- can then call `get_result()'.
- */
-
- sigc::signal<void> done;
+ void get_result (std::string &str, bool strip=true);
protected:
Gtk::Entry& the_entry() { return entry; }
+ void on_entry_changed ();
+ void on_show ();
+
private:
- Gtk::VBox packer;
- Gtk::HBox buttonBox;
Gtk::Entry entry;
- Gtk::VBox entryBox;
+ Gtk::HBox entryBox;
Gtk::Label entryLabel;
- Gtk::Button ok;
- Gtk::Button cancel;
-
- void activated ();
- void cancel_click ();
-
- bool deleted (GdkEventAny *);
+ bool first_show;
+ bool can_accept_from_entry;
- void on_realize ();
- void on_map ();
+ void init ();
+ void entry_activated ();
};
} /* namespace */