Added radio button and alignment.
[doldaconnect.git] / common / makegdesc
index bc4088c..99a8314 100755 (executable)
@@ -25,6 +25,25 @@ sub printwidgets
                my($widget, $p, $sl) = @_;
                print "${p}gtk_container_add(GTK_CONTAINER(stack[" . ($sl - 1) . "]), stack[$sl]);\n";
            }
+       } elsif($widget->{"type"} eq "assistant") {
+           print "${p}stack[$sl] = gtk_assistant_new();\n";
+           if(defined($widget->{"title"})) {
+               print "${p}gtk_window_set_title(GTK_WINDOW(stack[$sl]), \"" . $widget->{"title"} . "\");\n";
+           }
+           $pf = sub
+           {
+               my($widget, $p, $sl) = @_;
+               print "${p}gtk_assistant_append_page(GTK_ASSISTANT(stack[" . ($sl - 1) . "]), stack[$sl]);\n";
+               if(defined($widget->{"title"})) {
+                   print "${p}gtk_assistant_set_page_title(GTK_ASSISTANT(stack[" . ($sl - 1) . "]), stack[" . $sl . "], _(\"" . $widget->{"title"} . "\"));\n";
+               }
+               if(defined($widget->{"ptype"})) {
+                   print "${p}gtk_assistant_set_page_type(GTK_ASSISTANT(stack[" . ($sl - 1) . "]), stack[" . $sl . "], GTK_ASSISTANT_PAGE_" . $widget->{"ptype"} . ");\n";
+               }
+               if(defined($widget->{"cmpl"})) {
+                   print "${p}gtk_assistant_set_page_complete(GTK_ASSISTANT(stack[" . ($sl - 1) . "]), stack[" . $sl . "], " . $widget->{"cmpl"} . ");\n";
+               }
+           }
        } elsif($widget->{"type"} =~ /[hv]box/) {
            print "${p}stack[$sl] = gtk_" . $widget->{"type"} . "_new(";
            print $widget->{"homo"}?"TRUE, ":"FALSE, ";
@@ -81,6 +100,13 @@ sub printwidgets
        } elsif($widget->{"type"} eq "chk") {
            $widget->{"label"} || die("Can't have check button without label\n");
            print "${p}stack[$sl] = gtk_check_button_new_with_mnemonic(_(\"" . $widget->{"label"} . "\"));\n";
+       } elsif($widget->{"type"} eq "radio") {
+           $widget->{"label"} || die("Can't have check button without label\n");
+           if(defined($widget->{"group"})) {
+               print "${p}stack[$sl] = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(" . $options{"prefix"} . $widget->{"group"} . "), _(\"" . $widget->{"label"} . "\"));\n";
+           } else {
+               print "${p}stack[$sl] = gtk_radio_button_new_with_mnemonic(NULL, _(\"" . $widget->{"label"} . "\"));\n";
+           }
        } elsif($widget->{"type"} eq "sbtn") {
            $widget->{"stock"} || die("Can't have button without stock\n");
            print "${p}stack[$sl] = gtk_button_new_from_stock(GTK_STOCK_" . $widget->{"stock"} . ");\n";
@@ -191,6 +217,34 @@ sub printwidgets
                my($widget, $p, $sl) = @_;
                print "${p}gtk_container_add(GTK_CONTAINER(stack[" . ($sl - 1) . "]), stack[$sl]);\n";
            }
+       } elsif($widget->{"type"} eq "align") {
+           print "${p}stack[$sl] = gtk_alignment_new(";
+           if(defined($widget->{"xa"})) {
+               print $widget->{"xa"};
+           } else {
+               print "0.5";
+           }
+           if(defined($widget->{"ya"})) {
+               print $widget->{"ya"};
+           } else {
+               print "0.5";
+           }
+           if(defined($widget->{"xs"})) {
+               print $widget->{"xs"};
+           } else {
+               print "1.0";
+           }
+           if(defined($widget->{"ys"})) {
+               print $widget->{"ys"};
+           } else {
+               print "1.0";
+           }
+           print ");\n";
+           $pf = sub
+           {
+               my($widget, $p, $sl) = @_;
+               print "${p}gtk_container_add(GTK_CONTAINER(stack[" . ($sl - 1) . "]), stack[$sl]);\n";
+           }
        } elsif($widget->{"type"} eq "treeview") {
            print "${p}stack[$sl] = gtk_tree_view_new();\n";
            if(defined($widget->{"hvis"})) {
@@ -277,6 +331,8 @@ sub printwidgets
            if($widget->{"grip"} eq "n") {
                print "${p}gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(stack[$sl]), FALSE);\n";
            }
+       } elsif($widget->{"type"} eq "filechooser") {
+           print "${p}stack[$sl] = gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_" . (defined($widget->{"action"})?$widget->{"action"}:"OPEN") . ");\n";
        } else {
            print STDERR "Unknown widget: " . $widget->{"type"} ."\n";
        }