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
|