Gtk::GladeXML radiobutton grouping information loss



Hi,

I noticed the following code fails to keep radiobutton grouping
information, due to my constructing the UI in several passes with a few
get_widget->pack_end(get_widget) calls...

The result is confusing, with all radiobuttons selected instead of one
per group!

The thing is, if I manually create an XML vbox and add() it to my frame,
it works fine, but makes my code even more of a mess.

Could anybody enlighten me ?

Thanks

David

=====================
# Here's the (pseudo-)code

Gtk::GladeXML->new('test_window.glade','window_main' );

my $i = 1;
my $pos = tell DATA;

foreach my $source (@sources) {

    seek DATA, $pos, 0;

    my $xml_widget;
    $xml_widget = join('', (<DATA>))
    $xml_widget =~ s/##text##/$source/;
    $xml_widget =~ s/##num##/$i/;

    $xml_widget = Gtk::GladeXML->new_from_memory($xml_widget);
    $xml_widget->get_widget(
        "radiobutton_disk_restore_$i")->signal_connect(
            "clicked", sub { $restoration->source($source); });
    $window->get_widget('vbox_restore_disk_source')->pack_end_defaults(
        $xml_widget->get_widget("radiobutton_disk_restore_$i"));
    $i++;
}

__DATA__

<GTK-Interface>
  <widget>
    <class>GtkRadioButton</class>
    <name>radiobutton_disk_restore_##num##</name>
    <can_focus>True</can_focus>
    <label>##text##</label>
    <active>False</active>
    <draw_indicator>True</draw_indicator>
    <group>disk_restore_source</group>
  </widget>
</GTK-Interface>

--
+-----------------------------------+
| David Morel <dmorel intradot com> |
| http://www.intradot.com           |
+-----------------------------------+
| Intradot Labs                     |
| 2, rue Cuzin                      |
| F-69120 Vaulx-en-Velin            |
| tel: +33 478 80 87 90             |
+-----------------------------------+

Attachment: signature.asc
Description: OpenPGP digital signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]