Mercurial > dwindows
comparison gtk/dw.c @ 2749:1f2c4f7aca4b
GTK2/3: Fix warnings calling pthread_setspecific() with a non-pointer value
using gcc 11. Also update the readme with similar information on dw_exec()
as I had previous added for Mac. Renamed _locked_by_me to _dw_locked_by_me
used by the thread safety macros to show these are internal DW variables.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 28 Dec 2021 11:41:33 +0000 |
parents | 650f8b062317 |
children | c77974083ba1 |
comparison
equal
deleted
inserted
replaced
2748:d8db838d5616 | 2749:1f2c4f7aca4b |
---|---|
135 static int _dw_file_active = 0; | 135 static int _dw_file_active = 0; |
136 #endif | 136 #endif |
137 static int _dw_ignore_click = 0, _dw_ignore_expand = 0, _dw_color_active = 0; | 137 static int _dw_ignore_click = 0, _dw_ignore_expand = 0, _dw_color_active = 0; |
138 static pthread_t _dw_thread = (pthread_t)-1; | 138 static pthread_t _dw_thread = (pthread_t)-1; |
139 | 139 |
140 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && !pthread_getspecific(_dw_mutex_key)) { gdk_threads_enter(); pthread_setspecific(_dw_mutex_key, (void *)1); _locked_by_me = TRUE; } } | 140 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && !pthread_getspecific(_dw_mutex_key)) { gdk_threads_enter(); pthread_setspecific(_dw_mutex_key, (void *)&_dw_locked_by_me); _dw_locked_by_me = TRUE; } } |
141 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _locked_by_me == TRUE) { gdk_threads_leave(); pthread_setspecific(_dw_mutex_key, NULL); _locked_by_me = FALSE; } } | 141 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _dw_locked_by_me == TRUE) { gdk_threads_leave(); pthread_setspecific(_dw_mutex_key, NULL); _dw_locked_by_me = FALSE; } } |
142 | 142 |
143 #define DEFAULT_SIZE_WIDTH 12 | 143 #define DEFAULT_SIZE_WIDTH 12 |
144 #define DEFAULT_SIZE_HEIGHT 6 | 144 #define DEFAULT_SIZE_HEIGHT 6 |
145 #define DEFAULT_TITLEBAR_HEIGHT 22 | 145 #define DEFAULT_TITLEBAR_HEIGHT 22 |
146 | 146 |
2277 | 2277 |
2278 gettimeofday(&tv, NULL); | 2278 gettimeofday(&tv, NULL); |
2279 | 2279 |
2280 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) | 2280 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) |
2281 { | 2281 { |
2282 int _locked_by_me = FALSE; | 2282 int _dw_locked_by_me = FALSE; |
2283 | 2283 |
2284 if(orig == (pthread_t)-1) | 2284 if(orig == (pthread_t)-1) |
2285 { | 2285 { |
2286 if(!pthread_getspecific(_dw_mutex_key)) | 2286 if(!pthread_getspecific(_dw_mutex_key)) |
2287 { | 2287 { |
2288 gdk_threads_enter(); | 2288 gdk_threads_enter(); |
2289 pthread_setspecific(_dw_mutex_key, (void *)1); | 2289 pthread_setspecific(_dw_mutex_key, (void *)1); |
2290 _locked_by_me = TRUE; | 2290 _dw_locked_by_me = TRUE; |
2291 } | 2291 } |
2292 _dw_thread = curr; | 2292 _dw_thread = curr; |
2293 } | 2293 } |
2294 if(curr == _dw_thread && gtk_events_pending()) | 2294 if(curr == _dw_thread && gtk_events_pending()) |
2295 gtk_main_iteration(); | 2295 gtk_main_iteration(); |
2296 else | 2296 else |
2297 _dw_msleep(1); | 2297 _dw_msleep(1); |
2298 if(orig == (pthread_t)-1) | 2298 if(orig == (pthread_t)-1) |
2299 { | 2299 { |
2300 _dw_thread = orig; | 2300 _dw_thread = orig; |
2301 if(_locked_by_me) | 2301 if(_dw_locked_by_me) |
2302 { | 2302 { |
2303 pthread_setspecific(_dw_mutex_key, NULL); | 2303 pthread_setspecific(_dw_mutex_key, NULL); |
2304 gdk_threads_leave(); | 2304 gdk_threads_leave(); |
2305 } | 2305 } |
2306 } | 2306 } |
2316 */ | 2316 */ |
2317 void API dw_main_iteration(void) | 2317 void API dw_main_iteration(void) |
2318 { | 2318 { |
2319 pthread_t orig = _dw_thread; | 2319 pthread_t orig = _dw_thread; |
2320 pthread_t curr = pthread_self(); | 2320 pthread_t curr = pthread_self(); |
2321 int _locked_by_me = FALSE; | 2321 int _dw_locked_by_me = FALSE; |
2322 | 2322 |
2323 if(_dw_thread == (pthread_t)-1) | 2323 if(_dw_thread == (pthread_t)-1) |
2324 { | 2324 { |
2325 if(!pthread_getspecific(_dw_mutex_key)) | 2325 if(!pthread_getspecific(_dw_mutex_key)) |
2326 { | 2326 { |
2327 gdk_threads_enter(); | 2327 gdk_threads_enter(); |
2328 pthread_setspecific(_dw_mutex_key, (void *)1); | 2328 pthread_setspecific(_dw_mutex_key, (void *)1); |
2329 _locked_by_me = TRUE; | 2329 _dw_locked_by_me = TRUE; |
2330 } | 2330 } |
2331 _dw_thread = curr; | 2331 _dw_thread = curr; |
2332 } | 2332 } |
2333 if(curr == _dw_thread && gtk_events_pending()) | 2333 if(curr == _dw_thread && gtk_events_pending()) |
2334 gtk_main_iteration(); | 2334 gtk_main_iteration(); |
2335 else | 2335 else |
2336 sched_yield(); | 2336 sched_yield(); |
2337 if(orig == (pthread_t)-1) | 2337 if(orig == (pthread_t)-1) |
2338 { | 2338 { |
2339 _dw_thread = orig; | 2339 _dw_thread = orig; |
2340 if(_locked_by_me) | 2340 if(_dw_locked_by_me) |
2341 { | 2341 { |
2342 pthread_setspecific(_dw_mutex_key, NULL); | 2342 pthread_setspecific(_dw_mutex_key, NULL); |
2343 gdk_threads_leave(); | 2343 gdk_threads_leave(); |
2344 } | 2344 } |
2345 } | 2345 } |
2669 * Parameters: | 2669 * Parameters: |
2670 * handle: The window handle to minimize. | 2670 * handle: The window handle to minimize. |
2671 */ | 2671 */ |
2672 int dw_window_minimize(HWND handle) | 2672 int dw_window_minimize(HWND handle) |
2673 { | 2673 { |
2674 int _locked_by_me = FALSE; | 2674 int _dw_locked_by_me = FALSE; |
2675 #if GTK_MAJOR_VERSION > 1 | 2675 #if GTK_MAJOR_VERSION > 1 |
2676 GtkWidget *mdi = NULL; | 2676 GtkWidget *mdi = NULL; |
2677 #endif | 2677 #endif |
2678 | 2678 |
2679 if(!handle) | 2679 if(!handle) |
2705 * Parameters: | 2705 * Parameters: |
2706 * handle: The window handle to make topmost. | 2706 * handle: The window handle to make topmost. |
2707 */ | 2707 */ |
2708 int dw_window_raise(HWND handle) | 2708 int dw_window_raise(HWND handle) |
2709 { | 2709 { |
2710 int _locked_by_me = FALSE; | 2710 int _dw_locked_by_me = FALSE; |
2711 | 2711 |
2712 if(!handle) | 2712 if(!handle) |
2713 return 0; | 2713 return 0; |
2714 | 2714 |
2715 DW_MUTEX_LOCK; | 2715 DW_MUTEX_LOCK; |
2723 * Parameters: | 2723 * Parameters: |
2724 * handle: The window handle to make bottommost. | 2724 * handle: The window handle to make bottommost. |
2725 */ | 2725 */ |
2726 int dw_window_lower(HWND handle) | 2726 int dw_window_lower(HWND handle) |
2727 { | 2727 { |
2728 int _locked_by_me = FALSE; | 2728 int _dw_locked_by_me = FALSE; |
2729 | 2729 |
2730 if(!handle) | 2730 if(!handle) |
2731 return 0; | 2731 return 0; |
2732 | 2732 |
2733 DW_MUTEX_LOCK; | 2733 DW_MUTEX_LOCK; |
2741 * Parameters: | 2741 * Parameters: |
2742 * handle: The window handle to make visible. | 2742 * handle: The window handle to make visible. |
2743 */ | 2743 */ |
2744 int dw_window_show(HWND handle) | 2744 int dw_window_show(HWND handle) |
2745 { | 2745 { |
2746 int _locked_by_me = FALSE; | 2746 int _dw_locked_by_me = FALSE; |
2747 GtkWidget *defaultitem; | 2747 GtkWidget *defaultitem; |
2748 int x = 0, y = 0; | 2748 int x = 0, y = 0; |
2749 #if GTK_MAJOR_VERSION > 1 | 2749 #if GTK_MAJOR_VERSION > 1 |
2750 GtkWidget *mdi; | 2750 GtkWidget *mdi; |
2751 #endif | 2751 #endif |
2828 * Parameters: | 2828 * Parameters: |
2829 * handle: The window handle to make visible. | 2829 * handle: The window handle to make visible. |
2830 */ | 2830 */ |
2831 int dw_window_hide(HWND handle) | 2831 int dw_window_hide(HWND handle) |
2832 { | 2832 { |
2833 int _locked_by_me = FALSE; | 2833 int _dw_locked_by_me = FALSE; |
2834 #if GTK_MAJOR_VERSION > 1 | 2834 #if GTK_MAJOR_VERSION > 1 |
2835 GtkWidget *mdi = NULL; | 2835 GtkWidget *mdi = NULL; |
2836 #endif | 2836 #endif |
2837 | 2837 |
2838 if(!handle) | 2838 if(!handle) |
2889 * Parameters: | 2889 * Parameters: |
2890 * handle: The window handle to destroy. | 2890 * handle: The window handle to destroy. |
2891 */ | 2891 */ |
2892 int dw_window_destroy(HWND handle) | 2892 int dw_window_destroy(HWND handle) |
2893 { | 2893 { |
2894 int _locked_by_me = FALSE; | 2894 int _dw_locked_by_me = FALSE; |
2895 #if GTK_MAJOR_VERSION > 1 | 2895 #if GTK_MAJOR_VERSION > 1 |
2896 GtkWidget *mdi = NULL; | 2896 GtkWidget *mdi = NULL; |
2897 #endif | 2897 #endif |
2898 | 2898 |
2899 if(!handle) | 2899 if(!handle) |
2971 * handle: The window handle to destroy. | 2971 * handle: The window handle to destroy. |
2972 * newparent: The window's new parent window. | 2972 * newparent: The window's new parent window. |
2973 */ | 2973 */ |
2974 void dw_window_reparent(HWND handle, HWND newparent) | 2974 void dw_window_reparent(HWND handle, HWND newparent) |
2975 { | 2975 { |
2976 int _locked_by_me = FALSE; | 2976 int _dw_locked_by_me = FALSE; |
2977 | 2977 |
2978 DW_MUTEX_LOCK; | 2978 DW_MUTEX_LOCK; |
2979 gdk_window_reparent(GTK_WIDGET(handle)->window, newparent ? GTK_WIDGET(newparent)->window : GDK_ROOT_PARENT(), 0, 0); | 2979 gdk_window_reparent(GTK_WIDGET(handle)->window, newparent ? GTK_WIDGET(newparent)->window : GDK_ROOT_PARENT(), 0, 0); |
2980 DW_MUTEX_UNLOCK; | 2980 DW_MUTEX_UNLOCK; |
2981 } | 2981 } |
3076 char * API dw_font_choose(const char *currfont) | 3076 char * API dw_font_choose(const char *currfont) |
3077 { | 3077 { |
3078 GtkFontSelectionDialog *fd; | 3078 GtkFontSelectionDialog *fd; |
3079 char *font = currfont ? strdup(currfont) : NULL; | 3079 char *font = currfont ? strdup(currfont) : NULL; |
3080 char *name = font ? strchr(font, '.') : NULL; | 3080 char *name = font ? strchr(font, '.') : NULL; |
3081 int _locked_by_me = FALSE; | 3081 int _dw_locked_by_me = FALSE; |
3082 char *retfont = NULL; | 3082 char *retfont = NULL; |
3083 DWDialog *dwwait; | 3083 DWDialog *dwwait; |
3084 | 3084 |
3085 /* Detect Dynamic Windows style font name... | 3085 /* Detect Dynamic Windows style font name... |
3086 * Format: ##.Fontname | 3086 * Format: ##.Fontname |
3172 #else | 3172 #else |
3173 GdkFont *gdkfont; | 3173 GdkFont *gdkfont; |
3174 #endif | 3174 #endif |
3175 GtkWidget *handle2 = handle; | 3175 GtkWidget *handle2 = handle; |
3176 char *font = fontname ? strdup(fontname) : NULL; | 3176 char *font = fontname ? strdup(fontname) : NULL; |
3177 int _locked_by_me = FALSE; | 3177 int _dw_locked_by_me = FALSE; |
3178 gpointer data; | 3178 gpointer data; |
3179 | 3179 |
3180 DW_MUTEX_LOCK; | 3180 DW_MUTEX_LOCK; |
3181 if(GTK_IS_SCROLLED_WINDOW(handle)) | 3181 if(GTK_IS_SCROLLED_WINDOW(handle)) |
3182 { | 3182 { |
3256 GdkFont *gdkfont; | 3256 GdkFont *gdkfont; |
3257 #endif | 3257 #endif |
3258 GtkWidget *handle2 = handle; | 3258 GtkWidget *handle2 = handle; |
3259 char *font; | 3259 char *font; |
3260 char *retfont=NULL; | 3260 char *retfont=NULL; |
3261 int _locked_by_me = FALSE; | 3261 int _dw_locked_by_me = FALSE; |
3262 | 3262 |
3263 DW_MUTEX_LOCK; | 3263 DW_MUTEX_LOCK; |
3264 if(GTK_IS_SCROLLED_WINDOW(handle)) | 3264 if(GTK_IS_SCROLLED_WINDOW(handle)) |
3265 { | 3265 { |
3266 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 3266 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
3466 * back: Background color in RGB format. | 3466 * back: Background color in RGB format. |
3467 */ | 3467 */ |
3468 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back) | 3468 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back) |
3469 { | 3469 { |
3470 GtkWidget *handle2 = handle; | 3470 GtkWidget *handle2 = handle; |
3471 int _locked_by_me = FALSE; | 3471 int _dw_locked_by_me = FALSE; |
3472 | 3472 |
3473 DW_MUTEX_LOCK; | 3473 DW_MUTEX_LOCK; |
3474 | 3474 |
3475 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle)) | 3475 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle)) |
3476 { | 3476 { |
3508 * Parameters: | 3508 * Parameters: |
3509 * handle: Handle to receive mouse input. | 3509 * handle: Handle to receive mouse input. |
3510 */ | 3510 */ |
3511 void dw_window_capture(HWND handle) | 3511 void dw_window_capture(HWND handle) |
3512 { | 3512 { |
3513 int _locked_by_me = FALSE; | 3513 int _dw_locked_by_me = FALSE; |
3514 | 3514 |
3515 DW_MUTEX_LOCK; | 3515 DW_MUTEX_LOCK; |
3516 gdk_pointer_grab(handle->window, TRUE, GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK, NULL, NULL, GDK_CURRENT_TIME); | 3516 gdk_pointer_grab(handle->window, TRUE, GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK, NULL, NULL, GDK_CURRENT_TIME); |
3517 DW_MUTEX_UNLOCK; | 3517 DW_MUTEX_UNLOCK; |
3518 } | 3518 } |
3523 * handle: Handle to widget for which to change. | 3523 * handle: Handle to widget for which to change. |
3524 * cursortype: ID of the pointer you want. | 3524 * cursortype: ID of the pointer you want. |
3525 */ | 3525 */ |
3526 void dw_window_set_pointer(HWND handle, int pointertype) | 3526 void dw_window_set_pointer(HWND handle, int pointertype) |
3527 { | 3527 { |
3528 int _locked_by_me = FALSE; | 3528 int _dw_locked_by_me = FALSE; |
3529 GdkCursor *cursor; | 3529 GdkCursor *cursor; |
3530 | 3530 |
3531 DW_MUTEX_LOCK; | 3531 DW_MUTEX_LOCK; |
3532 if(pointertype & (1 << 31)) | 3532 if(pointertype & (1 << 31)) |
3533 { | 3533 { |
3549 /* | 3549 /* |
3550 * Releases previous mouse capture. | 3550 * Releases previous mouse capture. |
3551 */ | 3551 */ |
3552 void dw_window_release(void) | 3552 void dw_window_release(void) |
3553 { | 3553 { |
3554 int _locked_by_me = FALSE; | 3554 int _dw_locked_by_me = FALSE; |
3555 | 3555 |
3556 DW_MUTEX_LOCK; | 3556 DW_MUTEX_LOCK; |
3557 gdk_pointer_ungrab(GDK_CURRENT_TIME); | 3557 gdk_pointer_ungrab(GDK_CURRENT_TIME); |
3558 DW_MUTEX_UNLOCK; | 3558 DW_MUTEX_UNLOCK; |
3559 } | 3559 } |
3566 * flStyle: Style flags, see the PM reference. | 3566 * flStyle: Style flags, see the PM reference. |
3567 */ | 3567 */ |
3568 HWND dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle) | 3568 HWND dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle) |
3569 { | 3569 { |
3570 GtkWidget *tmp; | 3570 GtkWidget *tmp; |
3571 int _locked_by_me = FALSE; | 3571 int _dw_locked_by_me = FALSE; |
3572 int flags = 0; | 3572 int flags = 0; |
3573 | 3573 |
3574 DW_MUTEX_LOCK; | 3574 DW_MUTEX_LOCK; |
3575 #if GTK_MAJOR_VERSION > 1 | 3575 #if GTK_MAJOR_VERSION > 1 |
3576 if(hwndOwner && GTK_IS_MDI(hwndOwner)) | 3576 if(hwndOwner && GTK_IS_MDI(hwndOwner)) |
3656 * pad: Number of pixels to pad around the box. | 3656 * pad: Number of pixels to pad around the box. |
3657 */ | 3657 */ |
3658 HWND dw_box_new(int type, int pad) | 3658 HWND dw_box_new(int type, int pad) |
3659 { | 3659 { |
3660 GtkWidget *tmp, *eventbox; | 3660 GtkWidget *tmp, *eventbox; |
3661 int _locked_by_me = FALSE; | 3661 int _dw_locked_by_me = FALSE; |
3662 | 3662 |
3663 DW_MUTEX_LOCK; | 3663 DW_MUTEX_LOCK; |
3664 tmp = gtk_table_new(1, 1, FALSE); | 3664 tmp = gtk_table_new(1, 1, FALSE); |
3665 eventbox = gtk_event_box_new(); | 3665 eventbox = gtk_event_box_new(); |
3666 | 3666 |
3680 * pad: Number of pixels to pad around the box. | 3680 * pad: Number of pixels to pad around the box. |
3681 */ | 3681 */ |
3682 HWND dw_scrollbox_new( int type, int pad ) | 3682 HWND dw_scrollbox_new( int type, int pad ) |
3683 { | 3683 { |
3684 GtkWidget *tmp, *box, *eventbox; | 3684 GtkWidget *tmp, *box, *eventbox; |
3685 int _locked_by_me = FALSE; | 3685 int _dw_locked_by_me = FALSE; |
3686 | 3686 |
3687 DW_MUTEX_LOCK; | 3687 DW_MUTEX_LOCK; |
3688 tmp = gtk_scrolled_window_new(NULL, NULL); | 3688 tmp = gtk_scrolled_window_new(NULL, NULL); |
3689 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | 3689 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
3690 | 3690 |
3712 * handle: Handle to the scrollbox to be queried. | 3712 * handle: Handle to the scrollbox to be queried. |
3713 * orient: The vertical or horizontal scrollbar. | 3713 * orient: The vertical or horizontal scrollbar. |
3714 */ | 3714 */ |
3715 int dw_scrollbox_get_pos(HWND handle, int orient) | 3715 int dw_scrollbox_get_pos(HWND handle, int orient) |
3716 { | 3716 { |
3717 int val = -1, _locked_by_me = FALSE; | 3717 int val = -1, _dw_locked_by_me = FALSE; |
3718 GtkAdjustment *adjustment; | 3718 GtkAdjustment *adjustment; |
3719 | 3719 |
3720 if (!handle) | 3720 if (!handle) |
3721 return -1; | 3721 return -1; |
3722 | 3722 |
3737 * handle: Handle to the scrollbox to be queried. | 3737 * handle: Handle to the scrollbox to be queried. |
3738 * orient: The vertical or horizontal scrollbar. | 3738 * orient: The vertical or horizontal scrollbar. |
3739 */ | 3739 */ |
3740 int API dw_scrollbox_get_range(HWND handle, int orient) | 3740 int API dw_scrollbox_get_range(HWND handle, int orient) |
3741 { | 3741 { |
3742 int range = -1, _locked_by_me = FALSE; | 3742 int range = -1, _dw_locked_by_me = FALSE; |
3743 GtkAdjustment *adjustment; | 3743 GtkAdjustment *adjustment; |
3744 | 3744 |
3745 if (!handle) | 3745 if (!handle) |
3746 return -1; | 3746 return -1; |
3747 | 3747 |
3766 * title: Text to be displayined in the group outline. | 3766 * title: Text to be displayined in the group outline. |
3767 */ | 3767 */ |
3768 HWND dw_groupbox_new(int type, int pad, const char *title) | 3768 HWND dw_groupbox_new(int type, int pad, const char *title) |
3769 { | 3769 { |
3770 GtkWidget *tmp, *frame; | 3770 GtkWidget *tmp, *frame; |
3771 int _locked_by_me = FALSE; | 3771 int _dw_locked_by_me = FALSE; |
3772 | 3772 |
3773 DW_MUTEX_LOCK; | 3773 DW_MUTEX_LOCK; |
3774 frame = gtk_frame_new(NULL); | 3774 frame = gtk_frame_new(NULL); |
3775 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); | 3775 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); |
3776 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL); | 3776 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL); |
3795 * id: An ID to be used with dw_window_from_id or 0L. | 3795 * id: An ID to be used with dw_window_from_id or 0L. |
3796 */ | 3796 */ |
3797 HWND dw_mdi_new(unsigned long id) | 3797 HWND dw_mdi_new(unsigned long id) |
3798 { | 3798 { |
3799 GtkWidget *tmp; | 3799 GtkWidget *tmp; |
3800 int _locked_by_me = FALSE; | 3800 int _dw_locked_by_me = FALSE; |
3801 | 3801 |
3802 DW_MUTEX_LOCK; | 3802 DW_MUTEX_LOCK; |
3803 #if GTK_MAJOR_VERSION > 1 | 3803 #if GTK_MAJOR_VERSION > 1 |
3804 tmp = gtk_mdi_new(); | 3804 tmp = gtk_mdi_new(); |
3805 #else | 3805 #else |
3816 * id: An ID to be used with dw_window_from_id() or 0L. | 3816 * id: An ID to be used with dw_window_from_id() or 0L. |
3817 */ | 3817 */ |
3818 HWND dw_bitmap_new(unsigned long id) | 3818 HWND dw_bitmap_new(unsigned long id) |
3819 { | 3819 { |
3820 GtkWidget *tmp; | 3820 GtkWidget *tmp; |
3821 int _locked_by_me = FALSE; | 3821 int _dw_locked_by_me = FALSE; |
3822 | 3822 |
3823 DW_MUTEX_LOCK; | 3823 DW_MUTEX_LOCK; |
3824 #if GTK_MAJOR_VERSION > 1 | 3824 #if GTK_MAJOR_VERSION > 1 |
3825 tmp = gtk_image_new(); | 3825 tmp = gtk_image_new(); |
3826 #else | 3826 #else |
3839 * resource file. | 3839 * resource file. |
3840 */ | 3840 */ |
3841 HWND dw_notebook_new(unsigned long id, int top) | 3841 HWND dw_notebook_new(unsigned long id, int top) |
3842 { | 3842 { |
3843 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256); | 3843 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256); |
3844 int _locked_by_me = FALSE; | 3844 int _dw_locked_by_me = FALSE; |
3845 | 3845 |
3846 DW_MUTEX_LOCK; | 3846 DW_MUTEX_LOCK; |
3847 tmp = gtk_notebook_new(); | 3847 tmp = gtk_notebook_new(); |
3848 if(top) | 3848 if(top) |
3849 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); | 3849 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); |
3866 * id: An ID to be used for getting the resource from the | 3866 * id: An ID to be used for getting the resource from the |
3867 * resource file. | 3867 * resource file. |
3868 */ | 3868 */ |
3869 HMENUI dw_menu_new(unsigned long id) | 3869 HMENUI dw_menu_new(unsigned long id) |
3870 { | 3870 { |
3871 int _locked_by_me = FALSE; | 3871 int _dw_locked_by_me = FALSE; |
3872 GtkAccelGroup *accel_group; | 3872 GtkAccelGroup *accel_group; |
3873 HMENUI tmp; | 3873 HMENUI tmp; |
3874 | 3874 |
3875 DW_MUTEX_LOCK; | 3875 DW_MUTEX_LOCK; |
3876 tmp = gtk_menu_new(); | 3876 tmp = gtk_menu_new(); |
3889 * If there is no box already packed into the "location", the menu will not appear | 3889 * If there is no box already packed into the "location", the menu will not appear |
3890 * so tell the user. | 3890 * so tell the user. |
3891 */ | 3891 */ |
3892 HMENUI dw_menubar_new(HWND location) | 3892 HMENUI dw_menubar_new(HWND location) |
3893 { | 3893 { |
3894 int _locked_by_me = FALSE; | 3894 int _dw_locked_by_me = FALSE; |
3895 GtkAccelGroup *accel_group; | 3895 GtkAccelGroup *accel_group; |
3896 GtkWidget *box; | 3896 GtkWidget *box; |
3897 HMENUI tmp = 0; | 3897 HMENUI tmp = 0; |
3898 | 3898 |
3899 DW_MUTEX_LOCK; | 3899 DW_MUTEX_LOCK; |
3925 */ | 3925 */ |
3926 void dw_menu_destroy(HMENUI *menu) | 3926 void dw_menu_destroy(HMENUI *menu) |
3927 { | 3927 { |
3928 if(menu && *menu) | 3928 if(menu && *menu) |
3929 { | 3929 { |
3930 int _locked_by_me = FALSE; | 3930 int _dw_locked_by_me = FALSE; |
3931 GtkWidget *window; | 3931 GtkWidget *window; |
3932 | 3932 |
3933 DW_MUTEX_LOCK; | 3933 DW_MUTEX_LOCK; |
3934 /* If it is a menu bar, try to delete the reference to it */ | 3934 /* If it is a menu bar, try to delete the reference to it */ |
3935 if(GTK_IS_MENU_BAR(*menu) && | 3935 if(GTK_IS_MENU_BAR(*menu) && |
3978 */ | 3978 */ |
3979 HWND dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu) | 3979 HWND dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu) |
3980 { | 3980 { |
3981 GtkWidget *tmphandle; | 3981 GtkWidget *tmphandle; |
3982 char accel, *tempbuf = malloc(strlen(title)+1); | 3982 char accel, *tempbuf = malloc(strlen(title)+1); |
3983 int _locked_by_me = FALSE, submenucount; | 3983 int _dw_locked_by_me = FALSE, submenucount; |
3984 GtkAccelGroup *accel_group; | 3984 GtkAccelGroup *accel_group; |
3985 | 3985 |
3986 if (!menu) | 3986 if (!menu) |
3987 { | 3987 { |
3988 free(tempbuf); | 3988 free(tempbuf); |
4107 */ | 4107 */ |
4108 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) | 4108 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) |
4109 { | 4109 { |
4110 char numbuf[25] = {0}; | 4110 char numbuf[25] = {0}; |
4111 GtkWidget *tmphandle; | 4111 GtkWidget *tmphandle; |
4112 int _locked_by_me = FALSE; | 4112 int _dw_locked_by_me = FALSE; |
4113 | 4113 |
4114 if(!menu) | 4114 if(!menu) |
4115 return; | 4115 return; |
4116 | 4116 |
4117 DW_MUTEX_LOCK; | 4117 DW_MUTEX_LOCK; |
4138 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) | 4138 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) |
4139 { | 4139 { |
4140 char numbuf[25] = {0}; | 4140 char numbuf[25] = {0}; |
4141 GtkWidget *tmphandle; | 4141 GtkWidget *tmphandle; |
4142 int check; | 4142 int check; |
4143 int _locked_by_me = FALSE; | 4143 int _dw_locked_by_me = FALSE; |
4144 | 4144 |
4145 if(!menu) | 4145 if(!menu) |
4146 return; | 4146 return; |
4147 | 4147 |
4148 DW_MUTEX_LOCK; | 4148 DW_MUTEX_LOCK; |
4189 */ | 4189 */ |
4190 int API dw_menu_delete_item(HMENUI menu, unsigned long id) | 4190 int API dw_menu_delete_item(HMENUI menu, unsigned long id) |
4191 { | 4191 { |
4192 char numbuf[25] = {0}; | 4192 char numbuf[25] = {0}; |
4193 GtkWidget *tmphandle; | 4193 GtkWidget *tmphandle; |
4194 int _locked_by_me = FALSE; | 4194 int _dw_locked_by_me = FALSE; |
4195 int ret = DW_ERROR_UNKNOWN; | 4195 int ret = DW_ERROR_UNKNOWN; |
4196 | 4196 |
4197 if(!menu || !id) | 4197 if(!menu || !id) |
4198 return ret; | 4198 return ret; |
4199 | 4199 |
4219 * x: X coordinate. | 4219 * x: X coordinate. |
4220 * y: Y coordinate. | 4220 * y: Y coordinate. |
4221 */ | 4221 */ |
4222 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) | 4222 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) |
4223 { | 4223 { |
4224 int _locked_by_me = FALSE; | 4224 int _dw_locked_by_me = FALSE; |
4225 | 4225 |
4226 if(!menu || !*menu) | 4226 if(!menu || !*menu) |
4227 return; | 4227 return; |
4228 | 4228 |
4229 _dw_popup = parent; | 4229 _dw_popup = parent; |
4243 */ | 4243 */ |
4244 void dw_pointer_query_pos(long *x, long *y) | 4244 void dw_pointer_query_pos(long *x, long *y) |
4245 { | 4245 { |
4246 GdkModifierType state; | 4246 GdkModifierType state; |
4247 int gx, gy; | 4247 int gx, gy; |
4248 int _locked_by_me = FALSE; | 4248 int _dw_locked_by_me = FALSE; |
4249 | 4249 |
4250 DW_MUTEX_LOCK; | 4250 DW_MUTEX_LOCK; |
4251 gdk_window_get_pointer (GDK_ROOT_PARENT(), &gx, &gy, &state); | 4251 gdk_window_get_pointer (GDK_ROOT_PARENT(), &gx, &gy, &state); |
4252 if(x) | 4252 if(x) |
4253 *x = gx; | 4253 *x = gx; |
4262 * x: X coordinate. | 4262 * x: X coordinate. |
4263 * y: Y coordinate. | 4263 * y: Y coordinate. |
4264 */ | 4264 */ |
4265 void dw_pointer_set_pos(long x, long y) | 4265 void dw_pointer_set_pos(long x, long y) |
4266 { | 4266 { |
4267 int _locked_by_me = FALSE; | 4267 int _dw_locked_by_me = FALSE; |
4268 | 4268 |
4269 DW_MUTEX_LOCK; | 4269 DW_MUTEX_LOCK; |
4270 #ifdef GDK_WINDOWING_X11 | 4270 #ifdef GDK_WINDOWING_X11 |
4271 # if GTK_CHECK_VERSION(2,8,0) | 4271 # if GTK_CHECK_VERSION(2,8,0) |
4272 gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); | 4272 gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); |
4284 * resource file. | 4284 * resource file. |
4285 */ | 4285 */ |
4286 HWND dw_container_new(unsigned long id, int multi) | 4286 HWND dw_container_new(unsigned long id, int multi) |
4287 { | 4287 { |
4288 GtkWidget *tmp; | 4288 GtkWidget *tmp; |
4289 int _locked_by_me = FALSE; | 4289 int _dw_locked_by_me = FALSE; |
4290 | 4290 |
4291 DW_MUTEX_LOCK; | 4291 DW_MUTEX_LOCK; |
4292 tmp = gtk_scrolled_window_new (NULL, NULL); | 4292 tmp = gtk_scrolled_window_new (NULL, NULL); |
4293 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tmp), | 4293 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tmp), |
4294 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | 4294 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
4314 GtkTreeStore *store; | 4314 GtkTreeStore *store; |
4315 GtkTreeViewColumn *col; | 4315 GtkTreeViewColumn *col; |
4316 GtkCellRenderer *rend; | 4316 GtkCellRenderer *rend; |
4317 GtkTreeSelection *sel; | 4317 GtkTreeSelection *sel; |
4318 #endif | 4318 #endif |
4319 int _locked_by_me = FALSE; | 4319 int _dw_locked_by_me = FALSE; |
4320 | 4320 |
4321 DW_MUTEX_LOCK; | 4321 DW_MUTEX_LOCK; |
4322 tmp = gtk_scrolled_window_new(NULL, NULL); | 4322 tmp = gtk_scrolled_window_new(NULL, NULL); |
4323 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), | 4323 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), |
4324 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 4324 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
4378 * id: An ID to be used with dw_window_from_id() or 0L. | 4378 * id: An ID to be used with dw_window_from_id() or 0L. |
4379 */ | 4379 */ |
4380 HWND dw_text_new(const char *text, unsigned long id) | 4380 HWND dw_text_new(const char *text, unsigned long id) |
4381 { | 4381 { |
4382 GtkWidget *tmp; | 4382 GtkWidget *tmp; |
4383 int _locked_by_me = FALSE; | 4383 int _dw_locked_by_me = FALSE; |
4384 | 4384 |
4385 DW_MUTEX_LOCK; | 4385 DW_MUTEX_LOCK; |
4386 tmp = gtk_label_new(text); | 4386 tmp = gtk_label_new(text); |
4387 | 4387 |
4388 /* Left and centered */ | 4388 /* Left and centered */ |
4403 * id: An ID to be used with dw_window_from_id() or 0L. | 4403 * id: An ID to be used with dw_window_from_id() or 0L. |
4404 */ | 4404 */ |
4405 HWND dw_status_text_new(const char *text, ULONG id) | 4405 HWND dw_status_text_new(const char *text, ULONG id) |
4406 { | 4406 { |
4407 GtkWidget *tmp, *frame; | 4407 GtkWidget *tmp, *frame; |
4408 int _locked_by_me = FALSE; | 4408 int _dw_locked_by_me = FALSE; |
4409 | 4409 |
4410 DW_MUTEX_LOCK; | 4410 DW_MUTEX_LOCK; |
4411 frame = gtk_frame_new(NULL); | 4411 frame = gtk_frame_new(NULL); |
4412 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); | 4412 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); |
4413 tmp = gtk_label_new(text); | 4413 tmp = gtk_label_new(text); |
4434 { | 4434 { |
4435 GtkWidget *tmp, *tmpbox; | 4435 GtkWidget *tmp, *tmpbox; |
4436 #if GTK_MAJOR_VERSION < 2 | 4436 #if GTK_MAJOR_VERSION < 2 |
4437 GtkWidget *scroller; | 4437 GtkWidget *scroller; |
4438 #endif | 4438 #endif |
4439 int _locked_by_me = FALSE; | 4439 int _dw_locked_by_me = FALSE; |
4440 | 4440 |
4441 DW_MUTEX_LOCK; | 4441 DW_MUTEX_LOCK; |
4442 #if GTK_MAJOR_VERSION > 1 | 4442 #if GTK_MAJOR_VERSION > 1 |
4443 tmpbox = gtk_scrolled_window_new (NULL, NULL); | 4443 tmpbox = gtk_scrolled_window_new (NULL, NULL); |
4444 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tmpbox), | 4444 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tmpbox), |
4475 * id: An ID to be used with dw_window_from_id() or 0L. | 4475 * id: An ID to be used with dw_window_from_id() or 0L. |
4476 */ | 4476 */ |
4477 HWND dw_entryfield_new(const char *text, unsigned long id) | 4477 HWND dw_entryfield_new(const char *text, unsigned long id) |
4478 { | 4478 { |
4479 GtkWidget *tmp; | 4479 GtkWidget *tmp; |
4480 int _locked_by_me = FALSE; | 4480 int _dw_locked_by_me = FALSE; |
4481 | 4481 |
4482 DW_MUTEX_LOCK; | 4482 DW_MUTEX_LOCK; |
4483 tmp = gtk_entry_new(); | 4483 tmp = gtk_entry_new(); |
4484 | 4484 |
4485 gtk_entry_set_text(GTK_ENTRY(tmp), text); | 4485 gtk_entry_set_text(GTK_ENTRY(tmp), text); |
4500 * id: An ID to be used with dw_window_from_id() or 0L. | 4500 * id: An ID to be used with dw_window_from_id() or 0L. |
4501 */ | 4501 */ |
4502 HWND dw_entryfield_password_new(const char *text, ULONG id) | 4502 HWND dw_entryfield_password_new(const char *text, ULONG id) |
4503 { | 4503 { |
4504 GtkWidget *tmp; | 4504 GtkWidget *tmp; |
4505 int _locked_by_me = FALSE; | 4505 int _dw_locked_by_me = FALSE; |
4506 | 4506 |
4507 DW_MUTEX_LOCK; | 4507 DW_MUTEX_LOCK; |
4508 tmp = gtk_entry_new(); | 4508 tmp = gtk_entry_new(); |
4509 | 4509 |
4510 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE); | 4510 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE); |
4526 * id: An ID to be used with dw_window_from_id() or 0L. | 4526 * id: An ID to be used with dw_window_from_id() or 0L. |
4527 */ | 4527 */ |
4528 HWND dw_combobox_new(const char *text, unsigned long id) | 4528 HWND dw_combobox_new(const char *text, unsigned long id) |
4529 { | 4529 { |
4530 GtkWidget *tmp; | 4530 GtkWidget *tmp; |
4531 int sigid, _locked_by_me = FALSE; | 4531 int sigid, _dw_locked_by_me = FALSE; |
4532 gint cid; | 4532 gint cid; |
4533 | 4533 |
4534 DW_MUTEX_LOCK; | 4534 DW_MUTEX_LOCK; |
4535 tmp = gtk_combo_new(); | 4535 tmp = gtk_combo_new(); |
4536 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(tmp)->entry), text); | 4536 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(tmp)->entry), text); |
4555 * id: An ID to be used with dw_window_from_id() or 0L. | 4555 * id: An ID to be used with dw_window_from_id() or 0L. |
4556 */ | 4556 */ |
4557 HWND dw_button_new(const char *text, unsigned long id) | 4557 HWND dw_button_new(const char *text, unsigned long id) |
4558 { | 4558 { |
4559 GtkWidget *tmp; | 4559 GtkWidget *tmp; |
4560 int _locked_by_me = FALSE; | 4560 int _dw_locked_by_me = FALSE; |
4561 | 4561 |
4562 DW_MUTEX_LOCK; | 4562 DW_MUTEX_LOCK; |
4563 tmp = gtk_button_new_with_label(text); | 4563 tmp = gtk_button_new_with_label(text); |
4564 gtk_widget_show(tmp); | 4564 gtk_widget_show(tmp); |
4565 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4565 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4598 */ | 4598 */ |
4599 HWND dw_bitmapbutton_new(const char *text, unsigned long id) | 4599 HWND dw_bitmapbutton_new(const char *text, unsigned long id) |
4600 { | 4600 { |
4601 GtkWidget *tmp; | 4601 GtkWidget *tmp; |
4602 GtkWidget *bitmap; | 4602 GtkWidget *bitmap; |
4603 int _locked_by_me = FALSE; | 4603 int _dw_locked_by_me = FALSE; |
4604 | 4604 |
4605 DW_MUTEX_LOCK; | 4605 DW_MUTEX_LOCK; |
4606 tmp = gtk_button_new(); | 4606 tmp = gtk_button_new(); |
4607 bitmap = dw_bitmap_new(id); | 4607 bitmap = dw_bitmap_new(id); |
4608 | 4608 |
4631 */ | 4631 */ |
4632 HWND dw_bitmapbutton_new_from_file(const char *text, unsigned long id, const char *filename) | 4632 HWND dw_bitmapbutton_new_from_file(const char *text, unsigned long id, const char *filename) |
4633 { | 4633 { |
4634 GtkWidget *tmp; | 4634 GtkWidget *tmp; |
4635 GtkWidget *bitmap; | 4635 GtkWidget *bitmap; |
4636 int _locked_by_me = FALSE; | 4636 int _dw_locked_by_me = FALSE; |
4637 | 4637 |
4638 DW_MUTEX_LOCK; | 4638 DW_MUTEX_LOCK; |
4639 /* Create a new button */ | 4639 /* Create a new button */ |
4640 tmp = gtk_button_new(); | 4640 tmp = gtk_button_new(); |
4641 /* Now on to the image stuff */ | 4641 /* Now on to the image stuff */ |
4666 */ | 4666 */ |
4667 HWND dw_bitmapbutton_new_from_data(const char *text, unsigned long id, const char *data, int len) | 4667 HWND dw_bitmapbutton_new_from_data(const char *text, unsigned long id, const char *data, int len) |
4668 { | 4668 { |
4669 GtkWidget *tmp; | 4669 GtkWidget *tmp; |
4670 GtkWidget *bitmap; | 4670 GtkWidget *bitmap; |
4671 int _locked_by_me = FALSE; | 4671 int _dw_locked_by_me = FALSE; |
4672 | 4672 |
4673 DW_MUTEX_LOCK; | 4673 DW_MUTEX_LOCK; |
4674 tmp = gtk_button_new(); | 4674 tmp = gtk_button_new(); |
4675 bitmap = dw_bitmap_new(id); | 4675 bitmap = dw_bitmap_new(id); |
4676 | 4676 |
4695 */ | 4695 */ |
4696 HWND dw_spinbutton_new(const char *text, unsigned long id) | 4696 HWND dw_spinbutton_new(const char *text, unsigned long id) |
4697 { | 4697 { |
4698 GtkAdjustment *adj; | 4698 GtkAdjustment *adj; |
4699 GtkWidget *tmp; | 4699 GtkWidget *tmp; |
4700 int _locked_by_me = FALSE; | 4700 int _dw_locked_by_me = FALSE; |
4701 | 4701 |
4702 DW_MUTEX_LOCK; | 4702 DW_MUTEX_LOCK; |
4703 adj = (GtkAdjustment *)gtk_adjustment_new ((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); | 4703 adj = (GtkAdjustment *)gtk_adjustment_new ((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); |
4704 tmp = gtk_spin_button_new (adj, 0, 0); | 4704 tmp = gtk_spin_button_new (adj, 0, 0); |
4705 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE); | 4705 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE); |
4720 */ | 4720 */ |
4721 HWND dw_radiobutton_new(const char *text, ULONG id) | 4721 HWND dw_radiobutton_new(const char *text, ULONG id) |
4722 { | 4722 { |
4723 /* This will have to be fixed in the future. */ | 4723 /* This will have to be fixed in the future. */ |
4724 GtkWidget *tmp; | 4724 GtkWidget *tmp; |
4725 int _locked_by_me = FALSE; | 4725 int _dw_locked_by_me = FALSE; |
4726 | 4726 |
4727 DW_MUTEX_LOCK; | 4727 DW_MUTEX_LOCK; |
4728 tmp = gtk_radio_button_new_with_label(NULL, text); | 4728 tmp = gtk_radio_button_new_with_label(NULL, text); |
4729 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4729 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4730 gtk_widget_show(tmp); | 4730 gtk_widget_show(tmp); |
4744 */ | 4744 */ |
4745 HWND dw_slider_new(int vertical, int increments, ULONG id) | 4745 HWND dw_slider_new(int vertical, int increments, ULONG id) |
4746 { | 4746 { |
4747 GtkWidget *tmp; | 4747 GtkWidget *tmp; |
4748 GtkAdjustment *adjustment; | 4748 GtkAdjustment *adjustment; |
4749 int _locked_by_me = FALSE; | 4749 int _dw_locked_by_me = FALSE; |
4750 | 4750 |
4751 DW_MUTEX_LOCK; | 4751 DW_MUTEX_LOCK; |
4752 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); | 4752 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); |
4753 if(vertical) | 4753 if(vertical) |
4754 tmp = gtk_vscale_new(adjustment); | 4754 tmp = gtk_vscale_new(adjustment); |
4778 */ | 4778 */ |
4779 HWND dw_scrollbar_new(int vertical, ULONG id) | 4779 HWND dw_scrollbar_new(int vertical, ULONG id) |
4780 { | 4780 { |
4781 GtkWidget *tmp; | 4781 GtkWidget *tmp; |
4782 GtkAdjustment *adjustment; | 4782 GtkAdjustment *adjustment; |
4783 int _locked_by_me = FALSE; | 4783 int _dw_locked_by_me = FALSE; |
4784 #ifdef HAVE_OVERLAY_SCROLLBARS2 | 4784 #ifdef HAVE_OVERLAY_SCROLLBARS2 |
4785 gboolean overlaysb; | 4785 gboolean overlaysb; |
4786 #endif | 4786 #endif |
4787 | 4787 |
4788 DW_MUTEX_LOCK; | 4788 DW_MUTEX_LOCK; |
4814 * id: An ID to be used with dw_window_from_id() or 0L. | 4814 * id: An ID to be used with dw_window_from_id() or 0L. |
4815 */ | 4815 */ |
4816 HWND dw_percent_new(unsigned long id) | 4816 HWND dw_percent_new(unsigned long id) |
4817 { | 4817 { |
4818 GtkWidget *tmp; | 4818 GtkWidget *tmp; |
4819 int _locked_by_me = FALSE; | 4819 int _dw_locked_by_me = FALSE; |
4820 | 4820 |
4821 DW_MUTEX_LOCK; | 4821 DW_MUTEX_LOCK; |
4822 tmp = gtk_progress_bar_new(); | 4822 tmp = gtk_progress_bar_new(); |
4823 gtk_widget_show(tmp); | 4823 gtk_widget_show(tmp); |
4824 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4824 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4833 * id: An ID to be used with dw_window_from_id() or 0L. | 4833 * id: An ID to be used with dw_window_from_id() or 0L. |
4834 */ | 4834 */ |
4835 HWND dw_checkbox_new(const char *text, unsigned long id) | 4835 HWND dw_checkbox_new(const char *text, unsigned long id) |
4836 { | 4836 { |
4837 GtkWidget *tmp; | 4837 GtkWidget *tmp; |
4838 int _locked_by_me = FALSE; | 4838 int _dw_locked_by_me = FALSE; |
4839 | 4839 |
4840 DW_MUTEX_LOCK; | 4840 DW_MUTEX_LOCK; |
4841 tmp = gtk_check_button_new_with_label(text); | 4841 tmp = gtk_check_button_new_with_label(text); |
4842 gtk_widget_show(tmp); | 4842 gtk_widget_show(tmp); |
4843 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); | 4843 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
4854 * multi: Multiple select TRUE or FALSE. | 4854 * multi: Multiple select TRUE or FALSE. |
4855 */ | 4855 */ |
4856 HWND dw_listbox_new(unsigned long id, int multi) | 4856 HWND dw_listbox_new(unsigned long id, int multi) |
4857 { | 4857 { |
4858 GtkWidget *tmp, *list; | 4858 GtkWidget *tmp, *list; |
4859 int _locked_by_me = FALSE; | 4859 int _dw_locked_by_me = FALSE; |
4860 | 4860 |
4861 DW_MUTEX_LOCK; | 4861 DW_MUTEX_LOCK; |
4862 tmp = gtk_scrolled_window_new(NULL, NULL); | 4862 tmp = gtk_scrolled_window_new(NULL, NULL); |
4863 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), | 4863 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), |
4864 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | 4864 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
4887 */ | 4887 */ |
4888 void dw_window_set_icon(HWND handle, HICN icon) | 4888 void dw_window_set_icon(HWND handle, HICN icon) |
4889 { | 4889 { |
4890 GdkBitmap *bitmap = NULL; | 4890 GdkBitmap *bitmap = NULL; |
4891 GdkPixmap *icon_pixmap; | 4891 GdkPixmap *icon_pixmap; |
4892 int _locked_by_me = FALSE; | 4892 int _dw_locked_by_me = FALSE; |
4893 | 4893 |
4894 DW_MUTEX_LOCK; | 4894 DW_MUTEX_LOCK; |
4895 icon_pixmap = _dw_find_pixmap(&bitmap, icon, handle, NULL, NULL); | 4895 icon_pixmap = _dw_find_pixmap(&bitmap, icon, handle, NULL, NULL); |
4896 | 4896 |
4897 if(handle->window && icon_pixmap) | 4897 if(handle->window && icon_pixmap) |
4918 GdkBitmap *bitmap = NULL; | 4918 GdkBitmap *bitmap = NULL; |
4919 GdkPixmap *tmp = NULL; | 4919 GdkPixmap *tmp = NULL; |
4920 #endif | 4920 #endif |
4921 int found_ext = 0; | 4921 int found_ext = 0; |
4922 int i; | 4922 int i; |
4923 int _locked_by_me = FALSE; | 4923 int _dw_locked_by_me = FALSE; |
4924 | 4924 |
4925 if(!id && !filename) | 4925 if(!id && !filename) |
4926 return; | 4926 return; |
4927 | 4927 |
4928 DW_MUTEX_LOCK; | 4928 DW_MUTEX_LOCK; |
5032 GdkPixbuf *pixbuf = NULL; | 5032 GdkPixbuf *pixbuf = NULL; |
5033 #else | 5033 #else |
5034 GdkBitmap *bitmap = NULL; | 5034 GdkBitmap *bitmap = NULL; |
5035 GdkPixmap *tmp = NULL; | 5035 GdkPixmap *tmp = NULL; |
5036 #endif | 5036 #endif |
5037 int _locked_by_me = FALSE; | 5037 int _dw_locked_by_me = FALSE; |
5038 | 5038 |
5039 if(!id && !data) | 5039 if(!id && !data) |
5040 return; | 5040 return; |
5041 | 5041 |
5042 DW_MUTEX_LOCK; | 5042 DW_MUTEX_LOCK; |
5125 * handle: Handle to the window. | 5125 * handle: Handle to the window. |
5126 * text: The text associated with a given window. | 5126 * text: The text associated with a given window. |
5127 */ | 5127 */ |
5128 void dw_window_set_text(HWND handle, const char *text) | 5128 void dw_window_set_text(HWND handle, const char *text) |
5129 { | 5129 { |
5130 int _locked_by_me = FALSE; | 5130 int _dw_locked_by_me = FALSE; |
5131 GtkWidget *tmp; | 5131 GtkWidget *tmp; |
5132 | 5132 |
5133 DW_MUTEX_LOCK; | 5133 DW_MUTEX_LOCK; |
5134 if((tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi_title"))) | 5134 if((tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi_title"))) |
5135 handle = tmp; | 5135 handle = tmp; |
5172 * handle: Handle to the window (widget). | 5172 * handle: Handle to the window (widget). |
5173 * bubbletext: The text in the floating bubble tooltip. | 5173 * bubbletext: The text in the floating bubble tooltip. |
5174 */ | 5174 */ |
5175 void API dw_window_set_tooltip(HWND handle, const char *bubbletext) | 5175 void API dw_window_set_tooltip(HWND handle, const char *bubbletext) |
5176 { | 5176 { |
5177 int _locked_by_me = FALSE; | 5177 int _dw_locked_by_me = FALSE; |
5178 | 5178 |
5179 DW_MUTEX_LOCK; | 5179 DW_MUTEX_LOCK; |
5180 _create_tooltip(handle, bubbletext); | 5180 _create_tooltip(handle, bubbletext); |
5181 DW_MUTEX_UNLOCK; | 5181 DW_MUTEX_UNLOCK; |
5182 } | 5182 } |
5193 #if GTK_MAJOR_VERSION > 1 | 5193 #if GTK_MAJOR_VERSION > 1 |
5194 const char *possible = ""; | 5194 const char *possible = ""; |
5195 #else | 5195 #else |
5196 char *possible = ""; | 5196 char *possible = ""; |
5197 #endif | 5197 #endif |
5198 int _locked_by_me = FALSE; | 5198 int _dw_locked_by_me = FALSE; |
5199 | 5199 |
5200 DW_MUTEX_LOCK; | 5200 DW_MUTEX_LOCK; |
5201 if(GTK_IS_ENTRY(handle)) | 5201 if(GTK_IS_ENTRY(handle)) |
5202 possible = gtk_entry_get_text(GTK_ENTRY(handle)); | 5202 possible = gtk_entry_get_text(GTK_ENTRY(handle)); |
5203 else if(GTK_IS_COMBO(handle)) | 5203 else if(GTK_IS_COMBO(handle)) |
5214 * Parameters: | 5214 * Parameters: |
5215 * handle: Handle to the window. | 5215 * handle: Handle to the window. |
5216 */ | 5216 */ |
5217 void dw_window_disable(HWND handle) | 5217 void dw_window_disable(HWND handle) |
5218 { | 5218 { |
5219 int _locked_by_me = FALSE; | 5219 int _dw_locked_by_me = FALSE; |
5220 | 5220 |
5221 DW_MUTEX_LOCK; | 5221 DW_MUTEX_LOCK; |
5222 gtk_widget_set_sensitive(handle, FALSE); | 5222 gtk_widget_set_sensitive(handle, FALSE); |
5223 DW_MUTEX_UNLOCK; | 5223 DW_MUTEX_UNLOCK; |
5224 } | 5224 } |
5228 * Parameters: | 5228 * Parameters: |
5229 * handle: Handle to the window. | 5229 * handle: Handle to the window. |
5230 */ | 5230 */ |
5231 void dw_window_enable(HWND handle) | 5231 void dw_window_enable(HWND handle) |
5232 { | 5232 { |
5233 int _locked_by_me = FALSE; | 5233 int _dw_locked_by_me = FALSE; |
5234 | 5234 |
5235 DW_MUTEX_LOCK; | 5235 DW_MUTEX_LOCK; |
5236 gtk_widget_set_sensitive(handle, TRUE); | 5236 gtk_widget_set_sensitive(handle, TRUE); |
5237 DW_MUTEX_UNLOCK; | 5237 DW_MUTEX_UNLOCK; |
5238 } | 5238 } |
5244 * id: Integer ID of the child. | 5244 * id: Integer ID of the child. |
5245 */ | 5245 */ |
5246 HWND API dw_window_from_id(HWND handle, int id) | 5246 HWND API dw_window_from_id(HWND handle, int id) |
5247 { | 5247 { |
5248 GList *orig = NULL, *list = NULL; | 5248 GList *orig = NULL, *list = NULL; |
5249 int _locked_by_me = FALSE; | 5249 int _dw_locked_by_me = FALSE; |
5250 | 5250 |
5251 DW_MUTEX_LOCK; | 5251 DW_MUTEX_LOCK; |
5252 if(handle && GTK_IS_CONTAINER(handle)) | 5252 if(handle && GTK_IS_CONTAINER(handle)) |
5253 { | 5253 { |
5254 #if GTK_MAJOR_VERSION > 1 | 5254 #if GTK_MAJOR_VERSION > 1 |
5302 * startpoint: Point to start entering text. | 5302 * startpoint: Point to start entering text. |
5303 */ | 5303 */ |
5304 unsigned int dw_mle_import(HWND handle, const char *buffer, int startpoint) | 5304 unsigned int dw_mle_import(HWND handle, const char *buffer, int startpoint) |
5305 { | 5305 { |
5306 unsigned int tmppoint = startpoint; | 5306 unsigned int tmppoint = startpoint; |
5307 int _locked_by_me = FALSE; | 5307 int _dw_locked_by_me = FALSE; |
5308 | 5308 |
5309 DW_MUTEX_LOCK; | 5309 DW_MUTEX_LOCK; |
5310 #if GTK_MAJOR_VERSION > 1 | 5310 #if GTK_MAJOR_VERSION > 1 |
5311 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5311 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5312 #else | 5312 #else |
5357 * startpoint: Point to start grabbing text. | 5357 * startpoint: Point to start grabbing text. |
5358 * length: Amount of text to be grabbed. | 5358 * length: Amount of text to be grabbed. |
5359 */ | 5359 */ |
5360 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length) | 5360 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length) |
5361 { | 5361 { |
5362 int _locked_by_me = FALSE; | 5362 int _dw_locked_by_me = FALSE; |
5363 gchar *text; | 5363 gchar *text; |
5364 | 5364 |
5365 DW_MUTEX_LOCK; | 5365 DW_MUTEX_LOCK; |
5366 /* force the return value to nul in case the following tests fail */ | 5366 /* force the return value to nul in case the following tests fail */ |
5367 if(buffer) | 5367 if(buffer) |
5421 * bytes: A pointer to a variable to return the total bytes. | 5421 * bytes: A pointer to a variable to return the total bytes. |
5422 * lines: A pointer to a variable to return the number of lines. | 5422 * lines: A pointer to a variable to return the number of lines. |
5423 */ | 5423 */ |
5424 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines) | 5424 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines) |
5425 { | 5425 { |
5426 int _locked_by_me = FALSE; | 5426 int _dw_locked_by_me = FALSE; |
5427 | 5427 |
5428 if(bytes) | 5428 if(bytes) |
5429 *bytes = 0; | 5429 *bytes = 0; |
5430 if(lines) | 5430 if(lines) |
5431 *lines = 0; | 5431 *lines = 0; |
5487 * startpoint: Point to start deleting text. | 5487 * startpoint: Point to start deleting text. |
5488 * length: Amount of text to be deleted. | 5488 * length: Amount of text to be deleted. |
5489 */ | 5489 */ |
5490 void dw_mle_delete(HWND handle, int startpoint, int length) | 5490 void dw_mle_delete(HWND handle, int startpoint, int length) |
5491 { | 5491 { |
5492 int _locked_by_me = FALSE; | 5492 int _dw_locked_by_me = FALSE; |
5493 | 5493 |
5494 DW_MUTEX_LOCK; | 5494 DW_MUTEX_LOCK; |
5495 #if GTK_MAJOR_VERSION > 1 | 5495 #if GTK_MAJOR_VERSION > 1 |
5496 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5496 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5497 #else | 5497 #else |
5527 * Parameters: | 5527 * Parameters: |
5528 * handle: Handle to the MLE to be cleared. | 5528 * handle: Handle to the MLE to be cleared. |
5529 */ | 5529 */ |
5530 void dw_mle_clear(HWND handle) | 5530 void dw_mle_clear(HWND handle) |
5531 { | 5531 { |
5532 int length, _locked_by_me = FALSE; | 5532 int length, _dw_locked_by_me = FALSE; |
5533 | 5533 |
5534 DW_MUTEX_LOCK; | 5534 DW_MUTEX_LOCK; |
5535 #if GTK_MAJOR_VERSION > 1 | 5535 #if GTK_MAJOR_VERSION > 1 |
5536 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5536 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5537 { | 5537 { |
5567 * handle: Handle to the MLE. | 5567 * handle: Handle to the MLE. |
5568 * line: Line to be visible. | 5568 * line: Line to be visible. |
5569 */ | 5569 */ |
5570 void dw_mle_set_visible(HWND handle, int line) | 5570 void dw_mle_set_visible(HWND handle, int line) |
5571 { | 5571 { |
5572 int _locked_by_me = FALSE; | 5572 int _dw_locked_by_me = FALSE; |
5573 | 5573 |
5574 DW_MUTEX_LOCK; | 5574 DW_MUTEX_LOCK; |
5575 #if GTK_MAJOR_VERSION > 1 | 5575 #if GTK_MAJOR_VERSION > 1 |
5576 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5576 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5577 { | 5577 { |
5629 * handle: Handle to the MLE. | 5629 * handle: Handle to the MLE. |
5630 * state: TRUE if it can be edited, FALSE for readonly. | 5630 * state: TRUE if it can be edited, FALSE for readonly. |
5631 */ | 5631 */ |
5632 void dw_mle_set_editable(HWND handle, int state) | 5632 void dw_mle_set_editable(HWND handle, int state) |
5633 { | 5633 { |
5634 int _locked_by_me = FALSE; | 5634 int _dw_locked_by_me = FALSE; |
5635 | 5635 |
5636 DW_MUTEX_LOCK; | 5636 DW_MUTEX_LOCK; |
5637 #if GTK_MAJOR_VERSION > 1 | 5637 #if GTK_MAJOR_VERSION > 1 |
5638 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5638 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5639 { | 5639 { |
5660 * handle: Handle to the MLE. | 5660 * handle: Handle to the MLE. |
5661 * state: TRUE if it wraps, FALSE if it doesn't. | 5661 * state: TRUE if it wraps, FALSE if it doesn't. |
5662 */ | 5662 */ |
5663 void dw_mle_set_word_wrap(HWND handle, int state) | 5663 void dw_mle_set_word_wrap(HWND handle, int state) |
5664 { | 5664 { |
5665 int _locked_by_me = FALSE; | 5665 int _dw_locked_by_me = FALSE; |
5666 | 5666 |
5667 DW_MUTEX_LOCK; | 5667 DW_MUTEX_LOCK; |
5668 #if GTK_MAJOR_VERSION > 1 | 5668 #if GTK_MAJOR_VERSION > 1 |
5669 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5669 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5670 { | 5670 { |
5704 * handle: Handle to the MLE to be positioned. | 5704 * handle: Handle to the MLE to be positioned. |
5705 * point: Point to position cursor. | 5705 * point: Point to position cursor. |
5706 */ | 5706 */ |
5707 void dw_mle_set_cursor(HWND handle, int point) | 5707 void dw_mle_set_cursor(HWND handle, int point) |
5708 { | 5708 { |
5709 int _locked_by_me = FALSE; | 5709 int _dw_locked_by_me = FALSE; |
5710 | 5710 |
5711 DW_MUTEX_LOCK; | 5711 DW_MUTEX_LOCK; |
5712 #if GTK_MAJOR_VERSION > 1 | 5712 #if GTK_MAJOR_VERSION > 1 |
5713 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5713 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5714 #else | 5714 #else |
5768 * point: Start point of search. | 5768 * point: Start point of search. |
5769 * flags: Search specific flags. | 5769 * flags: Search specific flags. |
5770 */ | 5770 */ |
5771 int dw_mle_search(HWND handle, const char *text, int point, unsigned long flags) | 5771 int dw_mle_search(HWND handle, const char *text, int point, unsigned long flags) |
5772 { | 5772 { |
5773 int _locked_by_me = FALSE, retval = 0; | 5773 int _dw_locked_by_me = FALSE, retval = 0; |
5774 | 5774 |
5775 DW_MUTEX_LOCK; | 5775 DW_MUTEX_LOCK; |
5776 #if GTK_MAJOR_VERSION > 1 | 5776 #if GTK_MAJOR_VERSION > 1 |
5777 if(GTK_IS_SCROLLED_WINDOW(handle)) | 5777 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5778 #else | 5778 #else |
5843 * handle: Handle to the MLE to freeze. | 5843 * handle: Handle to the MLE to freeze. |
5844 */ | 5844 */ |
5845 void dw_mle_freeze(HWND handle) | 5845 void dw_mle_freeze(HWND handle) |
5846 { | 5846 { |
5847 #if GTK_MAJOR_VERSION < 2 | 5847 #if GTK_MAJOR_VERSION < 2 |
5848 int _locked_by_me = FALSE; | 5848 int _dw_locked_by_me = FALSE; |
5849 | 5849 |
5850 DW_MUTEX_LOCK; | 5850 DW_MUTEX_LOCK; |
5851 if(GTK_IS_BOX(handle)) | 5851 if(GTK_IS_BOX(handle)) |
5852 { | 5852 { |
5853 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 5853 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
5867 * handle: Handle to the MLE to thaw. | 5867 * handle: Handle to the MLE to thaw. |
5868 */ | 5868 */ |
5869 void dw_mle_thaw(HWND handle) | 5869 void dw_mle_thaw(HWND handle) |
5870 { | 5870 { |
5871 #if GTK_MAJOR_VERSION < 2 | 5871 #if GTK_MAJOR_VERSION < 2 |
5872 int _locked_by_me = FALSE; | 5872 int _dw_locked_by_me = FALSE; |
5873 | 5873 |
5874 DW_MUTEX_LOCK; | 5874 DW_MUTEX_LOCK; |
5875 if(GTK_IS_BOX(handle)) | 5875 if(GTK_IS_BOX(handle)) |
5876 { | 5876 { |
5877 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 5877 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
5904 * handle: Handle to the percent bar to be set. | 5904 * handle: Handle to the percent bar to be set. |
5905 * position: Position of the percent bar withing the range. | 5905 * position: Position of the percent bar withing the range. |
5906 */ | 5906 */ |
5907 void dw_percent_set_pos(HWND handle, unsigned int position) | 5907 void dw_percent_set_pos(HWND handle, unsigned int position) |
5908 { | 5908 { |
5909 int _locked_by_me = FALSE; | 5909 int _dw_locked_by_me = FALSE; |
5910 | 5910 |
5911 DW_MUTEX_LOCK; | 5911 DW_MUTEX_LOCK; |
5912 if(position == DW_PERCENT_INDETERMINATE) | 5912 if(position == DW_PERCENT_INDETERMINATE) |
5913 { | 5913 { |
5914 /* Check if we are indeterminate already */ | 5914 /* Check if we are indeterminate already */ |
5941 * Parameters: | 5941 * Parameters: |
5942 * handle: Handle to the slider to be queried. | 5942 * handle: Handle to the slider to be queried. |
5943 */ | 5943 */ |
5944 unsigned int dw_slider_get_pos(HWND handle) | 5944 unsigned int dw_slider_get_pos(HWND handle) |
5945 { | 5945 { |
5946 int val = 0, _locked_by_me = FALSE; | 5946 int val = 0, _dw_locked_by_me = FALSE; |
5947 GtkAdjustment *adjustment; | 5947 GtkAdjustment *adjustment; |
5948 | 5948 |
5949 if(!handle) | 5949 if(!handle) |
5950 return 0; | 5950 return 0; |
5951 | 5951 |
5971 * handle: Handle to the slider to be set. | 5971 * handle: Handle to the slider to be set. |
5972 * position: Position of the slider withing the range. | 5972 * position: Position of the slider withing the range. |
5973 */ | 5973 */ |
5974 void dw_slider_set_pos(HWND handle, unsigned int position) | 5974 void dw_slider_set_pos(HWND handle, unsigned int position) |
5975 { | 5975 { |
5976 int _locked_by_me = FALSE; | 5976 int _dw_locked_by_me = FALSE; |
5977 GtkAdjustment *adjustment; | 5977 GtkAdjustment *adjustment; |
5978 | 5978 |
5979 if(!handle) | 5979 if(!handle) |
5980 return; | 5980 return; |
5981 | 5981 |
5998 * Parameters: | 5998 * Parameters: |
5999 * handle: Handle to the scrollbar to be queried. | 5999 * handle: Handle to the scrollbar to be queried. |
6000 */ | 6000 */ |
6001 unsigned int dw_scrollbar_get_pos(HWND handle) | 6001 unsigned int dw_scrollbar_get_pos(HWND handle) |
6002 { | 6002 { |
6003 int val = 0, _locked_by_me = FALSE; | 6003 int val = 0, _dw_locked_by_me = FALSE; |
6004 GtkAdjustment *adjustment; | 6004 GtkAdjustment *adjustment; |
6005 | 6005 |
6006 if(!handle) | 6006 if(!handle) |
6007 return 0; | 6007 return 0; |
6008 | 6008 |
6020 * handle: Handle to the scrollbar to be set. | 6020 * handle: Handle to the scrollbar to be set. |
6021 * position: Position of the scrollbar withing the range. | 6021 * position: Position of the scrollbar withing the range. |
6022 */ | 6022 */ |
6023 void dw_scrollbar_set_pos(HWND handle, unsigned int position) | 6023 void dw_scrollbar_set_pos(HWND handle, unsigned int position) |
6024 { | 6024 { |
6025 int _locked_by_me = FALSE; | 6025 int _dw_locked_by_me = FALSE; |
6026 GtkAdjustment *adjustment; | 6026 GtkAdjustment *adjustment; |
6027 | 6027 |
6028 if(!handle) | 6028 if(!handle) |
6029 return; | 6029 return; |
6030 | 6030 |
6046 * range: Maximum range value. | 6046 * range: Maximum range value. |
6047 * visible: Visible area relative to the range. | 6047 * visible: Visible area relative to the range. |
6048 */ | 6048 */ |
6049 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible) | 6049 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible) |
6050 { | 6050 { |
6051 int _locked_by_me = FALSE; | 6051 int _dw_locked_by_me = FALSE; |
6052 GtkAdjustment *adjustment; | 6052 GtkAdjustment *adjustment; |
6053 | 6053 |
6054 if(!handle) | 6054 if(!handle) |
6055 return; | 6055 return; |
6056 | 6056 |
6070 * handle: Handle to the spinbutton to be set. | 6070 * handle: Handle to the spinbutton to be set. |
6071 * position: Current value of the spinbutton. | 6071 * position: Current value of the spinbutton. |
6072 */ | 6072 */ |
6073 void dw_spinbutton_set_pos(HWND handle, long position) | 6073 void dw_spinbutton_set_pos(HWND handle, long position) |
6074 { | 6074 { |
6075 int _locked_by_me = FALSE; | 6075 int _dw_locked_by_me = FALSE; |
6076 | 6076 |
6077 DW_MUTEX_LOCK; | 6077 DW_MUTEX_LOCK; |
6078 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); | 6078 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); |
6079 DW_MUTEX_UNLOCK; | 6079 DW_MUTEX_UNLOCK; |
6080 } | 6080 } |
6088 */ | 6088 */ |
6089 void dw_spinbutton_set_limits(HWND handle, long upper, long lower) | 6089 void dw_spinbutton_set_limits(HWND handle, long upper, long lower) |
6090 { | 6090 { |
6091 long curval; | 6091 long curval; |
6092 GtkAdjustment *adj; | 6092 GtkAdjustment *adj; |
6093 int _locked_by_me = FALSE; | 6093 int _dw_locked_by_me = FALSE; |
6094 | 6094 |
6095 curval = dw_spinbutton_get_pos(handle); | 6095 curval = dw_spinbutton_get_pos(handle); |
6096 DW_MUTEX_LOCK; | 6096 DW_MUTEX_LOCK; |
6097 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0); | 6097 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0); |
6098 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj); | 6098 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj); |
6110 * handle: Handle to the spinbutton to be set. | 6110 * handle: Handle to the spinbutton to be set. |
6111 * limit: Number of characters the entryfield will take. | 6111 * limit: Number of characters the entryfield will take. |
6112 */ | 6112 */ |
6113 void dw_entryfield_set_limit(HWND handle, ULONG limit) | 6113 void dw_entryfield_set_limit(HWND handle, ULONG limit) |
6114 { | 6114 { |
6115 int _locked_by_me = FALSE; | 6115 int _dw_locked_by_me = FALSE; |
6116 | 6116 |
6117 DW_MUTEX_LOCK; | 6117 DW_MUTEX_LOCK; |
6118 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); | 6118 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); |
6119 DW_MUTEX_UNLOCK; | 6119 DW_MUTEX_UNLOCK; |
6120 } | 6120 } |
6125 * handle: Handle to the spinbutton to be queried. | 6125 * handle: Handle to the spinbutton to be queried. |
6126 */ | 6126 */ |
6127 long dw_spinbutton_get_pos(HWND handle) | 6127 long dw_spinbutton_get_pos(HWND handle) |
6128 { | 6128 { |
6129 long retval; | 6129 long retval; |
6130 int _locked_by_me = FALSE; | 6130 int _dw_locked_by_me = FALSE; |
6131 | 6131 |
6132 DW_MUTEX_LOCK; | 6132 DW_MUTEX_LOCK; |
6133 retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle)); | 6133 retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle)); |
6134 DW_MUTEX_UNLOCK; | 6134 DW_MUTEX_UNLOCK; |
6135 | 6135 |
6142 * handle: Handle to the checkbox to be queried. | 6142 * handle: Handle to the checkbox to be queried. |
6143 */ | 6143 */ |
6144 int dw_checkbox_get(HWND handle) | 6144 int dw_checkbox_get(HWND handle) |
6145 { | 6145 { |
6146 int retval; | 6146 int retval; |
6147 int _locked_by_me = FALSE; | 6147 int _dw_locked_by_me = FALSE; |
6148 | 6148 |
6149 DW_MUTEX_LOCK; | 6149 DW_MUTEX_LOCK; |
6150 retval = GTK_TOGGLE_BUTTON(handle)->active; | 6150 retval = GTK_TOGGLE_BUTTON(handle)->active; |
6151 DW_MUTEX_UNLOCK; | 6151 DW_MUTEX_UNLOCK; |
6152 | 6152 |
6159 * handle: Handle to the checkbox to be queried. | 6159 * handle: Handle to the checkbox to be queried. |
6160 * value: TRUE for checked, FALSE for unchecked. | 6160 * value: TRUE for checked, FALSE for unchecked. |
6161 */ | 6161 */ |
6162 void dw_checkbox_set(HWND handle, int value) | 6162 void dw_checkbox_set(HWND handle, int value) |
6163 { | 6163 { |
6164 int _locked_by_me = FALSE; | 6164 int _dw_locked_by_me = FALSE; |
6165 | 6165 |
6166 DW_MUTEX_LOCK; | 6166 DW_MUTEX_LOCK; |
6167 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); | 6167 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); |
6168 DW_MUTEX_UNLOCK; | 6168 DW_MUTEX_UNLOCK; |
6169 } | 6169 } |
6184 GtkWidget *tree; | 6184 GtkWidget *tree; |
6185 GtkTreeIter *iter; | 6185 GtkTreeIter *iter; |
6186 GtkTreeStore *store; | 6186 GtkTreeStore *store; |
6187 GdkPixbuf *pixbuf; | 6187 GdkPixbuf *pixbuf; |
6188 HTREEITEM retval = 0; | 6188 HTREEITEM retval = 0; |
6189 int _locked_by_me = FALSE; | 6189 int _dw_locked_by_me = FALSE; |
6190 | 6190 |
6191 if(!handle) | 6191 if(!handle) |
6192 return NULL; | 6192 return NULL; |
6193 | 6193 |
6194 DW_MUTEX_LOCK; | 6194 DW_MUTEX_LOCK; |
6212 #else | 6212 #else |
6213 GtkWidget *newitem, *tree, *subtree, *label, *hbox, *pixmap; | 6213 GtkWidget *newitem, *tree, *subtree, *label, *hbox, *pixmap; |
6214 GdkPixmap *gdkpix; | 6214 GdkPixmap *gdkpix; |
6215 GdkBitmap *gdkbmp = NULL; | 6215 GdkBitmap *gdkbmp = NULL; |
6216 int position = -1; | 6216 int position = -1; |
6217 int _locked_by_me = FALSE; | 6217 int _dw_locked_by_me = FALSE; |
6218 | 6218 |
6219 if(!handle) | 6219 if(!handle) |
6220 return NULL; | 6220 return NULL; |
6221 | 6221 |
6222 DW_MUTEX_LOCK; | 6222 DW_MUTEX_LOCK; |
6347 GtkWidget *tree; | 6347 GtkWidget *tree; |
6348 GtkTreeIter *iter; | 6348 GtkTreeIter *iter; |
6349 GtkTreeStore *store; | 6349 GtkTreeStore *store; |
6350 GdkPixbuf *pixbuf; | 6350 GdkPixbuf *pixbuf; |
6351 HTREEITEM retval = 0; | 6351 HTREEITEM retval = 0; |
6352 int _locked_by_me = FALSE; | 6352 int _dw_locked_by_me = FALSE; |
6353 | 6353 |
6354 if(!handle) | 6354 if(!handle) |
6355 return NULL; | 6355 return NULL; |
6356 | 6356 |
6357 DW_MUTEX_LOCK; | 6357 DW_MUTEX_LOCK; |
6374 return retval; | 6374 return retval; |
6375 #else | 6375 #else |
6376 GtkWidget *item, *tree, *subtree, *label, *hbox, *pixmap; | 6376 GtkWidget *item, *tree, *subtree, *label, *hbox, *pixmap; |
6377 GdkPixmap *gdkpix; | 6377 GdkPixmap *gdkpix; |
6378 GdkBitmap *gdkbmp = NULL; | 6378 GdkBitmap *gdkbmp = NULL; |
6379 int _locked_by_me = FALSE; | 6379 int _dw_locked_by_me = FALSE; |
6380 | 6380 |
6381 if(!handle) | 6381 if(!handle) |
6382 return NULL; | 6382 return NULL; |
6383 | 6383 |
6384 DW_MUTEX_LOCK; | 6384 DW_MUTEX_LOCK; |
6496 { | 6496 { |
6497 #if GTK_MAJOR_VERSION > 1 | 6497 #if GTK_MAJOR_VERSION > 1 |
6498 GtkWidget *tree; | 6498 GtkWidget *tree; |
6499 GtkTreeStore *store; | 6499 GtkTreeStore *store; |
6500 GdkPixbuf *pixbuf; | 6500 GdkPixbuf *pixbuf; |
6501 int _locked_by_me = FALSE; | 6501 int _dw_locked_by_me = FALSE; |
6502 | 6502 |
6503 if(!handle) | 6503 if(!handle) |
6504 return; | 6504 return; |
6505 | 6505 |
6506 DW_MUTEX_LOCK; | 6506 DW_MUTEX_LOCK; |
6518 #else | 6518 #else |
6519 GtkWidget *label, *hbox, *pixmap; | 6519 GtkWidget *label, *hbox, *pixmap; |
6520 GdkPixmap *gdkpix; | 6520 GdkPixmap *gdkpix; |
6521 GdkBitmap *gdkbmp = NULL; | 6521 GdkBitmap *gdkbmp = NULL; |
6522 char *oldtext; | 6522 char *oldtext; |
6523 int _locked_by_me = FALSE; | 6523 int _dw_locked_by_me = FALSE; |
6524 | 6524 |
6525 if(!handle || !item) | 6525 if(!handle || !item) |
6526 return; | 6526 return; |
6527 | 6527 |
6528 DW_MUTEX_LOCK; | 6528 DW_MUTEX_LOCK; |
6560 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) | 6560 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) |
6561 { | 6561 { |
6562 #if GTK_MAJOR_VERSION > 1 | 6562 #if GTK_MAJOR_VERSION > 1 |
6563 GtkWidget *tree; | 6563 GtkWidget *tree; |
6564 GtkTreeStore *store; | 6564 GtkTreeStore *store; |
6565 int _locked_by_me = FALSE; | 6565 int _dw_locked_by_me = FALSE; |
6566 | 6566 |
6567 if(!handle || !item) | 6567 if(!handle || !item) |
6568 return; | 6568 return; |
6569 | 6569 |
6570 DW_MUTEX_LOCK; | 6570 DW_MUTEX_LOCK; |
6572 && GTK_IS_TREE_VIEW(tree) && | 6572 && GTK_IS_TREE_VIEW(tree) && |
6573 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 6573 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
6574 gtk_tree_store_set(store, (GtkTreeIter *)item, 2, itemdata, -1); | 6574 gtk_tree_store_set(store, (GtkTreeIter *)item, 2, itemdata, -1); |
6575 DW_MUTEX_UNLOCK; | 6575 DW_MUTEX_UNLOCK; |
6576 #else | 6576 #else |
6577 int _locked_by_me = FALSE; | 6577 int _dw_locked_by_me = FALSE; |
6578 | 6578 |
6579 if(!handle || !item) | 6579 if(!handle || !item) |
6580 return; | 6580 return; |
6581 | 6581 |
6582 DW_MUTEX_LOCK; | 6582 DW_MUTEX_LOCK; |
6591 * handle: Handle to the tree containing the item. | 6591 * handle: Handle to the tree containing the item. |
6592 * item: Handle of the item to be modified. | 6592 * item: Handle of the item to be modified. |
6593 */ | 6593 */ |
6594 char * API dw_tree_get_title(HWND handle, HTREEITEM item) | 6594 char * API dw_tree_get_title(HWND handle, HTREEITEM item) |
6595 { | 6595 { |
6596 int _locked_by_me = FALSE; | 6596 int _dw_locked_by_me = FALSE; |
6597 char *text = NULL; | 6597 char *text = NULL; |
6598 #if GTK_MAJOR_VERSION > 1 | 6598 #if GTK_MAJOR_VERSION > 1 |
6599 GtkWidget *tree; | 6599 GtkWidget *tree; |
6600 GtkTreeModel *store; | 6600 GtkTreeModel *store; |
6601 #endif | 6601 #endif |
6629 * handle: Handle to the tree containing the item. | 6629 * handle: Handle to the tree containing the item. |
6630 * item: Handle of the item to be modified. | 6630 * item: Handle of the item to be modified. |
6631 */ | 6631 */ |
6632 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) | 6632 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) |
6633 { | 6633 { |
6634 int _locked_by_me = FALSE; | 6634 int _dw_locked_by_me = FALSE; |
6635 HTREEITEM parent = (HTREEITEM)0; | 6635 HTREEITEM parent = (HTREEITEM)0; |
6636 #if GTK_MAJOR_VERSION > 1 | 6636 #if GTK_MAJOR_VERSION > 1 |
6637 GtkWidget *tree; | 6637 GtkWidget *tree; |
6638 GtkTreeModel *store; | 6638 GtkTreeModel *store; |
6639 #endif | 6639 #endif |
6670 { | 6670 { |
6671 void *ret = NULL; | 6671 void *ret = NULL; |
6672 #if GTK_MAJOR_VERSION > 1 | 6672 #if GTK_MAJOR_VERSION > 1 |
6673 GtkWidget *tree; | 6673 GtkWidget *tree; |
6674 GtkTreeModel *store; | 6674 GtkTreeModel *store; |
6675 int _locked_by_me = FALSE; | 6675 int _dw_locked_by_me = FALSE; |
6676 | 6676 |
6677 if(!handle || !item) | 6677 if(!handle || !item) |
6678 return NULL; | 6678 return NULL; |
6679 | 6679 |
6680 DW_MUTEX_LOCK; | 6680 DW_MUTEX_LOCK; |
6682 && GTK_IS_TREE_VIEW(tree) && | 6682 && GTK_IS_TREE_VIEW(tree) && |
6683 (store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 6683 (store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
6684 gtk_tree_model_get(store, (GtkTreeIter *)item, 2, &ret, -1); | 6684 gtk_tree_model_get(store, (GtkTreeIter *)item, 2, &ret, -1); |
6685 DW_MUTEX_UNLOCK; | 6685 DW_MUTEX_UNLOCK; |
6686 #else | 6686 #else |
6687 int _locked_by_me = FALSE; | 6687 int _dw_locked_by_me = FALSE; |
6688 | 6688 |
6689 if(!handle || !item) | 6689 if(!handle || !item) |
6690 return NULL; | 6690 return NULL; |
6691 | 6691 |
6692 DW_MUTEX_LOCK; | 6692 DW_MUTEX_LOCK; |
6705 void dw_tree_item_select(HWND handle, HTREEITEM item) | 6705 void dw_tree_item_select(HWND handle, HTREEITEM item) |
6706 { | 6706 { |
6707 #if GTK_MAJOR_VERSION > 1 | 6707 #if GTK_MAJOR_VERSION > 1 |
6708 GtkWidget *tree; | 6708 GtkWidget *tree; |
6709 GtkTreeStore *store; | 6709 GtkTreeStore *store; |
6710 int _locked_by_me = FALSE; | 6710 int _dw_locked_by_me = FALSE; |
6711 | 6711 |
6712 if(!handle || !item) | 6712 if(!handle || !item) |
6713 return; | 6713 return; |
6714 | 6714 |
6715 DW_MUTEX_LOCK; | 6715 DW_MUTEX_LOCK; |
6725 gtk_tree_path_free(path); | 6725 gtk_tree_path_free(path); |
6726 } | 6726 } |
6727 DW_MUTEX_UNLOCK; | 6727 DW_MUTEX_UNLOCK; |
6728 #else | 6728 #else |
6729 GtkWidget *lastselect, *tree; | 6729 GtkWidget *lastselect, *tree; |
6730 int _locked_by_me = FALSE; | 6730 int _dw_locked_by_me = FALSE; |
6731 | 6731 |
6732 if(!handle || !item) | 6732 if(!handle || !item) |
6733 return; | 6733 return; |
6734 | 6734 |
6735 DW_MUTEX_LOCK; | 6735 DW_MUTEX_LOCK; |
6771 void dw_tree_clear(HWND handle) | 6771 void dw_tree_clear(HWND handle) |
6772 { | 6772 { |
6773 #if GTK_MAJOR_VERSION > 1 | 6773 #if GTK_MAJOR_VERSION > 1 |
6774 GtkWidget *tree; | 6774 GtkWidget *tree; |
6775 GtkTreeStore *store; | 6775 GtkTreeStore *store; |
6776 int _locked_by_me = FALSE; | 6776 int _dw_locked_by_me = FALSE; |
6777 | 6777 |
6778 if(!handle) | 6778 if(!handle) |
6779 return; | 6779 return; |
6780 | 6780 |
6781 DW_MUTEX_LOCK; | 6781 DW_MUTEX_LOCK; |
6794 gtk_tree_store_clear(store); | 6794 gtk_tree_store_clear(store); |
6795 } | 6795 } |
6796 DW_MUTEX_UNLOCK; | 6796 DW_MUTEX_UNLOCK; |
6797 #else | 6797 #else |
6798 GtkWidget *tree; | 6798 GtkWidget *tree; |
6799 int _locked_by_me = FALSE; | 6799 int _dw_locked_by_me = FALSE; |
6800 | 6800 |
6801 if(!handle) | 6801 if(!handle) |
6802 return; | 6802 return; |
6803 | 6803 |
6804 DW_MUTEX_LOCK; | 6804 DW_MUTEX_LOCK; |
6823 void dw_tree_item_expand(HWND handle, HTREEITEM item) | 6823 void dw_tree_item_expand(HWND handle, HTREEITEM item) |
6824 { | 6824 { |
6825 #if GTK_MAJOR_VERSION > 1 | 6825 #if GTK_MAJOR_VERSION > 1 |
6826 GtkWidget *tree; | 6826 GtkWidget *tree; |
6827 GtkTreeStore *store; | 6827 GtkTreeStore *store; |
6828 int _locked_by_me = FALSE; | 6828 int _dw_locked_by_me = FALSE; |
6829 | 6829 |
6830 if(!handle) | 6830 if(!handle) |
6831 return; | 6831 return; |
6832 | 6832 |
6833 DW_MUTEX_LOCK; | 6833 DW_MUTEX_LOCK; |
6839 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); | 6839 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); |
6840 gtk_tree_path_free(path); | 6840 gtk_tree_path_free(path); |
6841 } | 6841 } |
6842 DW_MUTEX_UNLOCK; | 6842 DW_MUTEX_UNLOCK; |
6843 #else | 6843 #else |
6844 int _locked_by_me = FALSE; | 6844 int _dw_locked_by_me = FALSE; |
6845 | 6845 |
6846 if(!handle || !item) | 6846 if(!handle || !item) |
6847 return; | 6847 return; |
6848 | 6848 |
6849 DW_MUTEX_LOCK; | 6849 DW_MUTEX_LOCK; |
6864 void dw_tree_item_collapse(HWND handle, HTREEITEM item) | 6864 void dw_tree_item_collapse(HWND handle, HTREEITEM item) |
6865 { | 6865 { |
6866 #if GTK_MAJOR_VERSION > 1 | 6866 #if GTK_MAJOR_VERSION > 1 |
6867 GtkWidget *tree; | 6867 GtkWidget *tree; |
6868 GtkTreeStore *store; | 6868 GtkTreeStore *store; |
6869 int _locked_by_me = FALSE; | 6869 int _dw_locked_by_me = FALSE; |
6870 | 6870 |
6871 if(!handle) | 6871 if(!handle) |
6872 return; | 6872 return; |
6873 | 6873 |
6874 DW_MUTEX_LOCK; | 6874 DW_MUTEX_LOCK; |
6880 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); | 6880 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); |
6881 gtk_tree_path_free(path); | 6881 gtk_tree_path_free(path); |
6882 } | 6882 } |
6883 DW_MUTEX_UNLOCK; | 6883 DW_MUTEX_UNLOCK; |
6884 #else | 6884 #else |
6885 int _locked_by_me = FALSE; | 6885 int _dw_locked_by_me = FALSE; |
6886 | 6886 |
6887 if(!handle || !item) | 6887 if(!handle || !item) |
6888 return; | 6888 return; |
6889 | 6889 |
6890 DW_MUTEX_LOCK; | 6890 DW_MUTEX_LOCK; |
6903 void dw_tree_item_delete(HWND handle, HTREEITEM item) | 6903 void dw_tree_item_delete(HWND handle, HTREEITEM item) |
6904 { | 6904 { |
6905 #if GTK_MAJOR_VERSION > 1 | 6905 #if GTK_MAJOR_VERSION > 1 |
6906 GtkWidget *tree; | 6906 GtkWidget *tree; |
6907 GtkTreeStore *store; | 6907 GtkTreeStore *store; |
6908 int _locked_by_me = FALSE; | 6908 int _dw_locked_by_me = FALSE; |
6909 | 6909 |
6910 if(!handle) | 6910 if(!handle) |
6911 return; | 6911 return; |
6912 | 6912 |
6913 DW_MUTEX_LOCK; | 6913 DW_MUTEX_LOCK; |
6919 free(item); | 6919 free(item); |
6920 } | 6920 } |
6921 DW_MUTEX_UNLOCK; | 6921 DW_MUTEX_UNLOCK; |
6922 #else | 6922 #else |
6923 GtkWidget *tree, *lastselect, *parenttree; | 6923 GtkWidget *tree, *lastselect, *parenttree; |
6924 int _locked_by_me = FALSE; | 6924 int _dw_locked_by_me = FALSE; |
6925 | 6925 |
6926 if(!handle || !item || !GTK_IS_WIDGET(handle) || !GTK_IS_WIDGET(item)) | 6926 if(!handle || !item || !GTK_IS_WIDGET(handle) || !GTK_IS_WIDGET(item)) |
6927 return; | 6927 return; |
6928 | 6928 |
6929 DW_MUTEX_LOCK; | 6929 DW_MUTEX_LOCK; |
6953 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) | 6953 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) |
6954 { | 6954 { |
6955 GtkWidget *clist; | 6955 GtkWidget *clist; |
6956 char numbuf[25] = {0}; | 6956 char numbuf[25] = {0}; |
6957 int z, multi; | 6957 int z, multi; |
6958 int _locked_by_me = FALSE; | 6958 int _dw_locked_by_me = FALSE; |
6959 GtkJustification justification; | 6959 GtkJustification justification; |
6960 | 6960 |
6961 DW_MUTEX_LOCK; | 6961 DW_MUTEX_LOCK; |
6962 clist = gtk_clist_new_with_titles(count, (gchar **)titles); | 6962 clist = gtk_clist_new_with_titles(count, (gchar **)titles); |
6963 if(!clist) | 6963 if(!clist) |
7106 * DW pick the appropriate file extension. | 7106 * DW pick the appropriate file extension. |
7107 * (ICO on OS/2 or Windows, XPM on Unix) | 7107 * (ICO on OS/2 or Windows, XPM on Unix) |
7108 */ | 7108 */ |
7109 HICN API dw_icon_load_from_file(const char *filename) | 7109 HICN API dw_icon_load_from_file(const char *filename) |
7110 { | 7110 { |
7111 int found = -1, _locked_by_me = FALSE; | 7111 int found = -1, _dw_locked_by_me = FALSE; |
7112 #if GTK_MAJOR_VERSION > 1 | 7112 #if GTK_MAJOR_VERSION > 1 |
7113 GdkPixbuf *pixbuf; | 7113 GdkPixbuf *pixbuf; |
7114 #elif defined(USE_IMLIB) | 7114 #elif defined(USE_IMLIB) |
7115 GdkImlibImage *image; | 7115 GdkImlibImage *image; |
7116 #endif | 7116 #endif |
7217 * data: Source of data for image. | 7217 * data: Source of data for image. |
7218 * len: length of data | 7218 * len: length of data |
7219 */ | 7219 */ |
7220 HICN API dw_icon_load_from_data(const char *data, int len) | 7220 HICN API dw_icon_load_from_data(const char *data, int len) |
7221 { | 7221 { |
7222 int fd, written = -1, found = -1, _locked_by_me = FALSE; | 7222 int fd, written = -1, found = -1, _dw_locked_by_me = FALSE; |
7223 char template[] = "/tmp/dwiconXXXXXX"; | 7223 char template[] = "/tmp/dwiconXXXXXX"; |
7224 #if GTK_MAJOR_VERSION > 1 | 7224 #if GTK_MAJOR_VERSION > 1 |
7225 GdkPixbuf *pixbuf; | 7225 GdkPixbuf *pixbuf; |
7226 #elif defined(USE_IMLIB) | 7226 #elif defined(USE_IMLIB) |
7227 GdkImlibImage *image; | 7227 GdkImlibImage *image; |
7367 { | 7367 { |
7368 int z, count = 0, prevrowcount = 0; | 7368 int z, count = 0, prevrowcount = 0; |
7369 GtkWidget *clist; | 7369 GtkWidget *clist; |
7370 GdkColor *fore, *back; | 7370 GdkColor *fore, *back; |
7371 char **blah; | 7371 char **blah; |
7372 int _locked_by_me = FALSE; | 7372 int _dw_locked_by_me = FALSE; |
7373 | 7373 |
7374 DW_MUTEX_LOCK; | 7374 DW_MUTEX_LOCK; |
7375 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7375 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7376 if(!clist) | 7376 if(!clist) |
7377 { | 7377 { |
7416 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, const char *text) | 7416 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, const char *text) |
7417 { | 7417 { |
7418 char numbuf[25] = {0}, textbuffer[101] = {0}; | 7418 char numbuf[25] = {0}, textbuffer[101] = {0}; |
7419 int flag = 0; | 7419 int flag = 0; |
7420 GtkWidget *clist; | 7420 GtkWidget *clist; |
7421 int _locked_by_me = FALSE; | 7421 int _dw_locked_by_me = FALSE; |
7422 | 7422 |
7423 DW_MUTEX_LOCK; | 7423 DW_MUTEX_LOCK; |
7424 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7424 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7425 if(!clist) | 7425 if(!clist) |
7426 { | 7426 { |
7602 int dw_container_get_column_type(HWND handle, int column) | 7602 int dw_container_get_column_type(HWND handle, int column) |
7603 { | 7603 { |
7604 char numbuf[25] = {0}; | 7604 char numbuf[25] = {0}; |
7605 int flag, rc; | 7605 int flag, rc; |
7606 GtkWidget *clist; | 7606 GtkWidget *clist; |
7607 int _locked_by_me = FALSE; | 7607 int _dw_locked_by_me = FALSE; |
7608 | 7608 |
7609 DW_MUTEX_LOCK; | 7609 DW_MUTEX_LOCK; |
7610 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7610 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7611 if(!clist) | 7611 if(!clist) |
7612 { | 7612 { |
7654 * DW_CLR_DEFAULT will use the system default alternating row colors. | 7654 * DW_CLR_DEFAULT will use the system default alternating row colors. |
7655 */ | 7655 */ |
7656 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor) | 7656 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor) |
7657 { | 7657 { |
7658 GtkWidget *clist; | 7658 GtkWidget *clist; |
7659 int _locked_by_me = FALSE; | 7659 int _dw_locked_by_me = FALSE; |
7660 | 7660 |
7661 DW_MUTEX_LOCK; | 7661 DW_MUTEX_LOCK; |
7662 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); | 7662 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); |
7663 | 7663 |
7664 if(clist && GTK_IS_CLIST(clist)) | 7664 if(clist && GTK_IS_CLIST(clist)) |
7678 * width: Width of column in pixels. | 7678 * width: Width of column in pixels. |
7679 */ | 7679 */ |
7680 void dw_container_set_column_width(HWND handle, int column, int width) | 7680 void dw_container_set_column_width(HWND handle, int column, int width) |
7681 { | 7681 { |
7682 GtkWidget *clist; | 7682 GtkWidget *clist; |
7683 int _locked_by_me = FALSE; | 7683 int _dw_locked_by_me = FALSE; |
7684 | 7684 |
7685 DW_MUTEX_LOCK; | 7685 DW_MUTEX_LOCK; |
7686 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); | 7686 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); |
7687 | 7687 |
7688 if(clist && GTK_IS_CLIST(clist)) | 7688 if(clist && GTK_IS_CLIST(clist)) |
7707 #define _DW_DATA_TYPE_POINTER 1 | 7707 #define _DW_DATA_TYPE_POINTER 1 |
7708 | 7708 |
7709 void _dw_container_set_row_data(HWND handle, void *pointer, int row, int type, void *data) | 7709 void _dw_container_set_row_data(HWND handle, void *pointer, int row, int type, void *data) |
7710 { | 7710 { |
7711 GtkWidget *clist; | 7711 GtkWidget *clist; |
7712 int _locked_by_me = FALSE; | 7712 int _dw_locked_by_me = FALSE; |
7713 | 7713 |
7714 DW_MUTEX_LOCK; | 7714 DW_MUTEX_LOCK; |
7715 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7715 clist = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7716 if(pointer) | 7716 if(pointer) |
7717 { | 7717 { |
7796 * rowcount: The number of rows to be inserted. | 7796 * rowcount: The number of rows to be inserted. |
7797 */ | 7797 */ |
7798 void dw_container_insert(HWND handle, void *pointer, int rowcount) | 7798 void dw_container_insert(HWND handle, void *pointer, int rowcount) |
7799 { | 7799 { |
7800 GtkWidget *clist; | 7800 GtkWidget *clist; |
7801 int _locked_by_me = FALSE; | 7801 int _dw_locked_by_me = FALSE; |
7802 | 7802 |
7803 DW_MUTEX_LOCK; | 7803 DW_MUTEX_LOCK; |
7804 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); | 7804 clist = gtk_object_get_user_data(GTK_OBJECT(handle)); |
7805 | 7805 |
7806 if(clist && GTK_IS_CLIST(clist)) | 7806 if(clist && GTK_IS_CLIST(clist)) |
7818 * rowcount: The number of rows to be deleted. | 7818 * rowcount: The number of rows to be deleted. |
7819 */ | 7819 */ |
7820 void dw_container_delete(HWND handle, int rowcount) | 7820 void dw_container_delete(HWND handle, int rowcount) |
7821 { | 7821 { |
7822 GtkWidget *clist; | 7822 GtkWidget *clist; |
7823 int _locked_by_me = FALSE; | 7823 int _dw_locked_by_me = FALSE; |
7824 | 7824 |
7825 DW_MUTEX_LOCK; | 7825 DW_MUTEX_LOCK; |
7826 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7826 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7827 if(clist && GTK_IS_CLIST(clist)) | 7827 if(clist && GTK_IS_CLIST(clist)) |
7828 { | 7828 { |
7853 * redraw: TRUE to cause the container to redraw immediately. | 7853 * redraw: TRUE to cause the container to redraw immediately. |
7854 */ | 7854 */ |
7855 void dw_container_clear(HWND handle, int redraw) | 7855 void dw_container_clear(HWND handle, int redraw) |
7856 { | 7856 { |
7857 GtkWidget *clist; | 7857 GtkWidget *clist; |
7858 int _locked_by_me = FALSE; | 7858 int _dw_locked_by_me = FALSE; |
7859 | 7859 |
7860 DW_MUTEX_LOCK; | 7860 DW_MUTEX_LOCK; |
7861 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7861 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7862 if(clist && GTK_IS_CLIST(clist)) | 7862 if(clist && GTK_IS_CLIST(clist)) |
7863 { | 7863 { |
7878 */ | 7878 */ |
7879 void dw_container_scroll(HWND handle, int direction, long rows) | 7879 void dw_container_scroll(HWND handle, int direction, long rows) |
7880 { | 7880 { |
7881 GtkAdjustment *adj; | 7881 GtkAdjustment *adj; |
7882 GtkWidget *clist; | 7882 GtkWidget *clist; |
7883 int _locked_by_me = FALSE; | 7883 int _dw_locked_by_me = FALSE; |
7884 | 7884 |
7885 DW_MUTEX_LOCK; | 7885 DW_MUTEX_LOCK; |
7886 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 7886 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
7887 if(clist && GTK_IS_CLIST(clist)) | 7887 if(clist && GTK_IS_CLIST(clist)) |
7888 { | 7888 { |
7915 char *dw_container_query_start(HWND handle, unsigned long flags) | 7915 char *dw_container_query_start(HWND handle, unsigned long flags) |
7916 { | 7916 { |
7917 GtkWidget *clist; | 7917 GtkWidget *clist; |
7918 GList *list; | 7918 GList *list; |
7919 void *retval = NULL; | 7919 void *retval = NULL; |
7920 int _locked_by_me = FALSE; | 7920 int _dw_locked_by_me = FALSE; |
7921 int type = _DW_DATA_TYPE_STRING; | 7921 int type = _DW_DATA_TYPE_STRING; |
7922 void **params = NULL; | 7922 void **params = NULL; |
7923 | 7923 |
7924 if(flags & DW_CR_RETDATA) | 7924 if(flags & DW_CR_RETDATA) |
7925 type = _DW_DATA_TYPE_POINTER; | 7925 type = _DW_DATA_TYPE_POINTER; |
7975 char *dw_container_query_next(HWND handle, unsigned long flags) | 7975 char *dw_container_query_next(HWND handle, unsigned long flags) |
7976 { | 7976 { |
7977 GtkWidget *clist; | 7977 GtkWidget *clist; |
7978 GList *list; | 7978 GList *list; |
7979 void *retval = NULL; | 7979 void *retval = NULL; |
7980 int _locked_by_me = FALSE; | 7980 int _dw_locked_by_me = FALSE; |
7981 int type = _DW_DATA_TYPE_STRING; | 7981 int type = _DW_DATA_TYPE_STRING; |
7982 void **params = NULL; | 7982 void **params = NULL; |
7983 | 7983 |
7984 if(flags & DW_CR_RETDATA) | 7984 if(flags & DW_CR_RETDATA) |
7985 type = _DW_DATA_TYPE_POINTER; | 7985 type = _DW_DATA_TYPE_POINTER; |
8038 return retval; | 8038 return retval; |
8039 } | 8039 } |
8040 | 8040 |
8041 void _dw_container_cursor(HWND handle, int textcomp, void *data) | 8041 void _dw_container_cursor(HWND handle, int textcomp, void *data) |
8042 { | 8042 { |
8043 int _locked_by_me = FALSE; | 8043 int _dw_locked_by_me = FALSE; |
8044 GtkWidget *clist; | 8044 GtkWidget *clist; |
8045 int rowcount, z; | 8045 int rowcount, z; |
8046 | 8046 |
8047 DW_MUTEX_LOCK; | 8047 DW_MUTEX_LOCK; |
8048 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 8048 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
8099 _dw_container_cursor(handle, FALSE, data); | 8099 _dw_container_cursor(handle, FALSE, data); |
8100 } | 8100 } |
8101 | 8101 |
8102 void _dw_container_delete_row(HWND handle, int textcomp, void *data) | 8102 void _dw_container_delete_row(HWND handle, int textcomp, void *data) |
8103 { | 8103 { |
8104 int _locked_by_me = FALSE; | 8104 int _dw_locked_by_me = FALSE; |
8105 GtkWidget *clist; | 8105 GtkWidget *clist; |
8106 int rowcount, z; | 8106 int rowcount, z; |
8107 | 8107 |
8108 DW_MUTEX_LOCK; | 8108 DW_MUTEX_LOCK; |
8109 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 8109 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
8164 * Parameters: | 8164 * Parameters: |
8165 * handle: Handle to the window (widget) to be optimized. | 8165 * handle: Handle to the window (widget) to be optimized. |
8166 */ | 8166 */ |
8167 void dw_container_optimize(HWND handle) | 8167 void dw_container_optimize(HWND handle) |
8168 { | 8168 { |
8169 int _locked_by_me = FALSE; | 8169 int _dw_locked_by_me = FALSE; |
8170 GtkWidget *clist; | 8170 GtkWidget *clist; |
8171 int colcount, z; | 8171 int colcount, z; |
8172 | 8172 |
8173 DW_MUTEX_LOCK; | 8173 DW_MUTEX_LOCK; |
8174 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); | 8174 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); |
8215 void dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext) | 8215 void dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext) |
8216 { | 8216 { |
8217 #if GTK_CHECK_VERSION(2,10,0) | 8217 #if GTK_CHECK_VERSION(2,10,0) |
8218 GtkStatusIcon *status; | 8218 GtkStatusIcon *status; |
8219 GdkPixbuf *pixbuf; | 8219 GdkPixbuf *pixbuf; |
8220 int _locked_by_me = FALSE; | 8220 int _dw_locked_by_me = FALSE; |
8221 | 8221 |
8222 DW_MUTEX_LOCK; | 8222 DW_MUTEX_LOCK; |
8223 pixbuf = _dw_find_pixbuf(icon); | 8223 pixbuf = _dw_find_pixbuf(icon); |
8224 status = gtk_status_icon_new_from_pixbuf(pixbuf); | 8224 status = gtk_status_icon_new_from_pixbuf(pixbuf); |
8225 if(bubbletext) | 8225 if(bubbletext) |
8239 */ | 8239 */ |
8240 void dw_taskbar_delete(HWND handle, HICN icon) | 8240 void dw_taskbar_delete(HWND handle, HICN icon) |
8241 { | 8241 { |
8242 #if GTK_CHECK_VERSION(2,10,0) | 8242 #if GTK_CHECK_VERSION(2,10,0) |
8243 GtkStatusIcon *status; | 8243 GtkStatusIcon *status; |
8244 int _locked_by_me = FALSE; | 8244 int _dw_locked_by_me = FALSE; |
8245 | 8245 |
8246 DW_MUTEX_LOCK; | 8246 DW_MUTEX_LOCK; |
8247 status = g_object_get_data(G_OBJECT(handle), "_dw_taskbar"); | 8247 status = g_object_get_data(G_OBJECT(handle), "_dw_taskbar"); |
8248 g_object_unref(G_OBJECT(status)); | 8248 g_object_unref(G_OBJECT(status)); |
8249 DW_MUTEX_UNLOCK; | 8249 DW_MUTEX_UNLOCK; |
8257 * Returns: | 8257 * Returns: |
8258 * A handle to the widget or NULL on failure. | 8258 * A handle to the widget or NULL on failure. |
8259 */ | 8259 */ |
8260 HWND dw_render_new(unsigned long id) | 8260 HWND dw_render_new(unsigned long id) |
8261 { | 8261 { |
8262 int _locked_by_me = FALSE; | 8262 int _dw_locked_by_me = FALSE; |
8263 GtkWidget *tmp; | 8263 GtkWidget *tmp; |
8264 | 8264 |
8265 DW_MUTEX_LOCK; | 8265 DW_MUTEX_LOCK; |
8266 tmp = gtk_drawing_area_new(); | 8266 tmp = gtk_drawing_area_new(); |
8267 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK | 8267 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK |
8285 * Parameters: | 8285 * Parameters: |
8286 * handle: A handle to a render widget to be redrawn. | 8286 * handle: A handle to a render widget to be redrawn. |
8287 */ | 8287 */ |
8288 void API dw_render_redraw(HWND handle) | 8288 void API dw_render_redraw(HWND handle) |
8289 { | 8289 { |
8290 int _locked_by_me = FALSE; | 8290 int _dw_locked_by_me = FALSE; |
8291 | 8291 |
8292 DW_MUTEX_LOCK; | 8292 DW_MUTEX_LOCK; |
8293 if(handle && GTK_IS_WIDGET(handle)) | 8293 if(handle && GTK_IS_WIDGET(handle)) |
8294 gtk_widget_queue_draw(handle); | 8294 gtk_widget_queue_draw(handle); |
8295 DW_MUTEX_UNLOCK; | 8295 DW_MUTEX_UNLOCK; |
8314 * green: green value. | 8314 * green: green value. |
8315 * blue: blue value. | 8315 * blue: blue value. |
8316 */ | 8316 */ |
8317 void dw_color_foreground_set(unsigned long value) | 8317 void dw_color_foreground_set(unsigned long value) |
8318 { | 8318 { |
8319 int _locked_by_me = FALSE; | 8319 int _dw_locked_by_me = FALSE; |
8320 GdkColor color = _dw_internal_color(value); | 8320 GdkColor color = _dw_internal_color(value); |
8321 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); | 8321 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
8322 | 8322 |
8323 DW_MUTEX_LOCK; | 8323 DW_MUTEX_LOCK; |
8324 gdk_color_alloc(_dw_cmap, &color); | 8324 gdk_color_alloc(_dw_cmap, &color); |
8332 * green: green value. | 8332 * green: green value. |
8333 * blue: blue value. | 8333 * blue: blue value. |
8334 */ | 8334 */ |
8335 void dw_color_background_set(unsigned long value) | 8335 void dw_color_background_set(unsigned long value) |
8336 { | 8336 { |
8337 int _locked_by_me = FALSE; | 8337 int _dw_locked_by_me = FALSE; |
8338 GdkColor *background = pthread_getspecific(_dw_bg_color_key); | 8338 GdkColor *background = pthread_getspecific(_dw_bg_color_key); |
8339 | 8339 |
8340 if(value == DW_CLR_DEFAULT) | 8340 if(value == DW_CLR_DEFAULT) |
8341 { | 8341 { |
8342 if(background) | 8342 if(background) |
8411 * The selected color or the current color if cancelled. | 8411 * The selected color or the current color if cancelled. |
8412 */ | 8412 */ |
8413 unsigned long API dw_color_choose(unsigned long value) | 8413 unsigned long API dw_color_choose(unsigned long value) |
8414 { | 8414 { |
8415 GtkWidget *colorw; | 8415 GtkWidget *colorw; |
8416 int _locked_by_me = FALSE; | 8416 int _dw_locked_by_me = FALSE; |
8417 DWDialog *dwwait; | 8417 DWDialog *dwwait; |
8418 GtkColorSelection *colorsel; | 8418 GtkColorSelection *colorsel; |
8419 #if GTK_MAJOR_VERSION > 1 | 8419 #if GTK_MAJOR_VERSION > 1 |
8420 GdkColor color = _dw_internal_color(value); | 8420 GdkColor color = _dw_internal_color(value); |
8421 #else | 8421 #else |
8493 * x: X coordinate. | 8493 * x: X coordinate. |
8494 * y: Y coordinate. | 8494 * y: Y coordinate. |
8495 */ | 8495 */ |
8496 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y) | 8496 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y) |
8497 { | 8497 { |
8498 int _locked_by_me = FALSE; | 8498 int _dw_locked_by_me = FALSE; |
8499 GdkGC *gc = NULL; | 8499 GdkGC *gc = NULL; |
8500 #if GTK_CHECK_VERSION(2,10,0) | 8500 #if GTK_CHECK_VERSION(2,10,0) |
8501 cairo_t *cr = NULL; | 8501 cairo_t *cr = NULL; |
8502 #endif | 8502 #endif |
8503 | 8503 |
8537 * x2: Second X coordinate. | 8537 * x2: Second X coordinate. |
8538 * y2: Second Y coordinate. | 8538 * y2: Second Y coordinate. |
8539 */ | 8539 */ |
8540 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) | 8540 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) |
8541 { | 8541 { |
8542 int _locked_by_me = FALSE; | 8542 int _dw_locked_by_me = FALSE; |
8543 GdkGC *gc = NULL; | 8543 GdkGC *gc = NULL; |
8544 #if GTK_CHECK_VERSION(2,10,0) | 8544 #if GTK_CHECK_VERSION(2,10,0) |
8545 cairo_t *cr = NULL; | 8545 cairo_t *cr = NULL; |
8546 #endif | 8546 #endif |
8547 | 8547 |
8582 * x[]: X coordinates. | 8582 * x[]: X coordinates. |
8583 * y[]: Y coordinates. | 8583 * y[]: Y coordinates. |
8584 */ | 8584 */ |
8585 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) | 8585 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) |
8586 { | 8586 { |
8587 int _locked_by_me = FALSE; | 8587 int _dw_locked_by_me = FALSE; |
8588 int i; | 8588 int i; |
8589 GdkGC *gc = NULL; | 8589 GdkGC *gc = NULL; |
8590 GdkPoint *points = NULL; | 8590 GdkPoint *points = NULL; |
8591 #if GTK_CHECK_VERSION(2,10,0) | 8591 #if GTK_CHECK_VERSION(2,10,0) |
8592 cairo_t *cr = NULL; | 8592 cairo_t *cr = NULL; |
8648 * width: Width of rectangle. | 8648 * width: Width of rectangle. |
8649 * height: Height of rectangle. | 8649 * height: Height of rectangle. |
8650 */ | 8650 */ |
8651 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) | 8651 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) |
8652 { | 8652 { |
8653 int _locked_by_me = FALSE; | 8653 int _dw_locked_by_me = FALSE; |
8654 GdkGC *gc = NULL; | 8654 GdkGC *gc = NULL; |
8655 #if GTK_CHECK_VERSION(2,10,0) | 8655 #if GTK_CHECK_VERSION(2,10,0) |
8656 cairo_t *cr = NULL; | 8656 cairo_t *cr = NULL; |
8657 #endif | 8657 #endif |
8658 | 8658 |
8704 * x2: X coordinate of second segment of arc. | 8704 * x2: X coordinate of second segment of arc. |
8705 * y2: Y coordinate of second segment of arc. | 8705 * y2: Y coordinate of second segment of arc. |
8706 */ | 8706 */ |
8707 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) | 8707 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) |
8708 { | 8708 { |
8709 int _locked_by_me = FALSE; | 8709 int _dw_locked_by_me = FALSE; |
8710 GdkGC *gc = NULL; | 8710 GdkGC *gc = NULL; |
8711 #if GTK_CHECK_VERSION(2,10,0) | 8711 #if GTK_CHECK_VERSION(2,10,0) |
8712 cairo_t *cr = NULL; | 8712 cairo_t *cr = NULL; |
8713 #endif | 8713 #endif |
8714 double dx = xorigin - x1; | 8714 double dx = xorigin - x1; |
8792 * y: Y coordinate. | 8792 * y: Y coordinate. |
8793 * text: Text to be displayed. | 8793 * text: Text to be displayed. |
8794 */ | 8794 */ |
8795 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text) | 8795 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text) |
8796 { | 8796 { |
8797 int _locked_by_me = FALSE; | 8797 int _dw_locked_by_me = FALSE; |
8798 GdkGC *gc = NULL; | 8798 GdkGC *gc = NULL; |
8799 #if GTK_MAJOR_VERSION > 1 | 8799 #if GTK_MAJOR_VERSION > 1 |
8800 PangoFontDescription *font; | 8800 PangoFontDescription *font; |
8801 char *tmpname, *fontname = "monospace 10"; | 8801 char *tmpname, *fontname = "monospace 10"; |
8802 #else | 8802 #else |
8960 * width: Pointer to a variable to be filled in with the width. | 8960 * width: Pointer to a variable to be filled in with the width. |
8961 * height Pointer to a variable to be filled in with the height. | 8961 * height Pointer to a variable to be filled in with the height. |
8962 */ | 8962 */ |
8963 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height) | 8963 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height) |
8964 { | 8964 { |
8965 int _locked_by_me = FALSE; | 8965 int _dw_locked_by_me = FALSE; |
8966 #if GTK_MAJOR_VERSION > 1 | 8966 #if GTK_MAJOR_VERSION > 1 |
8967 PangoFontDescription *font; | 8967 PangoFontDescription *font; |
8968 #else | 8968 #else |
8969 GdkFont *font; | 8969 GdkFont *font; |
8970 #endif | 8970 #endif |
9052 * Returns: | 9052 * Returns: |
9053 * A handle to a pixmap or NULL on failure. | 9053 * A handle to a pixmap or NULL on failure. |
9054 */ | 9054 */ |
9055 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth) | 9055 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth) |
9056 { | 9056 { |
9057 int _locked_by_me = FALSE; | 9057 int _dw_locked_by_me = FALSE; |
9058 HPIXMAP pixmap; | 9058 HPIXMAP pixmap; |
9059 | 9059 |
9060 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) | 9060 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
9061 return NULL; | 9061 return NULL; |
9062 | 9062 |
9086 * Returns: | 9086 * Returns: |
9087 * A handle to a pixmap or NULL on failure. | 9087 * A handle to a pixmap or NULL on failure. |
9088 */ | 9088 */ |
9089 HPIXMAP dw_pixmap_new_from_file(HWND handle, const char *filename) | 9089 HPIXMAP dw_pixmap_new_from_file(HWND handle, const char *filename) |
9090 { | 9090 { |
9091 int _locked_by_me = FALSE; | 9091 int _dw_locked_by_me = FALSE; |
9092 HPIXMAP pixmap; | 9092 HPIXMAP pixmap; |
9093 #ifdef USE_IMLIB | 9093 #ifdef USE_IMLIB |
9094 GdkImlibImage *image; | 9094 GdkImlibImage *image; |
9095 #endif | 9095 #endif |
9096 char *file = alloca(strlen(filename) + 6); | 9096 char *file = alloca(strlen(filename) + 6); |
9156 * Returns: | 9156 * Returns: |
9157 * A handle to a pixmap or NULL on failure. | 9157 * A handle to a pixmap or NULL on failure. |
9158 */ | 9158 */ |
9159 HPIXMAP dw_pixmap_new_from_data(HWND handle, const char *data, int len) | 9159 HPIXMAP dw_pixmap_new_from_data(HWND handle, const char *data, int len) |
9160 { | 9160 { |
9161 int fd, written = -1, _locked_by_me = FALSE; | 9161 int fd, written = -1, _dw_locked_by_me = FALSE; |
9162 HPIXMAP pixmap; | 9162 HPIXMAP pixmap; |
9163 #if GTK_MAJOR_VERSION > 1 | 9163 #if GTK_MAJOR_VERSION > 1 |
9164 GdkPixbuf *pixbuf; | 9164 GdkPixbuf *pixbuf; |
9165 #elif defined(USE_IMLIB) | 9165 #elif defined(USE_IMLIB) |
9166 GdkImlibImage *image; | 9166 GdkImlibImage *image; |
9233 * A handle to a pixmap or NULL on failure. | 9233 * A handle to a pixmap or NULL on failure. |
9234 */ | 9234 */ |
9235 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) | 9235 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) |
9236 { | 9236 { |
9237 HPIXMAP pixmap; | 9237 HPIXMAP pixmap; |
9238 int _locked_by_me = FALSE; | 9238 int _dw_locked_by_me = FALSE; |
9239 | 9239 |
9240 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) | 9240 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
9241 return NULL; | 9241 return NULL; |
9242 | 9242 |
9243 | 9243 |
9258 * anything you have drawn is visible. | 9258 * anything you have drawn is visible. |
9259 */ | 9259 */ |
9260 void dw_flush(void) | 9260 void dw_flush(void) |
9261 { | 9261 { |
9262 #if GTK_MAJOR_VERSION < 2 | 9262 #if GTK_MAJOR_VERSION < 2 |
9263 int _locked_by_me = FALSE; | 9263 int _dw_locked_by_me = FALSE; |
9264 | 9264 |
9265 DW_MUTEX_LOCK; | 9265 DW_MUTEX_LOCK; |
9266 gdk_flush(); | 9266 gdk_flush(); |
9267 DW_MUTEX_UNLOCK; | 9267 DW_MUTEX_UNLOCK; |
9268 #endif | 9268 #endif |
9299 * pixmap: Handle to a pixmap returned by | 9299 * pixmap: Handle to a pixmap returned by |
9300 * dw_pixmap_new.. | 9300 * dw_pixmap_new.. |
9301 */ | 9301 */ |
9302 void dw_pixmap_destroy(HPIXMAP pixmap) | 9302 void dw_pixmap_destroy(HPIXMAP pixmap) |
9303 { | 9303 { |
9304 int _locked_by_me = FALSE; | 9304 int _dw_locked_by_me = FALSE; |
9305 | 9305 |
9306 DW_MUTEX_LOCK; | 9306 DW_MUTEX_LOCK; |
9307 gdk_pixmap_unref(pixmap->pixmap); | 9307 gdk_pixmap_unref(pixmap->pixmap); |
9308 if(pixmap->font) | 9308 if(pixmap->font) |
9309 free(pixmap->font); | 9309 free(pixmap->font); |
9315 | 9315 |
9316 #if GTK_CHECK_VERSION(2,10,0) | 9316 #if GTK_CHECK_VERSION(2,10,0) |
9317 /* Cairo version of dw_pixmap_bitblt() from GTK3, use if either pixmap is a cairo surface */ | 9317 /* Cairo version of dw_pixmap_bitblt() from GTK3, use if either pixmap is a cairo surface */ |
9318 int _dw_cairo_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) | 9318 int _dw_cairo_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) |
9319 { | 9319 { |
9320 int _locked_by_me = FALSE; | 9320 int _dw_locked_by_me = FALSE; |
9321 cairo_t *cr = NULL; | 9321 cairo_t *cr = NULL; |
9322 int retval = DW_ERROR_GENERAL; | 9322 int retval = DW_ERROR_GENERAL; |
9323 | 9323 |
9324 if((!dest && (!destp || !destp->image)) || (!src && (!srcp || (!srcp->image && !srcp->pixmap)))) | 9324 if((!dest && (!destp || !destp->image)) || (!src && (!srcp || (!srcp->image && !srcp->pixmap)))) |
9325 return retval; | 9325 return retval; |
9424 * Returns: | 9424 * Returns: |
9425 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. | 9425 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
9426 */ | 9426 */ |
9427 int API dw_pixmap_stretch_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) | 9427 int API dw_pixmap_stretch_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) |
9428 { | 9428 { |
9429 int _locked_by_me = FALSE; | 9429 int _dw_locked_by_me = FALSE; |
9430 GdkGC *gc = NULL; | 9430 GdkGC *gc = NULL; |
9431 int retval = DW_ERROR_GENERAL; | 9431 int retval = DW_ERROR_GENERAL; |
9432 | 9432 |
9433 #if GTK_CHECK_VERSION(2,10,0) | 9433 #if GTK_CHECK_VERSION(2,10,0) |
9434 if((destp && destp->image) || (srcp && srcp->image)) | 9434 if((destp && destp->image) || (srcp && srcp->image)) |
9520 * freq: Frequency. | 9520 * freq: Frequency. |
9521 * dur: Duration. | 9521 * dur: Duration. |
9522 */ | 9522 */ |
9523 void dw_beep(int freq, int dur) | 9523 void dw_beep(int freq, int dur) |
9524 { | 9524 { |
9525 int _locked_by_me = FALSE; | 9525 int _dw_locked_by_me = FALSE; |
9526 | 9526 |
9527 DW_MUTEX_LOCK; | 9527 DW_MUTEX_LOCK; |
9528 gdk_beep(); | 9528 gdk_beep(); |
9529 DW_MUTEX_UNLOCK; | 9529 DW_MUTEX_UNLOCK; |
9530 } | 9530 } |
10492 } | 10492 } |
10493 | 10493 |
10494 /* Internal box packing function called by the other 3 functions */ | 10494 /* Internal box packing function called by the other 3 functions */ |
10495 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname) | 10495 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname) |
10496 { | 10496 { |
10497 int warn = FALSE, _locked_by_me = FALSE; | 10497 int warn = FALSE, _dw_locked_by_me = FALSE; |
10498 GtkWidget *tmp, *tmpitem; | 10498 GtkWidget *tmp, *tmpitem; |
10499 | 10499 |
10500 if(!box) | 10500 if(!box) |
10501 return; | 10501 return; |
10502 | 10502 |
10645 * Returns: | 10645 * Returns: |
10646 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. | 10646 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
10647 */ | 10647 */ |
10648 int API dw_box_unpack(HWND handle) | 10648 int API dw_box_unpack(HWND handle) |
10649 { | 10649 { |
10650 int _locked_by_me = FALSE, retcode = DW_ERROR_GENERAL; | 10650 int _dw_locked_by_me = FALSE, retcode = DW_ERROR_GENERAL; |
10651 | 10651 |
10652 DW_MUTEX_LOCK; | 10652 DW_MUTEX_LOCK; |
10653 if(GTK_IS_WIDGET(handle)) | 10653 if(GTK_IS_WIDGET(handle)) |
10654 { | 10654 { |
10655 GtkWidget *box, *handle2 = handle; | 10655 GtkWidget *box, *handle2 = handle; |
10712 * Handle to the removed item on success, 0 on failure or padding. | 10712 * Handle to the removed item on success, 0 on failure or padding. |
10713 */ | 10713 */ |
10714 HWND API dw_box_unpack_at_index(HWND box, int index) | 10714 HWND API dw_box_unpack_at_index(HWND box, int index) |
10715 { | 10715 { |
10716 HWND retval = 0; | 10716 HWND retval = 0; |
10717 int _locked_by_me = FALSE; | 10717 int _dw_locked_by_me = FALSE; |
10718 | 10718 |
10719 DW_MUTEX_LOCK; | 10719 DW_MUTEX_LOCK; |
10720 /* Check if we are removing a widget from a box */ | 10720 /* Check if we are removing a widget from a box */ |
10721 if(GTK_IS_TABLE(box)) | 10721 if(GTK_IS_TABLE(box)) |
10722 { | 10722 { |
10935 * width: New width in pixels. | 10935 * width: New width in pixels. |
10936 * height: New height in pixels. | 10936 * height: New height in pixels. |
10937 */ | 10937 */ |
10938 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height) | 10938 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height) |
10939 { | 10939 { |
10940 int _locked_by_me = FALSE; | 10940 int _dw_locked_by_me = FALSE; |
10941 | 10941 |
10942 if(!handle) | 10942 if(!handle) |
10943 return; | 10943 return; |
10944 | 10944 |
10945 DW_MUTEX_LOCK; | 10945 DW_MUTEX_LOCK; |
11007 * height: Height in pixels of the item or NULL if not needed. | 11007 * height: Height in pixels of the item or NULL if not needed. |
11008 */ | 11008 */ |
11009 void API dw_window_get_preferred_size(HWND handle, int *width, int *height) | 11009 void API dw_window_get_preferred_size(HWND handle, int *width, int *height) |
11010 { | 11010 { |
11011 GtkRequisition req; | 11011 GtkRequisition req; |
11012 int _locked_by_me = FALSE; | 11012 int _dw_locked_by_me = FALSE; |
11013 | 11013 |
11014 DW_MUTEX_LOCK; | 11014 DW_MUTEX_LOCK; |
11015 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11015 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11016 { | 11016 { |
11017 gint scrolledwidth, scrolledheight; | 11017 gint scrolledwidth, scrolledheight; |
11038 * Returns the width of the screen. | 11038 * Returns the width of the screen. |
11039 */ | 11039 */ |
11040 int dw_screen_width(void) | 11040 int dw_screen_width(void) |
11041 { | 11041 { |
11042 int retval; | 11042 int retval; |
11043 int _locked_by_me = FALSE; | 11043 int _dw_locked_by_me = FALSE; |
11044 | 11044 |
11045 DW_MUTEX_LOCK; | 11045 DW_MUTEX_LOCK; |
11046 retval = gdk_screen_width(); | 11046 retval = gdk_screen_width(); |
11047 DW_MUTEX_UNLOCK; | 11047 DW_MUTEX_UNLOCK; |
11048 return retval; | 11048 return retval; |
11052 * Returns the height of the screen. | 11052 * Returns the height of the screen. |
11053 */ | 11053 */ |
11054 int dw_screen_height(void) | 11054 int dw_screen_height(void) |
11055 { | 11055 { |
11056 int retval; | 11056 int retval; |
11057 int _locked_by_me = FALSE; | 11057 int _dw_locked_by_me = FALSE; |
11058 | 11058 |
11059 DW_MUTEX_UNLOCK; | 11059 DW_MUTEX_UNLOCK; |
11060 retval = gdk_screen_height(); | 11060 retval = gdk_screen_height(); |
11061 DW_MUTEX_UNLOCK; | 11061 DW_MUTEX_UNLOCK; |
11062 return retval; | 11062 return retval; |
11065 /* This should return the current color depth */ | 11065 /* This should return the current color depth */ |
11066 unsigned long dw_color_depth_get(void) | 11066 unsigned long dw_color_depth_get(void) |
11067 { | 11067 { |
11068 int retval; | 11068 int retval; |
11069 GdkVisual *vis; | 11069 GdkVisual *vis; |
11070 int _locked_by_me = FALSE; | 11070 int _dw_locked_by_me = FALSE; |
11071 | 11071 |
11072 DW_MUTEX_UNLOCK; | 11072 DW_MUTEX_UNLOCK; |
11073 vis = gdk_visual_get_system(); | 11073 vis = gdk_visual_get_system(); |
11074 retval = vis->depth; | 11074 retval = vis->depth; |
11075 DW_MUTEX_UNLOCK; | 11075 DW_MUTEX_UNLOCK; |
11097 * x: X location from the bottom left. | 11097 * x: X location from the bottom left. |
11098 * y: Y location from the bottom left. | 11098 * y: Y location from the bottom left. |
11099 */ | 11099 */ |
11100 void dw_window_set_pos(HWND handle, long x, long y) | 11100 void dw_window_set_pos(HWND handle, long x, long y) |
11101 { | 11101 { |
11102 int _locked_by_me = FALSE; | 11102 int _dw_locked_by_me = FALSE; |
11103 #if GTK_MAJOR_VERSION > 1 | 11103 #if GTK_MAJOR_VERSION > 1 |
11104 GtkWidget *mdi; | 11104 GtkWidget *mdi; |
11105 #endif | 11105 #endif |
11106 | 11106 |
11107 if(!handle) | 11107 if(!handle) |
11240 * width: Width of the widget. | 11240 * width: Width of the widget. |
11241 * height: Height of the widget. | 11241 * height: Height of the widget. |
11242 */ | 11242 */ |
11243 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) | 11243 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) |
11244 { | 11244 { |
11245 int _locked_by_me = FALSE; | 11245 int _dw_locked_by_me = FALSE; |
11246 gint gx = 0, gy = 0, gwidth = 0, gheight = 0; | 11246 gint gx = 0, gy = 0, gwidth = 0, gheight = 0; |
11247 #if GTK_MAJOR_VERSION > 1 | 11247 #if GTK_MAJOR_VERSION > 1 |
11248 GtkWidget *mdi; | 11248 GtkWidget *mdi; |
11249 #endif | 11249 #endif |
11250 | 11250 |
11304 * height: New height in pixels. | 11304 * height: New height in pixels. |
11305 */ | 11305 */ |
11306 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask) | 11306 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask) |
11307 { | 11307 { |
11308 GtkWidget *handle2 = handle; | 11308 GtkWidget *handle2 = handle; |
11309 int _locked_by_me = FALSE; | 11309 int _dw_locked_by_me = FALSE; |
11310 | 11310 |
11311 DW_MUTEX_LOCK; | 11311 DW_MUTEX_LOCK; |
11312 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11312 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11313 { | 11313 { |
11314 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11314 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11388 * front: If TRUE page is added at the beginning. | 11388 * front: If TRUE page is added at the beginning. |
11389 */ | 11389 */ |
11390 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front) | 11390 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front) |
11391 { | 11391 { |
11392 int z; | 11392 int z; |
11393 int _locked_by_me = FALSE; | 11393 int _dw_locked_by_me = FALSE; |
11394 GtkWidget **pagearray; | 11394 GtkWidget **pagearray; |
11395 | 11395 |
11396 DW_MUTEX_LOCK; | 11396 DW_MUTEX_LOCK; |
11397 pagearray = (GtkWidget **)gtk_object_get_data(GTK_OBJECT(handle), "_dw_pagearray"); | 11397 pagearray = (GtkWidget **)gtk_object_get_data(GTK_OBJECT(handle), "_dw_pagearray"); |
11398 | 11398 |
11448 * handle: Handle to the notebook widget. | 11448 * handle: Handle to the notebook widget. |
11449 * pageid: ID of the page to be destroyed. | 11449 * pageid: ID of the page to be destroyed. |
11450 */ | 11450 */ |
11451 void dw_notebook_page_destroy(HWND handle, unsigned int pageid) | 11451 void dw_notebook_page_destroy(HWND handle, unsigned int pageid) |
11452 { | 11452 { |
11453 int realpage, _locked_by_me = FALSE; | 11453 int realpage, _dw_locked_by_me = FALSE; |
11454 GtkWidget **pagearray; | 11454 GtkWidget **pagearray; |
11455 | 11455 |
11456 DW_MUTEX_LOCK; | 11456 DW_MUTEX_LOCK; |
11457 realpage = _dw_get_physical_page(handle, pageid); | 11457 realpage = _dw_get_physical_page(handle, pageid); |
11458 if(realpage > -1 && realpage < 256) | 11458 if(realpage > -1 && realpage < 256) |
11470 * handle: Handle to the notebook widget. | 11470 * handle: Handle to the notebook widget. |
11471 */ | 11471 */ |
11472 unsigned long dw_notebook_page_get(HWND handle) | 11472 unsigned long dw_notebook_page_get(HWND handle) |
11473 { | 11473 { |
11474 int retval, phys; | 11474 int retval, phys; |
11475 int _locked_by_me = FALSE; | 11475 int _dw_locked_by_me = FALSE; |
11476 | 11476 |
11477 DW_MUTEX_LOCK; | 11477 DW_MUTEX_LOCK; |
11478 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); | 11478 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); |
11479 retval = _dw_get_logical_page(handle, phys); | 11479 retval = _dw_get_logical_page(handle, phys); |
11480 DW_MUTEX_UNLOCK; | 11480 DW_MUTEX_UNLOCK; |
11487 * handle: Handle to the notebook widget. | 11487 * handle: Handle to the notebook widget. |
11488 * pageid: ID of the page to be made visible. | 11488 * pageid: ID of the page to be made visible. |
11489 */ | 11489 */ |
11490 void dw_notebook_page_set(HWND handle, unsigned int pageid) | 11490 void dw_notebook_page_set(HWND handle, unsigned int pageid) |
11491 { | 11491 { |
11492 int realpage, _locked_by_me = FALSE; | 11492 int realpage, _dw_locked_by_me = FALSE; |
11493 | 11493 |
11494 DW_MUTEX_LOCK; | 11494 DW_MUTEX_LOCK; |
11495 realpage = _dw_get_physical_page(handle, pageid); | 11495 realpage = _dw_get_physical_page(handle, pageid); |
11496 if(realpage > -1 && realpage < 256) | 11496 if(realpage > -1 && realpage < 256) |
11497 gtk_notebook_set_page(GTK_NOTEBOOK(handle), pageid); | 11497 gtk_notebook_set_page(GTK_NOTEBOOK(handle), pageid); |
11507 * text: Pointer to the text to set. | 11507 * text: Pointer to the text to set. |
11508 */ | 11508 */ |
11509 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text) | 11509 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text) |
11510 { | 11510 { |
11511 GtkWidget *child; | 11511 GtkWidget *child; |
11512 int realpage, _locked_by_me = FALSE; | 11512 int realpage, _dw_locked_by_me = FALSE; |
11513 | 11513 |
11514 DW_MUTEX_LOCK; | 11514 DW_MUTEX_LOCK; |
11515 realpage = _dw_get_physical_page(handle, pageid); | 11515 realpage = _dw_get_physical_page(handle, pageid); |
11516 if(realpage < 0 || realpage > 255) | 11516 if(realpage < 0 || realpage > 255) |
11517 { | 11517 { |
11553 */ | 11553 */ |
11554 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page) | 11554 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page) |
11555 { | 11555 { |
11556 GtkWidget *label, *child, *oldlabel, **pagearray; | 11556 GtkWidget *label, *child, *oldlabel, **pagearray; |
11557 gchar *text = NULL; | 11557 gchar *text = NULL; |
11558 int num, z, realpage = -1, pad, _locked_by_me = FALSE; | 11558 int num, z, realpage = -1, pad, _dw_locked_by_me = FALSE; |
11559 char ptext[101] = {0}; | 11559 char ptext[101] = {0}; |
11560 | 11560 |
11561 DW_MUTEX_LOCK; | 11561 DW_MUTEX_LOCK; |
11562 snprintf(ptext, 100, "_dw_page%d", (int)pageid); | 11562 snprintf(ptext, 100, "_dw_page%d", (int)pageid); |
11563 num = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(handle), ptext)); | 11563 num = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(handle), ptext)); |
11614 * text: Text to append into listbox. | 11614 * text: Text to append into listbox. |
11615 */ | 11615 */ |
11616 void dw_listbox_append(HWND handle, const char *text) | 11616 void dw_listbox_append(HWND handle, const char *text) |
11617 { | 11617 { |
11618 GtkWidget *handle2 = handle; | 11618 GtkWidget *handle2 = handle; |
11619 int _locked_by_me = FALSE; | 11619 int _dw_locked_by_me = FALSE; |
11620 | 11620 |
11621 DW_MUTEX_LOCK; | 11621 DW_MUTEX_LOCK; |
11622 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11622 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11623 { | 11623 { |
11624 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11624 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11675 * pos: 0-based index into listbox. -1 will append | 11675 * pos: 0-based index into listbox. -1 will append |
11676 */ | 11676 */ |
11677 void dw_listbox_insert(HWND handle, const char *text, int pos) | 11677 void dw_listbox_insert(HWND handle, const char *text, int pos) |
11678 { | 11678 { |
11679 GtkWidget *handle2 = handle; | 11679 GtkWidget *handle2 = handle; |
11680 int _locked_by_me = FALSE; | 11680 int _dw_locked_by_me = FALSE; |
11681 | 11681 |
11682 DW_MUTEX_LOCK; | 11682 DW_MUTEX_LOCK; |
11683 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11683 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11684 { | 11684 { |
11685 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11685 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11732 * count: Number of text strings to append | 11732 * count: Number of text strings to append |
11733 */ | 11733 */ |
11734 void dw_listbox_list_append(HWND handle, char **text, int count) | 11734 void dw_listbox_list_append(HWND handle, char **text, int count) |
11735 { | 11735 { |
11736 GtkWidget *handle2 = handle; | 11736 GtkWidget *handle2 = handle; |
11737 int _locked_by_me = FALSE; | 11737 int _dw_locked_by_me = FALSE; |
11738 | 11738 |
11739 if ( count == 0 ) | 11739 if ( count == 0 ) |
11740 return; | 11740 return; |
11741 | 11741 |
11742 DW_MUTEX_LOCK; | 11742 DW_MUTEX_LOCK; |
11792 * handle: Handle to the listbox to be cleared. | 11792 * handle: Handle to the listbox to be cleared. |
11793 */ | 11793 */ |
11794 void dw_listbox_clear(HWND handle) | 11794 void dw_listbox_clear(HWND handle) |
11795 { | 11795 { |
11796 GtkWidget *handle2 = handle; | 11796 GtkWidget *handle2 = handle; |
11797 int _locked_by_me = FALSE; | 11797 int _dw_locked_by_me = FALSE; |
11798 | 11798 |
11799 DW_MUTEX_LOCK; | 11799 DW_MUTEX_LOCK; |
11800 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11800 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11801 { | 11801 { |
11802 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11802 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11836 */ | 11836 */ |
11837 int dw_listbox_count(HWND handle) | 11837 int dw_listbox_count(HWND handle) |
11838 { | 11838 { |
11839 GtkWidget *handle2 = handle; | 11839 GtkWidget *handle2 = handle; |
11840 int retval = 0; | 11840 int retval = 0; |
11841 int _locked_by_me = FALSE; | 11841 int _dw_locked_by_me = FALSE; |
11842 | 11842 |
11843 DW_MUTEX_LOCK; | 11843 DW_MUTEX_LOCK; |
11844 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11844 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11845 { | 11845 { |
11846 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11846 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11871 * top: Index to the top item. | 11871 * top: Index to the top item. |
11872 */ | 11872 */ |
11873 void dw_listbox_set_top(HWND handle, int top) | 11873 void dw_listbox_set_top(HWND handle, int top) |
11874 { | 11874 { |
11875 GtkWidget *handle2 = handle; | 11875 GtkWidget *handle2 = handle; |
11876 int _locked_by_me = FALSE; | 11876 int _dw_locked_by_me = FALSE; |
11877 | 11877 |
11878 DW_MUTEX_LOCK; | 11878 DW_MUTEX_LOCK; |
11879 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11879 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11880 { | 11880 { |
11881 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11881 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11909 * length: Length of the buffer (including NULL). | 11909 * length: Length of the buffer (including NULL). |
11910 */ | 11910 */ |
11911 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length) | 11911 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length) |
11912 { | 11912 { |
11913 GtkWidget *handle2 = handle; | 11913 GtkWidget *handle2 = handle; |
11914 int _locked_by_me = FALSE; | 11914 int _dw_locked_by_me = FALSE; |
11915 | 11915 |
11916 DW_MUTEX_LOCK; | 11916 DW_MUTEX_LOCK; |
11917 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11917 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11918 { | 11918 { |
11919 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11919 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
11973 * buffer: Buffer where text will be copied. | 11973 * buffer: Buffer where text will be copied. |
11974 */ | 11974 */ |
11975 void dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer) | 11975 void dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer) |
11976 { | 11976 { |
11977 GtkWidget *handle2 = handle; | 11977 GtkWidget *handle2 = handle; |
11978 int _locked_by_me = FALSE; | 11978 int _dw_locked_by_me = FALSE; |
11979 | 11979 |
11980 DW_MUTEX_LOCK; | 11980 DW_MUTEX_LOCK; |
11981 if(GTK_IS_SCROLLED_WINDOW(handle)) | 11981 if(GTK_IS_SCROLLED_WINDOW(handle)) |
11982 { | 11982 { |
11983 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 11983 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
12053 */ | 12053 */ |
12054 int dw_listbox_selected_multi(HWND handle, int where) | 12054 int dw_listbox_selected_multi(HWND handle, int where) |
12055 { | 12055 { |
12056 GtkWidget *handle2 = handle; | 12056 GtkWidget *handle2 = handle; |
12057 int retval = DW_LIT_NONE; | 12057 int retval = DW_LIT_NONE; |
12058 int _locked_by_me = FALSE; | 12058 int _dw_locked_by_me = FALSE; |
12059 | 12059 |
12060 DW_MUTEX_LOCK; | 12060 DW_MUTEX_LOCK; |
12061 if(GTK_IS_SCROLLED_WINDOW(handle)) | 12061 if(GTK_IS_SCROLLED_WINDOW(handle)) |
12062 { | 12062 { |
12063 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 12063 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
12114 */ | 12114 */ |
12115 int dw_listbox_selected(HWND handle) | 12115 int dw_listbox_selected(HWND handle) |
12116 { | 12116 { |
12117 GtkWidget *handle2 = handle; | 12117 GtkWidget *handle2 = handle; |
12118 int retval = DW_LIT_NONE; | 12118 int retval = DW_LIT_NONE; |
12119 int _locked_by_me = FALSE; | 12119 int _dw_locked_by_me = FALSE; |
12120 | 12120 |
12121 DW_MUTEX_LOCK; | 12121 DW_MUTEX_LOCK; |
12122 if(GTK_IS_SCROLLED_WINDOW(handle)) | 12122 if(GTK_IS_SCROLLED_WINDOW(handle)) |
12123 { | 12123 { |
12124 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 12124 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
12181 * state: TRUE if selected FALSE if unselected. | 12181 * state: TRUE if selected FALSE if unselected. |
12182 */ | 12182 */ |
12183 void dw_listbox_select(HWND handle, int index, int state) | 12183 void dw_listbox_select(HWND handle, int index, int state) |
12184 { | 12184 { |
12185 GtkWidget *handle2 = handle; | 12185 GtkWidget *handle2 = handle; |
12186 int _locked_by_me = FALSE; | 12186 int _dw_locked_by_me = FALSE; |
12187 | 12187 |
12188 DW_MUTEX_LOCK; | 12188 DW_MUTEX_LOCK; |
12189 if(GTK_IS_SCROLLED_WINDOW(handle)) | 12189 if(GTK_IS_SCROLLED_WINDOW(handle)) |
12190 { | 12190 { |
12191 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 12191 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
12213 * index: Item index. | 12213 * index: Item index. |
12214 */ | 12214 */ |
12215 void dw_listbox_delete(HWND handle, int index) | 12215 void dw_listbox_delete(HWND handle, int index) |
12216 { | 12216 { |
12217 GtkWidget *handle2 = handle; | 12217 GtkWidget *handle2 = handle; |
12218 int _locked_by_me = FALSE; | 12218 int _dw_locked_by_me = FALSE; |
12219 | 12219 |
12220 DW_MUTEX_LOCK; | 12220 DW_MUTEX_LOCK; |
12221 if(GTK_IS_SCROLLED_WINDOW(handle)) | 12221 if(GTK_IS_SCROLLED_WINDOW(handle)) |
12222 { | 12222 { |
12223 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 12223 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
12263 * A handle to a splitbar window or NULL on failure. | 12263 * A handle to a splitbar window or NULL on failure. |
12264 */ | 12264 */ |
12265 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id) | 12265 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id) |
12266 { | 12266 { |
12267 GtkWidget *tmp = NULL; | 12267 GtkWidget *tmp = NULL; |
12268 int _locked_by_me = FALSE; | 12268 int _dw_locked_by_me = FALSE; |
12269 float *percent = malloc(sizeof(float)); | 12269 float *percent = malloc(sizeof(float)); |
12270 | 12270 |
12271 DW_MUTEX_LOCK; | 12271 DW_MUTEX_LOCK; |
12272 if(type == DW_HORZ) | 12272 if(type == DW_HORZ) |
12273 tmp = gtk_hpaned_new(); | 12273 tmp = gtk_hpaned_new(); |
12335 * A handle to a calendar window or NULL on failure. | 12335 * A handle to a calendar window or NULL on failure. |
12336 */ | 12336 */ |
12337 HWND dw_calendar_new(unsigned long id) | 12337 HWND dw_calendar_new(unsigned long id) |
12338 { | 12338 { |
12339 GtkWidget *tmp; | 12339 GtkWidget *tmp; |
12340 int _locked_by_me = FALSE; | 12340 int _dw_locked_by_me = FALSE; |
12341 GtkCalendarDisplayOptions flags; | 12341 GtkCalendarDisplayOptions flags; |
12342 time_t now; | 12342 time_t now; |
12343 struct tm *tmdata; | 12343 struct tm *tmdata; |
12344 | 12344 |
12345 DW_MUTEX_LOCK; | 12345 DW_MUTEX_LOCK; |
12364 * handle: The handle to the calendar returned by dw_calendar_new(). | 12364 * handle: The handle to the calendar returned by dw_calendar_new(). |
12365 * year... | 12365 * year... |
12366 */ | 12366 */ |
12367 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day) | 12367 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day) |
12368 { | 12368 { |
12369 int _locked_by_me = FALSE; | 12369 int _dw_locked_by_me = FALSE; |
12370 | 12370 |
12371 DW_MUTEX_LOCK; | 12371 DW_MUTEX_LOCK; |
12372 if(GTK_IS_CALENDAR(handle)) | 12372 if(GTK_IS_CALENDAR(handle)) |
12373 { | 12373 { |
12374 gtk_calendar_select_month(GTK_CALENDAR(handle),month-1,year); | 12374 gtk_calendar_select_month(GTK_CALENDAR(handle),month-1,year); |
12383 * Parameters: | 12383 * Parameters: |
12384 * handle: The handle to the splitbar returned by dw_splitbar_new(). | 12384 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
12385 */ | 12385 */ |
12386 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) | 12386 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) |
12387 { | 12387 { |
12388 int _locked_by_me = FALSE; | 12388 int _dw_locked_by_me = FALSE; |
12389 | 12389 |
12390 DW_MUTEX_LOCK; | 12390 DW_MUTEX_LOCK; |
12391 if(GTK_IS_CALENDAR(handle)) | 12391 if(GTK_IS_CALENDAR(handle)) |
12392 { | 12392 { |
12393 gtk_calendar_get_date(GTK_CALENDAR(handle),year,month,day); | 12393 gtk_calendar_get_date(GTK_CALENDAR(handle),year,month,day); |
12404 * Remarks: | 12404 * Remarks: |
12405 * This is for use after showing the window/dialog. | 12405 * This is for use after showing the window/dialog. |
12406 */ | 12406 */ |
12407 void API dw_window_set_focus(HWND handle) | 12407 void API dw_window_set_focus(HWND handle) |
12408 { | 12408 { |
12409 int _locked_by_me = FALSE; | 12409 int _dw_locked_by_me = FALSE; |
12410 | 12410 |
12411 if(!handle) | 12411 if(!handle) |
12412 return; | 12412 return; |
12413 | 12413 |
12414 DW_MUTEX_LOCK; | 12414 DW_MUTEX_LOCK; |
12424 * Remarks: | 12424 * Remarks: |
12425 * This is for use before showing the window/dialog. | 12425 * This is for use before showing the window/dialog. |
12426 */ | 12426 */ |
12427 void dw_window_default(HWND window, HWND defaultitem) | 12427 void dw_window_default(HWND window, HWND defaultitem) |
12428 { | 12428 { |
12429 int _locked_by_me = FALSE; | 12429 int _dw_locked_by_me = FALSE; |
12430 | 12430 |
12431 if(!window) | 12431 if(!window) |
12432 return; | 12432 return; |
12433 | 12433 |
12434 DW_MUTEX_LOCK; | 12434 DW_MUTEX_LOCK; |
12442 * window: Window (widget) to look for the ENTER press. | 12442 * window: Window (widget) to look for the ENTER press. |
12443 * next: Window (widget) to move to next (or click) | 12443 * next: Window (widget) to move to next (or click) |
12444 */ | 12444 */ |
12445 void dw_window_click_default(HWND window, HWND next) | 12445 void dw_window_click_default(HWND window, HWND next) |
12446 { | 12446 { |
12447 int _locked_by_me = FALSE; | 12447 int _dw_locked_by_me = FALSE; |
12448 | 12448 |
12449 if(!window) | 12449 if(!window) |
12450 return; | 12450 return; |
12451 | 12451 |
12452 DW_MUTEX_LOCK; | 12452 DW_MUTEX_LOCK; |
12872 } | 12872 } |
12873 | 12873 |
12874 gtk_widget_destroy( filew ); | 12874 gtk_widget_destroy( filew ); |
12875 return filename; | 12875 return filename; |
12876 #else | 12876 #else |
12877 int _locked_by_me = FALSE; | 12877 int _dw_locked_by_me = FALSE; |
12878 DWDialog *dwwait; | 12878 DWDialog *dwwait; |
12879 if(flags == DW_DIRECTORY_OPEN) | 12879 if(flags == DW_DIRECTORY_OPEN) |
12880 { | 12880 { |
12881 HWND window, hbox, vbox, tree, button; | 12881 HWND window, hbox, vbox, tree, button; |
12882 HTREEITEM item, tempitem; | 12882 HTREEITEM item, tempitem; |
13052 * action: One of the DW_HTML_* constants. | 13052 * action: One of the DW_HTML_* constants. |
13053 */ | 13053 */ |
13054 void dw_html_action(HWND handle, int action) | 13054 void dw_html_action(HWND handle, int action) |
13055 { | 13055 { |
13056 #ifdef USE_WEBKIT | 13056 #ifdef USE_WEBKIT |
13057 int _locked_by_me = FALSE; | 13057 int _dw_locked_by_me = FALSE; |
13058 WebKitWebView *web_view; | 13058 WebKitWebView *web_view; |
13059 | 13059 |
13060 DW_MUTEX_LOCK; | 13060 DW_MUTEX_LOCK; |
13061 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); | 13061 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); |
13062 if(web_view) | 13062 if(web_view) |
13104 * 0 on success. | 13104 * 0 on success. |
13105 */ | 13105 */ |
13106 int dw_html_raw(HWND handle, const char *string) | 13106 int dw_html_raw(HWND handle, const char *string) |
13107 { | 13107 { |
13108 #ifdef USE_WEBKIT | 13108 #ifdef USE_WEBKIT |
13109 int _locked_by_me = FALSE; | 13109 int _dw_locked_by_me = FALSE; |
13110 WebKitWebView *web_view; | 13110 WebKitWebView *web_view; |
13111 | 13111 |
13112 DW_MUTEX_LOCK; | 13112 DW_MUTEX_LOCK; |
13113 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); | 13113 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); |
13114 if(web_view) | 13114 if(web_view) |
13132 * 0 on success. | 13132 * 0 on success. |
13133 */ | 13133 */ |
13134 int dw_html_url(HWND handle, const char *url) | 13134 int dw_html_url(HWND handle, const char *url) |
13135 { | 13135 { |
13136 #ifdef USE_WEBKIT | 13136 #ifdef USE_WEBKIT |
13137 int _locked_by_me = FALSE; | 13137 int _dw_locked_by_me = FALSE; |
13138 WebKitWebView *web_view; | 13138 WebKitWebView *web_view; |
13139 | 13139 |
13140 DW_MUTEX_LOCK; | 13140 DW_MUTEX_LOCK; |
13141 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); | 13141 web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"); |
13142 if(web_view) | 13142 if(web_view) |
13161 * DW_ERROR_NONE (0) on success. | 13161 * DW_ERROR_NONE (0) on success. |
13162 */ | 13162 */ |
13163 int dw_html_javascript_run(HWND handle, const char *script, void *scriptdata) | 13163 int dw_html_javascript_run(HWND handle, const char *script, void *scriptdata) |
13164 { | 13164 { |
13165 #ifdef USE_WEBKIT | 13165 #ifdef USE_WEBKIT |
13166 int _locked_by_me = FALSE; | 13166 int _dw_locked_by_me = FALSE; |
13167 WebKitWebView *web_view; | 13167 WebKitWebView *web_view; |
13168 | 13168 |
13169 DW_MUTEX_LOCK; | 13169 DW_MUTEX_LOCK; |
13170 if((web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"))) | 13170 if((web_view = (WebKitWebView *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_web_view"))) |
13171 webkit_web_view_execute_script(web_view, script); | 13171 webkit_web_view_execute_script(web_view, script); |
13214 */ | 13214 */ |
13215 HWND dw_html_new(unsigned long id) | 13215 HWND dw_html_new(unsigned long id) |
13216 { | 13216 { |
13217 GtkWidget *widget = NULL; | 13217 GtkWidget *widget = NULL; |
13218 #ifdef USE_WEBKIT | 13218 #ifdef USE_WEBKIT |
13219 int _locked_by_me = FALSE; | 13219 int _dw_locked_by_me = FALSE; |
13220 WebKitWebView *web_view; | 13220 WebKitWebView *web_view; |
13221 WebKitWebSettings *settings; | 13221 WebKitWebSettings *settings; |
13222 | 13222 |
13223 DW_MUTEX_LOCK; | 13223 DW_MUTEX_LOCK; |
13224 widget = gtk_scrolled_window_new(NULL, NULL); | 13224 widget = gtk_scrolled_window_new(NULL, NULL); |
13252 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not | 13252 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not |
13253 * be converted to text. | 13253 * be converted to text. |
13254 */ | 13254 */ |
13255 char *dw_clipboard_get_text() | 13255 char *dw_clipboard_get_text() |
13256 { | 13256 { |
13257 int _locked_by_me = FALSE; | 13257 int _dw_locked_by_me = FALSE; |
13258 GtkClipboard *clipboard_object; | 13258 GtkClipboard *clipboard_object; |
13259 char *ret = NULL; | 13259 char *ret = NULL; |
13260 | 13260 |
13261 DW_MUTEX_LOCK; | 13261 DW_MUTEX_LOCK; |
13262 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) | 13262 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) |
13278 * Parameters: | 13278 * Parameters: |
13279 * Text. | 13279 * Text. |
13280 */ | 13280 */ |
13281 void dw_clipboard_set_text(const char *str, int len) | 13281 void dw_clipboard_set_text(const char *str, int len) |
13282 { | 13282 { |
13283 int _locked_by_me = FALSE; | 13283 int _dw_locked_by_me = FALSE; |
13284 GtkClipboard *clipboard_object; | 13284 GtkClipboard *clipboard_object; |
13285 | 13285 |
13286 DW_MUTEX_LOCK; | 13286 DW_MUTEX_LOCK; |
13287 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) | 13287 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) |
13288 { | 13288 { |
13328 */ | 13328 */ |
13329 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) | 13329 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) |
13330 { | 13330 { |
13331 #if GTK_CHECK_VERSION(2,10,0) | 13331 #if GTK_CHECK_VERSION(2,10,0) |
13332 GtkPrintOperation *op; | 13332 GtkPrintOperation *op; |
13333 int _locked_by_me = FALSE; | 13333 int _dw_locked_by_me = FALSE; |
13334 | 13334 |
13335 if(!drawfunc) | 13335 if(!drawfunc) |
13336 return NULL; | 13336 return NULL; |
13337 | 13337 |
13338 DW_MUTEX_LOCK; | 13338 DW_MUTEX_LOCK; |
13362 int API dw_print_run(HPRINT print, unsigned long flags) | 13362 int API dw_print_run(HPRINT print, unsigned long flags) |
13363 { | 13363 { |
13364 #if GTK_CHECK_VERSION(2,10,0) | 13364 #if GTK_CHECK_VERSION(2,10,0) |
13365 GtkPrintOperationResult res; | 13365 GtkPrintOperationResult res; |
13366 GtkPrintOperation *op = (GtkPrintOperation *)print; | 13366 GtkPrintOperation *op = (GtkPrintOperation *)print; |
13367 int _locked_by_me = FALSE; | 13367 int _dw_locked_by_me = FALSE; |
13368 | 13368 |
13369 DW_MUTEX_LOCK; | 13369 DW_MUTEX_LOCK; |
13370 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL); | 13370 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL); |
13371 DW_MUTEX_UNLOCK; | 13371 DW_MUTEX_UNLOCK; |
13372 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE); | 13372 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE); |
13381 * print: Handle to the print object returned by dw_print_new(). | 13381 * print: Handle to the print object returned by dw_print_new(). |
13382 */ | 13382 */ |
13383 void API dw_print_cancel(HPRINT print) | 13383 void API dw_print_cancel(HPRINT print) |
13384 { | 13384 { |
13385 #if GTK_CHECK_VERSION(2,10,0) | 13385 #if GTK_CHECK_VERSION(2,10,0) |
13386 int _locked_by_me = FALSE; | 13386 int _dw_locked_by_me = FALSE; |
13387 GtkPrintOperation *op = (GtkPrintOperation *)print; | 13387 GtkPrintOperation *op = (GtkPrintOperation *)print; |
13388 | 13388 |
13389 DW_MUTEX_LOCK; | 13389 DW_MUTEX_LOCK; |
13390 gtk_print_operation_cancel(op); | 13390 gtk_print_operation_cancel(op); |
13391 DW_MUTEX_UNLOCK; | 13391 DW_MUTEX_UNLOCK; |
13478 * dataname: A string pointer identifying which signal to be hooked. | 13478 * dataname: A string pointer identifying which signal to be hooked. |
13479 * data: User data to be passed to the handler function. | 13479 * data: User data to be passed to the handler function. |
13480 */ | 13480 */ |
13481 void dw_window_set_data(HWND window, const char *dataname, void *data) | 13481 void dw_window_set_data(HWND window, const char *dataname, void *data) |
13482 { | 13482 { |
13483 int _locked_by_me = FALSE; | 13483 int _dw_locked_by_me = FALSE; |
13484 | 13484 |
13485 if(!window) | 13485 if(!window) |
13486 return; | 13486 return; |
13487 | 13487 |
13488 DW_MUTEX_LOCK; | 13488 DW_MUTEX_LOCK; |
13509 * dataname: A string pointer identifying which signal to be hooked. | 13509 * dataname: A string pointer identifying which signal to be hooked. |
13510 * data: User data to be passed to the handler function. | 13510 * data: User data to be passed to the handler function. |
13511 */ | 13511 */ |
13512 void *dw_window_get_data(HWND window, const char *dataname) | 13512 void *dw_window_get_data(HWND window, const char *dataname) |
13513 { | 13513 { |
13514 int _locked_by_me = FALSE; | 13514 int _dw_locked_by_me = FALSE; |
13515 void *ret = NULL; | 13515 void *ret = NULL; |
13516 | 13516 |
13517 if(!window) | 13517 if(!window) |
13518 return NULL; | 13518 return NULL; |
13519 | 13519 |
13551 * Returns: | 13551 * Returns: |
13552 * Timer ID for use with dw_timer_disconnect(), 0 on error. | 13552 * Timer ID for use with dw_timer_disconnect(), 0 on error. |
13553 */ | 13553 */ |
13554 HTIMER API dw_timer_connect(int interval, void *sigfunc, void *data) | 13554 HTIMER API dw_timer_connect(int interval, void *sigfunc, void *data) |
13555 { | 13555 { |
13556 int tag, _locked_by_me = FALSE; | 13556 int tag, _dw_locked_by_me = FALSE; |
13557 | 13557 |
13558 DW_MUTEX_LOCK; | 13558 DW_MUTEX_LOCK; |
13559 tag = gtk_timeout_add(interval, (GtkFunction)sigfunc, data); | 13559 tag = gtk_timeout_add(interval, (GtkFunction)sigfunc, data); |
13560 DW_MUTEX_UNLOCK; | 13560 DW_MUTEX_UNLOCK; |
13561 return tag; | 13561 return tag; |
13566 * Parameters: | 13566 * Parameters: |
13567 * id: Timer ID returned by dw_timer_connect(). | 13567 * id: Timer ID returned by dw_timer_connect(). |
13568 */ | 13568 */ |
13569 void API dw_timer_disconnect(HTIMER id) | 13569 void API dw_timer_disconnect(HTIMER id) |
13570 { | 13570 { |
13571 int _locked_by_me = FALSE; | 13571 int _dw_locked_by_me = FALSE; |
13572 | 13572 |
13573 DW_MUTEX_LOCK; | 13573 DW_MUTEX_LOCK; |
13574 gtk_timeout_remove(id); | 13574 gtk_timeout_remove(id); |
13575 DW_MUTEX_UNLOCK; | 13575 DW_MUTEX_UNLOCK; |
13576 } | 13576 } |
13649 void dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data) | 13649 void dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data) |
13650 { | 13650 { |
13651 void *thisfunc = _dw_findsigfunc(signame); | 13651 void *thisfunc = _dw_findsigfunc(signame); |
13652 char *thisname = (char *)signame; | 13652 char *thisname = (char *)signame; |
13653 HWND thiswindow = window; | 13653 HWND thiswindow = window; |
13654 int sigid, _locked_by_me = FALSE; | 13654 int sigid, _dw_locked_by_me = FALSE; |
13655 void **params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *)); | 13655 void **params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *)); |
13656 gint cid; | 13656 gint cid; |
13657 | 13657 |
13658 /* Save the disconnect function pointer */ | 13658 /* Save the disconnect function pointer */ |
13659 params[1] = discfunc; | 13659 params[1] = discfunc; |
13881 */ | 13881 */ |
13882 void dw_signal_disconnect_by_name(HWND window, const char *signame) | 13882 void dw_signal_disconnect_by_name(HWND window, const char *signame) |
13883 { | 13883 { |
13884 int z, count; | 13884 int z, count; |
13885 void *thisfunc; | 13885 void *thisfunc; |
13886 int _locked_by_me = FALSE; | 13886 int _dw_locked_by_me = FALSE; |
13887 void **params = alloca(sizeof(void *) * 3); | 13887 void **params = alloca(sizeof(void *) * 3); |
13888 | 13888 |
13889 DW_MUTEX_LOCK; | 13889 DW_MUTEX_LOCK; |
13890 params[2] = _dw_find_signal_window(window, signame); | 13890 params[2] = _dw_find_signal_window(window, signame); |
13891 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(params[2]), "_dw_sigcounter")); | 13891 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(params[2]), "_dw_sigcounter")); |
13911 */ | 13911 */ |
13912 void dw_signal_disconnect_by_window(HWND window) | 13912 void dw_signal_disconnect_by_window(HWND window) |
13913 { | 13913 { |
13914 HWND thiswindow; | 13914 HWND thiswindow; |
13915 int z, count; | 13915 int z, count; |
13916 int _locked_by_me = FALSE; | 13916 int _dw_locked_by_me = FALSE; |
13917 | 13917 |
13918 DW_MUTEX_LOCK; | 13918 DW_MUTEX_LOCK; |
13919 thiswindow = _dw_find_signal_window(window, NULL); | 13919 thiswindow = _dw_find_signal_window(window, NULL); |
13920 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(thiswindow), "_dw_sigcounter")); | 13920 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(thiswindow), "_dw_sigcounter")); |
13921 | 13921 |
13932 * data: Pointer to the data to be compared against. | 13932 * data: Pointer to the data to be compared against. |
13933 */ | 13933 */ |
13934 void dw_signal_disconnect_by_data(HWND window, void *data) | 13934 void dw_signal_disconnect_by_data(HWND window, void *data) |
13935 { | 13935 { |
13936 int z, count; | 13936 int z, count; |
13937 int _locked_by_me = FALSE; | 13937 int _dw_locked_by_me = FALSE; |
13938 void **params = alloca(sizeof(void *) * 3); | 13938 void **params = alloca(sizeof(void *) * 3); |
13939 | 13939 |
13940 DW_MUTEX_LOCK; | 13940 DW_MUTEX_LOCK; |
13941 params[2] = _dw_find_signal_window(window, NULL); | 13941 params[2] = _dw_find_signal_window(window, NULL); |
13942 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(params[2]), "_dw_sigcounter")); | 13942 count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(params[2]), "_dw_sigcounter")); |