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 the small program where the Gtk::Entry does not increase when
window increases.
//Example.cc
#include "examplewindow.h"
#include <iostream>
ExampleWindow::ExampleWindow()
: m_VBox(Gtk::ORIENTATION_VERTICAL),
m_HBox_entry(Gtk::ORIENTATION_HORIZONTAL),
m_Label("Label")
{
set_size_request(200, 100);
set_title("Gtk::Entry");
add(m_VBox);
m_HBox_entry.set_halign(Gtk::ALIGN_CENTER);
m_HBox_entry.set_margin_top(30);
m_HBox_entry.set_margin_bottom(30);
m_VBox.add(m_HBox_entry);
m_Entry.set_max_length(50);
m_Entry.set_text("hello");
m_Entry.set_text(m_Entry.get_text() + " world");
m_Entry.select_region(0, m_Entry.get_text_length());
m_HBox_entry.pack_start(m_Label);
m_HBox_entry.pack_start(m_Entry, Gtk::PACK_EXPAND_WIDGET);
show_all_children();
}
ExampleWindow::~ExampleWindow()
{
}
//example.h
#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H
#include <gtkmm.h>
class ExampleWindow : public Gtk::Window
{
public:
ExampleWindow();
virtual ~ExampleWindow();
protected:
Gtk::Box m_HBox_entry;
Gtk::Box m_VBox;
Gtk::Entry m_Entry;
Gtk::Label m_Label;
};
#endif // GTKMM_EXAMPLE_HELLOWORLD_H
I figured out that the line m_HBox_entry.set_halign(Gtk::ALIGN_CENTER);
is making the Entry box not increasing.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list