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.
|