Mercurial > dwindows
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 |