Mercurial > dwindows
comparison 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 |
comparison
equal
deleted
inserted
replaced
1319:03f0bc85e7be | 1320:6bebcfa03b2b |
---|---|
131 pthread_key_t _dw_mutex_key; | 131 pthread_key_t _dw_mutex_key; |
132 | 132 |
133 GtkWidget *last_window = NULL, *popup = NULL; | 133 GtkWidget *last_window = NULL, *popup = NULL; |
134 GdkPixmap *_dw_tmppixmap = NULL; | 134 GdkPixmap *_dw_tmppixmap = NULL; |
135 GdkBitmap *_dw_tmpbitmap = NULL; | 135 GdkBitmap *_dw_tmpbitmap = NULL; |
136 | |
137 char *_DWDefaultFont = NULL; | |
136 | 138 |
137 #if GTK_MAJOR_VERSION < 2 | 139 #if GTK_MAJOR_VERSION < 2 |
138 static int _dw_file_active = 0; | 140 static int _dw_file_active = 0; |
139 #endif | 141 #endif |
140 static int _dw_ignore_click = 0, _dw_ignore_expand = 0, _dw_color_active = 0; | 142 static int _dw_ignore_click = 0, _dw_ignore_expand = 0, _dw_color_active = 0; |
2903 * Parameters: | 2905 * Parameters: |
2904 * fontname: Font name in Dynamic Windows format. | 2906 * fontname: Font name in Dynamic Windows format. |
2905 */ | 2907 */ |
2906 void API dw_font_set_default(char *fontname) | 2908 void API dw_font_set_default(char *fontname) |
2907 { | 2909 { |
2910 char *oldfont = _DWDefaultFont; | |
2911 | |
2912 _DWDefaultFont = strdup(fontname); | |
2913 | |
2914 if(oldfont) | |
2915 free(oldfont); | |
2908 } | 2916 } |
2909 | 2917 |
2910 /* Convert DW style font to pango style */ | 2918 /* Convert DW style font to pango style */ |
2911 void _convert_font(char *font) | 2919 void _convert_font(char *font) |
2912 { | 2920 { |
2952 } | 2960 } |
2953 /* If it is a groupox we want to operate on the frame label */ | 2961 /* If it is a groupox we want to operate on the frame label */ |
2954 else if(GTK_IS_FRAME(handle)) | 2962 else if(GTK_IS_FRAME(handle)) |
2955 { | 2963 { |
2956 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); | 2964 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); |
2965 if(tmp) | |
2966 handle2 = tmp; | |
2967 } | |
2968 else if(GTK_IS_COMBO_BOX(handle) || GTK_IS_BUTTON(handle)) | |
2969 { | |
2970 GtkWidget *tmp = gtk_bin_get_child(GTK_BIN(handle)); | |
2957 if(tmp) | 2971 if(tmp) |
2958 handle2 = tmp; | 2972 handle2 = tmp; |
2959 } | 2973 } |
2960 | 2974 |
2961 #if GTK_MAJOR_VERSION < 2 | 2975 #if GTK_MAJOR_VERSION < 2 |
3523 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_boxpad", GINT_TO_POINTER(pad)); | 3537 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_boxpad", GINT_TO_POINTER(pad)); |
3524 gtk_object_set_data(GTK_OBJECT(frame), "_dw_boxhandle", (gpointer)tmp); | 3538 gtk_object_set_data(GTK_OBJECT(frame), "_dw_boxhandle", (gpointer)tmp); |
3525 gtk_container_add(GTK_CONTAINER(frame), tmp); | 3539 gtk_container_add(GTK_CONTAINER(frame), tmp); |
3526 gtk_widget_show(tmp); | 3540 gtk_widget_show(tmp); |
3527 gtk_widget_show(frame); | 3541 gtk_widget_show(frame); |
3542 if(_DWDefaultFont) | |
3543 dw_window_set_font(frame, _DWDefaultFont); | |
3528 DW_MUTEX_UNLOCK; | 3544 DW_MUTEX_UNLOCK; |
3529 return frame; | 3545 return frame; |
3530 | 3546 |
3531 } | 3547 } |
3532 | 3548 |
4059 #endif | 4075 #endif |
4060 | 4076 |
4061 gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree); | 4077 gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree); |
4062 gtk_widget_show(tree); | 4078 gtk_widget_show(tree); |
4063 | 4079 |
4080 if(_DWDefaultFont) | |
4081 dw_window_set_font(tmp, _DWDefaultFont); | |
4064 DW_MUTEX_UNLOCK; | 4082 DW_MUTEX_UNLOCK; |
4065 return tmp; | 4083 return tmp; |
4066 } | 4084 } |
4067 | 4085 |
4068 | 4086 |
4083 /* Left and centered */ | 4101 /* Left and centered */ |
4084 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); | 4102 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); |
4085 gtk_widget_show(tmp); | 4103 gtk_widget_show(tmp); |
4086 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4104 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4087 gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); | 4105 gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); |
4106 if(_DWDefaultFont) | |
4107 dw_window_set_font(tmp, _DWDefaultFont); | |
4088 DW_MUTEX_UNLOCK; | 4108 DW_MUTEX_UNLOCK; |
4089 return tmp; | 4109 return tmp; |
4090 } | 4110 } |
4091 | 4111 |
4092 /* | 4112 /* |
4110 | 4130 |
4111 /* Left and centered */ | 4131 /* Left and centered */ |
4112 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); | 4132 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); |
4113 gtk_object_set_data(GTK_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); | 4133 gtk_object_set_data(GTK_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); |
4114 gtk_object_set_data(GTK_OBJECT(frame), "_dw_label", (gpointer)tmp); | 4134 gtk_object_set_data(GTK_OBJECT(frame), "_dw_label", (gpointer)tmp); |
4135 if(_DWDefaultFont) | |
4136 dw_window_set_font(tmp, _DWDefaultFont); | |
4115 DW_MUTEX_UNLOCK; | 4137 DW_MUTEX_UNLOCK; |
4116 return frame; | 4138 return frame; |
4117 } | 4139 } |
4118 | 4140 |
4119 /* | 4141 /* |
4151 #endif | 4173 #endif |
4152 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4174 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4153 gtk_object_set_user_data(GTK_OBJECT(tmpbox), (gpointer)tmp); | 4175 gtk_object_set_user_data(GTK_OBJECT(tmpbox), (gpointer)tmp); |
4154 gtk_widget_show(tmp); | 4176 gtk_widget_show(tmp); |
4155 gtk_widget_show(tmpbox); | 4177 gtk_widget_show(tmpbox); |
4178 if(_DWDefaultFont) | |
4179 dw_window_set_font(tmpbox, _DWDefaultFont); | |
4156 DW_MUTEX_UNLOCK; | 4180 DW_MUTEX_UNLOCK; |
4157 return tmpbox; | 4181 return tmpbox; |
4158 } | 4182 } |
4159 | 4183 |
4160 /* | 4184 /* |
4174 gtk_entry_set_text(GTK_ENTRY(tmp), text); | 4198 gtk_entry_set_text(GTK_ENTRY(tmp), text); |
4175 | 4199 |
4176 gtk_widget_show(tmp); | 4200 gtk_widget_show(tmp); |
4177 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4201 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4178 | 4202 |
4203 if(_DWDefaultFont) | |
4204 dw_window_set_font(tmp, _DWDefaultFont); | |
4179 DW_MUTEX_UNLOCK; | 4205 DW_MUTEX_UNLOCK; |
4180 return tmp; | 4206 return tmp; |
4181 } | 4207 } |
4182 | 4208 |
4183 /* | 4209 /* |
4198 gtk_entry_set_text(GTK_ENTRY(tmp), text); | 4224 gtk_entry_set_text(GTK_ENTRY(tmp), text); |
4199 | 4225 |
4200 gtk_widget_show(tmp); | 4226 gtk_widget_show(tmp); |
4201 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4227 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4202 | 4228 |
4229 if(_DWDefaultFont) | |
4230 dw_window_set_font(tmp, _DWDefaultFont); | |
4203 DW_MUTEX_UNLOCK; | 4231 DW_MUTEX_UNLOCK; |
4204 return tmp; | 4232 return tmp; |
4205 } | 4233 } |
4206 | 4234 |
4207 /* | 4235 /* |
4225 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4253 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4226 | 4254 |
4227 sigid = _set_signal_handler(GTK_COMBO(tmp)->list, tmp, NULL, NULL, NULL); | 4255 sigid = _set_signal_handler(GTK_COMBO(tmp)->list, tmp, NULL, NULL, NULL); |
4228 cid = gtk_signal_connect(GTK_OBJECT(GTK_COMBO(tmp)->list), "select_child", GTK_SIGNAL_FUNC(_item_select_event), GINT_TO_POINTER(sigid)); | 4256 cid = gtk_signal_connect(GTK_OBJECT(GTK_COMBO(tmp)->list), "select_child", GTK_SIGNAL_FUNC(_item_select_event), GINT_TO_POINTER(sigid)); |
4229 _set_signal_handler_id(GTK_COMBO(tmp)->list, sigid, cid); | 4257 _set_signal_handler_id(GTK_COMBO(tmp)->list, sigid, cid); |
4258 if(_DWDefaultFont) | |
4259 dw_window_set_font(tmp, _DWDefaultFont); | |
4230 DW_MUTEX_UNLOCK; | 4260 DW_MUTEX_UNLOCK; |
4231 return tmp; | 4261 return tmp; |
4232 } | 4262 } |
4233 | 4263 |
4234 /* | 4264 /* |
4244 | 4274 |
4245 DW_MUTEX_LOCK; | 4275 DW_MUTEX_LOCK; |
4246 tmp = gtk_button_new_with_label(text); | 4276 tmp = gtk_button_new_with_label(text); |
4247 gtk_widget_show(tmp); | 4277 gtk_widget_show(tmp); |
4248 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4278 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4279 if(_DWDefaultFont) | |
4280 dw_window_set_font(tmp, _DWDefaultFont); | |
4249 DW_MUTEX_UNLOCK; | 4281 DW_MUTEX_UNLOCK; |
4250 return tmp; | 4282 return tmp; |
4251 } | 4283 } |
4252 | 4284 |
4253 /* | 4285 /* |
4422 DW_MUTEX_LOCK; | 4454 DW_MUTEX_LOCK; |
4423 tmp = gtk_radio_button_new_with_label(NULL, text); | 4455 tmp = gtk_radio_button_new_with_label(NULL, text); |
4424 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4456 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4425 gtk_widget_show(tmp); | 4457 gtk_widget_show(tmp); |
4426 | 4458 |
4459 if(_DWDefaultFont) | |
4460 dw_window_set_font(tmp, _DWDefaultFont); | |
4427 DW_MUTEX_UNLOCK; | 4461 DW_MUTEX_UNLOCK; |
4428 return tmp; | 4462 return tmp; |
4429 } | 4463 } |
4430 | 4464 |
4431 /* | 4465 /* |
4516 | 4550 |
4517 DW_MUTEX_LOCK; | 4551 DW_MUTEX_LOCK; |
4518 tmp = gtk_check_button_new_with_label(text); | 4552 tmp = gtk_check_button_new_with_label(text); |
4519 gtk_widget_show(tmp); | 4553 gtk_widget_show(tmp); |
4520 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4554 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4555 if(_DWDefaultFont) | |
4556 dw_window_set_font(tmp, _DWDefaultFont); | |
4521 DW_MUTEX_UNLOCK; | 4557 DW_MUTEX_UNLOCK; |
4522 return tmp; | 4558 return tmp; |
4523 } | 4559 } |
4524 | 4560 |
4525 /* | 4561 /* |
4546 gtk_object_set_user_data(GTK_OBJECT(tmp), list); | 4582 gtk_object_set_user_data(GTK_OBJECT(tmp), list); |
4547 gtk_widget_show(list); | 4583 gtk_widget_show(list); |
4548 gtk_widget_show(tmp); | 4584 gtk_widget_show(tmp); |
4549 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4585 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4550 | 4586 |
4587 if(_DWDefaultFont) | |
4588 dw_window_set_font(tmp, _DWDefaultFont); | |
4551 DW_MUTEX_UNLOCK; | 4589 DW_MUTEX_UNLOCK; |
4552 return tmp; | 4590 return tmp; |
4553 } | 4591 } |
4554 | 4592 |
4555 /* | 4593 /* |
6580 else | 6618 else |
6581 justification = GTK_JUSTIFY_LEFT; | 6619 justification = GTK_JUSTIFY_LEFT; |
6582 gtk_clist_set_column_justification(GTK_CLIST(clist),z,justification); | 6620 gtk_clist_set_column_justification(GTK_CLIST(clist),z,justification); |
6583 } | 6621 } |
6584 | 6622 |
6623 if(_DWDefaultFont) | |
6624 dw_window_set_font(handle, _DWDefaultFont); | |
6585 DW_MUTEX_UNLOCK; | 6625 DW_MUTEX_UNLOCK; |
6586 return DW_ERROR_NONE; | 6626 return DW_ERROR_NONE; |
6587 } | 6627 } |
6588 | 6628 |
6589 /* | 6629 /* |
7692 | GDK_POINTER_MOTION_MASK | 7732 | GDK_POINTER_MOTION_MASK |
7693 | GDK_POINTER_MOTION_HINT_MASK); | 7733 | GDK_POINTER_MOTION_HINT_MASK); |
7694 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 7734 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
7695 GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_FOCUS); | 7735 GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_FOCUS); |
7696 gtk_widget_show(tmp); | 7736 gtk_widget_show(tmp); |
7737 if(_DWDefaultFont) | |
7738 dw_window_set_font(tmp, _DWDefaultFont); | |
7697 DW_MUTEX_UNLOCK; | 7739 DW_MUTEX_UNLOCK; |
7698 return tmp; | 7740 return tmp; |
7699 } | 7741 } |
7700 | 7742 |
7701 /* Returns a GdkColor from a DW color */ | 7743 /* Returns a GdkColor from a DW color */ |