Re: table widget: expanding
- From: David Nečas (Yeti) <yeti physics muni cz>
- To: Felix Kater <fkater googlemail com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: table widget: expanding
- Date: Thu, 4 May 2006 23:33:18 +0200
On Thu, May 04, 2006 at 11:12:32PM +0200, Felix Kater wrote:
my table widget simply contains a label (first row) and a scrolled window (second row). I need the scrolled
window (with a large drawing area inside) to expand. However, it doesn't.
To achieve this I assume I need to do two things: tell the table to expand itself to the maximum, and tell
it to expand the second row only (the scrolled window) and not the first (the label).
Please see the attached example, I hope it does what you
need.
The various expansion options are nicely explained in the
tutorial, namely here:
http://www.gtk.org/tutorial/x383.html
and here:
http://www.gtk.org/tutorial/x409.html
Yeti
--
Anonyms eat their boogers.
========================================================================
#include <gtk/gtk.h>
static gboolean
expose(GtkWidget *widget, GdkEventExpose *event)
{
gdk_draw_line(widget->window,
widget->style->fg_gc[GTK_WIDGET_STATE(widget)],
0, 0, widget->allocation.width, widget->allocation.height);
gdk_draw_line(widget->window,
widget->style->fg_gc[GTK_WIDGET_STATE(widget)],
0, widget->allocation.height, widget->allocation.width, 0);
return FALSE;
}
int
main(int argc, char *argv[])
{
GtkWidget *window, *darea, *table, *label, *scwin, *vbox, *whatever;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Expansion");
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);
table = gtk_table_new(2, 1, FALSE);
gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
label = gtk_label_new("A label in the table, does not expand vertically");
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
GTK_EXPAND | GTK_FILL, 0, 0, 0);
darea = gtk_drawing_area_new();
g_signal_connect(darea, "expose-event", G_CALLBACK(expose), NULL);
scwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scwin),
GTK_SHADOW_NONE);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scwin), darea);
gtk_table_attach(GTK_TABLE(table), scwin, 0, 1, 1, 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
whatever = gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(whatever), "This entry is not in the table "
"and does not expand either");
gtk_box_pack_start(GTK_BOX(vbox), whatever, FALSE, FALSE, 0);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]