Mercurial > dwindows
comparison gtk3/dw.c @ 1913:5d32be499016
The GTK MDI code is filling up with deprecated calls
and it is becoming a hassle to maintain, it still
builds just with many warnings... however since
MDI is considered deprecated due to lack of support
on MacOS X, I am making the GTK MDI code build
optional with the --with-deprecated configure switch.
MDI code will still be built on Windows and OS/2...
With stub code on MacOS X... GTK will require the
--with-deprecated switch to build the code.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 19 Jun 2016 18:08:52 +0000 |
parents | 5035750bcc65 |
children | 98579be1198e |
comparison
equal
deleted
inserted
replaced
1912:5035750bcc65 | 1913:5d32be499016 |
---|---|
229 #define DW_LEFT 0.0f | 229 #define DW_LEFT 0.0f |
230 #define DW_RIGHT 1.0f | 230 #define DW_RIGHT 1.0f |
231 #define DW_TOP 0.0f | 231 #define DW_TOP 0.0f |
232 #define DW_BOTTOM 1.0f | 232 #define DW_BOTTOM 1.0f |
233 | 233 |
234 #ifdef DW_INCLUDE_DEPRECATED | |
234 /* MDI Support Code */ | 235 /* MDI Support Code */ |
235 #define GTK_MDI(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, gtk_mdi_get_type (), GtkMdi) | 236 #define GTK_MDI(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, gtk_mdi_get_type (), GtkMdi) |
236 #define GTK_MDI_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, gtk_mdi_get_type (), GtkMdiClass) | 237 #define GTK_MDI_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, gtk_mdi_get_type (), GtkMdiClass) |
237 #define GTK_IS_MDI(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_mdi_get_type ()) | 238 #define GTK_IS_MDI(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_mdi_get_type ()) |
238 | 239 |
1052 return child; | 1053 return child; |
1053 } | 1054 } |
1054 | 1055 |
1055 return NULL; | 1056 return NULL; |
1056 } | 1057 } |
1058 #endif | |
1057 | 1059 |
1058 static void _dw_msleep(long period) | 1060 static void _dw_msleep(long period) |
1059 { | 1061 { |
1060 #ifdef __sun__ | 1062 #ifdef __sun__ |
1061 /* usleep() isn't threadsafe on Solaris */ | 1063 /* usleep() isn't threadsafe on Solaris */ |
2294 * handle: The window handle to minimize. | 2296 * handle: The window handle to minimize. |
2295 */ | 2297 */ |
2296 int dw_window_minimize(HWND handle) | 2298 int dw_window_minimize(HWND handle) |
2297 { | 2299 { |
2298 int _locked_by_me = FALSE; | 2300 int _locked_by_me = FALSE; |
2301 #ifdef DW_INCLUDE_DEPRECATED | |
2299 GtkWidget *mdi = NULL; | 2302 GtkWidget *mdi = NULL; |
2303 #endif | |
2300 | 2304 |
2301 if(!handle) | 2305 if(!handle) |
2302 return 0; | 2306 return 0; |
2303 | 2307 |
2304 DW_MUTEX_LOCK; | 2308 DW_MUTEX_LOCK; |
2309 #ifdef DW_INCLUDE_DEPRECATED | |
2305 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 2310 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
2306 { | 2311 { |
2307 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); | 2312 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); |
2308 } | 2313 } |
2309 else | 2314 else |
2315 #endif | |
2310 { | 2316 { |
2311 gtk_window_iconify( GTK_WINDOW(handle) ); | 2317 gtk_window_iconify( GTK_WINDOW(handle) ); |
2312 } | 2318 } |
2313 DW_MUTEX_UNLOCK; | 2319 DW_MUTEX_UNLOCK; |
2314 return 0; | 2320 return 0; |
2357 */ | 2363 */ |
2358 int dw_window_show(HWND handle) | 2364 int dw_window_show(HWND handle) |
2359 { | 2365 { |
2360 int _locked_by_me = FALSE; | 2366 int _locked_by_me = FALSE; |
2361 GtkWidget *defaultitem; | 2367 GtkWidget *defaultitem; |
2368 #ifdef DW_INCLUDE_DEPRECATED | |
2362 GtkWidget *mdi; | 2369 GtkWidget *mdi; |
2370 #endif | |
2363 | 2371 |
2364 if (!handle) | 2372 if (!handle) |
2365 return 0; | 2373 return 0; |
2366 | 2374 |
2367 DW_MUTEX_LOCK; | 2375 DW_MUTEX_LOCK; |
2368 gtk_widget_show(handle); | 2376 gtk_widget_show(handle); |
2377 #ifdef DW_INCLUDE_DEPRECATED | |
2369 if ((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 2378 if ((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
2370 { | 2379 { |
2371 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_NORMAL); | 2380 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_NORMAL); |
2372 } | 2381 } |
2373 else | 2382 else |
2383 #endif | |
2374 { | 2384 { |
2375 GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(handle)); | 2385 GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(handle)); |
2376 if (window && gtk_widget_get_mapped(handle)) | 2386 if (window && gtk_widget_get_mapped(handle)) |
2377 { | 2387 { |
2378 int width = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_width")); | 2388 int width = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_width")); |
2419 * handle: The window handle to make visible. | 2429 * handle: The window handle to make visible. |
2420 */ | 2430 */ |
2421 int dw_window_hide(HWND handle) | 2431 int dw_window_hide(HWND handle) |
2422 { | 2432 { |
2423 int _locked_by_me = FALSE; | 2433 int _locked_by_me = FALSE; |
2434 #ifdef DW_INCLUDE_DEPRECATED | |
2424 GtkWidget *mdi = NULL; | 2435 GtkWidget *mdi = NULL; |
2436 #endif | |
2425 | 2437 |
2426 if(!handle) | 2438 if(!handle) |
2427 return 0; | 2439 return 0; |
2428 | 2440 |
2429 DW_MUTEX_LOCK; | 2441 DW_MUTEX_LOCK; |
2442 #ifdef DW_INCLUDE_DEPRECATED | |
2430 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 2443 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
2431 { | 2444 { |
2432 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); | 2445 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); |
2433 } | 2446 } |
2434 else | 2447 else |
2448 #endif | |
2435 gtk_widget_hide(handle); | 2449 gtk_widget_hide(handle); |
2436 DW_MUTEX_UNLOCK; | 2450 DW_MUTEX_UNLOCK; |
2437 return 0; | 2451 return 0; |
2438 } | 2452 } |
2439 | 2453 |
2443 * handle: The window handle to destroy. | 2457 * handle: The window handle to destroy. |
2444 */ | 2458 */ |
2445 int dw_window_destroy(HWND handle) | 2459 int dw_window_destroy(HWND handle) |
2446 { | 2460 { |
2447 int _locked_by_me = FALSE; | 2461 int _locked_by_me = FALSE; |
2462 #ifdef DW_INCLUDE_DEPRECATED | |
2448 GtkWidget *mdi = NULL; | 2463 GtkWidget *mdi = NULL; |
2464 #endif | |
2449 | 2465 |
2450 if(!handle) | 2466 if(!handle) |
2451 return 0; | 2467 return 0; |
2452 | 2468 |
2453 DW_MUTEX_LOCK; | 2469 DW_MUTEX_LOCK; |
2470 #ifdef DW_INCLUDE_DEPRECATED | |
2454 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 2471 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
2455 { | 2472 { |
2456 gtk_mdi_remove(GTK_MDI(mdi), handle); | 2473 gtk_mdi_remove(GTK_MDI(mdi), handle); |
2457 } | 2474 } |
2475 #endif | |
2458 if(GTK_IS_WIDGET(handle)) | 2476 if(GTK_IS_WIDGET(handle)) |
2459 { | 2477 { |
2460 GtkWidget *box, *handle2 = handle; | 2478 GtkWidget *box, *handle2 = handle; |
2461 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); | 2479 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
2462 | 2480 |
2949 GtkWidget *tmp; | 2967 GtkWidget *tmp; |
2950 int _locked_by_me = FALSE; | 2968 int _locked_by_me = FALSE; |
2951 int flags = 0; | 2969 int flags = 0; |
2952 | 2970 |
2953 DW_MUTEX_LOCK; | 2971 DW_MUTEX_LOCK; |
2972 #ifdef DW_INCLUDE_DEPRECATED | |
2954 if(hwndOwner && GTK_IS_MDI(hwndOwner)) | 2973 if(hwndOwner && GTK_IS_MDI(hwndOwner)) |
2955 { | 2974 { |
2956 GtkWidget *label; | 2975 GtkWidget *label; |
2957 | 2976 |
2958 tmp = dw_box_new(DW_VERT, 0); | 2977 tmp = dw_box_new(DW_VERT, 0); |
2964 g_object_set_data(G_OBJECT(tmp), "_dw_mdi", (gpointer)hwndOwner); | 2983 g_object_set_data(G_OBJECT(tmp), "_dw_mdi", (gpointer)hwndOwner); |
2965 | 2984 |
2966 gtk_mdi_put(GTK_MDI(hwndOwner), tmp, 100, 75, label); | 2985 gtk_mdi_put(GTK_MDI(hwndOwner), tmp, 100, 75, label); |
2967 } | 2986 } |
2968 else | 2987 else |
2988 #endif | |
2969 { | 2989 { |
2970 GtkWidget *box = dw_box_new(DW_VERT, 0); | 2990 GtkWidget *box = dw_box_new(DW_VERT, 0); |
2971 GtkWidget *grid = gtk_grid_new(); | 2991 GtkWidget *grid = gtk_grid_new(); |
2972 | 2992 |
2973 gtk_widget_show_all(grid); | 2993 gtk_widget_show_all(grid); |
3163 dw_window_set_font(frame, _DWDefaultFont); | 3183 dw_window_set_font(frame, _DWDefaultFont); |
3164 DW_MUTEX_UNLOCK; | 3184 DW_MUTEX_UNLOCK; |
3165 return frame; | 3185 return frame; |
3166 } | 3186 } |
3167 | 3187 |
3188 #ifdef DW_INCLUDE_DEPRECATED | |
3168 /* | 3189 /* |
3169 * Create a new MDI Frame to be packed. | 3190 * Create a new MDI Frame to be packed. |
3170 * Parameters: | 3191 * Parameters: |
3171 * id: An ID to be used with dw_window_from_id or 0L. | 3192 * id: An ID to be used with dw_window_from_id or 0L. |
3172 */ | 3193 */ |
3179 tmp = gtk_mdi_new(); | 3200 tmp = gtk_mdi_new(); |
3180 gtk_widget_show(tmp); | 3201 gtk_widget_show(tmp); |
3181 DW_MUTEX_UNLOCK; | 3202 DW_MUTEX_UNLOCK; |
3182 return tmp; | 3203 return tmp; |
3183 } | 3204 } |
3205 #endif | |
3184 | 3206 |
3185 /* | 3207 /* |
3186 * Create a bitmap object to be packed. | 3208 * Create a bitmap object to be packed. |
3187 * Parameters: | 3209 * Parameters: |
3188 * id: An ID to be used with dw_window_from_id() or 0L. | 3210 * id: An ID to be used with dw_window_from_id() or 0L. |
3757 | 3779 |
3758 DW_MUTEX_LOCK; | 3780 DW_MUTEX_LOCK; |
3759 tmp = gtk_label_new(text); | 3781 tmp = gtk_label_new(text); |
3760 | 3782 |
3761 /* Left and centered */ | 3783 /* Left and centered */ |
3762 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); | 3784 gtk_label_set_xalign(GTK_LABEL(tmp), 0.0f); |
3785 gtk_label_set_yalign(GTK_LABEL(tmp), 0.5f); | |
3763 gtk_widget_show(tmp); | 3786 gtk_widget_show(tmp); |
3764 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 3787 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
3765 gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); | |
3766 if(_DWDefaultFont) | 3788 if(_DWDefaultFont) |
3767 dw_window_set_font(tmp, _DWDefaultFont); | 3789 dw_window_set_font(tmp, _DWDefaultFont); |
3768 DW_MUTEX_UNLOCK; | 3790 DW_MUTEX_UNLOCK; |
3769 return tmp; | 3791 return tmp; |
3770 } | 3792 } |
3787 gtk_container_add(GTK_CONTAINER(frame), tmp); | 3809 gtk_container_add(GTK_CONTAINER(frame), tmp); |
3788 gtk_widget_show(tmp); | 3810 gtk_widget_show(tmp); |
3789 gtk_widget_show(frame); | 3811 gtk_widget_show(frame); |
3790 | 3812 |
3791 /* Left and centered */ | 3813 /* Left and centered */ |
3792 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); | 3814 gtk_label_set_xalign(GTK_LABEL(tmp), 0.0f); |
3815 gtk_label_set_yalign(GTK_LABEL(tmp), 0.5f); | |
3793 g_object_set_data(G_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); | 3816 g_object_set_data(G_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); |
3794 g_object_set_data(G_OBJECT(frame), "_dw_label", (gpointer)tmp); | 3817 g_object_set_data(G_OBJECT(frame), "_dw_label", (gpointer)tmp); |
3795 if(_DWDefaultFont) | 3818 if(_DWDefaultFont) |
3796 dw_window_set_font(tmp, _DWDefaultFont); | 3819 dw_window_set_font(tmp, _DWDefaultFont); |
3797 DW_MUTEX_UNLOCK; | 3820 DW_MUTEX_UNLOCK; |
9331 * y: Y location from the bottom left. | 9354 * y: Y location from the bottom left. |
9332 */ | 9355 */ |
9333 void dw_window_set_pos(HWND handle, long x, long y) | 9356 void dw_window_set_pos(HWND handle, long x, long y) |
9334 { | 9357 { |
9335 int _locked_by_me = FALSE; | 9358 int _locked_by_me = FALSE; |
9359 #ifdef DW_INCLUDE_DEPRECATED | |
9336 GtkWidget *mdi; | 9360 GtkWidget *mdi; |
9361 #endif | |
9337 | 9362 |
9338 if(!handle) | 9363 if(!handle) |
9339 return; | 9364 return; |
9340 | 9365 |
9341 DW_MUTEX_LOCK; | 9366 DW_MUTEX_LOCK; |
9367 #ifdef DW_INCLUDE_DEPRECATED | |
9342 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 9368 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
9343 { | 9369 { |
9344 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); | 9370 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); |
9345 } | 9371 } |
9346 else | 9372 else |
9373 #endif | |
9347 { | 9374 { |
9348 GdkWindow *window = NULL; | 9375 GdkWindow *window = NULL; |
9349 | 9376 |
9350 if(GTK_IS_WINDOW(handle)) | 9377 if(GTK_IS_WINDOW(handle)) |
9351 { | 9378 { |
9488 */ | 9515 */ |
9489 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) | 9516 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) |
9490 { | 9517 { |
9491 int _locked_by_me = FALSE; | 9518 int _locked_by_me = FALSE; |
9492 gint gx = 0, gy = 0, gwidth = 0, gheight = 0; | 9519 gint gx = 0, gy = 0, gwidth = 0, gheight = 0; |
9520 #ifdef DW_INCLUDE_DEPRECATED | |
9493 GtkWidget *mdi; | 9521 GtkWidget *mdi; |
9494 | 9522 #endif |
9495 DW_MUTEX_LOCK; | 9523 |
9524 DW_MUTEX_LOCK; | |
9525 #ifdef DW_INCLUDE_DEPRECATED | |
9496 /* If it is an MDI window query what we can */ | 9526 /* If it is an MDI window query what we can */ |
9497 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 9527 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
9498 { | 9528 { |
9499 gtk_mdi_get_pos(GTK_MDI(mdi), handle, &gx, &gy); | 9529 gtk_mdi_get_pos(GTK_MDI(mdi), handle, &gx, &gy); |
9500 } | 9530 } |
9501 else | 9531 else |
9532 #endif | |
9502 { | 9533 { |
9503 GdkWindow *window; | 9534 GdkWindow *window; |
9504 | 9535 |
9505 /* Can only query if the window is realized */ | 9536 /* Can only query if the window is realized */ |
9506 if(handle && (window = gtk_widget_get_window(handle))) | 9537 if(handle && (window = gtk_widget_get_window(handle))) |
9594 y = DW_CENTER; | 9625 y = DW_CENTER; |
9595 if ( style & DW_DT_TOP ) | 9626 if ( style & DW_DT_TOP ) |
9596 y = DW_TOP; | 9627 y = DW_TOP; |
9597 if ( style & DW_DT_BOTTOM ) | 9628 if ( style & DW_DT_BOTTOM ) |
9598 y = DW_BOTTOM; | 9629 y = DW_BOTTOM; |
9599 gtk_misc_set_alignment( GTK_MISC(handle2), x, y ); | 9630 gtk_label_set_xalign(GTK_LABEL(handle2), x); |
9631 gtk_label_set_yalign(GTK_LABEL(handle2), y); | |
9600 if ( style & DW_DT_WORDBREAK ) | 9632 if ( style & DW_DT_WORDBREAK ) |
9601 gtk_label_set_line_wrap( GTK_LABEL(handle), TRUE ); | 9633 gtk_label_set_line_wrap( GTK_LABEL(handle), TRUE ); |
9602 } | 9634 } |
9603 if ( GTK_IS_CHECK_MENU_ITEM(handle2) && (mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED)) ) | 9635 if ( GTK_IS_CHECK_MENU_ITEM(handle2) && (mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED)) ) |
9604 { | 9636 { |