Re: Connecting to Configure signal event



On 11/28/2013 01:12 PM, Kjell Ahlstedt wrote:

2013-11-28 00:14, a skrev:
On 11/27/2013 12:59 PM, Kjell Ahlstedt wrote:

2013-11-26 22:37, a skrev:
On 11/26/2013 08:33 AM, Kjell Ahlstedt wrote:

2013-11-26 05:09, a skrev:
Hi,

I'm trying to connect to the configure signal event(signal_configure_event()), in the documentation I read that you have to enable Gdk::STRUCTURE_MASK, and I think that is the problem I am having. I tried do it several different ways, like this:

this->add_events(Gdk::STRUCTURE_MASK);
Gtk::Window::add_events(Gdk::STRUCTURE_MASK);
MainWindow::add_events(Gdk::STRUCTURE_MASK); //I think they are all synonyms, but just in case they weren't

and I tried using set_events() function too. Is this the correct way to enable STRUCTURE_MASK?

Thank you.

Tim O.
Have you read https://developer.gnome.org/gtkmm-tutorial/stable/sec-xeventsignals.html.en#signal-handler-sequence and added an after = false parameter in your call to signal_configure_event().connect()?

Kjell

Thank you for the link, but I recently just read that using the configure signal could have performance problems, and I read in an old mailing list that signal_expose_event should be used, which is now signal_draw. So instead I was thinking of using signal_size_allocate. Because all I really want is just the window's size. So which one of these would have better for getting the window's size and then increases a Gtk::Entry width. Thank you.

Tim O.
Is this a continuation of your question in https://mail.gnome.org/archives/gtkmm-list/2013-November/msg00070.html ?
I made a small test with the example program in https://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/entry/simple?h=master
I changed the vertical box to a horizontal box. The Entry widget expands with the window if it's added to the box with pack_start(m_Entry, Gtk::PACK_EXPAND_WIDGET). If you want the Entry to get all extra space, you should add other widgets to the box with Gtk::PACK_SHRINK.

If you can't get this to work, can you post a small program here on the mailing list? A program that does not behave the way you want, when its window is expanded.

Kjell
Here is how I solved it the problem, probably not the best way, but it works kind of:

When I  ran your program (deleted from this reply), I realized that I had misunderstood your intention. You don't want the Entry to grow when the user increases the size of the parent window. You want the Entry to grow when the user enters text in it. You want it always to be large enough to show all the entered text. I don't know an easy way of achieving that. Perhaps you can simplify your program somewhat by using Gtk::Editable::signal_changed() instead of signal_key_press_event() and signal_delete_text(), and by using Gtk::Entry::set_width_chars().

Kjell

I actually want to do both at the same time. I will try and use Gtk::Editable::signal_change() and Gtk::Entry::set_sidth_chars(). Thank you for those suggestions. Also, thank you Andrew Potter for the Gtk::ALIGN_FILL suggestion, but when I tried that the entry text box was not centered.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]