comparison gtk3/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 608796a91527
children c77974083ba1
comparison
equal deleted inserted replaced
2748:d8db838d5616 2749:1f2c4f7aca4b
132 132
133 void (*_dw_gdk_threads_init)(void) = NULL; 133 void (*_dw_gdk_threads_init)(void) = NULL;
134 void (*_dw_gdk_threads_enter)(void) = NULL; 134 void (*_dw_gdk_threads_enter)(void) = NULL;
135 void (*_dw_gdk_threads_leave)(void) = NULL; 135 void (*_dw_gdk_threads_leave)(void) = NULL;
136 136
137 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && !pthread_getspecific(_dw_mutex_key)) { _dw_gdk_threads_enter(); pthread_setspecific(_dw_mutex_key, (void *)1); _locked_by_me = TRUE; } } 137 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && !pthread_getspecific(_dw_mutex_key)) { _dw_gdk_threads_enter(); pthread_setspecific(_dw_mutex_key, (void *)&_dw_locked_by_me); _dw_locked_by_me = TRUE; } }
138 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _locked_by_me == TRUE) { _dw_gdk_threads_leave(); pthread_setspecific(_dw_mutex_key, NULL); _locked_by_me = FALSE; } } 138 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _dw_locked_by_me == TRUE) { _dw_gdk_threads_leave(); pthread_setspecific(_dw_mutex_key, NULL); _dw_locked_by_me = FALSE; } }
139 139
140 #define DEFAULT_SIZE_WIDTH 12 140 #define DEFAULT_SIZE_WIDTH 12
141 #define DEFAULT_SIZE_HEIGHT 6 141 #define DEFAULT_SIZE_HEIGHT 6
142 #define DEFAULT_TITLEBAR_HEIGHT 22 142 #define DEFAULT_TITLEBAR_HEIGHT 22
143 143
2170 2170
2171 gettimeofday(&tv, NULL); 2171 gettimeofday(&tv, NULL);
2172 2172
2173 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) 2173 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds)
2174 { 2174 {
2175 int _locked_by_me = FALSE; 2175 int _dw_locked_by_me = FALSE;
2176 2176
2177 if(orig == (pthread_t)-1) 2177 if(orig == (pthread_t)-1)
2178 { 2178 {
2179 if(!pthread_getspecific(_dw_mutex_key)) 2179 if(!pthread_getspecific(_dw_mutex_key))
2180 { 2180 {
2181 _dw_gdk_threads_enter(); 2181 _dw_gdk_threads_enter();
2182 pthread_setspecific(_dw_mutex_key, (void *)1); 2182 pthread_setspecific(_dw_mutex_key, (void *)1);
2183 _locked_by_me = TRUE; 2183 _dw_locked_by_me = TRUE;
2184 } 2184 }
2185 _dw_thread = curr; 2185 _dw_thread = curr;
2186 } 2186 }
2187 if(curr == _dw_thread && gtk_events_pending()) 2187 if(curr == _dw_thread && gtk_events_pending())
2188 gtk_main_iteration(); 2188 gtk_main_iteration();
2189 else 2189 else
2190 _dw_msleep(1); 2190 _dw_msleep(1);
2191 if(orig == (pthread_t)-1) 2191 if(orig == (pthread_t)-1)
2192 { 2192 {
2193 _dw_thread = orig; 2193 _dw_thread = orig;
2194 if(_locked_by_me) 2194 if(_dw_locked_by_me)
2195 { 2195 {
2196 pthread_setspecific(_dw_mutex_key, NULL); 2196 pthread_setspecific(_dw_mutex_key, NULL);
2197 _dw_gdk_threads_leave(); 2197 _dw_gdk_threads_leave();
2198 } 2198 }
2199 } 2199 }
2209 */ 2209 */
2210 void API dw_main_iteration(void) 2210 void API dw_main_iteration(void)
2211 { 2211 {
2212 pthread_t orig = _dw_thread; 2212 pthread_t orig = _dw_thread;
2213 pthread_t curr = pthread_self(); 2213 pthread_t curr = pthread_self();
2214 int _locked_by_me = FALSE; 2214 int _dw_locked_by_me = FALSE;
2215 2215
2216 if(_dw_thread == (pthread_t)-1) 2216 if(_dw_thread == (pthread_t)-1)
2217 { 2217 {
2218 if(!pthread_getspecific(_dw_mutex_key)) 2218 if(!pthread_getspecific(_dw_mutex_key))
2219 { 2219 {
2220 _dw_gdk_threads_enter(); 2220 _dw_gdk_threads_enter();
2221 pthread_setspecific(_dw_mutex_key, (void *)1); 2221 pthread_setspecific(_dw_mutex_key, (void *)1);
2222 _locked_by_me = TRUE; 2222 _dw_locked_by_me = TRUE;
2223 } 2223 }
2224 _dw_thread = curr; 2224 _dw_thread = curr;
2225 } 2225 }
2226 if(curr == _dw_thread && gtk_events_pending()) 2226 if(curr == _dw_thread && gtk_events_pending())
2227 gtk_main_iteration(); 2227 gtk_main_iteration();
2228 else 2228 else
2229 sched_yield(); 2229 sched_yield();
2230 if(orig == (pthread_t)-1) 2230 if(orig == (pthread_t)-1)
2231 { 2231 {
2232 _dw_thread = orig; 2232 _dw_thread = orig;
2233 if(_locked_by_me) 2233 if(_dw_locked_by_me)
2234 { 2234 {
2235 pthread_setspecific(_dw_mutex_key, NULL); 2235 pthread_setspecific(_dw_mutex_key, NULL);
2236 _dw_gdk_threads_leave(); 2236 _dw_gdk_threads_leave();
2237 } 2237 }
2238 } 2238 }
2362 int dw_messagebox(const char *title, int flags, const char *format, ...) 2362 int dw_messagebox(const char *title, int flags, const char *format, ...)
2363 { 2363 {
2364 GtkMessageType gtkicon = GTK_MESSAGE_OTHER; 2364 GtkMessageType gtkicon = GTK_MESSAGE_OTHER;
2365 GtkButtonsType gtkbuttons = GTK_BUTTONS_OK; 2365 GtkButtonsType gtkbuttons = GTK_BUTTONS_OK;
2366 GtkWidget *dialog; 2366 GtkWidget *dialog;
2367 int response, _locked_by_me = FALSE; 2367 int response, _dw_locked_by_me = FALSE;
2368 va_list args; 2368 va_list args;
2369 char outbuf[1025] = {0}; 2369 char outbuf[1025] = {0};
2370 2370
2371 va_start(args, format); 2371 va_start(args, format);
2372 vsnprintf(outbuf, 1024, format, args); 2372 vsnprintf(outbuf, 1024, format, args);
2425 * Parameters: 2425 * Parameters:
2426 * handle: The window handle to minimize. 2426 * handle: The window handle to minimize.
2427 */ 2427 */
2428 int dw_window_minimize(HWND handle) 2428 int dw_window_minimize(HWND handle)
2429 { 2429 {
2430 int _locked_by_me = FALSE; 2430 int _dw_locked_by_me = FALSE;
2431 #ifdef DW_INCLUDE_DEPRECATED 2431 #ifdef DW_INCLUDE_DEPRECATED
2432 GtkWidget *mdi = NULL; 2432 GtkWidget *mdi = NULL;
2433 #endif 2433 #endif
2434 2434
2435 if(!handle) 2435 if(!handle)
2455 * Parameters: 2455 * Parameters:
2456 * handle: The window handle to make topmost. 2456 * handle: The window handle to make topmost.
2457 */ 2457 */
2458 int dw_window_raise(HWND handle) 2458 int dw_window_raise(HWND handle)
2459 { 2459 {
2460 int _locked_by_me = FALSE; 2460 int _dw_locked_by_me = FALSE;
2461 2461
2462 if(!handle) 2462 if(!handle)
2463 return 0; 2463 return 0;
2464 2464
2465 DW_MUTEX_LOCK; 2465 DW_MUTEX_LOCK;
2473 * Parameters: 2473 * Parameters:
2474 * handle: The window handle to make bottommost. 2474 * handle: The window handle to make bottommost.
2475 */ 2475 */
2476 int dw_window_lower(HWND handle) 2476 int dw_window_lower(HWND handle)
2477 { 2477 {
2478 int _locked_by_me = FALSE; 2478 int _dw_locked_by_me = FALSE;
2479 2479
2480 if(!handle) 2480 if(!handle)
2481 return 0; 2481 return 0;
2482 2482
2483 DW_MUTEX_LOCK; 2483 DW_MUTEX_LOCK;
2491 * Parameters: 2491 * Parameters:
2492 * handle: The window handle to make visible. 2492 * handle: The window handle to make visible.
2493 */ 2493 */
2494 int dw_window_show(HWND handle) 2494 int dw_window_show(HWND handle)
2495 { 2495 {
2496 int _locked_by_me = FALSE; 2496 int _dw_locked_by_me = FALSE;
2497 GtkWidget *defaultitem; 2497 GtkWidget *defaultitem;
2498 #ifdef DW_INCLUDE_DEPRECATED 2498 #ifdef DW_INCLUDE_DEPRECATED
2499 GtkWidget *mdi; 2499 GtkWidget *mdi;
2500 #endif 2500 #endif
2501 2501
2558 * Parameters: 2558 * Parameters:
2559 * handle: The window handle to make visible. 2559 * handle: The window handle to make visible.
2560 */ 2560 */
2561 int dw_window_hide(HWND handle) 2561 int dw_window_hide(HWND handle)
2562 { 2562 {
2563 int _locked_by_me = FALSE; 2563 int _dw_locked_by_me = FALSE;
2564 #ifdef DW_INCLUDE_DEPRECATED 2564 #ifdef DW_INCLUDE_DEPRECATED
2565 GtkWidget *mdi = NULL; 2565 GtkWidget *mdi = NULL;
2566 #endif 2566 #endif
2567 2567
2568 if(!handle) 2568 if(!handle)
2586 * Parameters: 2586 * Parameters:
2587 * handle: The window handle to destroy. 2587 * handle: The window handle to destroy.
2588 */ 2588 */
2589 int dw_window_destroy(HWND handle) 2589 int dw_window_destroy(HWND handle)
2590 { 2590 {
2591 int _locked_by_me = FALSE; 2591 int _dw_locked_by_me = FALSE;
2592 #ifdef DW_INCLUDE_DEPRECATED 2592 #ifdef DW_INCLUDE_DEPRECATED
2593 GtkWidget *mdi = NULL; 2593 GtkWidget *mdi = NULL;
2594 #endif 2594 #endif
2595 2595
2596 if(!handle) 2596 if(!handle)
2679 * handle: The window handle to destroy. 2679 * handle: The window handle to destroy.
2680 * newparent: The window's new parent window. 2680 * newparent: The window's new parent window.
2681 */ 2681 */
2682 void dw_window_reparent(HWND handle, HWND newparent) 2682 void dw_window_reparent(HWND handle, HWND newparent)
2683 { 2683 {
2684 int _locked_by_me = FALSE; 2684 int _dw_locked_by_me = FALSE;
2685 2685
2686 DW_MUTEX_LOCK; 2686 DW_MUTEX_LOCK;
2687 gdk_window_reparent(gtk_widget_get_window(GTK_WIDGET(handle)), newparent ? gtk_widget_get_window(GTK_WIDGET(newparent)) : gdk_get_default_root_window(), 0, 0); 2687 gdk_window_reparent(gtk_widget_get_window(GTK_WIDGET(handle)), newparent ? gtk_widget_get_window(GTK_WIDGET(newparent)) : gdk_get_default_root_window(), 0, 0);
2688 DW_MUTEX_UNLOCK; 2688 DW_MUTEX_UNLOCK;
2689 } 2689 }
2807 */ 2807 */
2808 int dw_window_set_font(HWND handle, const char *fontname) 2808 int dw_window_set_font(HWND handle, const char *fontname)
2809 { 2809 {
2810 GtkWidget *handle2 = handle; 2810 GtkWidget *handle2 = handle;
2811 char *font = _dw_convert_font(fontname); 2811 char *font = _dw_convert_font(fontname);
2812 int _locked_by_me = FALSE; 2812 int _dw_locked_by_me = FALSE;
2813 gpointer data; 2813 gpointer data;
2814 2814
2815 DW_MUTEX_LOCK; 2815 DW_MUTEX_LOCK;
2816 if(GTK_IS_SCROLLED_WINDOW(handle)) 2816 if(GTK_IS_SCROLLED_WINDOW(handle))
2817 { 2817 {
2854 char * API dw_font_choose(const char *currfont) 2854 char * API dw_font_choose(const char *currfont)
2855 { 2855 {
2856 GtkFontChooser *fd; 2856 GtkFontChooser *fd;
2857 char *font = currfont ? strdup(currfont) : NULL; 2857 char *font = currfont ? strdup(currfont) : NULL;
2858 char *name = font ? strchr(font, '.') : NULL; 2858 char *name = font ? strchr(font, '.') : NULL;
2859 int _locked_by_me = FALSE; 2859 int _dw_locked_by_me = FALSE;
2860 char *retfont = NULL; 2860 char *retfont = NULL;
2861 2861
2862 /* Detect Dynamic Windows style font name... 2862 /* Detect Dynamic Windows style font name...
2863 * Format: ##.Fontname 2863 * Format: ##.Fontname
2864 * and convert to a Pango name 2864 * and convert to a Pango name
2925 PangoFontDescription *pfont; 2925 PangoFontDescription *pfont;
2926 PangoContext *pcontext; 2926 PangoContext *pcontext;
2927 GtkWidget *handle2 = handle; 2927 GtkWidget *handle2 = handle;
2928 char *font; 2928 char *font;
2929 char *retfont=NULL; 2929 char *retfont=NULL;
2930 int _locked_by_me = FALSE; 2930 int _dw_locked_by_me = FALSE;
2931 2931
2932 DW_MUTEX_LOCK; 2932 DW_MUTEX_LOCK;
2933 if(GTK_IS_SCROLLED_WINDOW(handle)) 2933 if(GTK_IS_SCROLLED_WINDOW(handle))
2934 { 2934 {
2935 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 2935 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
3054 * back: Background color in RGB format. 3054 * back: Background color in RGB format.
3055 */ 3055 */
3056 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back) 3056 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back)
3057 { 3057 {
3058 GtkWidget *handle2 = handle; 3058 GtkWidget *handle2 = handle;
3059 int _locked_by_me = FALSE; 3059 int _dw_locked_by_me = FALSE;
3060 3060
3061 DW_MUTEX_LOCK; 3061 DW_MUTEX_LOCK;
3062 3062
3063 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle)) 3063 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle))
3064 { 3064 {
3105 * Parameters: 3105 * Parameters:
3106 * handle: Handle to receive mouse input. 3106 * handle: Handle to receive mouse input.
3107 */ 3107 */
3108 void dw_window_capture(HWND handle) 3108 void dw_window_capture(HWND handle)
3109 { 3109 {
3110 int _locked_by_me = FALSE; 3110 int _dw_locked_by_me = FALSE;
3111 3111
3112 DW_MUTEX_LOCK; 3112 DW_MUTEX_LOCK;
3113 #if GTK_CHECK_VERSION(3,20,0) 3113 #if GTK_CHECK_VERSION(3,20,0)
3114 _dw_grab_seat = gdk_display_get_default_seat(gtk_widget_get_display(handle)); 3114 _dw_grab_seat = gdk_display_get_default_seat(gtk_widget_get_display(handle));
3115 gdk_seat_grab (_dw_grab_seat, 3115 gdk_seat_grab (_dw_grab_seat,
3135 * handle: Handle to widget for which to change. 3135 * handle: Handle to widget for which to change.
3136 * cursortype: ID of the pointer you want. 3136 * cursortype: ID of the pointer you want.
3137 */ 3137 */
3138 void dw_window_set_pointer(HWND handle, int pointertype) 3138 void dw_window_set_pointer(HWND handle, int pointertype)
3139 { 3139 {
3140 int _locked_by_me = FALSE; 3140 int _dw_locked_by_me = FALSE;
3141 GdkCursor *cursor; 3141 GdkCursor *cursor;
3142 3142
3143 DW_MUTEX_LOCK; 3143 DW_MUTEX_LOCK;
3144 if(pointertype > 65535) 3144 if(pointertype > 65535)
3145 { 3145 {
3160 /* 3160 /*
3161 * Releases previous mouse capture. 3161 * Releases previous mouse capture.
3162 */ 3162 */
3163 void dw_window_release(void) 3163 void dw_window_release(void)
3164 { 3164 {
3165 int _locked_by_me = FALSE; 3165 int _dw_locked_by_me = FALSE;
3166 3166
3167 DW_MUTEX_LOCK; 3167 DW_MUTEX_LOCK;
3168 #if GTK_CHECK_VERSION(3,20,0) 3168 #if GTK_CHECK_VERSION(3,20,0)
3169 if(_dw_grab_seat) 3169 if(_dw_grab_seat)
3170 gdk_seat_ungrab(_dw_grab_seat); 3170 gdk_seat_ungrab(_dw_grab_seat);
3184 * flStyle: Style flags, see the PM reference. 3184 * flStyle: Style flags, see the PM reference.
3185 */ 3185 */
3186 HWND dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle) 3186 HWND dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle)
3187 { 3187 {
3188 GtkWidget *tmp; 3188 GtkWidget *tmp;
3189 int _locked_by_me = FALSE; 3189 int _dw_locked_by_me = FALSE;
3190 int flags = 0; 3190 int flags = 0;
3191 3191
3192 DW_MUTEX_LOCK; 3192 DW_MUTEX_LOCK;
3193 #ifdef DW_INCLUDE_DEPRECATED 3193 #ifdef DW_INCLUDE_DEPRECATED
3194 if(hwndOwner && GTK_IS_MDI(hwndOwner)) 3194 if(hwndOwner && GTK_IS_MDI(hwndOwner))
3274 * pad: Number of pixels to pad around the box. 3274 * pad: Number of pixels to pad around the box.
3275 */ 3275 */
3276 HWND dw_box_new(int type, int pad) 3276 HWND dw_box_new(int type, int pad)
3277 { 3277 {
3278 GtkWidget *tmp, *eventbox; 3278 GtkWidget *tmp, *eventbox;
3279 int _locked_by_me = FALSE; 3279 int _dw_locked_by_me = FALSE;
3280 3280
3281 DW_MUTEX_LOCK; 3281 DW_MUTEX_LOCK;
3282 tmp = gtk_grid_new(); 3282 tmp = gtk_grid_new();
3283 eventbox = gtk_event_box_new(); 3283 eventbox = gtk_event_box_new();
3284 3284
3298 * pad: Number of pixels to pad around the box. 3298 * pad: Number of pixels to pad around the box.
3299 */ 3299 */
3300 HWND dw_scrollbox_new( int type, int pad ) 3300 HWND dw_scrollbox_new( int type, int pad )
3301 { 3301 {
3302 GtkWidget *tmp, *box, *eventbox; 3302 GtkWidget *tmp, *box, *eventbox;
3303 int _locked_by_me = FALSE; 3303 int _dw_locked_by_me = FALSE;
3304 3304
3305 DW_MUTEX_LOCK; 3305 DW_MUTEX_LOCK;
3306 tmp = gtk_scrolled_window_new(NULL, NULL); 3306 tmp = gtk_scrolled_window_new(NULL, NULL);
3307 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 3307 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
3308 3308
3334 * handle: Handle to the scrollbox to be queried. 3334 * handle: Handle to the scrollbox to be queried.
3335 * orient: The vertical or horizontal scrollbar. 3335 * orient: The vertical or horizontal scrollbar.
3336 */ 3336 */
3337 int dw_scrollbox_get_pos(HWND handle, int orient) 3337 int dw_scrollbox_get_pos(HWND handle, int orient)
3338 { 3338 {
3339 int val = -1, _locked_by_me = FALSE; 3339 int val = -1, _dw_locked_by_me = FALSE;
3340 GtkAdjustment *adjustment; 3340 GtkAdjustment *adjustment;
3341 3341
3342 if (!handle) 3342 if (!handle)
3343 return -1; 3343 return -1;
3344 3344
3359 * handle: Handle to the scrollbox to be queried. 3359 * handle: Handle to the scrollbox to be queried.
3360 * orient: The vertical or horizontal scrollbar. 3360 * orient: The vertical or horizontal scrollbar.
3361 */ 3361 */
3362 int API dw_scrollbox_get_range(HWND handle, int orient) 3362 int API dw_scrollbox_get_range(HWND handle, int orient)
3363 { 3363 {
3364 int range = -1, _locked_by_me = FALSE; 3364 int range = -1, _dw_locked_by_me = FALSE;
3365 GtkAdjustment *adjustment; 3365 GtkAdjustment *adjustment;
3366 3366
3367 if (!handle) 3367 if (!handle)
3368 return -1; 3368 return -1;
3369 3369
3388 * title: Text to be displayined in the group outline. 3388 * title: Text to be displayined in the group outline.
3389 */ 3389 */
3390 HWND dw_groupbox_new(int type, int pad, const char *title) 3390 HWND dw_groupbox_new(int type, int pad, const char *title)
3391 { 3391 {
3392 GtkWidget *tmp, *frame; 3392 GtkWidget *tmp, *frame;
3393 int _locked_by_me = FALSE; 3393 int _dw_locked_by_me = FALSE;
3394 3394
3395 DW_MUTEX_LOCK; 3395 DW_MUTEX_LOCK;
3396 frame = gtk_frame_new(NULL); 3396 frame = gtk_frame_new(NULL);
3397 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); 3397 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
3398 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL); 3398 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL);
3418 * id: An ID to be used with dw_window_from_id or 0L. 3418 * id: An ID to be used with dw_window_from_id or 0L.
3419 */ 3419 */
3420 HWND dw_mdi_new(unsigned long id) 3420 HWND dw_mdi_new(unsigned long id)
3421 { 3421 {
3422 GtkWidget *tmp; 3422 GtkWidget *tmp;
3423 int _locked_by_me = FALSE; 3423 int _dw_locked_by_me = FALSE;
3424 3424
3425 DW_MUTEX_LOCK; 3425 DW_MUTEX_LOCK;
3426 tmp = gtk_mdi_new(); 3426 tmp = gtk_mdi_new();
3427 gtk_widget_show(tmp); 3427 gtk_widget_show(tmp);
3428 DW_MUTEX_UNLOCK; 3428 DW_MUTEX_UNLOCK;
3436 * id: An ID to be used with dw_window_from_id() or 0L. 3436 * id: An ID to be used with dw_window_from_id() or 0L.
3437 */ 3437 */
3438 HWND dw_bitmap_new(unsigned long id) 3438 HWND dw_bitmap_new(unsigned long id)
3439 { 3439 {
3440 GtkWidget *tmp; 3440 GtkWidget *tmp;
3441 int _locked_by_me = FALSE; 3441 int _dw_locked_by_me = FALSE;
3442 3442
3443 DW_MUTEX_LOCK; 3443 DW_MUTEX_LOCK;
3444 tmp = gtk_image_new(); 3444 tmp = gtk_image_new();
3445 gtk_widget_show(tmp); 3445 gtk_widget_show(tmp);
3446 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 3446 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
3455 * resource file. 3455 * resource file.
3456 */ 3456 */
3457 HWND dw_notebook_new(unsigned long id, int top) 3457 HWND dw_notebook_new(unsigned long id, int top)
3458 { 3458 {
3459 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256); 3459 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256);
3460 int _locked_by_me = FALSE; 3460 int _dw_locked_by_me = FALSE;
3461 3461
3462 DW_MUTEX_LOCK; 3462 DW_MUTEX_LOCK;
3463 tmp = gtk_notebook_new(); 3463 tmp = gtk_notebook_new();
3464 if(top) 3464 if(top)
3465 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); 3465 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP);
3479 * id: An ID to be used for getting the resource from the 3479 * id: An ID to be used for getting the resource from the
3480 * resource file. 3480 * resource file.
3481 */ 3481 */
3482 HMENUI dw_menu_new(unsigned long id) 3482 HMENUI dw_menu_new(unsigned long id)
3483 { 3483 {
3484 int _locked_by_me = FALSE; 3484 int _dw_locked_by_me = FALSE;
3485 GtkAccelGroup *accel_group; 3485 GtkAccelGroup *accel_group;
3486 HMENUI tmp; 3486 HMENUI tmp;
3487 3487
3488 DW_MUTEX_LOCK; 3488 DW_MUTEX_LOCK;
3489 tmp = gtk_menu_new(); 3489 tmp = gtk_menu_new();
3502 * If there is no box already packed into the "location", the menu will not appear 3502 * If there is no box already packed into the "location", the menu will not appear
3503 * so tell the user. 3503 * so tell the user.
3504 */ 3504 */
3505 HMENUI dw_menubar_new(HWND location) 3505 HMENUI dw_menubar_new(HWND location)
3506 { 3506 {
3507 int _locked_by_me = FALSE; 3507 int _dw_locked_by_me = FALSE;
3508 GtkAccelGroup *accel_group; 3508 GtkAccelGroup *accel_group;
3509 GtkWidget *box; 3509 GtkWidget *box;
3510 HMENUI tmp = 0; 3510 HMENUI tmp = 0;
3511 3511
3512 DW_MUTEX_LOCK; 3512 DW_MUTEX_LOCK;
3538 */ 3538 */
3539 void dw_menu_destroy(HMENUI *menu) 3539 void dw_menu_destroy(HMENUI *menu)
3540 { 3540 {
3541 if(menu && *menu) 3541 if(menu && *menu)
3542 { 3542 {
3543 int _locked_by_me = FALSE; 3543 int _dw_locked_by_me = FALSE;
3544 GtkWidget *window; 3544 GtkWidget *window;
3545 3545
3546 DW_MUTEX_LOCK; 3546 DW_MUTEX_LOCK;
3547 /* If it is a menu bar, try to delete the reference to it */ 3547 /* If it is a menu bar, try to delete the reference to it */
3548 if(GTK_IS_MENU_BAR(*menu) && 3548 if(GTK_IS_MENU_BAR(*menu) &&
3591 */ 3591 */
3592 HWND dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu) 3592 HWND dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu)
3593 { 3593 {
3594 GtkWidget *tmphandle; 3594 GtkWidget *tmphandle;
3595 char accel, *tempbuf = malloc(strlen(title)+1); 3595 char accel, *tempbuf = malloc(strlen(title)+1);
3596 int _locked_by_me = FALSE, submenucount; 3596 int _dw_locked_by_me = FALSE, submenucount;
3597 GtkAccelGroup *accel_group; 3597 GtkAccelGroup *accel_group;
3598 3598
3599 if (!menu) 3599 if (!menu)
3600 { 3600 {
3601 free(tempbuf); 3601 free(tempbuf);
3713 */ 3713 */
3714 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) 3714 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check)
3715 { 3715 {
3716 char numbuf[25] = {0}; 3716 char numbuf[25] = {0};
3717 GtkWidget *tmphandle; 3717 GtkWidget *tmphandle;
3718 int _locked_by_me = FALSE; 3718 int _dw_locked_by_me = FALSE;
3719 3719
3720 if(!menu) 3720 if(!menu)
3721 return; 3721 return;
3722 3722
3723 DW_MUTEX_LOCK; 3723 DW_MUTEX_LOCK;
3744 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) 3744 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state)
3745 { 3745 {
3746 char numbuf[25] = {0}; 3746 char numbuf[25] = {0};
3747 GtkWidget *tmphandle; 3747 GtkWidget *tmphandle;
3748 int check; 3748 int check;
3749 int _locked_by_me = FALSE; 3749 int _dw_locked_by_me = FALSE;
3750 3750
3751 if(!menu) 3751 if(!menu)
3752 return; 3752 return;
3753 3753
3754 DW_MUTEX_LOCK; 3754 DW_MUTEX_LOCK;
3795 */ 3795 */
3796 int API dw_menu_delete_item(HMENUI menu, unsigned long id) 3796 int API dw_menu_delete_item(HMENUI menu, unsigned long id)
3797 { 3797 {
3798 char numbuf[25] = {0}; 3798 char numbuf[25] = {0};
3799 GtkWidget *tmphandle; 3799 GtkWidget *tmphandle;
3800 int _locked_by_me = FALSE; 3800 int _dw_locked_by_me = FALSE;
3801 int ret = DW_ERROR_UNKNOWN; 3801 int ret = DW_ERROR_UNKNOWN;
3802 3802
3803 if(!menu) 3803 if(!menu)
3804 return ret; 3804 return ret;
3805 3805
3825 * x: X coordinate. 3825 * x: X coordinate.
3826 * y: Y coordinate. 3826 * y: Y coordinate.
3827 */ 3827 */
3828 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) 3828 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y)
3829 { 3829 {
3830 int _locked_by_me = FALSE; 3830 int _dw_locked_by_me = FALSE;
3831 3831
3832 if(!menu || !*menu) 3832 if(!menu || !*menu)
3833 return; 3833 return;
3834 3834
3835 _dw_popup = parent; 3835 _dw_popup = parent;
3854 void dw_pointer_query_pos(long *x, long *y) 3854 void dw_pointer_query_pos(long *x, long *y)
3855 { 3855 {
3856 int gx = 0, gy = 0; 3856 int gx = 0, gy = 0;
3857 #ifdef GDK_WINDOWING_X11 3857 #ifdef GDK_WINDOWING_X11
3858 GdkModifierType state = 0; 3858 GdkModifierType state = 0;
3859 int _locked_by_me = FALSE; 3859 int _dw_locked_by_me = FALSE;
3860 GdkDisplay *display; 3860 GdkDisplay *display;
3861 3861
3862 DW_MUTEX_LOCK; 3862 DW_MUTEX_LOCK;
3863 display = gdk_display_get_default(); 3863 display = gdk_display_get_default();
3864 3864
3889 * y: Y coordinate. 3889 * y: Y coordinate.
3890 */ 3890 */
3891 void dw_pointer_set_pos(long x, long y) 3891 void dw_pointer_set_pos(long x, long y)
3892 { 3892 {
3893 #ifdef GDK_WINDOWING_X11 3893 #ifdef GDK_WINDOWING_X11
3894 int _locked_by_me = FALSE; 3894 int _dw_locked_by_me = FALSE;
3895 GdkDisplay *display; 3895 GdkDisplay *display;
3896 3896
3897 DW_MUTEX_LOCK; 3897 DW_MUTEX_LOCK;
3898 display = gdk_display_get_default(); 3898 display = gdk_display_get_default();
3899 3899
3949 * resource file. 3949 * resource file.
3950 */ 3950 */
3951 HWND dw_container_new(unsigned long id, int multi) 3951 HWND dw_container_new(unsigned long id, int multi)
3952 { 3952 {
3953 GtkWidget *tmp; 3953 GtkWidget *tmp;
3954 int _locked_by_me = FALSE; 3954 int _dw_locked_by_me = FALSE;
3955 3955
3956 DW_MUTEX_LOCK; 3956 DW_MUTEX_LOCK;
3957 if(!(tmp = _dw_tree_create(id))) 3957 if(!(tmp = _dw_tree_create(id)))
3958 { 3958 {
3959 DW_MUTEX_UNLOCK; 3959 DW_MUTEX_UNLOCK;
3976 GtkWidget *tmp, *tree; 3976 GtkWidget *tmp, *tree;
3977 GtkTreeStore *store; 3977 GtkTreeStore *store;
3978 GtkTreeViewColumn *col; 3978 GtkTreeViewColumn *col;
3979 GtkCellRenderer *rend; 3979 GtkCellRenderer *rend;
3980 GtkTreeSelection *sel; 3980 GtkTreeSelection *sel;
3981 int _locked_by_me = FALSE; 3981 int _dw_locked_by_me = FALSE;
3982 3982
3983 DW_MUTEX_LOCK; 3983 DW_MUTEX_LOCK;
3984 if(!(tmp = _dw_tree_create(id))) 3984 if(!(tmp = _dw_tree_create(id)))
3985 { 3985 {
3986 DW_MUTEX_UNLOCK; 3986 DW_MUTEX_UNLOCK;
4021 * id: An ID to be used with dw_window_from_id() or 0L. 4021 * id: An ID to be used with dw_window_from_id() or 0L.
4022 */ 4022 */
4023 HWND dw_text_new(const char *text, unsigned long id) 4023 HWND dw_text_new(const char *text, unsigned long id)
4024 { 4024 {
4025 GtkWidget *tmp; 4025 GtkWidget *tmp;
4026 int _locked_by_me = FALSE; 4026 int _dw_locked_by_me = FALSE;
4027 4027
4028 DW_MUTEX_LOCK; 4028 DW_MUTEX_LOCK;
4029 tmp = gtk_label_new(text); 4029 tmp = gtk_label_new(text);
4030 4030
4031 /* Left and centered */ 4031 /* Left and centered */
4050 * id: An ID to be used with dw_window_from_id() or 0L. 4050 * id: An ID to be used with dw_window_from_id() or 0L.
4051 */ 4051 */
4052 HWND dw_status_text_new(const char *text, ULONG id) 4052 HWND dw_status_text_new(const char *text, ULONG id)
4053 { 4053 {
4054 GtkWidget *tmp, *frame; 4054 GtkWidget *tmp, *frame;
4055 int _locked_by_me = FALSE; 4055 int _dw_locked_by_me = FALSE;
4056 4056
4057 DW_MUTEX_LOCK; 4057 DW_MUTEX_LOCK;
4058 frame = gtk_frame_new(NULL); 4058 frame = gtk_frame_new(NULL);
4059 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); 4059 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
4060 tmp = gtk_label_new(text); 4060 tmp = gtk_label_new(text);
4083 * id: An ID to be used with dw_window_from_id() or 0L. 4083 * id: An ID to be used with dw_window_from_id() or 0L.
4084 */ 4084 */
4085 HWND dw_mle_new(unsigned long id) 4085 HWND dw_mle_new(unsigned long id)
4086 { 4086 {
4087 GtkWidget *tmp, *tmpbox; 4087 GtkWidget *tmp, *tmpbox;
4088 int _locked_by_me = FALSE; 4088 int _dw_locked_by_me = FALSE;
4089 4089
4090 DW_MUTEX_LOCK; 4090 DW_MUTEX_LOCK;
4091 tmpbox = gtk_scrolled_window_new (NULL, NULL); 4091 tmpbox = gtk_scrolled_window_new (NULL, NULL);
4092 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tmpbox), 4092 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tmpbox),
4093 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 4093 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
4113 * id: An ID to be used with dw_window_from_id() or 0L. 4113 * id: An ID to be used with dw_window_from_id() or 0L.
4114 */ 4114 */
4115 HWND dw_entryfield_new(const char *text, unsigned long id) 4115 HWND dw_entryfield_new(const char *text, unsigned long id)
4116 { 4116 {
4117 GtkWidget *tmp; 4117 GtkWidget *tmp;
4118 int _locked_by_me = FALSE; 4118 int _dw_locked_by_me = FALSE;
4119 4119
4120 DW_MUTEX_LOCK; 4120 DW_MUTEX_LOCK;
4121 tmp = gtk_entry_new(); 4121 tmp = gtk_entry_new();
4122 4122
4123 gtk_entry_set_text(GTK_ENTRY(tmp), text); 4123 gtk_entry_set_text(GTK_ENTRY(tmp), text);
4139 * id: An ID to be used with dw_window_from_id() or 0L. 4139 * id: An ID to be used with dw_window_from_id() or 0L.
4140 */ 4140 */
4141 HWND dw_entryfield_password_new(const char *text, ULONG id) 4141 HWND dw_entryfield_password_new(const char *text, ULONG id)
4142 { 4142 {
4143 GtkWidget *tmp; 4143 GtkWidget *tmp;
4144 int _locked_by_me = FALSE; 4144 int _dw_locked_by_me = FALSE;
4145 4145
4146 DW_MUTEX_LOCK; 4146 DW_MUTEX_LOCK;
4147 tmp = gtk_entry_new(); 4147 tmp = gtk_entry_new();
4148 4148
4149 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE); 4149 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE);
4167 */ 4167 */
4168 HWND dw_combobox_new(const char *text, unsigned long id) 4168 HWND dw_combobox_new(const char *text, unsigned long id)
4169 { 4169 {
4170 GtkWidget *tmp; 4170 GtkWidget *tmp;
4171 GtkListStore *store; 4171 GtkListStore *store;
4172 int _locked_by_me = FALSE; 4172 int _dw_locked_by_me = FALSE;
4173 4173
4174 DW_MUTEX_LOCK; 4174 DW_MUTEX_LOCK;
4175 store = gtk_list_store_new(1, G_TYPE_STRING); 4175 store = gtk_list_store_new(1, G_TYPE_STRING);
4176 tmp = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); 4176 tmp = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store));
4177 gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(tmp), 0); 4177 gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(tmp), 0);
4193 * id: An ID to be used with dw_window_from_id() or 0L. 4193 * id: An ID to be used with dw_window_from_id() or 0L.
4194 */ 4194 */
4195 HWND dw_button_new(const char *text, unsigned long id) 4195 HWND dw_button_new(const char *text, unsigned long id)
4196 { 4196 {
4197 GtkWidget *tmp; 4197 GtkWidget *tmp;
4198 int _locked_by_me = FALSE; 4198 int _dw_locked_by_me = FALSE;
4199 4199
4200 DW_MUTEX_LOCK; 4200 DW_MUTEX_LOCK;
4201 tmp = gtk_button_new_with_label(text); 4201 tmp = gtk_button_new_with_label(text);
4202 gtk_widget_show(tmp); 4202 gtk_widget_show(tmp);
4203 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 4203 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
4215 */ 4215 */
4216 HWND dw_bitmapbutton_new(const char *text, unsigned long id) 4216 HWND dw_bitmapbutton_new(const char *text, unsigned long id)
4217 { 4217 {
4218 GtkWidget *tmp; 4218 GtkWidget *tmp;
4219 GtkWidget *bitmap; 4219 GtkWidget *bitmap;
4220 int _locked_by_me = FALSE; 4220 int _dw_locked_by_me = FALSE;
4221 4221
4222 DW_MUTEX_LOCK; 4222 DW_MUTEX_LOCK;
4223 tmp = gtk_button_new(); 4223 tmp = gtk_button_new();
4224 bitmap = dw_bitmap_new(id); 4224 bitmap = dw_bitmap_new(id);
4225 4225
4251 */ 4251 */
4252 HWND dw_bitmapbutton_new_from_file(const char *text, unsigned long id, const char *filename) 4252 HWND dw_bitmapbutton_new_from_file(const char *text, unsigned long id, const char *filename)
4253 { 4253 {
4254 GtkWidget *tmp; 4254 GtkWidget *tmp;
4255 GtkWidget *bitmap; 4255 GtkWidget *bitmap;
4256 int _locked_by_me = FALSE; 4256 int _dw_locked_by_me = FALSE;
4257 4257
4258 DW_MUTEX_LOCK; 4258 DW_MUTEX_LOCK;
4259 /* Create a new button */ 4259 /* Create a new button */
4260 tmp = gtk_button_new(); 4260 tmp = gtk_button_new();
4261 /* Now on to the image stuff */ 4261 /* Now on to the image stuff */
4287 */ 4287 */
4288 HWND dw_bitmapbutton_new_from_data(const char *text, unsigned long id, const char *data, int len) 4288 HWND dw_bitmapbutton_new_from_data(const char *text, unsigned long id, const char *data, int len)
4289 { 4289 {
4290 GtkWidget *tmp; 4290 GtkWidget *tmp;
4291 GtkWidget *bitmap; 4291 GtkWidget *bitmap;
4292 int _locked_by_me = FALSE; 4292 int _dw_locked_by_me = FALSE;
4293 4293
4294 DW_MUTEX_LOCK; 4294 DW_MUTEX_LOCK;
4295 tmp = gtk_button_new(); 4295 tmp = gtk_button_new();
4296 bitmap = dw_bitmap_new(id); 4296 bitmap = dw_bitmap_new(id);
4297 4297
4319 */ 4319 */
4320 HWND dw_spinbutton_new(const char *text, unsigned long id) 4320 HWND dw_spinbutton_new(const char *text, unsigned long id)
4321 { 4321 {
4322 GtkAdjustment *adj; 4322 GtkAdjustment *adj;
4323 GtkWidget *tmp; 4323 GtkWidget *tmp;
4324 int _locked_by_me = FALSE; 4324 int _dw_locked_by_me = FALSE;
4325 4325
4326 DW_MUTEX_LOCK; 4326 DW_MUTEX_LOCK;
4327 adj = (GtkAdjustment *)gtk_adjustment_new ((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); 4327 adj = (GtkAdjustment *)gtk_adjustment_new ((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0);
4328 tmp = gtk_spin_button_new (adj, 0, 0); 4328 tmp = gtk_spin_button_new (adj, 0, 0);
4329 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE); 4329 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE);
4346 */ 4346 */
4347 HWND dw_radiobutton_new(const char *text, ULONG id) 4347 HWND dw_radiobutton_new(const char *text, ULONG id)
4348 { 4348 {
4349 /* This will have to be fixed in the future. */ 4349 /* This will have to be fixed in the future. */
4350 GtkWidget *tmp; 4350 GtkWidget *tmp;
4351 int _locked_by_me = FALSE; 4351 int _dw_locked_by_me = FALSE;
4352 4352
4353 DW_MUTEX_LOCK; 4353 DW_MUTEX_LOCK;
4354 tmp = gtk_radio_button_new_with_label(NULL, text); 4354 tmp = gtk_radio_button_new_with_label(NULL, text);
4355 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 4355 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
4356 gtk_widget_show(tmp); 4356 gtk_widget_show(tmp);
4370 */ 4370 */
4371 HWND dw_slider_new(int vertical, int increments, ULONG id) 4371 HWND dw_slider_new(int vertical, int increments, ULONG id)
4372 { 4372 {
4373 GtkWidget *tmp; 4373 GtkWidget *tmp;
4374 GtkAdjustment *adjustment; 4374 GtkAdjustment *adjustment;
4375 int _locked_by_me = FALSE; 4375 int _dw_locked_by_me = FALSE;
4376 4376
4377 DW_MUTEX_LOCK; 4377 DW_MUTEX_LOCK;
4378 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); 4378 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1);
4379 tmp = gtk_scale_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); 4379 tmp = gtk_scale_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment);
4380 gtk_widget_show(tmp); 4380 gtk_widget_show(tmp);
4401 */ 4401 */
4402 HWND dw_scrollbar_new(int vertical, ULONG id) 4402 HWND dw_scrollbar_new(int vertical, ULONG id)
4403 { 4403 {
4404 GtkWidget *tmp; 4404 GtkWidget *tmp;
4405 GtkAdjustment *adjustment; 4405 GtkAdjustment *adjustment;
4406 int _locked_by_me = FALSE; 4406 int _dw_locked_by_me = FALSE;
4407 #ifdef HAVE_OVERLAY_SCROLLBARS 4407 #ifdef HAVE_OVERLAY_SCROLLBARS
4408 gboolean overlaysb; 4408 gboolean overlaysb;
4409 #endif 4409 #endif
4410 4410
4411 DW_MUTEX_LOCK; 4411 DW_MUTEX_LOCK;
4433 * id: An ID to be used with dw_window_from_id() or 0L. 4433 * id: An ID to be used with dw_window_from_id() or 0L.
4434 */ 4434 */
4435 HWND dw_percent_new(unsigned long id) 4435 HWND dw_percent_new(unsigned long id)
4436 { 4436 {
4437 GtkWidget *tmp; 4437 GtkWidget *tmp;
4438 int _locked_by_me = FALSE; 4438 int _dw_locked_by_me = FALSE;
4439 4439
4440 DW_MUTEX_LOCK; 4440 DW_MUTEX_LOCK;
4441 tmp = gtk_progress_bar_new(); 4441 tmp = gtk_progress_bar_new();
4442 gtk_widget_show(tmp); 4442 gtk_widget_show(tmp);
4443 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 4443 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
4452 * id: An ID to be used with dw_window_from_id() or 0L. 4452 * id: An ID to be used with dw_window_from_id() or 0L.
4453 */ 4453 */
4454 HWND dw_checkbox_new(const char *text, unsigned long id) 4454 HWND dw_checkbox_new(const char *text, unsigned long id)
4455 { 4455 {
4456 GtkWidget *tmp; 4456 GtkWidget *tmp;
4457 int _locked_by_me = FALSE; 4457 int _dw_locked_by_me = FALSE;
4458 4458
4459 DW_MUTEX_LOCK; 4459 DW_MUTEX_LOCK;
4460 tmp = gtk_check_button_new_with_label(text); 4460 tmp = gtk_check_button_new_with_label(text);
4461 gtk_widget_show(tmp); 4461 gtk_widget_show(tmp);
4462 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 4462 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
4477 GtkWidget *tmp, *tree; 4477 GtkWidget *tmp, *tree;
4478 GtkListStore *store; 4478 GtkListStore *store;
4479 GtkTreeViewColumn *col; 4479 GtkTreeViewColumn *col;
4480 GtkCellRenderer *rend; 4480 GtkCellRenderer *rend;
4481 GtkTreeSelection *sel; 4481 GtkTreeSelection *sel;
4482 int _locked_by_me = FALSE; 4482 int _dw_locked_by_me = FALSE;
4483 4483
4484 DW_MUTEX_LOCK; 4484 DW_MUTEX_LOCK;
4485 if(!(tmp = _dw_tree_create(id))) 4485 if(!(tmp = _dw_tree_create(id)))
4486 { 4486 {
4487 DW_MUTEX_UNLOCK; 4487 DW_MUTEX_UNLOCK;
4524 * id: An ID to be used to specify the icon. 4524 * id: An ID to be used to specify the icon.
4525 */ 4525 */
4526 void dw_window_set_icon(HWND handle, HICN icon) 4526 void dw_window_set_icon(HWND handle, HICN icon)
4527 { 4527 {
4528 GdkPixbuf *icon_pixbuf; 4528 GdkPixbuf *icon_pixbuf;
4529 int _locked_by_me = FALSE; 4529 int _dw_locked_by_me = FALSE;
4530 4530
4531 DW_MUTEX_LOCK; 4531 DW_MUTEX_LOCK;
4532 icon_pixbuf = _dw_find_pixbuf(icon, NULL, NULL); 4532 icon_pixbuf = _dw_find_pixbuf(icon, NULL, NULL);
4533 4533
4534 if(gtk_widget_get_window(handle) && icon_pixbuf) 4534 if(gtk_widget_get_window(handle) && icon_pixbuf)
4553 void dw_window_set_bitmap(HWND handle, unsigned long id, const char *filename) 4553 void dw_window_set_bitmap(HWND handle, unsigned long id, const char *filename)
4554 { 4554 {
4555 GdkPixbuf *tmp = NULL; 4555 GdkPixbuf *tmp = NULL;
4556 int found_ext = 0; 4556 int found_ext = 0;
4557 int i; 4557 int i;
4558 int _locked_by_me = FALSE; 4558 int _dw_locked_by_me = FALSE;
4559 4559
4560 if(!id && !filename) 4560 if(!id && !filename)
4561 return; 4561 return;
4562 4562
4563 DW_MUTEX_LOCK; 4563 DW_MUTEX_LOCK;
4628 * len: length of data 4628 * len: length of data
4629 */ 4629 */
4630 void dw_window_set_bitmap_from_data(HWND handle, unsigned long id, const char *data, int len) 4630 void dw_window_set_bitmap_from_data(HWND handle, unsigned long id, const char *data, int len)
4631 { 4631 {
4632 GdkPixbuf *tmp = NULL; 4632 GdkPixbuf *tmp = NULL;
4633 int _locked_by_me = FALSE; 4633 int _dw_locked_by_me = FALSE;
4634 4634
4635 if(!id && !data) 4635 if(!id && !data)
4636 return; 4636 return;
4637 4637
4638 DW_MUTEX_LOCK; 4638 DW_MUTEX_LOCK;
4685 * handle: Handle to the window. 4685 * handle: Handle to the window.
4686 * text: The text associated with a given window. 4686 * text: The text associated with a given window.
4687 */ 4687 */
4688 void dw_window_set_text(HWND handle, const char *text) 4688 void dw_window_set_text(HWND handle, const char *text)
4689 { 4689 {
4690 int _locked_by_me = FALSE; 4690 int _dw_locked_by_me = FALSE;
4691 GtkWidget *tmp; 4691 GtkWidget *tmp;
4692 4692
4693 DW_MUTEX_LOCK; 4693 DW_MUTEX_LOCK;
4694 if((tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi_title"))) 4694 if((tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi_title")))
4695 handle = tmp; 4695 handle = tmp;
4725 * handle: Handle to the window (widget). 4725 * handle: Handle to the window (widget).
4726 * bubbletext: The text in the floating bubble tooltip. 4726 * bubbletext: The text in the floating bubble tooltip.
4727 */ 4727 */
4728 void API dw_window_set_tooltip(HWND handle, const char *bubbletext) 4728 void API dw_window_set_tooltip(HWND handle, const char *bubbletext)
4729 { 4729 {
4730 int _locked_by_me = FALSE; 4730 int _dw_locked_by_me = FALSE;
4731 4731
4732 DW_MUTEX_LOCK; 4732 DW_MUTEX_LOCK;
4733 if(bubbletext && *bubbletext) 4733 if(bubbletext && *bubbletext)
4734 gtk_widget_set_tooltip_text(handle, bubbletext); 4734 gtk_widget_set_tooltip_text(handle, bubbletext);
4735 else 4735 else
4745 * text: The text associsated with a given window. 4745 * text: The text associsated with a given window.
4746 */ 4746 */
4747 char *dw_window_get_text(HWND handle) 4747 char *dw_window_get_text(HWND handle)
4748 { 4748 {
4749 const char *possible = NULL; 4749 const char *possible = NULL;
4750 int _locked_by_me = FALSE; 4750 int _dw_locked_by_me = FALSE;
4751 4751
4752 DW_MUTEX_LOCK; 4752 DW_MUTEX_LOCK;
4753 if(GTK_IS_ENTRY(handle)) 4753 if(GTK_IS_ENTRY(handle))
4754 possible = gtk_entry_get_text(GTK_ENTRY(handle)); 4754 possible = gtk_entry_get_text(GTK_ENTRY(handle));
4755 else if(GTK_IS_COMBO_BOX(handle)) 4755 else if(GTK_IS_COMBO_BOX(handle))
4766 * Parameters: 4766 * Parameters:
4767 * handle: Handle to the window. 4767 * handle: Handle to the window.
4768 */ 4768 */
4769 void dw_window_disable(HWND handle) 4769 void dw_window_disable(HWND handle)
4770 { 4770 {
4771 int _locked_by_me = FALSE; 4771 int _dw_locked_by_me = FALSE;
4772 4772
4773 DW_MUTEX_LOCK; 4773 DW_MUTEX_LOCK;
4774 gtk_widget_set_sensitive(handle, FALSE); 4774 gtk_widget_set_sensitive(handle, FALSE);
4775 DW_MUTEX_UNLOCK; 4775 DW_MUTEX_UNLOCK;
4776 } 4776 }
4780 * Parameters: 4780 * Parameters:
4781 * handle: Handle to the window. 4781 * handle: Handle to the window.
4782 */ 4782 */
4783 void dw_window_enable(HWND handle) 4783 void dw_window_enable(HWND handle)
4784 { 4784 {
4785 int _locked_by_me = FALSE; 4785 int _dw_locked_by_me = FALSE;
4786 4786
4787 DW_MUTEX_LOCK; 4787 DW_MUTEX_LOCK;
4788 gtk_widget_set_sensitive(handle, TRUE); 4788 gtk_widget_set_sensitive(handle, TRUE);
4789 DW_MUTEX_UNLOCK; 4789 DW_MUTEX_UNLOCK;
4790 } 4790 }
4796 * id: Integer ID of the child. 4796 * id: Integer ID of the child.
4797 */ 4797 */
4798 HWND API dw_window_from_id(HWND handle, int id) 4798 HWND API dw_window_from_id(HWND handle, int id)
4799 { 4799 {
4800 GList *orig = NULL, *list = NULL; 4800 GList *orig = NULL, *list = NULL;
4801 int _locked_by_me = FALSE; 4801 int _dw_locked_by_me = FALSE;
4802 4802
4803 DW_MUTEX_LOCK; 4803 DW_MUTEX_LOCK;
4804 if(handle && GTK_IS_CONTAINER(handle)) 4804 if(handle && GTK_IS_CONTAINER(handle))
4805 { 4805 {
4806 orig = list = gtk_container_get_children(GTK_CONTAINER(handle)); 4806 orig = list = gtk_container_get_children(GTK_CONTAINER(handle));
4833 * startpoint: Point to start entering text. 4833 * startpoint: Point to start entering text.
4834 */ 4834 */
4835 unsigned int dw_mle_import(HWND handle, const char *buffer, int startpoint) 4835 unsigned int dw_mle_import(HWND handle, const char *buffer, int startpoint)
4836 { 4836 {
4837 unsigned int tmppoint = startpoint; 4837 unsigned int tmppoint = startpoint;
4838 int _locked_by_me = FALSE; 4838 int _dw_locked_by_me = FALSE;
4839 4839
4840 DW_MUTEX_LOCK; 4840 DW_MUTEX_LOCK;
4841 if(GTK_IS_SCROLLED_WINDOW(handle)) 4841 if(GTK_IS_SCROLLED_WINDOW(handle))
4842 { 4842 {
4843 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 4843 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
4866 * startpoint: Point to start grabbing text. 4866 * startpoint: Point to start grabbing text.
4867 * length: Amount of text to be grabbed. 4867 * length: Amount of text to be grabbed.
4868 */ 4868 */
4869 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length) 4869 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length)
4870 { 4870 {
4871 int _locked_by_me = FALSE; 4871 int _dw_locked_by_me = FALSE;
4872 gchar *text; 4872 gchar *text;
4873 4873
4874 DW_MUTEX_LOCK; 4874 DW_MUTEX_LOCK;
4875 /* force the return value to nul in case the following tests fail */ 4875 /* force the return value to nul in case the following tests fail */
4876 if(buffer) 4876 if(buffer)
4905 * bytes: A pointer to a variable to return the total bytes. 4905 * bytes: A pointer to a variable to return the total bytes.
4906 * lines: A pointer to a variable to return the number of lines. 4906 * lines: A pointer to a variable to return the number of lines.
4907 */ 4907 */
4908 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines) 4908 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines)
4909 { 4909 {
4910 int _locked_by_me = FALSE; 4910 int _dw_locked_by_me = FALSE;
4911 4911
4912 if(bytes) 4912 if(bytes)
4913 *bytes = 0; 4913 *bytes = 0;
4914 if(lines) 4914 if(lines)
4915 *lines = 0; 4915 *lines = 0;
4939 * startpoint: Point to start deleting text. 4939 * startpoint: Point to start deleting text.
4940 * length: Amount of text to be deleted. 4940 * length: Amount of text to be deleted.
4941 */ 4941 */
4942 void dw_mle_delete(HWND handle, int startpoint, int length) 4942 void dw_mle_delete(HWND handle, int startpoint, int length)
4943 { 4943 {
4944 int _locked_by_me = FALSE; 4944 int _dw_locked_by_me = FALSE;
4945 4945
4946 DW_MUTEX_LOCK; 4946 DW_MUTEX_LOCK;
4947 if(GTK_IS_SCROLLED_WINDOW(handle)) 4947 if(GTK_IS_SCROLLED_WINDOW(handle))
4948 { 4948 {
4949 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 4949 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
4967 * Parameters: 4967 * Parameters:
4968 * handle: Handle to the MLE to be cleared. 4968 * handle: Handle to the MLE to be cleared.
4969 */ 4969 */
4970 void dw_mle_clear(HWND handle) 4970 void dw_mle_clear(HWND handle)
4971 { 4971 {
4972 int length, _locked_by_me = FALSE; 4972 int length, _dw_locked_by_me = FALSE;
4973 4973
4974 DW_MUTEX_LOCK; 4974 DW_MUTEX_LOCK;
4975 if(GTK_IS_SCROLLED_WINDOW(handle)) 4975 if(GTK_IS_SCROLLED_WINDOW(handle))
4976 { 4976 {
4977 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 4977 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
4993 * handle: Handle to the MLE. 4993 * handle: Handle to the MLE.
4994 * line: Line to be visible. 4994 * line: Line to be visible.
4995 */ 4995 */
4996 void dw_mle_set_visible(HWND handle, int line) 4996 void dw_mle_set_visible(HWND handle, int line)
4997 { 4997 {
4998 int _locked_by_me = FALSE; 4998 int _dw_locked_by_me = FALSE;
4999 4999
5000 DW_MUTEX_LOCK; 5000 DW_MUTEX_LOCK;
5001 if(GTK_IS_SCROLLED_WINDOW(handle)) 5001 if(GTK_IS_SCROLLED_WINDOW(handle))
5002 { 5002 {
5003 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 5003 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
5031 * handle: Handle to the MLE. 5031 * handle: Handle to the MLE.
5032 * state: TRUE if it can be edited, FALSE for readonly. 5032 * state: TRUE if it can be edited, FALSE for readonly.
5033 */ 5033 */
5034 void dw_mle_set_editable(HWND handle, int state) 5034 void dw_mle_set_editable(HWND handle, int state)
5035 { 5035 {
5036 int _locked_by_me = FALSE; 5036 int _dw_locked_by_me = FALSE;
5037 5037
5038 DW_MUTEX_LOCK; 5038 DW_MUTEX_LOCK;
5039 if(GTK_IS_SCROLLED_WINDOW(handle)) 5039 if(GTK_IS_SCROLLED_WINDOW(handle))
5040 { 5040 {
5041 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 5041 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
5052 * handle: Handle to the MLE. 5052 * handle: Handle to the MLE.
5053 * state: TRUE if it wraps, FALSE if it doesn't. 5053 * state: TRUE if it wraps, FALSE if it doesn't.
5054 */ 5054 */
5055 void dw_mle_set_word_wrap(HWND handle, int state) 5055 void dw_mle_set_word_wrap(HWND handle, int state)
5056 { 5056 {
5057 int _locked_by_me = FALSE; 5057 int _dw_locked_by_me = FALSE;
5058 5058
5059 DW_MUTEX_LOCK; 5059 DW_MUTEX_LOCK;
5060 if(GTK_IS_SCROLLED_WINDOW(handle)) 5060 if(GTK_IS_SCROLLED_WINDOW(handle))
5061 { 5061 {
5062 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 5062 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
5083 * handle: Handle to the MLE to be positioned. 5083 * handle: Handle to the MLE to be positioned.
5084 * point: Point to position cursor. 5084 * point: Point to position cursor.
5085 */ 5085 */
5086 void dw_mle_set_cursor(HWND handle, int point) 5086 void dw_mle_set_cursor(HWND handle, int point)
5087 { 5087 {
5088 int _locked_by_me = FALSE; 5088 int _dw_locked_by_me = FALSE;
5089 5089
5090 DW_MUTEX_LOCK; 5090 DW_MUTEX_LOCK;
5091 if(GTK_IS_SCROLLED_WINDOW(handle)) 5091 if(GTK_IS_SCROLLED_WINDOW(handle))
5092 { 5092 {
5093 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 5093 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
5123 * point: Start point of search. 5123 * point: Start point of search.
5124 * flags: Search specific flags. 5124 * flags: Search specific flags.
5125 */ 5125 */
5126 int dw_mle_search(HWND handle, const char *text, int point, unsigned long flags) 5126 int dw_mle_search(HWND handle, const char *text, int point, unsigned long flags)
5127 { 5127 {
5128 int _locked_by_me = FALSE, retval = 0; 5128 int _dw_locked_by_me = FALSE, retval = 0;
5129 5129
5130 DW_MUTEX_LOCK; 5130 DW_MUTEX_LOCK;
5131 if(GTK_IS_SCROLLED_WINDOW(handle)) 5131 if(GTK_IS_SCROLLED_WINDOW(handle))
5132 { 5132 {
5133 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 5133 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
5184 * handle: Handle to the percent bar to be set. 5184 * handle: Handle to the percent bar to be set.
5185 * position: Position of the percent bar withing the range. 5185 * position: Position of the percent bar withing the range.
5186 */ 5186 */
5187 void dw_percent_set_pos(HWND handle, unsigned int position) 5187 void dw_percent_set_pos(HWND handle, unsigned int position)
5188 { 5188 {
5189 int _locked_by_me = FALSE; 5189 int _dw_locked_by_me = FALSE;
5190 5190
5191 DW_MUTEX_LOCK; 5191 DW_MUTEX_LOCK;
5192 if(position == DW_PERCENT_INDETERMINATE) 5192 if(position == DW_PERCENT_INDETERMINATE)
5193 { 5193 {
5194 /* Check if we are indeterminate already */ 5194 /* Check if we are indeterminate already */
5215 * Parameters: 5215 * Parameters:
5216 * handle: Handle to the slider to be queried. 5216 * handle: Handle to the slider to be queried.
5217 */ 5217 */
5218 unsigned int dw_slider_get_pos(HWND handle) 5218 unsigned int dw_slider_get_pos(HWND handle)
5219 { 5219 {
5220 int val = 0, _locked_by_me = FALSE; 5220 int val = 0, _dw_locked_by_me = FALSE;
5221 GtkAdjustment *adjustment; 5221 GtkAdjustment *adjustment;
5222 5222
5223 if(!handle) 5223 if(!handle)
5224 return 0; 5224 return 0;
5225 5225
5245 * handle: Handle to the slider to be set. 5245 * handle: Handle to the slider to be set.
5246 * position: Position of the slider withing the range. 5246 * position: Position of the slider withing the range.
5247 */ 5247 */
5248 void dw_slider_set_pos(HWND handle, unsigned int position) 5248 void dw_slider_set_pos(HWND handle, unsigned int position)
5249 { 5249 {
5250 int _locked_by_me = FALSE; 5250 int _dw_locked_by_me = FALSE;
5251 GtkAdjustment *adjustment; 5251 GtkAdjustment *adjustment;
5252 5252
5253 if(!handle) 5253 if(!handle)
5254 return; 5254 return;
5255 5255
5272 * Parameters: 5272 * Parameters:
5273 * handle: Handle to the scrollbar to be queried. 5273 * handle: Handle to the scrollbar to be queried.
5274 */ 5274 */
5275 unsigned int dw_scrollbar_get_pos(HWND handle) 5275 unsigned int dw_scrollbar_get_pos(HWND handle)
5276 { 5276 {
5277 int val = 0, _locked_by_me = FALSE; 5277 int val = 0, _dw_locked_by_me = FALSE;
5278 GtkAdjustment *adjustment; 5278 GtkAdjustment *adjustment;
5279 5279
5280 if(!handle) 5280 if(!handle)
5281 return 0; 5281 return 0;
5282 5282
5294 * handle: Handle to the scrollbar to be set. 5294 * handle: Handle to the scrollbar to be set.
5295 * position: Position of the scrollbar withing the range. 5295 * position: Position of the scrollbar withing the range.
5296 */ 5296 */
5297 void dw_scrollbar_set_pos(HWND handle, unsigned int position) 5297 void dw_scrollbar_set_pos(HWND handle, unsigned int position)
5298 { 5298 {
5299 int _locked_by_me = FALSE; 5299 int _dw_locked_by_me = FALSE;
5300 GtkAdjustment *adjustment; 5300 GtkAdjustment *adjustment;
5301 5301
5302 if(!handle) 5302 if(!handle)
5303 return; 5303 return;
5304 5304
5320 * range: Maximum range value. 5320 * range: Maximum range value.
5321 * visible: Visible area relative to the range. 5321 * visible: Visible area relative to the range.
5322 */ 5322 */
5323 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible) 5323 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible)
5324 { 5324 {
5325 int _locked_by_me = FALSE; 5325 int _dw_locked_by_me = FALSE;
5326 GtkAdjustment *adjustment; 5326 GtkAdjustment *adjustment;
5327 5327
5328 if(!handle) 5328 if(!handle)
5329 return; 5329 return;
5330 5330
5345 * handle: Handle to the spinbutton to be set. 5345 * handle: Handle to the spinbutton to be set.
5346 * position: Current value of the spinbutton. 5346 * position: Current value of the spinbutton.
5347 */ 5347 */
5348 void dw_spinbutton_set_pos(HWND handle, long position) 5348 void dw_spinbutton_set_pos(HWND handle, long position)
5349 { 5349 {
5350 int _locked_by_me = FALSE; 5350 int _dw_locked_by_me = FALSE;
5351 5351
5352 DW_MUTEX_LOCK; 5352 DW_MUTEX_LOCK;
5353 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); 5353 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position);
5354 DW_MUTEX_UNLOCK; 5354 DW_MUTEX_UNLOCK;
5355 } 5355 }
5363 */ 5363 */
5364 void dw_spinbutton_set_limits(HWND handle, long upper, long lower) 5364 void dw_spinbutton_set_limits(HWND handle, long upper, long lower)
5365 { 5365 {
5366 long curval; 5366 long curval;
5367 GtkAdjustment *adj; 5367 GtkAdjustment *adj;
5368 int _locked_by_me = FALSE; 5368 int _dw_locked_by_me = FALSE;
5369 5369
5370 curval = dw_spinbutton_get_pos(handle); 5370 curval = dw_spinbutton_get_pos(handle);
5371 DW_MUTEX_LOCK; 5371 DW_MUTEX_LOCK;
5372 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0); 5372 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0);
5373 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj); 5373 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj);
5385 * handle: Handle to the spinbutton to be set. 5385 * handle: Handle to the spinbutton to be set.
5386 * limit: Number of characters the entryfield will take. 5386 * limit: Number of characters the entryfield will take.
5387 */ 5387 */
5388 void dw_entryfield_set_limit(HWND handle, ULONG limit) 5388 void dw_entryfield_set_limit(HWND handle, ULONG limit)
5389 { 5389 {
5390 int _locked_by_me = FALSE; 5390 int _dw_locked_by_me = FALSE;
5391 5391
5392 DW_MUTEX_LOCK; 5392 DW_MUTEX_LOCK;
5393 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); 5393 gtk_entry_set_max_length(GTK_ENTRY(handle), limit);
5394 DW_MUTEX_UNLOCK; 5394 DW_MUTEX_UNLOCK;
5395 } 5395 }
5400 * handle: Handle to the spinbutton to be queried. 5400 * handle: Handle to the spinbutton to be queried.
5401 */ 5401 */
5402 long dw_spinbutton_get_pos(HWND handle) 5402 long dw_spinbutton_get_pos(HWND handle)
5403 { 5403 {
5404 long retval; 5404 long retval;
5405 int _locked_by_me = FALSE; 5405 int _dw_locked_by_me = FALSE;
5406 5406
5407 DW_MUTEX_LOCK; 5407 DW_MUTEX_LOCK;
5408 retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle)); 5408 retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle));
5409 DW_MUTEX_UNLOCK; 5409 DW_MUTEX_UNLOCK;
5410 5410
5417 * handle: Handle to the checkbox to be queried. 5417 * handle: Handle to the checkbox to be queried.
5418 */ 5418 */
5419 int dw_checkbox_get(HWND handle) 5419 int dw_checkbox_get(HWND handle)
5420 { 5420 {
5421 int retval; 5421 int retval;
5422 int _locked_by_me = FALSE; 5422 int _dw_locked_by_me = FALSE;
5423 5423
5424 DW_MUTEX_LOCK; 5424 DW_MUTEX_LOCK;
5425 retval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(handle)); 5425 retval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(handle));
5426 DW_MUTEX_UNLOCK; 5426 DW_MUTEX_UNLOCK;
5427 5427
5434 * handle: Handle to the checkbox to be queried. 5434 * handle: Handle to the checkbox to be queried.
5435 * value: TRUE for checked, FALSE for unchecked. 5435 * value: TRUE for checked, FALSE for unchecked.
5436 */ 5436 */
5437 void dw_checkbox_set(HWND handle, int value) 5437 void dw_checkbox_set(HWND handle, int value)
5438 { 5438 {
5439 int _locked_by_me = FALSE; 5439 int _dw_locked_by_me = FALSE;
5440 5440
5441 DW_MUTEX_LOCK; 5441 DW_MUTEX_LOCK;
5442 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); 5442 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value);
5443 DW_MUTEX_UNLOCK; 5443 DW_MUTEX_UNLOCK;
5444 } 5444 }
5458 GtkWidget *tree; 5458 GtkWidget *tree;
5459 GtkTreeIter *iter; 5459 GtkTreeIter *iter;
5460 GtkTreeStore *store; 5460 GtkTreeStore *store;
5461 GdkPixbuf *pixbuf; 5461 GdkPixbuf *pixbuf;
5462 HTREEITEM retval = 0; 5462 HTREEITEM retval = 0;
5463 int _locked_by_me = FALSE; 5463 int _dw_locked_by_me = FALSE;
5464 5464
5465 if(!handle) 5465 if(!handle)
5466 return NULL; 5466 return NULL;
5467 5467
5468 DW_MUTEX_LOCK; 5468 DW_MUTEX_LOCK;
5497 GtkWidget *tree; 5497 GtkWidget *tree;
5498 GtkTreeIter *iter; 5498 GtkTreeIter *iter;
5499 GtkTreeStore *store; 5499 GtkTreeStore *store;
5500 GdkPixbuf *pixbuf; 5500 GdkPixbuf *pixbuf;
5501 HTREEITEM retval = 0; 5501 HTREEITEM retval = 0;
5502 int _locked_by_me = FALSE; 5502 int _dw_locked_by_me = FALSE;
5503 5503
5504 if(!handle) 5504 if(!handle)
5505 return NULL; 5505 return NULL;
5506 5506
5507 DW_MUTEX_LOCK; 5507 DW_MUTEX_LOCK;
5533 void dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon) 5533 void dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon)
5534 { 5534 {
5535 GtkWidget *tree; 5535 GtkWidget *tree;
5536 GtkTreeStore *store; 5536 GtkTreeStore *store;
5537 GdkPixbuf *pixbuf; 5537 GdkPixbuf *pixbuf;
5538 int _locked_by_me = FALSE; 5538 int _dw_locked_by_me = FALSE;
5539 5539
5540 if(!handle) 5540 if(!handle)
5541 return; 5541 return;
5542 5542
5543 DW_MUTEX_LOCK; 5543 DW_MUTEX_LOCK;
5561 */ 5561 */
5562 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) 5562 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata)
5563 { 5563 {
5564 GtkWidget *tree; 5564 GtkWidget *tree;
5565 GtkTreeStore *store; 5565 GtkTreeStore *store;
5566 int _locked_by_me = FALSE; 5566 int _dw_locked_by_me = FALSE;
5567 5567
5568 if(!handle || !item) 5568 if(!handle || !item)
5569 return; 5569 return;
5570 5570
5571 DW_MUTEX_LOCK; 5571 DW_MUTEX_LOCK;
5582 * handle: Handle to the tree containing the item. 5582 * handle: Handle to the tree containing the item.
5583 * item: Handle of the item to be modified. 5583 * item: Handle of the item to be modified.
5584 */ 5584 */
5585 char * API dw_tree_get_title(HWND handle, HTREEITEM item) 5585 char * API dw_tree_get_title(HWND handle, HTREEITEM item)
5586 { 5586 {
5587 int _locked_by_me = FALSE; 5587 int _dw_locked_by_me = FALSE;
5588 char *text = NULL; 5588 char *text = NULL;
5589 GtkWidget *tree; 5589 GtkWidget *tree;
5590 GtkTreeModel *store; 5590 GtkTreeModel *store;
5591 5591
5592 if(!handle || !item) 5592 if(!handle || !item)
5614 * handle: Handle to the tree containing the item. 5614 * handle: Handle to the tree containing the item.
5615 * item: Handle of the item to be modified. 5615 * item: Handle of the item to be modified.
5616 */ 5616 */
5617 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) 5617 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item)
5618 { 5618 {
5619 int _locked_by_me = FALSE; 5619 int _dw_locked_by_me = FALSE;
5620 HTREEITEM parent = (HTREEITEM)0; 5620 HTREEITEM parent = (HTREEITEM)0;
5621 GtkWidget *tree; 5621 GtkWidget *tree;
5622 GtkTreeModel *store; 5622 GtkTreeModel *store;
5623 5623
5624 if(!handle || !item) 5624 if(!handle || !item)
5648 void *dw_tree_item_get_data(HWND handle, HTREEITEM item) 5648 void *dw_tree_item_get_data(HWND handle, HTREEITEM item)
5649 { 5649 {
5650 void *ret = NULL; 5650 void *ret = NULL;
5651 GtkWidget *tree; 5651 GtkWidget *tree;
5652 GtkTreeModel *store; 5652 GtkTreeModel *store;
5653 int _locked_by_me = FALSE; 5653 int _dw_locked_by_me = FALSE;
5654 5654
5655 if(!handle || !item) 5655 if(!handle || !item)
5656 return NULL; 5656 return NULL;
5657 5657
5658 DW_MUTEX_LOCK; 5658 DW_MUTEX_LOCK;
5672 */ 5672 */
5673 void dw_tree_item_select(HWND handle, HTREEITEM item) 5673 void dw_tree_item_select(HWND handle, HTREEITEM item)
5674 { 5674 {
5675 GtkWidget *tree; 5675 GtkWidget *tree;
5676 GtkTreeStore *store; 5676 GtkTreeStore *store;
5677 int _locked_by_me = FALSE; 5677 int _dw_locked_by_me = FALSE;
5678 5678
5679 if(!handle || !item) 5679 if(!handle || !item)
5680 return; 5680 return;
5681 5681
5682 DW_MUTEX_LOCK; 5682 DW_MUTEX_LOCK;
5719 */ 5719 */
5720 void dw_tree_clear(HWND handle) 5720 void dw_tree_clear(HWND handle)
5721 { 5721 {
5722 GtkWidget *tree; 5722 GtkWidget *tree;
5723 GtkTreeStore *store; 5723 GtkTreeStore *store;
5724 int _locked_by_me = FALSE; 5724 int _dw_locked_by_me = FALSE;
5725 5725
5726 if(!handle) 5726 if(!handle)
5727 return; 5727 return;
5728 5728
5729 DW_MUTEX_LOCK; 5729 DW_MUTEX_LOCK;
5752 */ 5752 */
5753 void dw_tree_item_expand(HWND handle, HTREEITEM item) 5753 void dw_tree_item_expand(HWND handle, HTREEITEM item)
5754 { 5754 {
5755 GtkWidget *tree; 5755 GtkWidget *tree;
5756 GtkTreeStore *store; 5756 GtkTreeStore *store;
5757 int _locked_by_me = FALSE; 5757 int _dw_locked_by_me = FALSE;
5758 5758
5759 if(!handle) 5759 if(!handle)
5760 return; 5760 return;
5761 5761
5762 DW_MUTEX_LOCK; 5762 DW_MUTEX_LOCK;
5779 */ 5779 */
5780 void dw_tree_item_collapse(HWND handle, HTREEITEM item) 5780 void dw_tree_item_collapse(HWND handle, HTREEITEM item)
5781 { 5781 {
5782 GtkWidget *tree; 5782 GtkWidget *tree;
5783 GtkTreeStore *store; 5783 GtkTreeStore *store;
5784 int _locked_by_me = FALSE; 5784 int _dw_locked_by_me = FALSE;
5785 5785
5786 if(!handle) 5786 if(!handle)
5787 return; 5787 return;
5788 5788
5789 DW_MUTEX_LOCK; 5789 DW_MUTEX_LOCK;
5806 */ 5806 */
5807 void dw_tree_item_delete(HWND handle, HTREEITEM item) 5807 void dw_tree_item_delete(HWND handle, HTREEITEM item)
5808 { 5808 {
5809 GtkWidget *tree; 5809 GtkWidget *tree;
5810 GtkTreeStore *store; 5810 GtkTreeStore *store;
5811 int _locked_by_me = FALSE; 5811 int _dw_locked_by_me = FALSE;
5812 5812
5813 if(!handle) 5813 if(!handle)
5814 return; 5814 return;
5815 5815
5816 DW_MUTEX_LOCK; 5816 DW_MUTEX_LOCK;
5833 GtkWidget *tree; 5833 GtkWidget *tree;
5834 GtkListStore *store; 5834 GtkListStore *store;
5835 GtkTreeViewColumn *col; 5835 GtkTreeViewColumn *col;
5836 GtkCellRenderer *rend; 5836 GtkCellRenderer *rend;
5837 GtkTreeSelection *sel; 5837 GtkTreeSelection *sel;
5838 int _locked_by_me = FALSE; 5838 int _dw_locked_by_me = FALSE;
5839 GType *array = calloc(count + _DW_CONTAINER_STORE_EXTRA + 1, sizeof(GType)); 5839 GType *array = calloc(count + _DW_CONTAINER_STORE_EXTRA + 1, sizeof(GType));
5840 5840
5841 DW_MUTEX_LOCK; 5841 DW_MUTEX_LOCK;
5842 /* Save some of the info so it is easily accessible */ 5842 /* Save some of the info so it is easily accessible */
5843 g_object_set_data(G_OBJECT(handle), "_dw_cont_columns", GINT_TO_POINTER(count)); 5843 g_object_set_data(G_OBJECT(handle), "_dw_cont_columns", GINT_TO_POINTER(count));
6070 * DW pick the appropriate file extension. 6070 * DW pick the appropriate file extension.
6071 * (ICO on OS/2 or Windows, XPM on Unix) 6071 * (ICO on OS/2 or Windows, XPM on Unix)
6072 */ 6072 */
6073 HICN API dw_icon_load_from_file(const char *filename) 6073 HICN API dw_icon_load_from_file(const char *filename)
6074 { 6074 {
6075 int _locked_by_me = FALSE; 6075 int _dw_locked_by_me = FALSE;
6076 char *file = alloca(strlen(filename) + 6); 6076 char *file = alloca(strlen(filename) + 6);
6077 int i, found_ext = 0; 6077 int i, found_ext = 0;
6078 HICN ret = 0; 6078 HICN ret = 0;
6079 6079
6080 if (!file) 6080 if (!file)
6114 * data: Source of data for image. 6114 * data: Source of data for image.
6115 * len: length of data 6115 * len: length of data
6116 */ 6116 */
6117 HICN API dw_icon_load_from_data(const char *data, int len) 6117 HICN API dw_icon_load_from_data(const char *data, int len)
6118 { 6118 {
6119 int fd, written = -1, _locked_by_me = FALSE; 6119 int fd, written = -1, _dw_locked_by_me = FALSE;
6120 char template[] = "/tmp/dwiconXXXXXX"; 6120 char template[] = "/tmp/dwiconXXXXXX";
6121 HICN ret = 0; 6121 HICN ret = 0;
6122 6122
6123 /* 6123 /*
6124 * A real hack; create a temporary file and write the contents 6124 * A real hack; create a temporary file and write the contents
6163 void *dw_container_alloc(HWND handle, int rowcount) 6163 void *dw_container_alloc(HWND handle, int rowcount)
6164 { 6164 {
6165 int z, prevrowcount = 0; 6165 int z, prevrowcount = 0;
6166 GtkWidget *cont; 6166 GtkWidget *cont;
6167 GtkListStore *store = NULL; 6167 GtkListStore *store = NULL;
6168 int _locked_by_me = FALSE; 6168 int _dw_locked_by_me = FALSE;
6169 6169
6170 DW_MUTEX_LOCK; 6170 DW_MUTEX_LOCK;
6171 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6171 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6172 6172
6173 /* Make sure it is the correct tree type */ 6173 /* Make sure it is the correct tree type */
6199 { 6199 {
6200 char numbuf[25] = {0}, textbuffer[101] = {0}; 6200 char numbuf[25] = {0}, textbuffer[101] = {0};
6201 int flag = 0; 6201 int flag = 0;
6202 GtkWidget *cont; 6202 GtkWidget *cont;
6203 GtkListStore *store = NULL; 6203 GtkListStore *store = NULL;
6204 int _locked_by_me = FALSE; 6204 int _dw_locked_by_me = FALSE;
6205 6205
6206 DW_MUTEX_LOCK; 6206 DW_MUTEX_LOCK;
6207 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6207 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6208 6208
6209 /* Make sure it is the correct tree type */ 6209 /* Make sure it is the correct tree type */
6381 int dw_container_get_column_type(HWND handle, int column) 6381 int dw_container_get_column_type(HWND handle, int column)
6382 { 6382 {
6383 char numbuf[25] = {0}; 6383 char numbuf[25] = {0};
6384 int flag, rc = 0; 6384 int flag, rc = 0;
6385 GtkWidget *cont = handle; 6385 GtkWidget *cont = handle;
6386 int _locked_by_me = FALSE; 6386 int _dw_locked_by_me = FALSE;
6387 6387
6388 DW_MUTEX_LOCK; 6388 DW_MUTEX_LOCK;
6389 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6389 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6390 if(!cont) 6390 if(!cont)
6391 { 6391 {
6434 */ 6434 */
6435 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor) 6435 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor)
6436 { 6436 {
6437 #if !GTK_CHECK_VERSION(3,14,0) 6437 #if !GTK_CHECK_VERSION(3,14,0)
6438 GtkWidget *cont; 6438 GtkWidget *cont;
6439 int _locked_by_me = FALSE; 6439 int _dw_locked_by_me = FALSE;
6440 DW_MUTEX_LOCK; 6440 DW_MUTEX_LOCK;
6441 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6441 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6442 6442
6443 /* Make sure it is the correct tree type */ 6443 /* Make sure it is the correct tree type */
6444 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) 6444 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER))
6460 * width: Width of column in pixels. 6460 * width: Width of column in pixels.
6461 */ 6461 */
6462 void dw_container_set_column_width(HWND handle, int column, int width) 6462 void dw_container_set_column_width(HWND handle, int column, int width)
6463 { 6463 {
6464 GtkWidget *cont; 6464 GtkWidget *cont;
6465 int _locked_by_me = FALSE; 6465 int _dw_locked_by_me = FALSE;
6466 6466
6467 DW_MUTEX_LOCK; 6467 DW_MUTEX_LOCK;
6468 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6468 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6469 6469
6470 /* Make sure it is the correct tree type */ 6470 /* Make sure it is the correct tree type */
6483 /* Internal version for both */ 6483 /* Internal version for both */
6484 void _dw_container_set_row_data(HWND handle, void *pointer, int row, int type, void *data) 6484 void _dw_container_set_row_data(HWND handle, void *pointer, int row, int type, void *data)
6485 { 6485 {
6486 GtkWidget *cont = handle; 6486 GtkWidget *cont = handle;
6487 GtkListStore *store = NULL; 6487 GtkListStore *store = NULL;
6488 int _locked_by_me = FALSE; 6488 int _dw_locked_by_me = FALSE;
6489 6489
6490 DW_MUTEX_LOCK; 6490 DW_MUTEX_LOCK;
6491 /* Make sure it is the correct tree type */ 6491 /* Make sure it is the correct tree type */
6492 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) 6492 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER))
6493 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); 6493 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont));
6577 */ 6577 */
6578 void dw_container_delete(HWND handle, int rowcount) 6578 void dw_container_delete(HWND handle, int rowcount)
6579 { 6579 {
6580 GtkWidget *cont; 6580 GtkWidget *cont;
6581 GtkListStore *store = NULL; 6581 GtkListStore *store = NULL;
6582 int _locked_by_me = FALSE; 6582 int _dw_locked_by_me = FALSE;
6583 6583
6584 DW_MUTEX_LOCK; 6584 DW_MUTEX_LOCK;
6585 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6585 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6586 6586
6587 /* Make sure it is the correct tree type */ 6587 /* Make sure it is the correct tree type */
6619 */ 6619 */
6620 void dw_container_clear(HWND handle, int redraw) 6620 void dw_container_clear(HWND handle, int redraw)
6621 { 6621 {
6622 GtkWidget *cont; 6622 GtkWidget *cont;
6623 GtkListStore *store = NULL; 6623 GtkListStore *store = NULL;
6624 int _locked_by_me = FALSE; 6624 int _dw_locked_by_me = FALSE;
6625 6625
6626 DW_MUTEX_LOCK; 6626 DW_MUTEX_LOCK;
6627 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6627 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6628 6628
6629 /* Make sure it is the correct tree type */ 6629 /* Make sure it is the correct tree type */
6649 * rows: The number of rows to be scrolled. 6649 * rows: The number of rows to be scrolled.
6650 */ 6650 */
6651 void dw_container_scroll(HWND handle, int direction, long rows) 6651 void dw_container_scroll(HWND handle, int direction, long rows)
6652 { 6652 {
6653 GtkWidget *cont; 6653 GtkWidget *cont;
6654 int _locked_by_me = FALSE; 6654 int _dw_locked_by_me = FALSE;
6655 6655
6656 DW_MUTEX_LOCK; 6656 DW_MUTEX_LOCK;
6657 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6657 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6658 6658
6659 /* Make sure it is the correct tree type */ 6659 /* Make sure it is the correct tree type */
6727 char *dw_container_query_start(HWND handle, unsigned long flags) 6727 char *dw_container_query_start(HWND handle, unsigned long flags)
6728 { 6728 {
6729 GtkWidget *cont; 6729 GtkWidget *cont;
6730 GtkListStore *store = NULL; 6730 GtkListStore *store = NULL;
6731 char *retval = NULL; 6731 char *retval = NULL;
6732 int _locked_by_me = FALSE; 6732 int _dw_locked_by_me = FALSE;
6733 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING; 6733 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING;
6734 6734
6735 DW_MUTEX_LOCK; 6735 DW_MUTEX_LOCK;
6736 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6736 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6737 6737
6818 char *dw_container_query_next(HWND handle, unsigned long flags) 6818 char *dw_container_query_next(HWND handle, unsigned long flags)
6819 { 6819 {
6820 GtkWidget *cont; 6820 GtkWidget *cont;
6821 GtkListStore *store = NULL; 6821 GtkListStore *store = NULL;
6822 char *retval = NULL; 6822 char *retval = NULL;
6823 int _locked_by_me = FALSE; 6823 int _dw_locked_by_me = FALSE;
6824 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING; 6824 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING;
6825 6825
6826 DW_MUTEX_LOCK; 6826 DW_MUTEX_LOCK;
6827 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6827 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6828 6828
6919 6919
6920 void _dw_container_cursor(HWND handle, void *data, int textcomp) 6920 void _dw_container_cursor(HWND handle, void *data, int textcomp)
6921 { 6921 {
6922 GtkWidget *cont; 6922 GtkWidget *cont;
6923 GtkListStore *store = NULL; 6923 GtkListStore *store = NULL;
6924 int _locked_by_me = FALSE; 6924 int _dw_locked_by_me = FALSE;
6925 6925
6926 DW_MUTEX_LOCK; 6926 DW_MUTEX_LOCK;
6927 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6927 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6928 6928
6929 /* Make sure it is the correct tree type */ 6929 /* Make sure it is the correct tree type */
6972 6972
6973 void _dw_container_delete_row(HWND handle, void *data, int textcomp) 6973 void _dw_container_delete_row(HWND handle, void *data, int textcomp)
6974 { 6974 {
6975 GtkWidget *cont; 6975 GtkWidget *cont;
6976 GtkListStore *store = NULL; 6976 GtkListStore *store = NULL;
6977 int _locked_by_me = FALSE; 6977 int _dw_locked_by_me = FALSE;
6978 6978
6979 DW_MUTEX_LOCK; 6979 DW_MUTEX_LOCK;
6980 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 6980 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
6981 6981
6982 /* Make sure it is the correct tree type */ 6982 /* Make sure it is the correct tree type */
7027 * handle: Handle to the window (widget) to be optimized. 7027 * handle: Handle to the window (widget) to be optimized.
7028 */ 7028 */
7029 void dw_container_optimize(HWND handle) 7029 void dw_container_optimize(HWND handle)
7030 { 7030 {
7031 GtkWidget *cont; 7031 GtkWidget *cont;
7032 int _locked_by_me = FALSE; 7032 int _dw_locked_by_me = FALSE;
7033 7033
7034 DW_MUTEX_LOCK; 7034 DW_MUTEX_LOCK;
7035 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 7035 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
7036 7036
7037 /* Make sure it is the correct tree type */ 7037 /* Make sure it is the correct tree type */
7065 */ 7065 */
7066 void dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext) 7066 void dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext)
7067 { 7067 {
7068 GtkStatusIcon *status; 7068 GtkStatusIcon *status;
7069 GdkPixbuf *pixbuf; 7069 GdkPixbuf *pixbuf;
7070 int _locked_by_me = FALSE; 7070 int _dw_locked_by_me = FALSE;
7071 7071
7072 DW_MUTEX_LOCK; 7072 DW_MUTEX_LOCK;
7073 pixbuf = _dw_find_pixbuf(icon, NULL, NULL); 7073 pixbuf = _dw_find_pixbuf(icon, NULL, NULL);
7074 status = gtk_status_icon_new_from_pixbuf(pixbuf); 7074 status = gtk_status_icon_new_from_pixbuf(pixbuf);
7075 if(bubbletext) 7075 if(bubbletext)
7087 * icon: Icon handle that was used with dw_taskbar_insert(). 7087 * icon: Icon handle that was used with dw_taskbar_insert().
7088 */ 7088 */
7089 void dw_taskbar_delete(HWND handle, HICN icon) 7089 void dw_taskbar_delete(HWND handle, HICN icon)
7090 { 7090 {
7091 GtkStatusIcon *status; 7091 GtkStatusIcon *status;
7092 int _locked_by_me = FALSE; 7092 int _dw_locked_by_me = FALSE;
7093 7093
7094 DW_MUTEX_LOCK; 7094 DW_MUTEX_LOCK;
7095 status = g_object_get_data(G_OBJECT(handle), "_dw_taskbar"); 7095 status = g_object_get_data(G_OBJECT(handle), "_dw_taskbar");
7096 g_object_unref(G_OBJECT(status)); 7096 g_object_unref(G_OBJECT(status));
7097 DW_MUTEX_UNLOCK; 7097 DW_MUTEX_UNLOCK;
7110 * Returns: 7110 * Returns:
7111 * A handle to the widget or NULL on failure. 7111 * A handle to the widget or NULL on failure.
7112 */ 7112 */
7113 HWND dw_render_new(unsigned long id) 7113 HWND dw_render_new(unsigned long id)
7114 { 7114 {
7115 int _locked_by_me = FALSE; 7115 int _dw_locked_by_me = FALSE;
7116 GtkWidget *tmp; 7116 GtkWidget *tmp;
7117 7117
7118 DW_MUTEX_LOCK; 7118 DW_MUTEX_LOCK;
7119 tmp = gtk_drawing_area_new(); 7119 tmp = gtk_drawing_area_new();
7120 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK 7120 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK
7139 * Parameters: 7139 * Parameters:
7140 * handle: A handle to a render widget to be redrawn. 7140 * handle: A handle to a render widget to be redrawn.
7141 */ 7141 */
7142 void API dw_render_redraw(HWND handle) 7142 void API dw_render_redraw(HWND handle)
7143 { 7143 {
7144 int _locked_by_me = FALSE; 7144 int _dw_locked_by_me = FALSE;
7145 7145
7146 DW_MUTEX_LOCK; 7146 DW_MUTEX_LOCK;
7147 if(handle && GTK_IS_WIDGET(handle)) 7147 if(handle && GTK_IS_WIDGET(handle))
7148 gtk_widget_queue_draw(handle); 7148 gtk_widget_queue_draw(handle);
7149 DW_MUTEX_UNLOCK; 7149 DW_MUTEX_UNLOCK;
7216 */ 7216 */
7217 unsigned long API dw_color_choose(unsigned long value) 7217 unsigned long API dw_color_choose(unsigned long value)
7218 { 7218 {
7219 GtkColorChooser *cd; 7219 GtkColorChooser *cd;
7220 GdkRGBA color = _dw_internal_color(value); 7220 GdkRGBA color = _dw_internal_color(value);
7221 int _locked_by_me = FALSE; 7221 int _dw_locked_by_me = FALSE;
7222 unsigned long retcolor = value; 7222 unsigned long retcolor = value;
7223 7223
7224 DW_MUTEX_LOCK; 7224 DW_MUTEX_LOCK;
7225 cd = (GtkColorChooser *)gtk_color_chooser_dialog_new("Choose color", NULL); 7225 cd = (GtkColorChooser *)gtk_color_chooser_dialog_new("Choose color", NULL);
7226 gtk_color_chooser_set_use_alpha(cd, FALSE); 7226 gtk_color_chooser_set_use_alpha(cd, FALSE);
7278 * The selected color or the current color if cancelled. 7278 * The selected color or the current color if cancelled.
7279 */ 7279 */
7280 unsigned long API dw_color_choose(unsigned long value) 7280 unsigned long API dw_color_choose(unsigned long value)
7281 { 7281 {
7282 GtkWidget *colorw, *ok_button, *cancel_button; 7282 GtkWidget *colorw, *ok_button, *cancel_button;
7283 int _locked_by_me = FALSE; 7283 int _dw_locked_by_me = FALSE;
7284 DWDialog *dwwait; 7284 DWDialog *dwwait;
7285 GtkColorSelection *colorsel; 7285 GtkColorSelection *colorsel;
7286 GdkRGBA color = _dw_internal_color(value); 7286 GdkRGBA color = _dw_internal_color(value);
7287 unsigned long dw_color; 7287 unsigned long dw_color;
7288 7288
7329 * x: X coordinate. 7329 * x: X coordinate.
7330 * y: Y coordinate. 7330 * y: Y coordinate.
7331 */ 7331 */
7332 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y) 7332 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y)
7333 { 7333 {
7334 int _locked_by_me = FALSE; 7334 int _dw_locked_by_me = FALSE;
7335 cairo_t *cr = NULL; 7335 cairo_t *cr = NULL;
7336 int cached = FALSE; 7336 int cached = FALSE;
7337 #if GTK_CHECK_VERSION(3,22,0) 7337 #if GTK_CHECK_VERSION(3,22,0)
7338 GdkDrawingContext *dc = NULL; 7338 GdkDrawingContext *dc = NULL;
7339 cairo_region_t *clip = NULL; 7339 cairo_region_t *clip = NULL;
7405 * x2: Second X coordinate. 7405 * x2: Second X coordinate.
7406 * y2: Second Y coordinate. 7406 * y2: Second Y coordinate.
7407 */ 7407 */
7408 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) 7408 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2)
7409 { 7409 {
7410 int _locked_by_me = FALSE; 7410 int _dw_locked_by_me = FALSE;
7411 cairo_t *cr = NULL; 7411 cairo_t *cr = NULL;
7412 int cached = FALSE; 7412 int cached = FALSE;
7413 #if GTK_CHECK_VERSION(3,22,0) 7413 #if GTK_CHECK_VERSION(3,22,0)
7414 GdkDrawingContext *dc = NULL; 7414 GdkDrawingContext *dc = NULL;
7415 cairo_region_t *clip = NULL; 7415 cairo_region_t *clip = NULL;
7482 * x[]: X coordinates. 7482 * x[]: X coordinates.
7483 * y[]: Y coordinates. 7483 * y[]: Y coordinates.
7484 */ 7484 */
7485 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) 7485 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y)
7486 { 7486 {
7487 int _locked_by_me = FALSE; 7487 int _dw_locked_by_me = FALSE;
7488 cairo_t *cr = NULL; 7488 cairo_t *cr = NULL;
7489 int cached = FALSE; 7489 int cached = FALSE;
7490 int z; 7490 int z;
7491 #if GTK_CHECK_VERSION(3,22,0) 7491 #if GTK_CHECK_VERSION(3,22,0)
7492 GdkDrawingContext *dc = NULL; 7492 GdkDrawingContext *dc = NULL;
7569 * width: Width of rectangle. 7569 * width: Width of rectangle.
7570 * height: Height of rectangle. 7570 * height: Height of rectangle.
7571 */ 7571 */
7572 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) 7572 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height)
7573 { 7573 {
7574 int _locked_by_me = FALSE; 7574 int _dw_locked_by_me = FALSE;
7575 cairo_t *cr = NULL; 7575 cairo_t *cr = NULL;
7576 int cached = FALSE; 7576 int cached = FALSE;
7577 #if GTK_CHECK_VERSION(3,22,0) 7577 #if GTK_CHECK_VERSION(3,22,0)
7578 GdkDrawingContext *dc = NULL; 7578 GdkDrawingContext *dc = NULL;
7579 cairo_region_t *clip = NULL; 7579 cairo_region_t *clip = NULL;
7657 * x2: X coordinate of second segment of arc. 7657 * x2: X coordinate of second segment of arc.
7658 * y2: Y coordinate of second segment of arc. 7658 * y2: Y coordinate of second segment of arc.
7659 */ 7659 */
7660 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) 7660 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2)
7661 { 7661 {
7662 int _locked_by_me = FALSE; 7662 int _dw_locked_by_me = FALSE;
7663 cairo_t *cr = NULL; 7663 cairo_t *cr = NULL;
7664 int cached = FALSE; 7664 int cached = FALSE;
7665 #if GTK_CHECK_VERSION(3,22,0) 7665 #if GTK_CHECK_VERSION(3,22,0)
7666 GdkDrawingContext *dc = NULL; 7666 GdkDrawingContext *dc = NULL;
7667 cairo_region_t *clip = NULL; 7667 cairo_region_t *clip = NULL;
7752 * y: Y coordinate. 7752 * y: Y coordinate.
7753 * text: Text to be displayed. 7753 * text: Text to be displayed.
7754 */ 7754 */
7755 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text) 7755 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text)
7756 { 7756 {
7757 int _locked_by_me = FALSE; 7757 int _dw_locked_by_me = FALSE;
7758 cairo_t *cr = NULL; 7758 cairo_t *cr = NULL;
7759 int cached = FALSE; 7759 int cached = FALSE;
7760 PangoFontDescription *font; 7760 PangoFontDescription *font;
7761 char *tmpname, *fontname = "monospace 10"; 7761 char *tmpname, *fontname = "monospace 10";
7762 #if GTK_CHECK_VERSION(3,22,0) 7762 #if GTK_CHECK_VERSION(3,22,0)
7876 * width: Pointer to a variable to be filled in with the width. 7876 * width: Pointer to a variable to be filled in with the width.
7877 * height Pointer to a variable to be filled in with the height. 7877 * height Pointer to a variable to be filled in with the height.
7878 */ 7878 */
7879 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height) 7879 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height)
7880 { 7880 {
7881 int _locked_by_me = FALSE; 7881 int _dw_locked_by_me = FALSE;
7882 PangoFontDescription *font; 7882 PangoFontDescription *font;
7883 char *fontname = NULL; 7883 char *fontname = NULL;
7884 int free_fontname = 0; 7884 int free_fontname = 0;
7885 7885
7886 if(!text) 7886 if(!text)
7949 * Returns: 7949 * Returns:
7950 * A handle to a pixmap or NULL on failure. 7950 * A handle to a pixmap or NULL on failure.
7951 */ 7951 */
7952 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth) 7952 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth)
7953 { 7953 {
7954 int _locked_by_me = FALSE; 7954 int _dw_locked_by_me = FALSE;
7955 HPIXMAP pixmap; 7955 HPIXMAP pixmap;
7956 7956
7957 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) 7957 if (!(pixmap = calloc(1,sizeof(struct _hpixmap))))
7958 return NULL; 7958 return NULL;
7959 7959
7984 * Returns: 7984 * Returns:
7985 * A handle to a pixmap or NULL on failure. 7985 * A handle to a pixmap or NULL on failure.
7986 */ 7986 */
7987 HPIXMAP dw_pixmap_new_from_file(HWND handle, const char *filename) 7987 HPIXMAP dw_pixmap_new_from_file(HWND handle, const char *filename)
7988 { 7988 {
7989 int _locked_by_me = FALSE; 7989 int _dw_locked_by_me = FALSE;
7990 HPIXMAP pixmap; 7990 HPIXMAP pixmap;
7991 char *file = alloca(strlen(filename) + 6); 7991 char *file = alloca(strlen(filename) + 6);
7992 int found_ext = 0; 7992 int found_ext = 0;
7993 int i; 7993 int i;
7994 7994
8038 * Returns: 8038 * Returns:
8039 * A handle to a pixmap or NULL on failure. 8039 * A handle to a pixmap or NULL on failure.
8040 */ 8040 */
8041 HPIXMAP dw_pixmap_new_from_data(HWND handle, const char *data, int len) 8041 HPIXMAP dw_pixmap_new_from_data(HWND handle, const char *data, int len)
8042 { 8042 {
8043 int fd, written = -1, _locked_by_me = FALSE; 8043 int fd, written = -1, _dw_locked_by_me = FALSE;
8044 HPIXMAP pixmap; 8044 HPIXMAP pixmap;
8045 char template[] = "/tmp/dwpixmapXXXXXX"; 8045 char template[] = "/tmp/dwpixmapXXXXXX";
8046 8046
8047 if(!data || !(pixmap = calloc(1,sizeof(struct _hpixmap)))) 8047 if(!data || !(pixmap = calloc(1,sizeof(struct _hpixmap))))
8048 return NULL; 8048 return NULL;
8096 * A handle to a pixmap or NULL on failure. 8096 * A handle to a pixmap or NULL on failure.
8097 */ 8097 */
8098 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) 8098 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id)
8099 { 8099 {
8100 HPIXMAP pixmap; 8100 HPIXMAP pixmap;
8101 int _locked_by_me = FALSE; 8101 int _dw_locked_by_me = FALSE;
8102 8102
8103 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) 8103 if (!(pixmap = calloc(1,sizeof(struct _hpixmap))))
8104 return NULL; 8104 return NULL;
8105 8105
8106 8106
8119 /* Call this after drawing to the screen to make sure 8119 /* Call this after drawing to the screen to make sure
8120 * anything you have drawn is visible. 8120 * anything you have drawn is visible.
8121 */ 8121 */
8122 void dw_flush(void) 8122 void dw_flush(void)
8123 { 8123 {
8124 int _locked_by_me = FALSE; 8124 int _dw_locked_by_me = FALSE;
8125 8125
8126 DW_MUTEX_LOCK; 8126 DW_MUTEX_LOCK;
8127 g_list_foreach(_dw_dirty_list, _dw_flush_dirty, NULL); 8127 g_list_foreach(_dw_dirty_list, _dw_flush_dirty, NULL);
8128 g_list_free(_dw_dirty_list); 8128 g_list_free(_dw_dirty_list);
8129 _dw_dirty_list = NULL; 8129 _dw_dirty_list = NULL;
8162 * pixmap: Handle to a pixmap returned by 8162 * pixmap: Handle to a pixmap returned by
8163 * dw_pixmap_new.. 8163 * dw_pixmap_new..
8164 */ 8164 */
8165 void dw_pixmap_destroy(HPIXMAP pixmap) 8165 void dw_pixmap_destroy(HPIXMAP pixmap)
8166 { 8166 {
8167 int _locked_by_me = FALSE; 8167 int _dw_locked_by_me = FALSE;
8168 8168
8169 DW_MUTEX_LOCK; 8169 DW_MUTEX_LOCK;
8170 g_object_unref(G_OBJECT(pixmap->pixbuf)); 8170 g_object_unref(G_OBJECT(pixmap->pixbuf));
8171 cairo_surface_destroy(pixmap->image); 8171 cairo_surface_destroy(pixmap->image);
8172 if(pixmap->font) 8172 if(pixmap->font)
8212 * Returns: 8212 * Returns:
8213 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. 8213 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure.
8214 */ 8214 */
8215 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) 8215 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)
8216 { 8216 {
8217 int _locked_by_me = FALSE; 8217 int _dw_locked_by_me = FALSE;
8218 cairo_t *cr = NULL; 8218 cairo_t *cr = NULL;
8219 int cached = FALSE; 8219 int cached = FALSE;
8220 int retval = DW_ERROR_GENERAL; 8220 int retval = DW_ERROR_GENERAL;
8221 #if GTK_CHECK_VERSION(3,22,0) 8221 #if GTK_CHECK_VERSION(3,22,0)
8222 GdkDrawingContext *dc = NULL; 8222 GdkDrawingContext *dc = NULL;
8302 * freq: Frequency. 8302 * freq: Frequency.
8303 * dur: Duration. 8303 * dur: Duration.
8304 */ 8304 */
8305 void dw_beep(int freq, int dur) 8305 void dw_beep(int freq, int dur)
8306 { 8306 {
8307 int _locked_by_me = FALSE; 8307 int _dw_locked_by_me = FALSE;
8308 8308
8309 DW_MUTEX_LOCK; 8309 DW_MUTEX_LOCK;
8310 gdk_display_beep(gdk_display_get_default()); 8310 gdk_display_beep(gdk_display_get_default());
8311 DW_MUTEX_UNLOCK; 8311 DW_MUTEX_UNLOCK;
8312 } 8312 }
9227 } 9227 }
9228 9228
9229 /* Internal box packing function called by the other 3 functions */ 9229 /* Internal box packing function called by the other 3 functions */
9230 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname) 9230 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname)
9231 { 9231 {
9232 int warn = FALSE, _locked_by_me = FALSE; 9232 int warn = FALSE, _dw_locked_by_me = FALSE;
9233 GtkWidget *tmp, *tmpitem, *image = NULL; 9233 GtkWidget *tmp, *tmpitem, *image = NULL;
9234 9234
9235 if(!box) 9235 if(!box)
9236 return; 9236 return;
9237 9237
9438 * Returns: 9438 * Returns:
9439 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. 9439 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure.
9440 */ 9440 */
9441 int API dw_box_unpack(HWND handle) 9441 int API dw_box_unpack(HWND handle)
9442 { 9442 {
9443 int _locked_by_me = FALSE, retcode = DW_ERROR_GENERAL; 9443 int _dw_locked_by_me = FALSE, retcode = DW_ERROR_GENERAL;
9444 9444
9445 DW_MUTEX_LOCK; 9445 DW_MUTEX_LOCK;
9446 if(GTK_IS_WIDGET(handle)) 9446 if(GTK_IS_WIDGET(handle))
9447 { 9447 {
9448 GtkWidget *box, *handle2 = handle; 9448 GtkWidget *box, *handle2 = handle;
9520 * Returns: 9520 * Returns:
9521 * Handle to the removed item on success, 0 on failure or padding. 9521 * Handle to the removed item on success, 0 on failure or padding.
9522 */ 9522 */
9523 HWND API dw_box_unpack_at_index(HWND box, int index) 9523 HWND API dw_box_unpack_at_index(HWND box, int index)
9524 { 9524 {
9525 int _locked_by_me = FALSE; 9525 int _dw_locked_by_me = FALSE;
9526 HWND retval = 0; 9526 HWND retval = 0;
9527 9527
9528 DW_MUTEX_LOCK; 9528 DW_MUTEX_LOCK;
9529 /* Check if we are removing a widget from a box */ 9529 /* Check if we are removing a widget from a box */
9530 if(GTK_IS_GRID(box)) 9530 if(GTK_IS_GRID(box))
9741 * width: New width in pixels. 9741 * width: New width in pixels.
9742 * height: New height in pixels. 9742 * height: New height in pixels.
9743 */ 9743 */
9744 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height) 9744 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height)
9745 { 9745 {
9746 int _locked_by_me = FALSE; 9746 int _dw_locked_by_me = FALSE;
9747 9747
9748 if(!handle) 9748 if(!handle)
9749 return; 9749 return;
9750 9750
9751 DW_MUTEX_LOCK; 9751 DW_MUTEX_LOCK;
9808 * width: Width in pixels of the item or NULL if not needed. 9808 * width: Width in pixels of the item or NULL if not needed.
9809 * height: Height in pixels of the item or NULL if not needed. 9809 * height: Height in pixels of the item or NULL if not needed.
9810 */ 9810 */
9811 void API dw_window_get_preferred_size(HWND handle, int *width, int *height) 9811 void API dw_window_get_preferred_size(HWND handle, int *width, int *height)
9812 { 9812 {
9813 int _locked_by_me = FALSE; 9813 int _dw_locked_by_me = FALSE;
9814 9814
9815 DW_MUTEX_LOCK; 9815 DW_MUTEX_LOCK;
9816 if(GTK_IS_SCROLLED_WINDOW(handle)) 9816 if(GTK_IS_SCROLLED_WINDOW(handle))
9817 { 9817 {
9818 gint scrolledwidth, scrolledheight; 9818 gint scrolledwidth, scrolledheight;
9863 * Returns the width of the screen. 9863 * Returns the width of the screen.
9864 */ 9864 */
9865 int dw_screen_width(void) 9865 int dw_screen_width(void)
9866 { 9866 {
9867 int retval = 0; 9867 int retval = 0;
9868 int _locked_by_me = FALSE; 9868 int _dw_locked_by_me = FALSE;
9869 9869
9870 DW_MUTEX_LOCK; 9870 DW_MUTEX_LOCK;
9871 retval = _dw_screen_width(); 9871 retval = _dw_screen_width();
9872 DW_MUTEX_UNLOCK; 9872 DW_MUTEX_UNLOCK;
9873 return retval; 9873 return retval;
9902 * Returns the height of the screen. 9902 * Returns the height of the screen.
9903 */ 9903 */
9904 int dw_screen_height(void) 9904 int dw_screen_height(void)
9905 { 9905 {
9906 int retval; 9906 int retval;
9907 int _locked_by_me = FALSE; 9907 int _dw_locked_by_me = FALSE;
9908 9908
9909 DW_MUTEX_LOCK; 9909 DW_MUTEX_LOCK;
9910 retval = _dw_screen_height(); 9910 retval = _dw_screen_height();
9911 DW_MUTEX_UNLOCK; 9911 DW_MUTEX_UNLOCK;
9912 return retval; 9912 return retval;
9915 /* This should return the current color depth */ 9915 /* This should return the current color depth */
9916 unsigned long dw_color_depth_get(void) 9916 unsigned long dw_color_depth_get(void)
9917 { 9917 {
9918 int retval; 9918 int retval;
9919 GdkVisual *vis; 9919 GdkVisual *vis;
9920 int _locked_by_me = FALSE; 9920 int _dw_locked_by_me = FALSE;
9921 9921
9922 DW_MUTEX_LOCK; 9922 DW_MUTEX_LOCK;
9923 #if GTK_CHECK_VERSION(3,22,0) 9923 #if GTK_CHECK_VERSION(3,22,0)
9924 vis = gdk_screen_get_system_visual(gdk_screen_get_default()); 9924 vis = gdk_screen_get_system_visual(gdk_screen_get_default());
9925 #else 9925 #else
9951 * x: X location from the bottom left. 9951 * x: X location from the bottom left.
9952 * y: Y location from the bottom left. 9952 * y: Y location from the bottom left.
9953 */ 9953 */
9954 void dw_window_set_pos(HWND handle, long x, long y) 9954 void dw_window_set_pos(HWND handle, long x, long y)
9955 { 9955 {
9956 int _locked_by_me = FALSE; 9956 int _dw_locked_by_me = FALSE;
9957 #ifdef DW_INCLUDE_DEPRECATED 9957 #ifdef DW_INCLUDE_DEPRECATED
9958 GtkWidget *mdi; 9958 GtkWidget *mdi;
9959 #endif 9959 #endif
9960 9960
9961 if(!handle) 9961 if(!handle)
10122 * width: Width of the widget. 10122 * width: Width of the widget.
10123 * height: Height of the widget. 10123 * height: Height of the widget.
10124 */ 10124 */
10125 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) 10125 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height)
10126 { 10126 {
10127 int _locked_by_me = FALSE; 10127 int _dw_locked_by_me = FALSE;
10128 gint gx = 0, gy = 0, gwidth = 0, gheight = 0; 10128 gint gx = 0, gy = 0, gwidth = 0, gheight = 0;
10129 #ifdef DW_INCLUDE_DEPRECATED 10129 #ifdef DW_INCLUDE_DEPRECATED
10130 GtkWidget *mdi; 10130 GtkWidget *mdi;
10131 #endif 10131 #endif
10132 10132
10188 * height: New height in pixels. 10188 * height: New height in pixels.
10189 */ 10189 */
10190 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask) 10190 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask)
10191 { 10191 {
10192 GtkWidget *handle2 = handle; 10192 GtkWidget *handle2 = handle;
10193 int _locked_by_me = FALSE; 10193 int _dw_locked_by_me = FALSE;
10194 10194
10195 DW_MUTEX_LOCK; 10195 DW_MUTEX_LOCK;
10196 if(GTK_IS_SCROLLED_WINDOW(handle)) 10196 if(GTK_IS_SCROLLED_WINDOW(handle))
10197 { 10197 {
10198 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 10198 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
10277 * front: If TRUE page is added at the beginning. 10277 * front: If TRUE page is added at the beginning.
10278 */ 10278 */
10279 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front) 10279 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front)
10280 { 10280 {
10281 int z; 10281 int z;
10282 int _locked_by_me = FALSE; 10282 int _dw_locked_by_me = FALSE;
10283 GtkWidget **pagearray; 10283 GtkWidget **pagearray;
10284 10284
10285 DW_MUTEX_LOCK; 10285 DW_MUTEX_LOCK;
10286 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); 10286 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray");
10287 10287
10337 * handle: Handle to the notebook widget. 10337 * handle: Handle to the notebook widget.
10338 * pageid: ID of the page to be destroyed. 10338 * pageid: ID of the page to be destroyed.
10339 */ 10339 */
10340 void dw_notebook_page_destroy(HWND handle, unsigned int pageid) 10340 void dw_notebook_page_destroy(HWND handle, unsigned int pageid)
10341 { 10341 {
10342 int realpage, _locked_by_me = FALSE; 10342 int realpage, _dw_locked_by_me = FALSE;
10343 GtkWidget **pagearray; 10343 GtkWidget **pagearray;
10344 10344
10345 DW_MUTEX_LOCK; 10345 DW_MUTEX_LOCK;
10346 realpage = _dw_get_physical_page(handle, pageid); 10346 realpage = _dw_get_physical_page(handle, pageid);
10347 if(realpage > -1 && realpage < 256) 10347 if(realpage > -1 && realpage < 256)
10359 * handle: Handle to the notebook widget. 10359 * handle: Handle to the notebook widget.
10360 */ 10360 */
10361 unsigned long dw_notebook_page_get(HWND handle) 10361 unsigned long dw_notebook_page_get(HWND handle)
10362 { 10362 {
10363 int retval, phys; 10363 int retval, phys;
10364 int _locked_by_me = FALSE; 10364 int _dw_locked_by_me = FALSE;
10365 10365
10366 DW_MUTEX_LOCK; 10366 DW_MUTEX_LOCK;
10367 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); 10367 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle));
10368 retval = _dw_get_logical_page(handle, phys); 10368 retval = _dw_get_logical_page(handle, phys);
10369 DW_MUTEX_UNLOCK; 10369 DW_MUTEX_UNLOCK;
10376 * handle: Handle to the notebook widget. 10376 * handle: Handle to the notebook widget.
10377 * pageid: ID of the page to be made visible. 10377 * pageid: ID of the page to be made visible.
10378 */ 10378 */
10379 void dw_notebook_page_set(HWND handle, unsigned int pageid) 10379 void dw_notebook_page_set(HWND handle, unsigned int pageid)
10380 { 10380 {
10381 int realpage, _locked_by_me = FALSE; 10381 int realpage, _dw_locked_by_me = FALSE;
10382 10382
10383 DW_MUTEX_LOCK; 10383 DW_MUTEX_LOCK;
10384 realpage = _dw_get_physical_page(handle, pageid); 10384 realpage = _dw_get_physical_page(handle, pageid);
10385 if(realpage > -1 && realpage < 256) 10385 if(realpage > -1 && realpage < 256)
10386 gtk_notebook_set_current_page(GTK_NOTEBOOK(handle), pageid); 10386 gtk_notebook_set_current_page(GTK_NOTEBOOK(handle), pageid);
10396 * text: Pointer to the text to set. 10396 * text: Pointer to the text to set.
10397 */ 10397 */
10398 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text) 10398 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text)
10399 { 10399 {
10400 GtkWidget *child; 10400 GtkWidget *child;
10401 int realpage, _locked_by_me = FALSE; 10401 int realpage, _dw_locked_by_me = FALSE;
10402 10402
10403 DW_MUTEX_LOCK; 10403 DW_MUTEX_LOCK;
10404 realpage = _dw_get_physical_page(handle, pageid); 10404 realpage = _dw_get_physical_page(handle, pageid);
10405 if(realpage < 0 || realpage > 255) 10405 if(realpage < 0 || realpage > 255)
10406 { 10406 {
10442 */ 10442 */
10443 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page) 10443 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page)
10444 { 10444 {
10445 GtkWidget *label, *child, *oldlabel, **pagearray; 10445 GtkWidget *label, *child, *oldlabel, **pagearray;
10446 const gchar *text = NULL; 10446 const gchar *text = NULL;
10447 int num, z, realpage = -1, pad, _locked_by_me = FALSE; 10447 int num, z, realpage = -1, pad, _dw_locked_by_me = FALSE;
10448 char ptext[101] = {0}; 10448 char ptext[101] = {0};
10449 10449
10450 DW_MUTEX_LOCK; 10450 DW_MUTEX_LOCK;
10451 snprintf(ptext, 100, "_dw_page%d", (int)pageid); 10451 snprintf(ptext, 100, "_dw_page%d", (int)pageid);
10452 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext)); 10452 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext));
10517 */ 10517 */
10518 void dw_listbox_insert(HWND handle, const char *text, int pos) 10518 void dw_listbox_insert(HWND handle, const char *text, int pos)
10519 { 10519 {
10520 GtkWidget *handle2 = handle; 10520 GtkWidget *handle2 = handle;
10521 GtkListStore *store = NULL; 10521 GtkListStore *store = NULL;
10522 int _locked_by_me = FALSE; 10522 int _dw_locked_by_me = FALSE;
10523 10523
10524 DW_MUTEX_LOCK; 10524 DW_MUTEX_LOCK;
10525 /* Get the inner handle for scrolled controls */ 10525 /* Get the inner handle for scrolled controls */
10526 if(GTK_IS_SCROLLED_WINDOW(handle)) 10526 if(GTK_IS_SCROLLED_WINDOW(handle))
10527 { 10527 {
10569 */ 10569 */
10570 void dw_listbox_list_append(HWND handle, char **text, int count) 10570 void dw_listbox_list_append(HWND handle, char **text, int count)
10571 { 10571 {
10572 GtkWidget *handle2 = handle; 10572 GtkWidget *handle2 = handle;
10573 GtkListStore *store = NULL; 10573 GtkListStore *store = NULL;
10574 int _locked_by_me = FALSE; 10574 int _dw_locked_by_me = FALSE;
10575 10575
10576 DW_MUTEX_LOCK; 10576 DW_MUTEX_LOCK;
10577 /* Get the inner handle for scrolled controls */ 10577 /* Get the inner handle for scrolled controls */
10578 if(GTK_IS_SCROLLED_WINDOW(handle)) 10578 if(GTK_IS_SCROLLED_WINDOW(handle))
10579 { 10579 {
10615 */ 10615 */
10616 void dw_listbox_clear(HWND handle) 10616 void dw_listbox_clear(HWND handle)
10617 { 10617 {
10618 GtkWidget *handle2 = handle; 10618 GtkWidget *handle2 = handle;
10619 GtkListStore *store = NULL; 10619 GtkListStore *store = NULL;
10620 int _locked_by_me = FALSE; 10620 int _dw_locked_by_me = FALSE;
10621 10621
10622 DW_MUTEX_LOCK; 10622 DW_MUTEX_LOCK;
10623 /* Get the inner handle for scrolled controls */ 10623 /* Get the inner handle for scrolled controls */
10624 if(GTK_IS_SCROLLED_WINDOW(handle)) 10624 if(GTK_IS_SCROLLED_WINDOW(handle))
10625 { 10625 {
10653 */ 10653 */
10654 int dw_listbox_count(HWND handle) 10654 int dw_listbox_count(HWND handle)
10655 { 10655 {
10656 GtkWidget *handle2 = handle; 10656 GtkWidget *handle2 = handle;
10657 GtkListStore *store = NULL; 10657 GtkListStore *store = NULL;
10658 int _locked_by_me = FALSE; 10658 int _dw_locked_by_me = FALSE;
10659 int retval = 0; 10659 int retval = 0;
10660 10660
10661 DW_MUTEX_LOCK; 10661 DW_MUTEX_LOCK;
10662 /* Get the inner handle for scrolled controls */ 10662 /* Get the inner handle for scrolled controls */
10663 if(GTK_IS_SCROLLED_WINDOW(handle)) 10663 if(GTK_IS_SCROLLED_WINDOW(handle))
10691 * top: Index to the top item. 10691 * top: Index to the top item.
10692 */ 10692 */
10693 void dw_listbox_set_top(HWND handle, int top) 10693 void dw_listbox_set_top(HWND handle, int top)
10694 { 10694 {
10695 GtkWidget *handle2 = handle; 10695 GtkWidget *handle2 = handle;
10696 int _locked_by_me = FALSE; 10696 int _dw_locked_by_me = FALSE;
10697 10697
10698 DW_MUTEX_LOCK; 10698 DW_MUTEX_LOCK;
10699 if(GTK_IS_SCROLLED_WINDOW(handle)) 10699 if(GTK_IS_SCROLLED_WINDOW(handle))
10700 { 10700 {
10701 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 10701 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
10747 */ 10747 */
10748 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length) 10748 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length)
10749 { 10749 {
10750 GtkWidget *handle2 = handle; 10750 GtkWidget *handle2 = handle;
10751 GtkListStore *store = NULL; 10751 GtkListStore *store = NULL;
10752 int _locked_by_me = FALSE; 10752 int _dw_locked_by_me = FALSE;
10753 10753
10754 DW_MUTEX_LOCK; 10754 DW_MUTEX_LOCK;
10755 /* Get the inner handle for scrolled controls */ 10755 /* Get the inner handle for scrolled controls */
10756 if(GTK_IS_SCROLLED_WINDOW(handle)) 10756 if(GTK_IS_SCROLLED_WINDOW(handle))
10757 { 10757 {
10800 */ 10800 */
10801 void dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer) 10801 void dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer)
10802 { 10802 {
10803 GtkWidget *handle2 = handle; 10803 GtkWidget *handle2 = handle;
10804 GtkListStore *store = NULL; 10804 GtkListStore *store = NULL;
10805 int _locked_by_me = FALSE; 10805 int _dw_locked_by_me = FALSE;
10806 10806
10807 DW_MUTEX_LOCK; 10807 DW_MUTEX_LOCK;
10808 /* Get the inner handle for scrolled controls */ 10808 /* Get the inner handle for scrolled controls */
10809 if(GTK_IS_SCROLLED_WINDOW(handle)) 10809 if(GTK_IS_SCROLLED_WINDOW(handle))
10810 { 10810 {
10844 int dw_listbox_selected_multi(HWND handle, int where) 10844 int dw_listbox_selected_multi(HWND handle, int where)
10845 { 10845 {
10846 GtkWidget *handle2; 10846 GtkWidget *handle2;
10847 GtkListStore *store = NULL; 10847 GtkListStore *store = NULL;
10848 int retval = DW_LIT_NONE; 10848 int retval = DW_LIT_NONE;
10849 int _locked_by_me = FALSE; 10849 int _dw_locked_by_me = FALSE;
10850 10850
10851 DW_MUTEX_LOCK; 10851 DW_MUTEX_LOCK;
10852 handle2 = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); 10852 handle2 = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user");
10853 10853
10854 /* Make sure it is the correct tree type */ 10854 /* Make sure it is the correct tree type */
10894 */ 10894 */
10895 int dw_listbox_selected(HWND handle) 10895 int dw_listbox_selected(HWND handle)
10896 { 10896 {
10897 GtkWidget *handle2 = handle; 10897 GtkWidget *handle2 = handle;
10898 GtkListStore *store = NULL; 10898 GtkListStore *store = NULL;
10899 int _locked_by_me = FALSE; 10899 int _dw_locked_by_me = FALSE;
10900 unsigned int retval = 0; 10900 unsigned int retval = 0;
10901 10901
10902 DW_MUTEX_LOCK; 10902 DW_MUTEX_LOCK;
10903 /* Get the inner handle for scrolled controls */ 10903 /* Get the inner handle for scrolled controls */
10904 if(GTK_IS_SCROLLED_WINDOW(handle)) 10904 if(GTK_IS_SCROLLED_WINDOW(handle))
10970 */ 10970 */
10971 void dw_listbox_select(HWND handle, int index, int state) 10971 void dw_listbox_select(HWND handle, int index, int state)
10972 { 10972 {
10973 GtkWidget *handle2 = handle; 10973 GtkWidget *handle2 = handle;
10974 GtkListStore *store = NULL; 10974 GtkListStore *store = NULL;
10975 int _locked_by_me = FALSE; 10975 int _dw_locked_by_me = FALSE;
10976 10976
10977 DW_MUTEX_LOCK; 10977 DW_MUTEX_LOCK;
10978 /* Get the inner handle for scrolled controls */ 10978 /* Get the inner handle for scrolled controls */
10979 if(GTK_IS_SCROLLED_WINDOW(handle)) 10979 if(GTK_IS_SCROLLED_WINDOW(handle))
10980 { 10980 {
11029 */ 11029 */
11030 void dw_listbox_delete(HWND handle, int index) 11030 void dw_listbox_delete(HWND handle, int index)
11031 { 11031 {
11032 GtkWidget *handle2 = handle; 11032 GtkWidget *handle2 = handle;
11033 GtkListStore *store = NULL; 11033 GtkListStore *store = NULL;
11034 int _locked_by_me = FALSE; 11034 int _dw_locked_by_me = FALSE;
11035 11035
11036 DW_MUTEX_LOCK; 11036 DW_MUTEX_LOCK;
11037 /* Get the inner handle for scrolled controls */ 11037 /* Get the inner handle for scrolled controls */
11038 if(GTK_IS_SCROLLED_WINDOW(handle)) 11038 if(GTK_IS_SCROLLED_WINDOW(handle))
11039 { 11039 {
11108 * A handle to a splitbar window or NULL on failure. 11108 * A handle to a splitbar window or NULL on failure.
11109 */ 11109 */
11110 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id) 11110 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id)
11111 { 11111 {
11112 GtkWidget *tmp = NULL; 11112 GtkWidget *tmp = NULL;
11113 int _locked_by_me = FALSE; 11113 int _dw_locked_by_me = FALSE;
11114 float *percent = malloc(sizeof(float)); 11114 float *percent = malloc(sizeof(float));
11115 11115
11116 DW_MUTEX_LOCK; 11116 DW_MUTEX_LOCK;
11117 tmp = gtk_paned_new(type == DW_HORZ ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL); 11117 tmp = gtk_paned_new(type == DW_HORZ ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
11118 gtk_paned_pack1(GTK_PANED(tmp), topleft, TRUE, FALSE); 11118 gtk_paned_pack1(GTK_PANED(tmp), topleft, TRUE, FALSE);
11174 * A handle to a calendar window or NULL on failure. 11174 * A handle to a calendar window or NULL on failure.
11175 */ 11175 */
11176 HWND dw_calendar_new(unsigned long id) 11176 HWND dw_calendar_new(unsigned long id)
11177 { 11177 {
11178 GtkWidget *tmp; 11178 GtkWidget *tmp;
11179 int _locked_by_me = FALSE; 11179 int _dw_locked_by_me = FALSE;
11180 GtkCalendarDisplayOptions flags; 11180 GtkCalendarDisplayOptions flags;
11181 time_t now; 11181 time_t now;
11182 struct tm *tmdata; 11182 struct tm *tmdata;
11183 11183
11184 DW_MUTEX_LOCK; 11184 DW_MUTEX_LOCK;
11203 * handle: The handle to the calendar returned by dw_calendar_new(). 11203 * handle: The handle to the calendar returned by dw_calendar_new().
11204 * year... 11204 * year...
11205 */ 11205 */
11206 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day) 11206 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day)
11207 { 11207 {
11208 int _locked_by_me = FALSE; 11208 int _dw_locked_by_me = FALSE;
11209 11209
11210 DW_MUTEX_LOCK; 11210 DW_MUTEX_LOCK;
11211 if(GTK_IS_CALENDAR(handle)) 11211 if(GTK_IS_CALENDAR(handle))
11212 { 11212 {
11213 gtk_calendar_select_month(GTK_CALENDAR(handle),month-1,year); 11213 gtk_calendar_select_month(GTK_CALENDAR(handle),month-1,year);
11222 * Parameters: 11222 * Parameters:
11223 * handle: The handle to the splitbar returned by dw_splitbar_new(). 11223 * handle: The handle to the splitbar returned by dw_splitbar_new().
11224 */ 11224 */
11225 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) 11225 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day)
11226 { 11226 {
11227 int _locked_by_me = FALSE; 11227 int _dw_locked_by_me = FALSE;
11228 11228
11229 DW_MUTEX_LOCK; 11229 DW_MUTEX_LOCK;
11230 if(GTK_IS_CALENDAR(handle)) 11230 if(GTK_IS_CALENDAR(handle))
11231 { 11231 {
11232 gtk_calendar_get_date(GTK_CALENDAR(handle),year,month,day); 11232 gtk_calendar_get_date(GTK_CALENDAR(handle),year,month,day);
11243 * Remarks: 11243 * Remarks:
11244 * This is for use after showing the window/dialog. 11244 * This is for use after showing the window/dialog.
11245 */ 11245 */
11246 void API dw_window_set_focus(HWND handle) 11246 void API dw_window_set_focus(HWND handle)
11247 { 11247 {
11248 int _locked_by_me = FALSE; 11248 int _dw_locked_by_me = FALSE;
11249 11249
11250 if(!handle) 11250 if(!handle)
11251 return; 11251 return;
11252 11252
11253 DW_MUTEX_LOCK; 11253 DW_MUTEX_LOCK;
11263 * Remarks: 11263 * Remarks:
11264 * This is for use before showing the window/dialog. 11264 * This is for use before showing the window/dialog.
11265 */ 11265 */
11266 void dw_window_default(HWND window, HWND defaultitem) 11266 void dw_window_default(HWND window, HWND defaultitem)
11267 { 11267 {
11268 int _locked_by_me = FALSE; 11268 int _dw_locked_by_me = FALSE;
11269 11269
11270 if(!window) 11270 if(!window)
11271 return; 11271 return;
11272 11272
11273 DW_MUTEX_LOCK; 11273 DW_MUTEX_LOCK;
11281 * window: Window (widget) to look for the ENTER press. 11281 * window: Window (widget) to look for the ENTER press.
11282 * next: Window (widget) to move to next (or click) 11282 * next: Window (widget) to move to next (or click)
11283 */ 11283 */
11284 void dw_window_click_default(HWND window, HWND next) 11284 void dw_window_click_default(HWND window, HWND next)
11285 { 11285 {
11286 int _locked_by_me = FALSE; 11286 int _dw_locked_by_me = FALSE;
11287 11287
11288 if(!window) 11288 if(!window)
11289 return; 11289 return;
11290 11290
11291 DW_MUTEX_LOCK; 11291 DW_MUTEX_LOCK;
11680 * action: One of the DW_HTML_* constants. 11680 * action: One of the DW_HTML_* constants.
11681 */ 11681 */
11682 void dw_html_action(HWND handle, int action) 11682 void dw_html_action(HWND handle, int action)
11683 { 11683 {
11684 #ifdef USE_WEBKIT 11684 #ifdef USE_WEBKIT
11685 int _locked_by_me = FALSE; 11685 int _dw_locked_by_me = FALSE;
11686 WebKitWebView *web_view; 11686 WebKitWebView *web_view;
11687 11687
11688 DW_MUTEX_LOCK; 11688 DW_MUTEX_LOCK;
11689 11689
11690 if((web_view = _dw_html_web_view(handle))) 11690 if((web_view = _dw_html_web_view(handle)))
11738 * 0 on success. 11738 * 0 on success.
11739 */ 11739 */
11740 int dw_html_raw(HWND handle, const char *string) 11740 int dw_html_raw(HWND handle, const char *string)
11741 { 11741 {
11742 #ifdef USE_WEBKIT 11742 #ifdef USE_WEBKIT
11743 int _locked_by_me = FALSE; 11743 int _dw_locked_by_me = FALSE;
11744 WebKitWebView *web_view; 11744 WebKitWebView *web_view;
11745 11745
11746 DW_MUTEX_LOCK; 11746 DW_MUTEX_LOCK;
11747 if((web_view = _dw_html_web_view(handle))) 11747 if((web_view = _dw_html_web_view(handle)))
11748 { 11748 {
11770 * 0 on success. 11770 * 0 on success.
11771 */ 11771 */
11772 int dw_html_url(HWND handle, const char *url) 11772 int dw_html_url(HWND handle, const char *url)
11773 { 11773 {
11774 #ifdef USE_WEBKIT 11774 #ifdef USE_WEBKIT
11775 int _locked_by_me = FALSE; 11775 int _dw_locked_by_me = FALSE;
11776 WebKitWebView *web_view; 11776 WebKitWebView *web_view;
11777 11777
11778 DW_MUTEX_LOCK; 11778 DW_MUTEX_LOCK;
11779 if((web_view = _dw_html_web_view(handle))) 11779 if((web_view = _dw_html_web_view(handle)))
11780 { 11780 {
11803 * DW_ERROR_NONE (0) on success. 11803 * DW_ERROR_NONE (0) on success.
11804 */ 11804 */
11805 int dw_html_javascript_run(HWND handle, const char *script, void *scriptdata) 11805 int dw_html_javascript_run(HWND handle, const char *script, void *scriptdata)
11806 { 11806 {
11807 #ifdef USE_WEBKIT 11807 #ifdef USE_WEBKIT
11808 int _locked_by_me = FALSE; 11808 int _dw_locked_by_me = FALSE;
11809 WebKitWebView *web_view; 11809 WebKitWebView *web_view;
11810 11810
11811 DW_MUTEX_LOCK; 11811 DW_MUTEX_LOCK;
11812 if((web_view = _dw_html_web_view(handle))) 11812 if((web_view = _dw_html_web_view(handle)))
11813 #ifdef USE_WEBKIT2 11813 #ifdef USE_WEBKIT2
11854 */ 11854 */
11855 HWND dw_html_new(unsigned long id) 11855 HWND dw_html_new(unsigned long id)
11856 { 11856 {
11857 GtkWidget *widget = NULL; 11857 GtkWidget *widget = NULL;
11858 #ifdef USE_WEBKIT 11858 #ifdef USE_WEBKIT
11859 int _locked_by_me = FALSE; 11859 int _dw_locked_by_me = FALSE;
11860 WebKitWebView *web_view; 11860 WebKitWebView *web_view;
11861 #ifdef USE_WEBKIT2 11861 #ifdef USE_WEBKIT2
11862 WebKitSettings *settings; 11862 WebKitSettings *settings;
11863 #else 11863 #else
11864 WebKitWebSettings *settings; 11864 WebKitWebSettings *settings;
11903 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not 11903 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not
11904 * be converted to text. 11904 * be converted to text.
11905 */ 11905 */
11906 char *dw_clipboard_get_text() 11906 char *dw_clipboard_get_text()
11907 { 11907 {
11908 int _locked_by_me = FALSE; 11908 int _dw_locked_by_me = FALSE;
11909 GtkClipboard *clipboard_object; 11909 GtkClipboard *clipboard_object;
11910 char *ret = NULL; 11910 char *ret = NULL;
11911 11911
11912 DW_MUTEX_LOCK; 11912 DW_MUTEX_LOCK;
11913 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) 11913 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD )))
11929 * Parameters: 11929 * Parameters:
11930 * Text. 11930 * Text.
11931 */ 11931 */
11932 void dw_clipboard_set_text(const char *str, int len) 11932 void dw_clipboard_set_text(const char *str, int len)
11933 { 11933 {
11934 int _locked_by_me = FALSE; 11934 int _dw_locked_by_me = FALSE;
11935 GtkClipboard *clipboard_object; 11935 GtkClipboard *clipboard_object;
11936 11936
11937 DW_MUTEX_LOCK; 11937 DW_MUTEX_LOCK;
11938 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) 11938 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD )))
11939 { 11939 {
11976 * A handle to the print object or NULL on failure. 11976 * A handle to the print object or NULL on failure.
11977 */ 11977 */
11978 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) 11978 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata)
11979 { 11979 {
11980 GtkPrintOperation *op; 11980 GtkPrintOperation *op;
11981 int _locked_by_me = FALSE; 11981 int _dw_locked_by_me = FALSE;
11982 11982
11983 if(!drawfunc) 11983 if(!drawfunc)
11984 return NULL; 11984 return NULL;
11985 11985
11986 DW_MUTEX_LOCK; 11986 DW_MUTEX_LOCK;
12006 */ 12006 */
12007 int API dw_print_run(HPRINT print, unsigned long flags) 12007 int API dw_print_run(HPRINT print, unsigned long flags)
12008 { 12008 {
12009 GtkPrintOperationResult res; 12009 GtkPrintOperationResult res;
12010 GtkPrintOperation *op = (GtkPrintOperation *)print; 12010 GtkPrintOperation *op = (GtkPrintOperation *)print;
12011 int _locked_by_me = FALSE; 12011 int _dw_locked_by_me = FALSE;
12012 12012
12013 DW_MUTEX_LOCK; 12013 DW_MUTEX_LOCK;
12014 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL); 12014 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL);
12015 DW_MUTEX_UNLOCK; 12015 DW_MUTEX_UNLOCK;
12016 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE); 12016 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE);
12021 * Parameters: 12021 * Parameters:
12022 * print: Handle to the print object returned by dw_print_new(). 12022 * print: Handle to the print object returned by dw_print_new().
12023 */ 12023 */
12024 void API dw_print_cancel(HPRINT print) 12024 void API dw_print_cancel(HPRINT print)
12025 { 12025 {
12026 int _locked_by_me = FALSE; 12026 int _dw_locked_by_me = FALSE;
12027 GtkPrintOperation *op = (GtkPrintOperation *)print; 12027 GtkPrintOperation *op = (GtkPrintOperation *)print;
12028 12028
12029 DW_MUTEX_LOCK; 12029 DW_MUTEX_LOCK;
12030 gtk_print_operation_cancel(op); 12030 gtk_print_operation_cancel(op);
12031 DW_MUTEX_UNLOCK; 12031 DW_MUTEX_UNLOCK;
12118 * data: User data to be passed to the handler function. 12118 * data: User data to be passed to the handler function.
12119 */ 12119 */
12120 void dw_window_set_data(HWND window, const char *dataname, void *data) 12120 void dw_window_set_data(HWND window, const char *dataname, void *data)
12121 { 12121 {
12122 HWND thiswindow = window; 12122 HWND thiswindow = window;
12123 int _locked_by_me = FALSE; 12123 int _dw_locked_by_me = FALSE;
12124 12124
12125 if(!window) 12125 if(!window)
12126 return; 12126 return;
12127 12127
12128 DW_MUTEX_LOCK; 12128 DW_MUTEX_LOCK;
12143 * data: User data to be passed to the handler function. 12143 * data: User data to be passed to the handler function.
12144 */ 12144 */
12145 void *dw_window_get_data(HWND window, const char *dataname) 12145 void *dw_window_get_data(HWND window, const char *dataname)
12146 { 12146 {
12147 HWND thiswindow = window; 12147 HWND thiswindow = window;
12148 int _locked_by_me = FALSE; 12148 int _dw_locked_by_me = FALSE;
12149 void *ret = NULL; 12149 void *ret = NULL;
12150 12150
12151 if(!window) 12151 if(!window)
12152 return NULL; 12152 return NULL;
12153 12153
12214 * Returns: 12214 * Returns:
12215 * Timer ID for use with dw_timer_disconnect(), 0 on error. 12215 * Timer ID for use with dw_timer_disconnect(), 0 on error.
12216 */ 12216 */
12217 HTIMER API dw_timer_connect(int interval, void *sigfunc, void *data) 12217 HTIMER API dw_timer_connect(int interval, void *sigfunc, void *data)
12218 { 12218 {
12219 int *tag, _locked_by_me = FALSE; 12219 int *tag, _dw_locked_by_me = FALSE;
12220 char tmpbuf[31] = {0}; 12220 char tmpbuf[31] = {0};
12221 12221
12222 tag = calloc(1, sizeof(int)); 12222 tag = calloc(1, sizeof(int));
12223 12223
12224 DW_MUTEX_LOCK; 12224 DW_MUTEX_LOCK;
12236 * Parameters: 12236 * Parameters:
12237 * id: Timer ID returned by dw_timer_connect(). 12237 * id: Timer ID returned by dw_timer_connect().
12238 */ 12238 */
12239 void API dw_timer_disconnect(HTIMER id) 12239 void API dw_timer_disconnect(HTIMER id)
12240 { 12240 {
12241 int _locked_by_me = FALSE; 12241 int _dw_locked_by_me = FALSE;
12242 char tmpbuf[31] = {0}; 12242 char tmpbuf[31] = {0};
12243 12243
12244 snprintf(tmpbuf, 30, "_dw_timer%d", id); 12244 snprintf(tmpbuf, 30, "_dw_timer%d", id);
12245 DW_MUTEX_LOCK; 12245 DW_MUTEX_LOCK;
12246 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL); 12246 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL);
12315 void dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data) 12315 void dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data)
12316 { 12316 {
12317 void *thisfunc = _dw_findsigfunc(signame); 12317 void *thisfunc = _dw_findsigfunc(signame);
12318 char *thisname = (char *)signame; 12318 char *thisname = (char *)signame;
12319 HWND thiswindow = window; 12319 HWND thiswindow = window;
12320 int sigid, _locked_by_me = FALSE; 12320 int sigid, _dw_locked_by_me = FALSE;
12321 void **params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *)); 12321 void **params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *));
12322 gint cid; 12322 gint cid;
12323 12323
12324 /* Save the disconnect function pointer */ 12324 /* Save the disconnect function pointer */
12325 params[1] = discfunc; 12325 params[1] = discfunc;
12509 */ 12509 */
12510 void dw_signal_disconnect_by_name(HWND window, const char *signame) 12510 void dw_signal_disconnect_by_name(HWND window, const char *signame)
12511 { 12511 {
12512 int z, count; 12512 int z, count;
12513 void *thisfunc; 12513 void *thisfunc;
12514 int _locked_by_me = FALSE; 12514 int _dw_locked_by_me = FALSE;
12515 void **params = alloca(sizeof(void *) * 3); 12515 void **params = alloca(sizeof(void *) * 3);
12516 12516
12517 DW_MUTEX_LOCK; 12517 DW_MUTEX_LOCK;
12518 params[2] = _dw_find_signal_window(window, signame); 12518 params[2] = _dw_find_signal_window(window, signame);
12519 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter")); 12519 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter"));
12539 */ 12539 */
12540 void dw_signal_disconnect_by_window(HWND window) 12540 void dw_signal_disconnect_by_window(HWND window)
12541 { 12541 {
12542 HWND thiswindow; 12542 HWND thiswindow;
12543 int z, count; 12543 int z, count;
12544 int _locked_by_me = FALSE; 12544 int _dw_locked_by_me = FALSE;
12545 12545
12546 DW_MUTEX_LOCK; 12546 DW_MUTEX_LOCK;
12547 thiswindow = _dw_find_signal_window(window, NULL); 12547 thiswindow = _dw_find_signal_window(window, NULL);
12548 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter")); 12548 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter"));
12549 12549
12560 * data: Pointer to the data to be compared against. 12560 * data: Pointer to the data to be compared against.
12561 */ 12561 */
12562 void dw_signal_disconnect_by_data(HWND window, void *data) 12562 void dw_signal_disconnect_by_data(HWND window, void *data)
12563 { 12563 {
12564 int z, count; 12564 int z, count;
12565 int _locked_by_me = FALSE; 12565 int _dw_locked_by_me = FALSE;
12566 void **params = alloca(sizeof(void *) * 3); 12566 void **params = alloca(sizeof(void *) * 3);
12567 12567
12568 DW_MUTEX_LOCK; 12568 DW_MUTEX_LOCK;
12569 params[2] = _dw_find_signal_window(window, NULL); 12569 params[2] = _dw_find_signal_window(window, NULL);
12570 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter")); 12570 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter"));
12665 case DW_FEATURE_TREE: 12665 case DW_FEATURE_TREE:
12666 return DW_FEATURE_ENABLED; 12666 return DW_FEATURE_ENABLED;
12667 #ifdef GDK_WINDOWING_X11 12667 #ifdef GDK_WINDOWING_X11
12668 case DW_FEATURE_WINDOW_PLACEMENT: 12668 case DW_FEATURE_WINDOW_PLACEMENT:
12669 { 12669 {
12670 int _locked_by_me = FALSE, retval = DW_FEATURE_UNSUPPORTED; 12670 int _dw_locked_by_me = FALSE, retval = DW_FEATURE_UNSUPPORTED;
12671 GdkDisplay *display; 12671 GdkDisplay *display;
12672 12672
12673 DW_MUTEX_LOCK; 12673 DW_MUTEX_LOCK;
12674 display = gdk_display_get_default(); 12674 display = gdk_display_get_default();
12675 12675
12723 case DW_FEATURE_TREE: 12723 case DW_FEATURE_TREE:
12724 return DW_ERROR_GENERAL; 12724 return DW_ERROR_GENERAL;
12725 #ifdef GDK_WINDOWING_X11 12725 #ifdef GDK_WINDOWING_X11
12726 case DW_FEATURE_WINDOW_PLACEMENT: 12726 case DW_FEATURE_WINDOW_PLACEMENT:
12727 { 12727 {
12728 int _locked_by_me = FALSE, retval = DW_FEATURE_UNSUPPORTED; 12728 int _dw_locked_by_me = FALSE, retval = DW_FEATURE_UNSUPPORTED;
12729 GdkDisplay *display; 12729 GdkDisplay *display;
12730 12730
12731 DW_MUTEX_LOCK; 12731 DW_MUTEX_LOCK;
12732 display = gdk_display_get_default(); 12732 display = gdk_display_get_default();
12733 12733