gtk_widget_show() doesn't "show".
- From: "James K. Wiggs" <wiggs novum-millennium org>
- To: "gtk-app-devel-list gnome org" <gtk-app-devel-list gnome org>
- Cc: gnome-devel-list gnome org
- Subject: gtk_widget_show() doesn't "show".
- Date: Thu, 30 Nov 2000 14:11:03 -0800 (PST)
Folks,
I'm working on a charting application that uses the Gnome Canvas for
drawing purposes. I have a piece of code which reads in the definition
of a chart window, which contains one or more charts. The chart window
is created first; it is a top level window with only one object inside:
a GtkNotebook. Then, for each chart defined in the file, we add a page
to the notebook, and embed in the page a scrolled window with a canvas
inside.
Seems simple, no? The problem lies in creating the scaling affines
for the canvas. I wish to modify the world to canvas affine so that I
can force the canvas to exactly match the height of its scrolled window
and to control what percentage appears from left to right. I use the
following snippet of code to identify the size of the scrolled window:
The variable CO is a "Chart Object" structure, and sw is a pointer
to the previously created (and shown!) scrolled window.
adjust = gtk_scrolled_window_get_hadjustment(
GTK_SCROLLED_WINDOW(CO->sw) );
view_width = (double)(adjust->page_size);
adjust = gtk_scrolled_window_get_vadjustment(
GTK_SCROLLED_WINDOW(CO->sw) );
view_height = (double)(adjust->page_size);
I then use the values of view_width and view_height, along with the
canvas scroll region, to set the canvas-to-window affine. The problem
is this: view_width and view_height *always* get set to 0. I even know
*why* this is the case: the scrolled window hasn't been "shown" yet. I
have explicit calls to gtk_widget_show() for *every* widget in the
heirarchy as I create them, but the window does not appear on screen
until *all* of the notebook pages have been created. Can anybody tell
me why this is the case?
After I create the top level window and place the notebook in it, I
call gtk_widget_show_all( window ), after I create the scrolled window
I show it, after I create the canvas I show it, I even deliberately add
extra redundant gtk_widget_show() calls for all of the objects before
I try to get the adjustment values. I even added in a call to
gtk_main_iteration() before getting the adjustment values. All to no
avail. It just will not show the items until the very end, and as a
consequence, I can't get valid values for the width and height of the
viewport.
Can *anybody* give me any clues as to what's happening, here?
thanks,
Jim Wiggs
wiggs wiggs net
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]