diff gtk/dw.c @ 1320:6bebcfa03b2b

Added support for dw_font_set_default() on GTK for appropriate widgets. Removed GtkMozEmbed, GtkHtml2 and old versions of webkit from GTK3. GTK3 only support webkit 3.0 and higher.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 06 Nov 2011 10:39:57 +0000
parents 52de99e55f5f
children 7630404386be
line wrap: on
line diff
--- a/gtk/dw.c	Sat Nov 05 21:32:35 2011 +0000
+++ b/gtk/dw.c	Sun Nov 06 10:39:57 2011 +0000
@@ -134,6 +134,8 @@
 GdkPixmap *_dw_tmppixmap = NULL;
 GdkBitmap *_dw_tmpbitmap = NULL;
 
+char *_DWDefaultFont = NULL;
+
 #if GTK_MAJOR_VERSION < 2
 static int _dw_file_active = 0;
 #endif
@@ -2905,6 +2907,12 @@
  */
 void API dw_font_set_default(char *fontname)
 {
+   char *oldfont = _DWDefaultFont;
+   
+   _DWDefaultFont = strdup(fontname);
+   
+   if(oldfont)
+      free(oldfont);
 }
 
 /* Convert DW style font to pango style */
@@ -2957,6 +2965,12 @@
       if(tmp)
          handle2 = tmp;
    }
+   else if(GTK_IS_COMBO_BOX(handle) || GTK_IS_BUTTON(handle))
+   {
+      GtkWidget *tmp = gtk_bin_get_child(GTK_BIN(handle));
+      if(tmp)
+         handle2 = tmp;
+   }
 
 #if GTK_MAJOR_VERSION < 2
    /* Free old font if it exists */
@@ -3525,6 +3539,8 @@
    gtk_container_add(GTK_CONTAINER(frame), tmp);
    gtk_widget_show(tmp);
    gtk_widget_show(frame);
+   if(_DWDefaultFont)
+      dw_window_set_font(frame, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return frame;
 
@@ -4061,6 +4077,8 @@
    gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree);
    gtk_widget_show(tree);
 
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4085,6 +4103,8 @@
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
    gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT);
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4112,6 +4132,8 @@
    gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f);
    gtk_object_set_data(GTK_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id));
    gtk_object_set_data(GTK_OBJECT(frame), "_dw_label", (gpointer)tmp);
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return frame;
 }
@@ -4153,6 +4175,8 @@
    gtk_object_set_user_data(GTK_OBJECT(tmpbox), (gpointer)tmp);
    gtk_widget_show(tmp);
    gtk_widget_show(tmpbox);
+   if(_DWDefaultFont)
+      dw_window_set_font(tmpbox, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmpbox;
 }
@@ -4176,6 +4200,8 @@
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
 
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4200,6 +4226,8 @@
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
 
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4227,6 +4255,8 @@
    sigid = _set_signal_handler(GTK_COMBO(tmp)->list, tmp, NULL, NULL, NULL);
    cid = gtk_signal_connect(GTK_OBJECT(GTK_COMBO(tmp)->list), "select_child", GTK_SIGNAL_FUNC(_item_select_event), GINT_TO_POINTER(sigid));
    _set_signal_handler_id(GTK_COMBO(tmp)->list, sigid, cid);
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4246,6 +4276,8 @@
    tmp = gtk_button_new_with_label(text);
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4424,6 +4456,8 @@
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
    gtk_widget_show(tmp);
 
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4518,6 +4552,8 @@
    tmp = gtk_check_button_new_with_label(text);
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -4548,6 +4584,8 @@
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
 
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }
@@ -6582,6 +6620,8 @@
       gtk_clist_set_column_justification(GTK_CLIST(clist),z,justification);
    }
 
+   if(_DWDefaultFont)
+      dw_window_set_font(handle, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return DW_ERROR_NONE;
 }
@@ -7694,6 +7734,8 @@
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
    GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_FOCUS);
    gtk_widget_show(tmp);
+   if(_DWDefaultFont)
+      dw_window_set_font(tmp, _DWDefaultFont);
    DW_MUTEX_UNLOCK;
    return tmp;
 }