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"));