diff options
Diffstat (limited to 'app/wlib/gtklib/button.c')
| -rw-r--r-- | app/wlib/gtklib/button.c | 44 | 
1 files changed, 39 insertions, 5 deletions
| diff --git a/app/wlib/gtklib/button.c b/app/wlib/gtklib/button.c index b5fabe8..51106c8 100644 --- a/app/wlib/gtklib/button.c +++ b/app/wlib/gtklib/button.c @@ -94,15 +94,23 @@ void wlibSetLabel(              } else {                  pixbuf = wlibPixbufFromXBM( bm );              } +            double scaleicon; +            wPrefGetFloat(PREFSECTION, LARGEICON, &scaleicon, 1.0); +            if (scaleicon<1.0) scaleicon=1.0; +            if (scaleicon>2.0) scaleicon=2.0; +            GdkPixbuf *pixbuf2 = +            		gdk_pixbuf_scale_simple(pixbuf, gdk_pixbuf_get_width(pixbuf)*scaleicon, gdk_pixbuf_get_height(pixbuf)*scaleicon, GDK_INTERP_BILINEAR); +            g_object_ref_sink(pixbuf); +            g_object_unref((gpointer)pixbuf);              if (*imageG==NULL) { -                *imageG = gtk_image_new_from_pixbuf(pixbuf); +                *imageG = gtk_image_new_from_pixbuf(pixbuf2);                  gtk_container_add(GTK_CONTAINER(widget), *imageG);                  gtk_widget_show(*imageG);              } else { -                gtk_image_set_from_pixbuf(GTK_IMAGE(*imageG), pixbuf); +                gtk_image_set_from_pixbuf(GTK_IMAGE(*imageG), pixbuf2);              } -            g_object_ref_sink(pixbuf); -            g_object_unref((gpointer)pixbuf); +            g_object_ref_sink(pixbuf2); +            g_object_unref((gpointer)pixbuf2);          } else {              if (*labelG==NULL) {                  *labelG = (GtkLabel*)gtk_label_new(wlibConvertInput(labelStr)); @@ -172,6 +180,18 @@ static void pushButt(  }  /** + * Called after expose event default hander - allows the button to be outlined + */ +static wBool_t exposeButt( +		GtkWidget *widget, +		GdkEventExpose *event, +		gpointer g) +{ +	wControl_p b = (wControl_p)g; +	return wControlExpose(widget,event,b); +} + +/**   * Create a button   *   * \param parent IN parent window @@ -198,7 +218,10 @@ wButton_p wButtonCreate(      void 	* data)  {      wButton_p b; -    b = wlibAlloc(parent, B_BUTTON, x, y, labelStr, sizeof *b, data); +    if (option&BO_ICON)  //The labelStr here is a wIcon_p +    	b = wlibAlloc(parent, B_BUTTON, x, y, " ", sizeof *b, data); +    else +    	b = wlibAlloc(parent, B_BUTTON, x, y, labelStr, sizeof *b, data);      b->option = option;      b->action = action;      wlibComputePos((wControl_p)b); @@ -206,9 +229,12 @@ wButton_p wButtonCreate(      b->widget = gtk_toggle_button_new();      g_signal_connect(GTK_OBJECT(b->widget), "clicked",                           G_CALLBACK(pushButt), b); +    g_signal_connect_after(GTK_OBJECT(b->widget), "expose-event", +    					G_CALLBACK(exposeButt), b);      if (width > 0) {          gtk_widget_set_size_request(b->widget, width, -1);      } +      if( labelStr ){          wButtonSetLabel(b, labelStr);      } @@ -484,6 +510,8 @@ wChoice_p wRadioCreate(      b->valueP = valueP;      wlibComputePos((wControl_p)b); +    ((wControl_p)b)->outline = FALSE; +      if (option&BC_HORZ) {          b->widget = gtk_hbox_new(FALSE, 0);      } else { @@ -506,6 +534,8 @@ wChoice_p wRadioCreate(          gtk_widget_show(butt);          g_signal_connect(GTK_OBJECT(butt), "toggled",                           G_CALLBACK(pushChoice), b); +        g_signal_connect_after(GTK_OBJECT(b->widget), "expose-event", +            					G_CALLBACK(exposeButt), b);          wlibAddHelpString(butt, helpStr);      } @@ -586,6 +616,8 @@ wChoice_p wToggleCreate(      b->action = action;      wlibComputePos((wControl_p)b); +    ((wControl_p)b)->outline = FALSE; +      if (option&BC_HORZ) {          b->widget = gtk_hbox_new(FALSE, 0);      } else { @@ -604,6 +636,8 @@ wChoice_p wToggleCreate(          gtk_widget_show(butt);          g_signal_connect(GTK_OBJECT(butt), "toggled",                           G_CALLBACK(pushChoice), b); +        g_signal_connect_after(GTK_OBJECT(b->widget), "expose-event", +            					G_CALLBACK(exposeButt), b);          wlibAddHelpString(butt, helpStr);      } | 
