Setup the scroll region of the table canvas on size allocation.
2000-02-07 Miguel de Icaza <miguel@gnu.org> * e-table.c (e_table_setup_table): Setup the scroll region of the table canvas on size allocation. (e_table_canvas_realize): Do not set the scrollregion here. (e_table_canvas_init): Move root initialization here. svn path=/trunk/; revision=1683
This commit is contained in:
committed by
Miguel de Icaza
parent
dec6d6b097
commit
99d71d1132
@ -1,3 +1,10 @@
|
||||
2000-02-07 Miguel de Icaza <miguel@gnu.org>
|
||||
|
||||
* e-table.c (e_table_setup_table): Setup the scroll region of the
|
||||
table canvas on size allocation.
|
||||
(e_table_canvas_realize): Do not set the scrollregion here.
|
||||
(e_table_canvas_init): Move root initialization here.
|
||||
|
||||
2000-01-30 Miguel de Icaza <miguel@gnu.org>
|
||||
|
||||
* e-table-simple.c (e_table_simple_new): Add data field back in.
|
||||
|
||||
@ -364,8 +364,10 @@ ethi_realize (GnomeCanvasItem *item)
|
||||
|
||||
ethi->normal_cursor = gdk_cursor_new (GDK_ARROW);
|
||||
|
||||
if (!ethi->font)
|
||||
if (!ethi->font){
|
||||
g_warning ("Font had not been set for this ETableHeader");
|
||||
ethi_font_load (ethi, "fixed");
|
||||
}
|
||||
|
||||
/*
|
||||
* Now, configure DnD
|
||||
|
||||
@ -434,23 +434,11 @@ e_table_canvas_realize (GtkWidget *widget)
|
||||
|
||||
groups = group_spec_to_desc (e_table->group_spec);
|
||||
|
||||
e_table->root = gnome_canvas_item_new (
|
||||
GNOME_CANVAS_GROUP (e_table->table_canvas->root),
|
||||
gnome_canvas_group_get_type (),
|
||||
"x", 0.0,
|
||||
"y", 0.0,
|
||||
NULL);
|
||||
|
||||
leaf = e_table_create_nodes (
|
||||
e_table, e_table->model,
|
||||
e_table->header, GNOME_CANVAS_GROUP (e_table->root), 0, groups);
|
||||
|
||||
gnome_canvas_set_scroll_region (
|
||||
GNOME_CANVAS (e_table_canvas),
|
||||
0, 0,
|
||||
e_table_header_total_width (e_table->header) + 200,
|
||||
leaf_height (leaf));
|
||||
|
||||
|
||||
if (groups)
|
||||
g_free (groups);
|
||||
}
|
||||
@ -482,6 +470,14 @@ static void
|
||||
e_table_canvas_init (GtkObject *canvas)
|
||||
{
|
||||
GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_FOCUS);
|
||||
|
||||
e_table->root = gnome_canvas_item_new (
|
||||
GNOME_CANVAS_GROUP (e_table->table_canvas->root),
|
||||
gnome_canvas_group_get_type (),
|
||||
"x", 0.0,
|
||||
"y", 0.0,
|
||||
NULL);
|
||||
|
||||
}
|
||||
|
||||
GtkType e_table_canvas_get_type (void);
|
||||
@ -500,10 +496,21 @@ e_table_canvas_new (ETable *e_table)
|
||||
return GNOME_CANVAS (e_table_canvas);
|
||||
}
|
||||
|
||||
static void
|
||||
table_canvas_size_alocate (GtkWidget *widget, GtkAllocation *alloc, ETable *e_table)
|
||||
{
|
||||
gnome_canvas_set_scroll_region (
|
||||
GNOME_CANVAS (e_table->table_canvas),
|
||||
0, 0, alloc->width, alloc->height);
|
||||
}
|
||||
|
||||
static void
|
||||
e_table_setup_table (ETable *e_table)
|
||||
{
|
||||
e_table->table_canvas = e_table_canvas_new (e_table);
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (e_table->table_canvas), "size_allocate",
|
||||
GTK_SIGNAL_FUNC (table_canvas_size_alocate), e_table);
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (e_table->table_canvas));
|
||||
gtk_table_attach (
|
||||
|
||||
@ -31,9 +31,11 @@ main (int argc, char *argv [])
|
||||
gnome_init ("TableTest", "TableTest", argc, argv);
|
||||
e_cursors_init ();
|
||||
|
||||
#if 0
|
||||
table_browser_test ();
|
||||
multi_cols_test ();
|
||||
check_test ();
|
||||
#endif
|
||||
e_table_test ();
|
||||
|
||||
gtk_main ();
|
||||
|
||||
@ -255,7 +255,7 @@ table_browser_test (void)
|
||||
static void
|
||||
do_e_table_demo (const char *col_spec, const char *group_spec)
|
||||
{
|
||||
GtkWidget *e_table, *window;
|
||||
GtkWidget *e_table, *window, *frame;
|
||||
ETableModel *e_table_model;
|
||||
ECell *cell_left_just;
|
||||
ETableHeader *full_header;
|
||||
@ -282,12 +282,14 @@ do_e_table_demo (const char *col_spec, const char *group_spec)
|
||||
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
frame = gtk_frame_new (NULL);
|
||||
e_table = e_table_new (full_header, e_table_model, col_spec, group_spec);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), e_table);
|
||||
gtk_container_add (GTK_CONTAINER (frame), e_table);
|
||||
gtk_container_add (GTK_CONTAINER (window), frame);
|
||||
|
||||
gtk_widget_set_usize (window, 200, 200);
|
||||
gtk_widget_show (e_table);
|
||||
gtk_widget_show (frame);
|
||||
gtk_widget_show (window);
|
||||
}
|
||||
|
||||
|
||||
@ -364,8 +364,10 @@ ethi_realize (GnomeCanvasItem *item)
|
||||
|
||||
ethi->normal_cursor = gdk_cursor_new (GDK_ARROW);
|
||||
|
||||
if (!ethi->font)
|
||||
if (!ethi->font){
|
||||
g_warning ("Font had not been set for this ETableHeader");
|
||||
ethi_font_load (ethi, "fixed");
|
||||
}
|
||||
|
||||
/*
|
||||
* Now, configure DnD
|
||||
|
||||
@ -434,23 +434,11 @@ e_table_canvas_realize (GtkWidget *widget)
|
||||
|
||||
groups = group_spec_to_desc (e_table->group_spec);
|
||||
|
||||
e_table->root = gnome_canvas_item_new (
|
||||
GNOME_CANVAS_GROUP (e_table->table_canvas->root),
|
||||
gnome_canvas_group_get_type (),
|
||||
"x", 0.0,
|
||||
"y", 0.0,
|
||||
NULL);
|
||||
|
||||
leaf = e_table_create_nodes (
|
||||
e_table, e_table->model,
|
||||
e_table->header, GNOME_CANVAS_GROUP (e_table->root), 0, groups);
|
||||
|
||||
gnome_canvas_set_scroll_region (
|
||||
GNOME_CANVAS (e_table_canvas),
|
||||
0, 0,
|
||||
e_table_header_total_width (e_table->header) + 200,
|
||||
leaf_height (leaf));
|
||||
|
||||
|
||||
if (groups)
|
||||
g_free (groups);
|
||||
}
|
||||
@ -482,6 +470,14 @@ static void
|
||||
e_table_canvas_init (GtkObject *canvas)
|
||||
{
|
||||
GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_FOCUS);
|
||||
|
||||
e_table->root = gnome_canvas_item_new (
|
||||
GNOME_CANVAS_GROUP (e_table->table_canvas->root),
|
||||
gnome_canvas_group_get_type (),
|
||||
"x", 0.0,
|
||||
"y", 0.0,
|
||||
NULL);
|
||||
|
||||
}
|
||||
|
||||
GtkType e_table_canvas_get_type (void);
|
||||
@ -500,10 +496,21 @@ e_table_canvas_new (ETable *e_table)
|
||||
return GNOME_CANVAS (e_table_canvas);
|
||||
}
|
||||
|
||||
static void
|
||||
table_canvas_size_alocate (GtkWidget *widget, GtkAllocation *alloc, ETable *e_table)
|
||||
{
|
||||
gnome_canvas_set_scroll_region (
|
||||
GNOME_CANVAS (e_table->table_canvas),
|
||||
0, 0, alloc->width, alloc->height);
|
||||
}
|
||||
|
||||
static void
|
||||
e_table_setup_table (ETable *e_table)
|
||||
{
|
||||
e_table->table_canvas = e_table_canvas_new (e_table);
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (e_table->table_canvas), "size_allocate",
|
||||
GTK_SIGNAL_FUNC (table_canvas_size_alocate), e_table);
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (e_table->table_canvas));
|
||||
gtk_table_attach (
|
||||
|
||||
@ -31,9 +31,11 @@ main (int argc, char *argv [])
|
||||
gnome_init ("TableTest", "TableTest", argc, argv);
|
||||
e_cursors_init ();
|
||||
|
||||
#if 0
|
||||
table_browser_test ();
|
||||
multi_cols_test ();
|
||||
check_test ();
|
||||
#endif
|
||||
e_table_test ();
|
||||
|
||||
gtk_main ();
|
||||
|
||||
@ -255,7 +255,7 @@ table_browser_test (void)
|
||||
static void
|
||||
do_e_table_demo (const char *col_spec, const char *group_spec)
|
||||
{
|
||||
GtkWidget *e_table, *window;
|
||||
GtkWidget *e_table, *window, *frame;
|
||||
ETableModel *e_table_model;
|
||||
ECell *cell_left_just;
|
||||
ETableHeader *full_header;
|
||||
@ -282,12 +282,14 @@ do_e_table_demo (const char *col_spec, const char *group_spec)
|
||||
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
frame = gtk_frame_new (NULL);
|
||||
e_table = e_table_new (full_header, e_table_model, col_spec, group_spec);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), e_table);
|
||||
gtk_container_add (GTK_CONTAINER (frame), e_table);
|
||||
gtk_container_add (GTK_CONTAINER (window), frame);
|
||||
|
||||
gtk_widget_set_usize (window, 200, 200);
|
||||
gtk_widget_show (e_table);
|
||||
gtk_widget_show (frame);
|
||||
gtk_widget_show (window);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user