Attempt 2...
[doldaconnect.git] / common / makegdesc
index 99a8314..3e34b89 100755 (executable)
@@ -115,8 +115,16 @@ sub printwidgets
            $widget->{"size"} || die("Can't have image without size\n");
            print "${p}stack[$sl] = gtk_image_new_from_stock(GTK_STOCK_" . $widget->{"stock"} . ", GTK_ICON_SIZE_" . $widget->{"size"} . ");\n";
        } elsif($widget->{"type"} eq "lbl") {
-           $widget->{"label"} || die("Can't have label without label\n");
-           print "${p}stack[$sl] = gtk_label_new(_(\"" . $widget->{"label"} . "\"));\n";
+           $widget->{"label"} || $widget->{"markup"} || die("Can't have label without label\n");
+           if($widget->{"label"}) {
+               print "${p}stack[$sl] = gtk_label_new(_(\"" . $widget->{"label"} . "\"));\n";
+           } else {
+               print "${p}stack[$sl] = gtk_label_new(NULL);\n";
+               print "${p}gtk_label_set_markup(GTK_LABEL(stack[$sl]), _(\"" . $widget->{"markup"} . "\"));\n";
+           }
+           if($widget->{"wrap"} eq "y") {
+               print "${p}gtk_label_set_line_wrap(GTK_LABEL(stack[$sl]), TRUE);\n";
+           }
        } elsif($widget->{"type"} eq "mlbl") {
            $widget->{"label"} || die("Can't have label without label\n");
            print "${p}stack[$sl] = gtk_label_new_with_mnemonic(_(\"" . $widget->{"label"} . "\"));\n";
@@ -189,6 +197,9 @@ sub printwidgets
            }
        } elsif($widget->{"type"} eq "notebook") {
            print "${p}stack[$sl] = gtk_notebook_new();\n";
+           if(defined($widget->{"pos"})) {
+               print "${p}gtk_notebook_set_tab_pos(GTK_NOTEBOOK(stack[$sl]), GTK_POS_" . $widget->{"pos"} . ");\n";
+           }
            $pf = sub
            {
                my($widget, $p, $sl) = @_;
@@ -224,16 +235,19 @@ sub printwidgets
            } else {
                print "0.5";
            }
+           print ", ";
            if(defined($widget->{"ya"})) {
                print $widget->{"ya"};
            } else {
                print "0.5";
            }
+           print ", ";
            if(defined($widget->{"xs"})) {
                print $widget->{"xs"};
            } else {
                print "1.0";
            }
+           print ", ";
            if(defined($widget->{"ys"})) {
                print $widget->{"ys"};
            } else {
@@ -339,6 +353,15 @@ sub printwidgets
        if($widget->{"sensitive"}) {
            print "${p}gtk_widget_set_sensitive(stack[$sl], " . $widget->{"sensitive"} . ");\n";
        }
+       if($widget->{"rqsz"} =~ /(\d+)x(\d+)/) {
+           print "${p}gtk_widget_set_size_request(stack[$sl], $1, $2);\n";
+       }
+       if($widget->{"align"} =~ /([\d\.]+):([\d\.]+)/) {
+           print "${p}gtk_misc_set_alignment(GTK_MISC(stack[$sl]), $1, $2);\n";
+       }
+       if($widget->{"wpad"} =~ /([\d\.]+):([\d\.]+)/) {
+           print "${p}gtk_misc_set_padding(GTK_MISC(stack[$sl]), $1, $2);\n";
+       }
        if($widget->{"var"} eq "y") {
            print $p . $options{"prefix"} . $widget->{"name"} . " = stack[$sl];\n";
        }