Try connecting to "signal_changed" instead of "signal_insert_text".
Bob Tomasz Ostrowski wrote: > I'm trying to translate a sample program from GTK FAQ > 6.15. How do I validate/limit/filter the input to a GtkEntry? > http://www.gtk.org/faq/#AEN843 > to GTKmm. > > But it does not work and I don't know why. I've attached my program. > Could you help me, please? > > Regards > Tometzky > > ------------------------------------------------------------------------ > > #include <gtkmm.h> > > class AlphaUpperEntry : public Gtk::Entry > { > public: > AlphaUpperEntry(); > protected: > virtual void insert_text_handler(Glib::ustring const& text,int* > position); > sigc::connection insert_text_connection; > }; > > AlphaUpperEntry::AlphaUpperEntry() > { > insert_text_connection = signal_insert_text().connect( > sigc::mem_fun(*this, &AlphaUpperEntry::insert_text_handler) > ); > } > > void AlphaUpperEntry::insert_text_handler(Glib::ustring const& text, int* > position) > { > Glib::ustring result; result.reserve(text.size()); > > for ( Glib::ustring::const_iterator it = text.begin(); it != > text.end(); it++ ) { > if ( Glib::Unicode::isalpha(*it) ) { > result += Glib::Unicode::toupper(*it); > } > } > > if ( ! result.empty() ) { > insert_text_connection.block(); > insert_text(result, result.size(), *position); > insert_text_connection.unblock(); > } > > signal_insert_text().emission_stop(); > } > > int main(int argc, char* argv[]) > { > Gtk::Main kit(argc, argv); > > AlphaUpperEntry entry; > > Gtk::Window window; > window.set_title("AlphaUpperEntry"); > window.add(entry); > window.show_all(); > kit.run(window); > > return 0; > } > > ------------------------------------------------------------------------ > > _______________________________________________ > gtkmm-list mailing list > gtkmm-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtkmm-list > _______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtkmm-list