WoodHacker wrote: > Reid Thompson wrote: >> WoodHacker wrote: >>> Reid Thompson wrote: >>> >>>> On Fri, 2006-10-20 at 03:35 +0900, WoodHacker wrote: >>>> >>>>> I'm new to Ruby/Gtk and find it, so far, exactly what I want for a GUI. >>>>> However, I have one problem that I can't seem to figure out and that >>>>> has to do with setting sizes of widgets. For example, I want to >>>>> create a status bar with four display areas. I can use an HBox for >>>>> the container and use four status bars for the info. Works great. >>>>> I can set the first three to be small for position data and the fourth >>>>> one to be long for general messages. Done all the time. (there may >>>>> be a better way to do this, but it works) >>>>> >>>>> However, if the user resizes the main window, the statusbars stretch in >>>>> all directions, including height. I want only the last area to >>>>> stretch and it only in width. Setting height and width_requests seem >>>>> to only affect shrinking the window. >>>>> >>>>> I'm having the same problem with my menubar - it stretches in height >>>>> when the window is resized. There has to be an easy fix to this, but >>>>> so far it eludes me. >>>>> >>>>> Bill >>>>> >>>>> >>>>> >>>> http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ABox >>>> >>>> see section on child props >>>> >>> In the statusbar code, I'm using pack_start as defined in the section >>> you quote. And I get the >>> status boxes to remain stable in the x direction. In other words, the >>> first three boxes stay in their fixed size and the fourth one enlarges. >>> The problem is with the y direction. All the boxes grow in the y >>> direction. This also happens with my menubar. And I believe the >>> menubar doesn't allow you to use pack - it wants append, which gives >>> you no control at all. >>> >>> >>> >> what are the values of: >> >> |query_child_packing(child)| >> <http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ABox#query_child_packing> >> Returns information about how child is packed into box. >> > > I should have said: > > I get false, false, 0, 1 (start) fror the first three and true, true, > 0, 1(start) for the last one. > >> * Returns: [expand, fill, padding, pack_type] > > A glade file that gives the effect that you want ( i believe --> resizing the main window does not affect the size of the status bars in cell 1 and 2 either way, the status bar in cell 3 will expand in direction X) A window with a 3x3 table. row 3's cells each contain an Hbox cell 1 and 2's Hbox's have explicitly set Height an Width each hbox contains a status bar properties of the hbox control the expansion of the cell see the packing settings for the boxes below <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> <glade-interface> <widget class="GtkWindow" id="window1"> <property name="visible">True</property> <property name="title" translatable="yes">window1</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <child> <widget class="GtkTable" id="table1"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">0</property> <property name="column_spacing">0</property> <child> <widget class="GtkHBox" id="hbox2"> <property name="width_request">103</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkStatusbar" id="statusbar2"> <property name="visible">True</property> <property name="has_resize_grip">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkHBox" id="hbox1"> <property name="width_request">103</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkStatusbar" id="statusbar1"> <property name="visible">True</property> <property name="has_resize_grip">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkHBox" id="hbox3"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkStatusbar" id="statusbar3"> <property name="visible">True</property> <property name="has_resize_grip">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="y_options"></property> </packing> </child> </widget> </child> </widget> </glade-interface>