LiVES  2.8.1
widget-helper-gtk.h
Go to the documentation of this file.
1 // widget-helper-gtk.h
2 // LiVES
3 // (c) G. Finch 2012 - 2016 <salsaman@gmail.com>
4 // released under the GNU GPL 3 or later
5 // see file ../COPYING or www.gnu.org for licensing details
6 
7 // widget implementation for GTK+
8 
9 #ifndef HAS_LIVES_WIDGET_HELPER_GTK_H
10 #define HAS_LIVES_WIDGET_HELPER_GTK_H
11 
12 #ifdef GUI_GTK
13 
14 
15 #define GTK_RADIO_MENU_BUG // a bug where gtk_radio_menu_item_set_active() does not update visually
16 #define GTK_SUBMENU_SENS_BUG // a bug where setting a menuitem insensitive fails if it has a submenu
17 #define GTK_TEXT_VIEW_CSS_BUG // a bug where named textviews cannot be set by CSS
18 #define GTK_TEXT_VIEW_DRAW_BUG // a bug where textview crashes if too much text in it
19 
20 
21 #ifndef IS_MINGW
22 typedef gboolean boolean;
23 #endif
24 
25 #ifdef GDK_WINDOWING_WIN32
26 #include <gdk/gdkwin32.h>
27 
28 #ifndef GDK_IS_WIN32_DISPLAY
29 #define GDK_IS_WIN32_DISPLAY(display) (TRUE)
30 #endif
31 
32 #endif //GDK_WINDOWING_WIN32
33 
34 #ifdef GDK_WINDOWING_X11
35 
36 // needed for GDK_WINDOW_XID - for fileselector preview
37 // needed for gdk_x11_screen_get_window_manager_name()
38 
39 #include <gdk/gdkx.h>
40 
41 #ifndef GDK_IS_X11_DISPLAY
42 #define GDK_IS_X11_DISPLAY(display) (TRUE)
43 #endif
44 
45 #ifndef GDK_IS_WIN32_DISPLAY
46 #define GDK_IS_WIN32_DISPLAY(display) (FALSE)
47 #endif
48 
49 
50 #else
51 
52 #ifndef GDK_IS_X11_DISPLAY
53 #define GDK_IS_X11_DISPLAY(display) (FALSE)
54 #endif
55 
56 #endif // GDK_WINDOWING_X11
57 
58 #endif // GUI_GTK
59 
60 
61 #ifdef PAINTER_CAIRO
62 
63 #ifndef GUI_GTK
64 #include <cairo/cairo.h>
65 #endif
66 
67 
68 typedef cairo_t lives_painter_t;
69 typedef cairo_surface_t lives_painter_surface_t;
70 
71 boolean lives_painter_surface_destroy(lives_painter_surface_t *);
72 
73 
74 typedef cairo_format_t lives_painter_format_t;
75 
76 #define LIVES_PAINTER_FORMAT_A1 CAIRO_FORMAT_A1
77 #define LIVES_PAINTER_FORMAT_A8 CAIRO_FORMAT_A8
78 #define LIVES_PAINTER_FORMAT_ARGB32 CAIRO_FORMAT_ARGB32
79 
80 
81 typedef cairo_content_t lives_painter_content_t; // eg. color, alpha, color+alpha
82 
83 #define LIVES_PAINTER_CONTENT_COLOR CAIRO_CONTENT_COLOR
84 
85 
86 typedef cairo_operator_t lives_painter_operator_t;
87 
88 #define LIVES_PAINTER_OPERATOR_UNKNOWN CAIRO_OPERATOR_OVER
89 #define LIVES_PAINTER_OPERATOR_DEFAULT CAIRO_OPERATOR_OVER
90 
91 #define LIVES_PAINTER_OPERATOR_DEST_OUT CAIRO_OPERATOR_DEST_OUT
92 #if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
93 #define LIVES_PAINTER_OPERATOR_DIFFERENCE CAIRO_OPERATOR_OVER
94 #define LIVES_PAINTER_OPERATOR_OVERLAY CAIRO_OPERATOR_OVER
95 #else
96 #define LIVES_PAINTER_OPERATOR_DIFFERENCE CAIRO_OPERATOR_DIFFERENCE
97 #define LIVES_PAINTER_OPERATOR_OVERLAY CAIRO_OPERATOR_OVERLAY
98 #endif
99 
100 typedef cairo_fill_rule_t lives_painter_fill_rule_t;
101 
102 #define LIVES_PAINTER_FILL_RULE_WINDING CAIRO_FILL_RULE_WINDING
103 #define LIVES_PAINTER_FILL_RULE_EVEN_ODD CAIRO_FILL_RULE_EVEN_ODD
104 
105 
106 #endif
107 
108 
109 #ifdef GUI_GTK
110 
111 #include "support.h"
112 
113 #if GTK_CHECK_VERSION(2,28,0)
114 #define USE_MONOTONIC_TIME
115 #define lives_get_monotonic_time() g_get_monotonic_time()
116 #endif
117 
118 //#if GTK_CHECK_VERSION(3,8,0)
119 //#define USE_GDK_FRAME_CLOCK
120 //#endif
121 
123 #ifndef G_ENCODE_VERSION
124 #define G_ENCODE_VERSION(major,minor) ((major) << 16 | (minor) << 8)
125 #endif
126 
127 #define lives_free(a) g_free(a)
128 #define lives_malloc(a) g_malloc(a)
129 #define lives_malloc0(a) g_malloc0(a)
130 #define lives_realloc(a,b) g_realloc(a,b)
131 #define lives_try_malloc0_n(a,b) g_try_malloc0_n(a,b)
132 #define lives_try_malloc(a) g_try_malloc(a)
133 #define lives_try_malloc0(a) g_try_malloc0(a)
134 #define lives_try_realloc(a,b) g_try_realloc(a,b)
135 
136 
137 typedef GError LiVESError;
138 
139 typedef GList LiVESList;
140 typedef GSList LiVESSList;
141 
142 typedef gpointer livespointer;
143 typedef gconstpointer livesconstpointer;
144 
145 typedef GClosure LiVESWidgetClosure;
146 
147 typedef GObject LiVESObject;
148 
149 typedef GLogLevelFlags LiVESLogLevelFlags;
150 
151 #define LIVES_LOG_LEVEL_WARNING G_LOG_LEVEL_WARNING
152 #define LIVES_LOG_LEVEL_MASK G_LOG_LEVEL_MASK
153 #define LIVES_LOG_LEVEL_CRITICAL G_LOG_LEVEL_CRITICAL
154 #define LIVES_LOG_FATAL_MASK G_LOG_FATAL_MASK
155 
157 
158 #if GTK_CHECK_VERSION(3,10,0)
159 #define LIVES_TABLE_IS_GRID 1
160 #endif
161 
162 #define return_true gtk_true
163 
164 typedef void (*LiVESGuiCallback)(void);
165 typedef void (*LiVESWidgetCallback)(GtkWidget *widget, gpointer data);
166 typedef gboolean(*LiVESWidgetSourceFunc)(gpointer data);
167 typedef gint(*LiVESCompareFunc)(gconstpointer a, gconstpointer b);
168 
169 #define LIVES_LITTLE_ENDIAN G_LITTLE_ENDIAN
170 #define LIVES_BIG_ENDIAN G_BIG_ENDIAN
171 
172 #define LIVES_MAXINT G_MAXINT
173 #define LIVES_MAXUINT32 G_MAXUINT32
174 #define LIVES_MAXSIZE G_MAXSIZE
175 #define LIVES_MAXFLOAT G_MAXFLOAT
176 
177 #define LIVES_IS_RTL (gtk_widget_get_default_direction()==GTK_TEXT_DIR_RTL)
178 
179 #define LIVES_GUI_CALLBACK(f) ((LiVESGuiCallback) (f))
180 
181 #define lives_printerr(...) g_printerr(__VA_ARGS__)
182 #define lives_strdup_printf(...) g_strdup_printf(__VA_ARGS__)
183 #define lives_strdup_vprintf(...) g_strdup_vprintf(__VA_ARGS__)
184 #define lives_strndup_printf(...) g_strndup_printf(__VA_ARGS__)
185 #define lives_strndup(a,b) g_strndup(a,b)
186 #define lives_snprintf(a,b,...) g_snprintf(a,b,__VA_ARGS__)
187 #define lives_strsplit(a,b,c) g_strsplit(a,b,c)
188 #define lives_strfreev(a) g_strfreev(a)
189 #define lives_ascii_strcasecmp(a,b) g_ascii_strcasecmp(a,b)
190 #define lives_ascii_strncasecmp(a,b,c) g_ascii_strncasecmp(a,b,c)
191 #define lives_strconcat(a,...) g_strconcat(a,__VA_ARGS__)
192 #define lives_strstrip(a) g_strstrip(a)
193 #define lives_strrstr(a,b) g_strrstr(a,b)
194 #define lives_strstr_len(a,b,c) g_strstr_len(a,b,c)
195 #define lives_strdelimit(a,b,c) g_strdelimit(a,b,c)
196 
197 #define LIVES_NORMALIZE_DEFAULT G_NORMALIZE_DEFAULT
198 
199 #define lives_utf8_normalize(a,b,c) g_utf8_normalize(a,b,c)
200 
201 
202 #define lives_list_nth_data(list,i) g_list_nth_data(list,i)
203 #define lives_list_nth(list,i) g_list_nth(list,i)
204 #define lives_list_length(list) g_list_length(list)
205 #define lives_list_free(list) g_list_free(list)
206 #define lives_slist_free(list) g_slist_free(list)
207 #define lives_list_append(list,data) g_list_append(list,data)
208 #define lives_list_prepend(list,data) g_list_prepend(list,data)
209 #define lives_list_find(list,data) g_list_find(list,data)
210 #define lives_list_previous(list) g_list_previous(list)
211 #define lives_list_last(list) g_list_last(list)
212 #define lives_list_delete_link(list,link) g_list_delete_link(list,link)
213 #define lives_list_copy(list) g_list_copy(list)
214 #define lives_list_next(list) g_list_next(list)
215 #define lives_list_first(list) g_list_first(list)
216 #define lives_list_remove(list,data) g_list_remove(list,data)
217 #define lives_list_remove_link(list,data) g_list_remove_link(list,data)
218 #define lives_list_concat(list,data) g_list_concat(list,data)
219 #define lives_list_insert(list,data,pos) g_list_insert(list,data,pos)
220 #define lives_list_index(list,data) g_list_index(list,data)
221 #define lives_list_find_custom(list,data,func) g_list_find_custom(list,data,func)
222 
223 #define lives_slist_free(list) g_slist_free(list)
224 #define lives_slist_length(list) g_slist_length(list)
225 #define lives_slist_nth_data(list,i) g_slist_nth_data(list,i)
226 #define lives_slist_append(list,data) g_slist_append(list,data)
227 
228 #define lives_build_filename(...) g_build_filename(__VA_ARGS__)
229 #define lives_filename_to_utf8(a,b,c,d,e) g_filename_to_utf8(a,b,c,d,e)
230 #define lives_filename_from_utf8(a,b,c,d,e) g_filename_from_utf8(a,b,c,d,e)
231 
232 #define lives_utf8_strdown(a,b) g_utf8_strdown(a,b)
233 
234 #define lives_find_program_in_path(a) g_find_program_in_path(a)
235 
236 #define lives_idle_add(a,b) g_idle_add(a,b)
237 #define lives_idle_add_full(a,b,c,d) g_idle_add_full(a,b,c,d)
238 
239 #define lives_set_application_name(a) g_set_application_name(a)
240 #define lives_get_application_name() g_get_application_name()
241 
242 #define lives_usleep(a) g_usleep(a)
243 
244 #define lives_mkdir_with_parents(a,b) g_mkdir_with_parents(a,b)
245 
246 #define lives_strtod(a,b) g_strtod(a,b)
247 
248 #define lives_path_get_basename(a) g_path_get_basename(a)
249 
250 #define LIVES_UNLIKELY(a) G_UNLIKELY(a)
251 #define LIVES_LIKELY(a) G_LIKELY(a)
252 
253 #define lives_file_test(a,b) g_file_test(a,b)
254 
255 #define lives_get_current_dir() g_get_current_dir()
256 
257 #define lives_error_free(a) g_error_free(a)
258 
259 #define lives_strerror(a) g_strerror(a)
260 
261 #define lives_cclosure_new(a,b,c) g_cclosure_new(a,b,c)
262 
263 #define lives_path_get_dirname(a) g_path_get_dirname(a)
264 
265 #define U82L(String) ( g_locale_from_utf8 (String,-1,NULL,NULL,NULL) )
266 #define L2U8(String) ( g_locale_to_utf8 (String,-1,NULL,NULL,NULL) )
267 
268 #define U82F(String) ( g_filename_from_utf8 (String,-1,NULL,NULL,NULL) )
269 #define F2U8(String) ( g_filename_to_utf8 (String,-1,NULL,NULL,NULL) )
270 
271 
272 #define LIVES_FILE_TEST_EXISTS G_FILE_TEST_EXISTS
273 #define LIVES_FILE_TEST_IS_DIR G_FILE_TEST_IS_DIR
274 #define LIVES_FILE_TEST_IS_REGULAR G_FILE_TEST_IS_REGULAR
275 
276 typedef GtkJustification LiVESJustification;
277 
278 #define LIVES_JUSTIFY_LEFT GTK_JUSTIFY_LEFT
279 #define LIVES_JUSTIFY_RIGHT GTK_JUSTIFY_RIGHT
280 #define LIVES_JUSTIFY_CENTER GTK_JUSTIFY_CENTER
281 #define LIVES_JUSTIFY_FILL GTK_JUSTIFY_RIGHT
282 
283 typedef GtkOrientation LiVESOrientation;
284 #define LIVES_ORIENTATION_HORIZONTAL GTK_ORIENTATION_HORIZONTAL
285 #define LIVES_ORIENTATION_VERTICAL GTK_ORIENTATION_VERTICAL
286 
287 typedef GdkEvent LiVESXEvent;
288 typedef GdkXEvent LiVESXXEvent;
289 typedef GdkEventButton LiVESXEventButton;
290 typedef GdkEventMotion LiVESXEventMotion;
291 typedef GdkEventScroll LiVESXEventScroll;
292 typedef GdkEventExpose LiVESXEventExpose;
293 typedef GdkEventCrossing LiVESXEventCrossing;
294 typedef GdkEventConfigure LiVESXEventConfigure;
295 typedef GdkEventFocus LiVESXEventFocus;
296 typedef GdkEventKey LiVESXEventKey;
297 typedef GdkEvent LiVESXEventDelete;
298 typedef GdkDisplay LiVESXDisplay;
299 typedef GdkScreen LiVESXScreen;
300 typedef GdkDevice LiVESXDevice;
301 
302 
303 #define LIVES_KEY_RELEASE GDK_KEY_RELEASE
304 #define LIVES_KEY_PRESS GDK_KEY_PRESS
305 
306 
307 #define LIVES_SCROLL_UP GDK_SCROLL_UP
308 #define LIVES_SCROLL_DOWN GDK_SCROLL_DOWN
309 
310 #if GTK_CHECK_VERSION(3,0,0)
311 #undef LIVES_HAS_DEVICE_MANAGER
312 #define LIVES_HAS_DEVICE_MANAGER 1
313 typedef GdkDeviceManager LiVESXDeviceManager;
314 #endif
315 
316 #if GTK_CHECK_VERSION(3,0,0)
317 #define LIVES_WIDGET_EXPOSE_EVENT "draw"
318 #define LIVES_GUI_OBJECT(a) a
319 #else
320 #define LIVES_GUI_OBJECT(a) GTK_OBJECT(a)
321 #define LIVES_WIDGET_EXPOSE_EVENT "expose_event"
322 #define LIVES_GUI_OBJECT_CLASS(a) GTK_OBJECT_CLASS(a)
323 #endif
324 
325 #define lives_widget_object_set_data(a, b, c) g_object_set_data(a, b, c)
326 #define lives_widget_object_get_data(a, b) g_object_get_data(a, b)
327 
328 #define LIVES_WIDGET_OBJECT(a) G_OBJECT(a)
329 
330 
331 #define lives_object_freeze_notify(a) g_object_freeze_notify(a)
332 #define lives_object_thaw_notify(a) g_object_thaw_notify(a)
333 
334 
335 #if GTK_CHECK_VERSION(3,0,0)
336 #define NO_MEM_OVERRIDE TRUE
337 #else
338 #define NO_MEM_OVERRIDE g_mem_is_system_malloc()
339 #endif
340 
341 typedef GMemVTable LiVESMemVTable;
342 typedef GIOChannel LiVESIOChannel;
343 
344 typedef GtkTargetEntry LiVESTargetEntry;
345 
346 typedef GdkFilterReturn LiVESFilterReturn;
347 
348 #define LIVES_FILTER_REMOVE GDK_FILTER_REMOVE
349 #define LIVES_FILTER_CONTINUE GDK_FILTER_CONTINUE
350 
351 // events
352 #define LIVES_WIDGET_SCROLL_EVENT "scroll-event"
353 #define LIVES_WIDGET_CONFIGURE_EVENT "configure-event"
354 #define LIVES_WIDGET_ENTER_EVENT "enter-notify-event"
355 #define LIVES_WIDGET_BUTTON_PRESS_EVENT "button-press-event"
356 #define LIVES_WIDGET_BUTTON_RELEASE_EVENT "button-release-event"
357 #define LIVES_WIDGET_MOTION_NOTIFY_EVENT "motion-notify-event"
358 #define LIVES_WIDGET_LEAVE_NOTIFY_EVENT "leave-notify-event"
359 #define LIVES_WIDGET_FOCUS_OUT_EVENT "focus-out-event"
360 #define LIVES_WIDGET_DELETE_EVENT "delete-event"
361 #define LIVES_WIDGET_KEY_PRESS_EVENT "key-press-event"
362 #define LIVES_WIDGET_KEY_RELEASE_EVENT "key-release-event"
363 
364 // signals
365 #define LIVES_WIDGET_CLICKED_SIGNAL "clicked"
366 #define LIVES_WIDGET_TOGGLED_SIGNAL "toggled"
367 #define LIVES_WIDGET_CHANGED_SIGNAL "changed"
368 #define LIVES_WIDGET_ACTIVATE_SIGNAL "activate"
369 #define LIVES_WIDGET_VALUE_CHANGED_SIGNAL "value-changed"
370 #define LIVES_WIDGET_SELECTION_CHANGED_SIGNAL "selection-changed"
371 #define LIVES_WIDGET_CURRENT_FOLDER_CHANGED_SIGNAL "current-folder-changed"
372 #define LIVES_WIDGET_RESPONSE_SIGNAL "response"
373 #define LIVES_WIDGET_DRAG_DATA_RECEIVED_SIGNAL "drag-data-received"
374 #define LIVES_WIDGET_SIZE_PREPARED_SIGNAL "size-prepared"
375 #define LIVES_WIDGET_MODE_CHANGED_SIGNAL "mode-changed"
376 #define LIVES_WIDGET_ACCEPT_POSITION_SIGNAL "accept-position"
377 #define LIVES_WIDGET_SWITCH_PAGE_SIGNAL "switch-page"
378 #define LIVES_WIDGET_UNMAP_SIGNAL "unmap"
379 #define LIVES_WIDGET_EDITED_SIGNAL "edited"
380 #define LIVES_WIDGET_ROW_EXPANDED_SIGNAL "row-expanded"
381 #define LIVES_WIDGET_COLOR_SET_SIGNAL "color-set"
382 #define LIVES_WIDGET_SET_FOCUS_CHILD_SIGNAL "set-focus-child"
383 
384 #if GTK_CHECK_VERSION(3,0,0)
385 #define LIVES_WIDGET_STATE_CHANGED_SIGNAL "state-flags-changed"
386 #else
387 #define LIVES_WIDGET_STATE_CHANGED_SIGNAL "state-changed"
388 #endif
389 
390 
391 typedef GtkWidget LiVESWidget;
392 typedef GtkWindow LiVESWindow;
393 typedef GtkContainer LiVESContainer;
394 typedef GtkBin LiVESBin;
395 typedef GtkDialog LiVESDialog;
396 typedef GtkBox LiVESBox;
397 typedef GtkFrame LiVESFrame;
398 typedef GtkComboBox LiVESCombo;
399 typedef GtkComboBox LiVESComboBox;
400 typedef GtkButton LiVESButton;
401 typedef GtkButtonBox LiVESButtonBox;
402 typedef GtkToggleButton LiVESToggleButton;
403 
404 typedef GtkTextView LiVESTextView;
405 typedef GtkTextBuffer LiVESTextBuffer;
406 typedef GtkTextMark LiVESTextMark;
407 typedef GtkTextIter LiVESTextIter;
408 
409 typedef GtkEntry LiVESEntry;
410 typedef GtkEntryCompletion LiVESEntryCompletion;
411 typedef GtkRadioButton LiVESRadioButton;
412 typedef GtkSpinButton LiVESSpinButton;
413 typedef GtkColorButton LiVESColorButton;
414 typedef GtkToolButton LiVESToolButton;
415 typedef GtkLabel LiVESLabel;
416 typedef GtkImage LiVESImage;
417 typedef GtkFileChooser LiVESFileChooser;
418 typedef GtkAlignment LiVESAlignment;
419 typedef GtkMenu LiVESMenu;
420 typedef GtkMenuShell LiVESMenuShell;
421 typedef GtkMenuItem LiVESMenuItem;
422 typedef GtkMenuToolButton LiVESMenuToolButton;
423 typedef GtkCheckMenuItem LiVESCheckMenuItem;
424 typedef GtkImageMenuItem LiVESImageMenuItem;
425 typedef GtkRadioMenuItem LiVESRadioMenuItem;
426 
427 typedef GtkNotebook LiVESNotebook;
428 
429 typedef GtkExpander LiVESExpander;
430 
431 typedef GtkProgressBar LiVESProgressBar;
432 
433 typedef GtkAboutDialog LiVESAboutDialog;
434 
435 
436 // values here are long unsigned int
437 #define LIVES_COL_TYPE_OBJECT G_TYPE_OBJECT
438 #define LIVES_COL_TYPE_STRING G_TYPE_STRING
439 #define LIVES_COL_TYPE_INT G_TYPE_INT
440 #define LIVES_COL_TYPE_UINT G_TYPE_UINT
441 #define LIVES_COL_TYPE_BOOLEAN G_TYPE_BOOLEAN
442 #define LIVES_COL_TYPE_PIXBUF GDK_TYPE_PIXBUF
443 
444 
445 typedef GtkTreeView LiVESTreeView;
446 typedef GtkTreeViewColumn LiVESTreeViewColumn;
447 
448 typedef GtkTreeViewColumnSizing LiVESTreeViewColumnSizing;
449 #define LIVES_TREE_VIEW_COLUMN_GROW_ONLY GTK_TREE_VIEW_COLUMN_GROW_ONLY
450 #define LIVES_TREE_VIEW_COLUMN_AUTOSIZE GTK_TREE_VIEW_COLUMN_AUTOSIZE
451 #define LIVES_TREE_VIEW_COLUMN_FIXED GTK_TREE_VIEW_COLUMN_FIXED
452 
453 #define LIVES_TREE_VIEW_COLUMN_TEXT "text"
454 #define LIVES_TREE_VIEW_COLUMN_PIXBUF "pixbuf"
455 
456 
457 typedef GtkCellRenderer LiVESCellRenderer;
458 typedef GtkTreeModel LiVESTreeModel;
459 typedef GtkTreeIter LiVESTreeIter;
460 typedef GtkTreePath LiVESTreePath;
461 typedef GtkTreeStore LiVESTreeStore;
462 typedef GtkTreeSelection LiVESTreeSelection;
463 typedef GtkListStore LiVESListStore;
464 
465 
466 typedef GtkScrolledWindow LiVESScrolledWindow;
467 typedef GtkScrollbar LiVESScrollbar;
468 typedef GtkHScrollbar LiVESHScrollbar;
469 typedef GtkToolbar LiVESToolbar;
470 typedef GtkToolItem LiVESToolItem;
471 
472 #if GTK_CHECK_VERSION(2,14,0)
473 typedef GtkScaleButton LiVESScaleButton;
474 #else
475 typedef GtkRange LiVESScaleButton;
476 #endif
477 
478 #if GTK_CHECK_VERSION(3,2,0)
479 typedef GtkGrid LiVESGrid;
480 #undef LIVES_HAS_GRID_WIDGET
481 #define LIVES_HAS_GRID_WIDGET 1
482 #else
483 typedef LiVESWidget LiVESGrid;
484 #endif
485 
486 #ifdef LIVES_TABLE_IS_GRID
487 typedef GtkGrid LiVESTable;
488 #else
489 typedef GtkTable LiVESTable;
490 #endif
491 
492 typedef GtkEditable LiVESEditable;
493 
494 #if GTK_CHECK_VERSION(3,0,0)
495 #define LIVES_WIDGET_COLOR_HAS_ALPHA (1)
496 #define LIVES_WIDGET_COLOR_SCALE(x) (x)
497 #define LIVES_WIDGET_COLOR_STRETCH(x) (x*65535.)
498 #define LIVES_WIDGET_COLOR_SCALE_65535(x) ((double)x/65535.)
499 #define LIVES_WIDGET_COLOR_SCALE_255(x) ((double)x/255.)
500 typedef GdkRGBA LiVESWidgetColor;
501 
502 typedef GtkStateFlags LiVESWidgetState;
503 
504 #define LIVES_WIDGET_STATE_NORMAL GTK_STATE_FLAG_NORMAL
505 #define LIVES_WIDGET_STATE_ACTIVE GTK_STATE_FLAG_ACTIVE
506 #define LIVES_WIDGET_STATE_PRELIGHT GTK_STATE_FLAG_PRELIGHT
507 #define LIVES_WIDGET_STATE_SELECTED GTK_STATE_FLAG_SELECTED
508 #define LIVES_WIDGET_STATE_INSENSITIVE GTK_STATE_FLAG_INSENSITIVE
509 #define LIVES_WIDGET_STATE_INCONSISTENT GTK_STATE_FLAG_INCONSISTENT
510 #define LIVES_WIDGET_STATE_FOCUSED GTK_STATE_FLAG_FOCUSED
511 #define LIVES_WIDGET_STATE_BACKDROP GTK_STATE_FLAG_BACKDROP
512 
513 #else
514 #define LIVES_WIDGET_COLOR_HAS_ALPHA (0)
515 #define LIVES_WIDGET_COLOR_SCALE(x) ((double)x/65535.)
516 #define LIVES_WIDGET_COLOR_STRETCH(x) (x)
517 #define LIVES_WIDGET_COLOR_SCALE_65535(x) (x)
518 #define LIVES_WIDGET_COLOR_SCALE_255(x) ((int)((double)x*256.+.5))
519 typedef GdkColor LiVESWidgetColor;
520 typedef GtkStateType LiVESWidgetState;
521 
522 #define LIVES_WIDGET_STATE_NORMAL GTK_STATE_NORMAL
523 #define LIVES_WIDGET_STATE_ACTIVE GTK_STATE_ACTIVE
524 #define LIVES_WIDGET_STATE_PRELIGHT GTK_STATE_PRELIGHT
525 #define LIVES_WIDGET_STATE_SELECTED GTK_STATE_SELECTED
526 #define LIVES_WIDGET_STATE_INSENSITIVE GTK_STATE_INSENSITIVE
527 #define LIVES_WIDGET_STATE_INCONSISTENT (GTK_STATE_INSENSITIVE+1)
528 #define LIVES_WIDGET_STATE_FOCUSED (GTK_STATE_INSENSITIVE+2)
529 #define LIVES_WIDGET_STATE_BACKDROP (GTK_STATE_INSENSITIVE+3)
530 #endif
531 
532 typedef int LiVESResponseType;
533 #define LIVES_RESPONSE_NONE GTK_RESPONSE_NONE
534 #define LIVES_RESPONSE_OK GTK_RESPONSE_OK
535 #define LIVES_RESPONSE_CANCEL GTK_RESPONSE_CANCEL
536 #define LIVES_RESPONSE_ACCEPT GTK_RESPONSE_ACCEPT
537 #define LIVES_RESPONSE_YES GTK_RESPONSE_YES
538 #define LIVES_RESPONSE_NO GTK_RESPONSE_NO
539 
540 // positive values for custom responses
541 #define LIVES_RESPONSE_INVALID 0
542 #define LIVES_RESPONSE_RETRY 1
543 #define LIVES_RESPONSE_ABORT 2
544 #define LIVES_RESPONSE_RESET 3
545 #define LIVES_RESPONSE_SHOW_DETAILS 4
546 
547 
548 typedef GtkAttachOptions LiVESAttachOptions;
549 #define LIVES_EXPAND GTK_EXPAND
550 #define LIVES_SHRINK GTK_SHRINK
551 #define LIVES_FILL GTK_FILL
552 
553 
554 typedef GtkWindowType LiVESWindowType;
555 #define LIVES_WINDOW_TOPLEVEL GTK_WINDOW_TOPLEVEL
556 #define LIVES_WINDOW_POPUP GTK_WINDOW_POPUP
557 
558 
559 typedef GtkDialogFlags LiVESDialogFlags;
560 
561 typedef GtkMessageType LiVESMessageType;
562 #define LIVES_MESSAGE_INFO GTK_MESSAGE_INFO
563 #define LIVES_MESSAGE_WARNING GTK_MESSAGE_WARNING
564 #define LIVES_MESSAGE_QUESTION GTK_MESSAGE_QUESTION
565 #define LIVES_MESSAGE_ERROR GTK_MESSAGE_ERROR
566 #define LIVES_MESSAGE_OTHER GTK_MESSAGE_OTHER
567 
568 typedef GtkButtonsType LiVESButtonsType;
569 #define LIVES_BUTTONS_NONE GTK_BUTTONS_NONE
570 
571 
572 typedef GtkFileChooserAction LiVESFileChooserAction;
573 #define LIVES_FILE_CHOOSER_ACTION_OPEN GTK_FILE_CHOOSER_ACTION_OPEN
574 #define LIVES_FILE_CHOOSER_ACTION_SAVE GTK_FILE_CHOOSER_ACTION_SAVE
575 #define LIVES_FILE_CHOOSER_ACTION_SELECT_FOLDER GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
576 #define LIVES_FILE_CHOOSER_ACTION_CREATE_FOLDER GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
577 #define LIVES_FILE_CHOOSER_ACTION_SELECT_DEVICE ((GtkFileChooserAction)(GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER+1))
578 
579 
580 typedef GtkIconSize LiVESIconSize;
581 #define LIVES_ICON_SIZE_INVALID GTK_ICON_SIZE_INVALID
582 #define LIVES_ICON_SIZE_MENU GTK_ICON_SIZE_MENU
583 #define LIVES_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_SMALL_TOOLBAR
584 #define LIVES_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR
585 #define LIVES_ICON_SIZE_BUTTON GTK_ICON_SIZE_BUTTON
586 #define LIVES_ICON_SIZE_DND GTK_ICON_SIZE_DND
587 #define LIVES_ICON_SIZE_DIALOG GTK_ICON_SIZE_DIALOG
588 
589 
590 
591 // scrolledwindow policies
592 typedef GtkPolicyType LiVESPolicyType;
593 #define LIVES_POLICY_ALWAYS GTK_POLICY_ALWAYS
594 #define LIVES_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC
595 #define LIVES_POLICY_NEVER GTK_POLICY_NEVER
596 
597 
598 typedef GtkPositionType LiVESPositionType;
599 #define LIVES_POS_LEFT GTK_POS_LEFT
600 #define LIVES_POS_RIGHT GTK_POS_RIGHT
601 #define LIVES_POS_TOP GTK_POS_TOP
602 #define LIVES_POS_BOTTOM GTK_POS_BOTTOM
603 
604 
605 typedef GtkArrowType LiVESArrowType;
606 #define LIVES_ARROW_UP GTK_ARROW_UP
607 #define LIVES_ARROW_DOWN GTK_ARROW_DOWN
608 #define LIVES_ARROW_LEFT GTK_ARROW_LEFT
609 #define LIVES_ARROW_RIGHT GTK_ARROW_RIGHT
610 #define LIVES_ARROW_NONE GTK_ARROW_NONE
611 
612 
613 typedef GtkWrapMode LiVESWrapMode;
614 #define LIVES_WRAP_NONE GTK_WRAP_NONE
615 //#define LIVES_WRAP_CHAR GTK_WRAP_CHAR
616 #define LIVES_WRAP_WORD GTK_WRAP_WORD
617 //#define LIVES_WRAP_WORD_CHAR GTK_WRAP_WORD_CHAR
618 
619 typedef GtkReliefStyle LiVESReliefStyle;
620 #define LIVES_RELIEF_NORMAL GTK_RELIEF_NORMAL
621 #define LIVES_RELIEF_HALF GTK_RELIEF_HALF
622 #define LIVES_RELIEF_NONE GTK_RELIEF_NONE
623 
624 #define LIVES_ACCEL_VISIBLE GTK_ACCEL_VISIBLE
625 
626 typedef GtkToolbarStyle LiVESToolbarStyle;
627 #define LIVES_TOOLBAR_ICONS GTK_TOOLBAR_ICONS
628 #define LIVES_TOOLBAR_TEXT GTK_TOOLBAR_TEXT
629 
630 
631 typedef GtkSelectionMode LiVESSelectionMode;
632 #define LIVES_SELECTION_NONE GTK_SELECTION_NONE
633 #define LIVES_SELECTION_SINGLE GTK_SELECTION_SINGLE
634 //#define LIVES_SELECTION_BROWSE GTK_SELECTION_BROWSE
635 #define LIVES_SELECTION_MULTIPLE GTK_SELECTION_MULTIPLE
636 
637 typedef GtkButtonBoxStyle LiVESButtonBoxStyle;
638 #define LIVES_BUTTONBOX_DEFAULT_STYLE GTK_BUTTONBOX_DEFAULT_STYLE
639 #define LIVES_BUTTONBOX_SPREAD GTK_BUTTONBOX_SPREAD
640 #define LIVES_BUTTONBOX_EDGE GTK_BUTTONBOX_EDGE
641 #define LIVES_BUTTONBOX_START GTK_BUTTONBOX_START
642 #define LIVES_BUTTONBOX_END GTK_BUTTONBOX_END
643 #define LIVES_BUTTONBOX_CENTER GTK_BUTTONBOX_CENTER
644 
645 
646 typedef GdkEventMask LiVESEventMask;
647 #define LIVES_EXPOSURE_MASK GDK_EXPOSURE_MASK
648 #define LIVES_POINTER_MOTION_MASK GDK_POINTER_MOTION_MASK
649 #define LIVES_POINTER_MOTION_HINT_MASK GDK_POINTER_MOTION_HINT_MASK
650 #define LIVES_BUTTON_MOTION_MASK GDK_BUTTON_MOTION_MASK
651 #define LIVES_BUTTON1_MOTION_MASK GDK_BUTTON1_MOTION_MASK
652 #define LIVES_BUTTON2_MOTION_MASK GDK_BUTTON2_MOTION_MASK
653 #define LIVES_BUTTON3_MOTION_MASK GDK_BUTTON3_MOTION_MASK
654 #define LIVES_BUTTON_PRESS_MASK GDK_BUTTON_PRESS_MASK
655 #define LIVES_BUTTON_RELEASE_MASK GDK_BUTTON_RELEASE_MASK
656 #define LIVES_KEY_PRESS_MASK GDK_KEY_PRESS_MASK
657 #define LIVES_KEY_RELEASE_MASK GDK_KEY_RELEASE_MASK
658 #define LIVES_ENTER_NOTIFY_MASK GDK_ENTER_NOTIFY_MASK
659 #define LIVES_LEAVE_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASK
660 #define LIVES_FOCUS_CHANGE_MASK GDK_FOCUS_CHANGE_MASK
661 #define LIVES_STRUCTURE_MASK GDK_STRUCTURE_MASK
662 #define LIVES_PROPERTY_CHANGE_MASK GDK_PROPERTY_CHANGE_MASK
663 #define LIVES_VISIBILITY_NOTIFY_MASK GDK_VISIBILITY_NOTIFY_MASK
664 #define LIVES_PROXIMITY_IN_MASK GDK_PROXIMITY_IN_MASK
665 #define LIVES_PROXIMITY_OUT_MASK GDK_PROXIMITY_OUT_MASK
666 #define LIVES_SUBSTRUCTURE_MASK GDK_SUBSTRUCTURE_MASK
667 #define LIVES_SCROLL_MASK GDK_SCROLL_MASK
668 
669 
670 #define LIVES_BUTTON_PRESS GDK_BUTTON_PRESS
671 #define LIVES_BUTTON_RELEASE GDK_BUTTON_RELEASE
672 #define LIVES_BUTTON2_PRESS GDK_2BUTTON_PRESS
673 
674 #if GTK_CHECK_VERSION(3,4,0)
675 #define LIVES_TOUCH_MASK GDK_TOUCH_MASK
676 #define LIVES_SMOOTH_SCROLL_MASK GDK_SMOOTH_SCROLL_MASK
677 #endif
678 
679 #define LIVES_ALL_EVENTS_MASK GDK_ALL_EVENTS_MASK
680 
681 
682 typedef GtkShadowType LiVESShadowType;
683 #define LIVES_SHADOW_NONE GTK_SHADOW_NONE
684 #define LIVES_SHADOW_IN GTK_SHADOW_IN
685 #define LIVES_SHADOW_OUT GTK_SHADOW_OUT
686 #define LIVES_SHADOW_ETCHED_IN GTK_SHADOW_ETCHED_IN
687 #define LIVES_SHADOW_ETCHED_OUT GTK_SHADOW_ETCHED_OUT
688 
689 typedef GtkWindowPosition LiVESWindowPosition;
690 #define LIVES_WIN_POS_CENTER_ALWAYS GTK_WIN_POS_CENTER_ALWAYS
691 
692 
693 #if GTK_CHECK_VERSION(3,0,0)
694 typedef GtkScale LiVESRuler;
695 typedef GtkBox LiVESVBox;
696 typedef GtkBox LiVESHBox;
697 #else
698 typedef GtkRuler LiVESRuler;
699 typedef GtkVBox LiVESVBox;
700 typedef GtkHBox LiVESHBox;
701 #endif
702 
703 typedef GtkEventBox LiVESEventBox;
704 
705 typedef GtkRange LiVESRange;
706 
707 typedef GtkAdjustment LiVESAdjustment;
708 
709 typedef GdkPixbuf LiVESPixbuf;
710 
711 typedef GdkWindow LiVESXWindow;
712 
713 typedef GdkCursor LiVESXCursor;
714 
715 typedef GdkModifierType LiVESXModifierType;
716 
717 typedef GtkAccelGroup LiVESAccelGroup;
718 typedef GtkAccelFlags LiVESAccelFlags;
719 
720 typedef GtkRequisition LiVESRequisition;
721 
722 typedef GtkPaned LiVESPaned;
723 
724 typedef GtkScale LiVESScale;
725 
726 typedef GdkPixbufDestroyNotify LiVESPixbufDestroyNotify;
727 
728 typedef GdkInterpType LiVESInterpType;
729 
730 #define LIVES_WIDGET(widget) GTK_WIDGET(widget)
731 #define LIVES_PIXBUF(widget) GDK_PIXBUF(widget)
732 #define LIVES_WINDOW(widget) GTK_WINDOW(widget)
733 #define LIVES_XWINDOW(widget) GDK_WINDOW(widget)
734 #define LIVES_BOX(widget) GTK_BOX(widget)
735 #define LIVES_EVENT_BOX(widget) GTK_EVENT_BOX(widget)
736 #define LIVES_ENTRY(widget) GTK_ENTRY(widget)
737 #define LIVES_FRAME(widget) GTK_FRAME(widget)
738 #define LIVES_CONTAINER(widget) GTK_CONTAINER(widget)
739 #define LIVES_BIN(widget) GTK_BIN(widget)
740 #define LIVES_ADJUSTMENT(widget) GTK_ADJUSTMENT(widget)
741 #define LIVES_DIALOG(widget) GTK_DIALOG(widget)
742 #define LIVES_SCALE(widget) GTK_SCALE(widget)
743 #define LIVES_PANED(widget) GTK_PANED(widget)
744 #define LIVES_COMBO(widget) GTK_COMBO_BOX(widget)
745 #define LIVES_COMBO_BOX(widget) GTK_COMBO_BOX(widget)
746 #define LIVES_BUTTON(widget) GTK_BUTTON(widget)
747 #define LIVES_BUTTON_BOX(widget) GTK_BUTTON_BOX(widget)
748 #define LIVES_LABEL(widget) GTK_LABEL(widget)
749 #define LIVES_ALIGNMENT(widget) GTK_ALIGNMENT(widget)
750 #define LIVES_FILES_CHOOSER(widget) GTK_FILE_CHOOSER(widget)
751 #define LIVES_RADIO_BUTTON(widget) GTK_RADIO_BUTTON(widget)
752 #define LIVES_SPIN_BUTTON(widget) GTK_SPIN_BUTTON(widget)
753 #define LIVES_COLOR_BUTTON(widget) GTK_COLOR_BUTTON(widget)
754 #define LIVES_TOOL_BUTTON(widget) GTK_TOOL_BUTTON(widget)
755 
756 #define LIVES_MENU(widget) GTK_MENU(widget)
757 #define LIVES_MENU_SHELL(widget) GTK_MENU_SHELL(widget)
758 #define LIVES_MENU_TOOL_BUTTON(widget) GTK_MENU_TOOL_BUTTON(widget)
759 #define LIVES_MENU_ITEM(widget) GTK_MENU_ITEM(widget)
760 #define LIVES_IMAGE(widget) GTK_IMAGE(widget)
761 #define LIVES_CHECK_MENU_ITEM(widget) GTK_CHECK_MENU_ITEM(widget)
762 #define LIVES_RADIO_MENU_ITEM(widget) GTK_RADIO_MENU_ITEM(widget)
763 #define LIVES_FILE_CHOOSER(widget) GTK_FILE_CHOOSER(widget)
764 #define LIVES_SCROLLED_WINDOW(widget) GTK_SCROLLED_WINDOW(widget)
765 #define LIVES_TOOLBAR(widget) GTK_TOOLBAR(widget)
766 #define LIVES_TOOL_ITEM(widget) GTK_TOOL_ITEM(widget)
767 
768 #define LIVES_NOTEBOOK(widget) GTK_NOTEBOOK(widget)
769 
770 #define LIVES_PROGRESS_BAR(widget) GTK_PROGRESS_BAR(widget)
771 
772 #define LIVES_EXPANDER(widget) GTK_EXPANDER(widget)
773 
774 #define LIVES_MISC(widget) GTK_MISC(widget)
775 
776 #if GTK_CHECK_VERSION(2,14,0)
777 #define LIVES_SCALE_BUTTON(widget) GTK_SCALE_BUTTON(widget)
778 #else
779 #define LIVES_SCALE_BUTTON(widget) GTK_RANGE(widget)
780 #endif
781 
782 #define LIVES_TOGGLE_BUTTON(widget) GTK_TOGGLE_BUTTON(widget)
783 #define LIVES_TEXT_VIEW(widget) GTK_TEXT_VIEW(widget)
784 #define LIVES_TEXT_BUFFER(widget) GTK_TEXT_BUFFER(widget)
785 
786 #define LIVES_TREE_VIEW(widget) GTK_TREE_VIEW(widget)
787 #define LIVES_TREE_MODEL(object) GTK_TREE_MODEL(object)
788 
789 #define LIVES_LIST_STORE(object) GTK_LIST_STORE(object)
790 
791 #define LIVES_ACCEL_GROUP(object) GTK_ACCEL_GROUP(object)
792 
793 
794 #if GTK_CHECK_VERSION(3,0,0)
795 #define LIVES_RULER(widget) GTK_SCALE(widget)
796 #define LIVES_ORIENTABLE(widget) GTK_ORIENTABLE(widget)
797 #define LIVES_VBOX(widget) GTK_BOX(widget)
798 #define LIVES_HBOX(widget) GTK_BOX(widget)
799 #else
800 #define LIVES_RULER(widget) GTK_RULER(widget)
801 #define LIVES_VBOX(widget) GTK_VBOX(widget)
802 #define LIVES_HBOX(widget) GTK_HBOX(widget)
803 #endif
804 
805 #if GTK_CHECK_VERSION(3,2,0)
806 #define LIVES_GRID(widget) GTK_GRID(widget)
807 #else
808 #define LIVES_GRID(widget) GTK_WIDGET(widget)
809 #endif
810 
811 #if GTK_CHECK_VERSION(3,10,0)
812 #define LIVES_IMAGE_MENU_ITEM(widget) GTK_MENU_ITEM(widget)
813 #else
814 #define LIVES_IMAGE_MENU_ITEM(widget) GTK_IMAGE_MENU_ITEM(widget)
815 #undef LIVES_HAS_IMAGE_MENU_ITEM
816 #define LIVES_HAS_IMAGE_MENU_ITEM 1
817 #endif
818 
819 #if LIVES_TABLE_IS_GRID
820 #define LIVES_TABLE(widget) GTK_GRID(widget)
821 #else
822 #define LIVES_TABLE(widget) GTK_TABLE(widget)
823 #endif
824 
825 #define LIVES_RANGE(widget) GTK_RANGE(widget)
826 
827 #define LIVES_EDITABLE(widget) GTK_EDITABLE(widget)
828 
829 
830 #define LIVES_XEVENT(event) GDK_EVENT(event)
831 
832 #define LIVES_IS_WIDGET_OBJECT(object) G_IS_OBJECT(object)
833 #define LIVES_IS_WIDGET(widget) GTK_IS_WIDGET(widget)
834 #define LIVES_IS_WINDOW(widget) GTK_IS_WINDOW(widget)
835 #define LIVES_IS_XWINDOW(widget) GDK_IS_WINDOW(widget)
836 #define LIVES_IS_PIXBUF(widget) GDK_IS_PIXBUF(widget)
837 #define LIVES_IS_CONTAINER(widget) GTK_IS_CONTAINER(widget)
838 #define LIVES_IS_BIN(widget) GTK_IS_BIN(widget)
839 
840 #if GTK_CHECK_VERSION(3,0,0)
841 #define LIVES_IS_HBOX(widget) (GTK_IS_BOX(widget)&&gtk_orientable_get_orientation(GTK_ORIENTABLE(widget))==GTK_ORIENTATION_HORIZONTAL)
842 #define LIVES_IS_VBOX(widget) (GTK_IS_BOX(widget)&&gtk_orientable_get_orientation(GTK_ORIENTABLE(widget))==GTK_ORIENTATION_HORIZONTAL)
843 #define LIVES_IS_SCROLLABLE(widget) GTK_IS_SCROLLABLE(widget)
844 #else
845 #define LIVES_IS_HBOX(widget) GTK_IS_HBOX(widget)
846 #define LIVES_IS_VBOX(widget) GTK_IS_VBOX(widget)
847 #endif
848 
849 #define LIVES_IS_BOX(widget) (LIVES_IS_HBOX(widget) || LIVES_IS_VBOX(widget))
850 
851 #define LIVES_IS_TOOLBAR(widget) GTK_IS_TOOLBAR(widget)
852 #define LIVES_IS_EVENT_BOX(widget) GTK_IS_EVENT_BOX(widget)
853 
854 #define LIVES_IS_COMBO(widget) GTK_IS_COMBO_BOX(widget)
855 #define LIVES_IS_DIALOG(widget) GTK_IS_DIALOG(widget)
856 #define LIVES_IS_LABEL(widget) GTK_IS_LABEL(widget)
857 #define LIVES_IS_BUTTON(widget) GTK_IS_BUTTON(widget)
858 #define LIVES_IS_SPIN_BUTTON(widget) GTK_IS_SPIN_BUTTON(widget)
859 #define LIVES_IS_TOGGLE_BUTTON(widget) GTK_IS_TOGGLE_BUTTON(widget)
860 #define LIVES_IS_IMAGE(widget) GTK_IS_IMAGE(widget)
861 #define LIVES_IS_ENTRY(widget) GTK_IS_ENTRY(widget)
862 #define LIVES_IS_RANGE(widget) GTK_IS_RANGE(widget)
863 #define LIVES_IS_PROGRESS_BAR(widget) GTK_IS_PROGRESS_BAR(widget)
864 #define LIVES_IS_TEXT_VIEW(widget) GTK_IS_TEXT_VIEW(widget)
865 #define LIVES_IS_MENU_ITEM(widget) GTK_IS_MENU_ITEM(widget)
866 #define LIVES_IS_FILE_CHOOSER(widget) GTK_IS_FILE_CHOOSER(widget)
867 #define LIVES_IS_BUTTON_BOX(widget) GTK_IS_BUTTON_BOX(widget)
868 
869 // (image resize) interpolation types
870 #define LIVES_INTERP_BEST GDK_INTERP_HYPER
871 #define LIVES_INTERP_NORMAL GDK_INTERP_BILINEAR
872 #define LIVES_INTERP_FAST GDK_INTERP_NEAREST
873 
874 
875 #if GTK_CHECK_VERSION(3,10,0)
876 #define LIVES_STOCK_YES "gtk-yes" // non-standard image ?
877 #define LIVES_STOCK_APPLY "gtk-apply" // non-standard image ?
878 #define LIVES_STOCK_CANCEL "gtk-cancel" // non-standard image ?
879 #define LIVES_STOCK_OK "gtk-ok" // non-standard image ?
880 #define LIVES_STOCK_UNDO "edit-undo"
881 #define LIVES_STOCK_REDO "edit-redo"
882 #define LIVES_STOCK_ADD "list-add"
883 #define LIVES_STOCK_REMOVE "list-remove"
884 #define LIVES_STOCK_NO "media-record"
885 #define LIVES_STOCK_QUIT "application-exit"
886 #define LIVES_STOCK_OPEN "document-open"
887 #define LIVES_STOCK_CLOSE "window-close"
888 #define LIVES_STOCK_CLEAR "edit-clear"
889 #define LIVES_STOCK_DELETE "edit-delete"
890 #define LIVES_STOCK_SAVE_AS "document-save-as"
891 #define LIVES_STOCK_SAVE "document-save"
892 #define LIVES_STOCK_REFRESH "view-refresh"
893 #define LIVES_STOCK_REVERT_TO_SAVED "document-revert"
894 #define LIVES_STOCK_GO_BACK "go-previous"
895 #define LIVES_STOCK_GO_FORWARD "go-next"
896 #define LIVES_STOCK_GO_UP "go-up"
897 #define LIVES_STOCK_GO_DOWN "go-down"
898 #define LIVES_STOCK_REFRESH "view-refresh"
899 #define LIVES_STOCK_MEDIA_PLAY "media-playback-start"
900 #define LIVES_STOCK_MEDIA_STOP "media-playback-stop"
901 #define LIVES_STOCK_MEDIA_REWIND "media-seek-backward"
902 #define LIVES_STOCK_MEDIA_FORWARD "media-seek-forward"
903 #define LIVES_STOCK_MEDIA_RECORD "media-record"
904 #define LIVES_STOCK_MEDIA_PAUSE "media-pause"
905 #define LIVES_STOCK_PREFERENCES "preferences-system"
906 #define LIVES_STOCK_DIALOG_INFO "dialog-information"
907 #define LIVES_STOCK_MISSING_IMAGE "image-missing"
908 
909 char LIVES_STOCK_LABEL_CANCEL[32];
910 char LIVES_STOCK_LABEL_OK[32];
911 char LIVES_STOCK_LABEL_YES[32];
912 char LIVES_STOCK_LABEL_NO[32];
913 char LIVES_STOCK_LABEL_SAVE[32];
914 char LIVES_STOCK_LABEL_SAVE_AS[32];
915 char LIVES_STOCK_LABEL_OPEN[32];
916 char LIVES_STOCK_LABEL_QUIT[32];
917 char LIVES_STOCK_LABEL_APPLY[32];
918 char LIVES_STOCK_LABEL_CLOSE[32];
919 char LIVES_STOCK_LABEL_REVERT[32];
920 char LIVES_STOCK_LABEL_REFRESH[32];
921 char LIVES_STOCK_LABEL_DELETE[32];
922 char LIVES_STOCK_LABEL_GO_FORWARD[32];
923 
924 char LIVES_STOCK_LABEL_MEDIA_FORWARD[32];
925 char LIVES_STOCK_LABEL_MEDIA_REWIND[32];
926 char LIVES_STOCK_LABEL_MEDIA_STOP[32];
927 char LIVES_STOCK_LABEL_MEDIA_PLAY[32];
928 char LIVES_STOCK_LABEL_MEDIA_PAUSE[32];
929 char LIVES_STOCK_LABEL_MEDIA_RECORD[32];
930 
931 
932 #else
933 #define LIVES_STOCK_UNDO GTK_STOCK_UNDO
934 #define LIVES_STOCK_REDO GTK_STOCK_REDO
935 #define LIVES_STOCK_ADD GTK_STOCK_ADD
936 #define LIVES_STOCK_APPLY GTK_STOCK_APPLY
937 #define LIVES_STOCK_REMOVE GTK_STOCK_REMOVE
938 #define LIVES_STOCK_NO GTK_STOCK_NO
939 #define LIVES_STOCK_YES GTK_STOCK_YES
940 #define LIVES_STOCK_QUIT GTK_STOCK_QUIT
941 #define LIVES_STOCK_OPEN GTK_STOCK_OPEN
942 #define LIVES_STOCK_CLOSE GTK_STOCK_CLOSE
943 #define LIVES_STOCK_CANCEL GTK_STOCK_CANCEL
944 #define LIVES_STOCK_OK GTK_STOCK_OK
945 #define LIVES_STOCK_CLEAR GTK_STOCK_CLEAR
946 #define LIVES_STOCK_DELETE GTK_STOCK_DELETE
947 #define LIVES_STOCK_SAVE_AS GTK_STOCK_SAVE_AS
948 #define LIVES_STOCK_SAVE GTK_STOCK_SAVE
949 #define LIVES_STOCK_REFRESH GTK_STOCK_REFRESH
950 #define LIVES_STOCK_REVERT_TO_SAVED GTK_STOCK_REVERT_TO_SAVED
951 #define LIVES_STOCK_GO_BACK GTK_STOCK_GO_BACK
952 #define LIVES_STOCK_GO_FORWARD GTK_STOCK_GO_FORWARD
953 #define LIVES_STOCK_REFRESH GTK_STOCK_REFRESH
954 #define LIVES_STOCK_PREFERENCES GTK_STOCK_PREFERENCES
955 #define LIVES_STOCK_DIALOG_INFO GTK_STOCK_DIALOG_INFO
956 #define LIVES_STOCK_MISSING_IMAGE GTK_STOCK_MISSING_IMAGE
957 
958 #define LIVES_STOCK_LABEL_CANCEL GTK_STOCK_CANCEL
959 #define LIVES_STOCK_LABEL_OK GTK_STOCK_OK
960 #define LIVES_STOCK_LABEL_OPEN GTK_STOCK_OPEN
961 #define LIVES_STOCK_LABEL_SAVE GTK_STOCK_SAVE
962 #define LIVES_STOCK_LABEL_QUIT GTK_STOCK_QUIT
963 
964 
965 #if GTK_CHECK_VERSION(2,6,0)
966 #define LIVES_STOCK_LABEL_MEDIA_FORWARD GTK_STOCK_MEDIA_FORWARD
967 #define LIVES_STOCK_LABEL_MEDIA_REWIND GTK_STOCK_MEDIA_REWIND
968 #define LIVES_STOCK_LABEL_MEDIA_STOP GTK_STOCK_MEDIA_STOP
969 #define LIVES_STOCK_LABEL_MEDIA_PLAY GTK_STOCK_MEDIA_PLAY
970 #define LIVES_STOCK_LABEL_MEDIA_PAUSE GTK_STOCK_MEDIA_PAUSE
971 #define LIVES_STOCK_LABEL_MEDIA_RECORD GTK_STOCK_MEDIA_RECORD
972 #else
973 #define LIVES_STOCK_LABEL_MEDIA_FORWARD GTK_STOCK_GOTO_LAST
974 #define LIVES_STOCK_LABEL_MEDIA_REWIND GTK_STOCK_GOTO_FIRST
975 #define LIVES_STOCK_LABEL_MEDIA_STOP GTK_STOCK_NO
976 #define LIVES_STOCK_LABEL_MEDIA_PLAY GTK_STOCK_GO_FORWARD
977 #define LIVES_STOCK_LABEL_MEDIA_PAUSE GTK_STOCK_REFRESH
978 #define LIVES_STOCK_LABEL_MEDIA_RECORD GTK_STOCK_NO
979 #endif
980 
981 
982 #if GTK_CHECK_VERSION(2,6,0)
983 #define LIVES_STOCK_MEDIA_PAUSE GTK_STOCK_MEDIA_PAUSE
984 #else
985 #define LIVES_STOCK_MEDIA_PAUSE GTK_STOCK_REFRESH
986 #endif
987 
988 #if GTK_CHECK_VERSION(2,6,0)
989 #define LIVES_STOCK_MEDIA_PLAY GTK_STOCK_MEDIA_PLAY
990 #else
991 #define LIVES_STOCK_MEDIA_PLAY GTK_STOCK_GO_FORWARD
992 #endif
993 #if GTK_CHECK_VERSION(2,6,0)
994 #define LIVES_STOCK_MEDIA_STOP GTK_STOCK_MEDIA_STOP
995 #else
996 #define LIVES_STOCK_MEDIA_STOP GTK_STOCK_STOP
997 #endif
998 #if GTK_CHECK_VERSION(2,6,0)
999 #define LIVES_STOCK_MEDIA_REWIND GTK_STOCK_MEDIA_REWIND
1000 #else
1001 #define LIVES_STOCK_MEDIA_REWIND GTK_STOCK_GOTO_FIRST
1002 #endif
1003 #if GTK_CHECK_VERSION(2,6,0)
1004 #define LIVES_STOCK_MEDIA_FORWARD GTK_STOCK_MEDIA_FORWARD
1005 #else
1006 #define LIVES_STOCK_MEDIA_FORWARD GTK_STOCK_GOTO_LAST
1007 #endif
1008 #if GTK_CHECK_VERSION(2,6,0)
1009 #define LIVES_STOCK_MEDIA_RECORD GTK_STOCK_MEDIA_RECORD
1010 #else
1011 #define LIVES_STOCK_MEDIA_RECORD GTK_STOCK_NO
1012 #endif
1013 
1014 #endif
1015 
1016 
1017 #define LIVES_CONTROL_MASK GDK_CONTROL_MASK
1018 #define LIVES_ALT_MASK GDK_MOD1_MASK
1019 #define LIVES_SHIFT_MASK GDK_SHIFT_MASK
1020 #define LIVES_LOCK_MASK GDK_LOCK_MASK
1021 
1022 #ifdef GDK_KEY_a
1023 #define LIVES_KEY_Left GDK_KEY_Left
1024 #define LIVES_KEY_Right GDK_KEY_Right
1025 #define LIVES_KEY_Up GDK_KEY_Up
1026 #define LIVES_KEY_Down GDK_KEY_Down
1027 
1028 #define LIVES_KEY_BackSpace GDK_KEY_BackSpace
1029 #define LIVES_KEY_Return GDK_KEY_Return
1030 #define LIVES_KEY_Tab GDK_KEY_Tab
1031 #define LIVES_KEY_Home GDK_KEY_Home
1032 #define LIVES_KEY_End GDK_KEY_End
1033 #define LIVES_KEY_Slash GDK_KEY_slash
1034 #define LIVES_KEY_Space GDK_KEY_space
1035 #define LIVES_KEY_Plus GDK_KEY_plus
1036 #define LIVES_KEY_Minus GDK_KEY_minus
1037 #define LIVES_KEY_Equal GDK_KEY_equal
1038 
1039 #define LIVES_KEY_1 GDK_KEY_1
1040 #define LIVES_KEY_2 GDK_KEY_2
1041 #define LIVES_KEY_3 GDK_KEY_3
1042 #define LIVES_KEY_4 GDK_KEY_4
1043 #define LIVES_KEY_5 GDK_KEY_5
1044 #define LIVES_KEY_6 GDK_KEY_6
1045 #define LIVES_KEY_7 GDK_KEY_7
1046 #define LIVES_KEY_8 GDK_KEY_8
1047 #define LIVES_KEY_9 GDK_KEY_9
1048 #define LIVES_KEY_0 GDK_KEY_0
1049 
1050 #define LIVES_KEY_a GDK_KEY_a
1051 #define LIVES_KEY_b GDK_KEY_b
1052 #define LIVES_KEY_c GDK_KEY_c
1053 #define LIVES_KEY_d GDK_KEY_d
1054 #define LIVES_KEY_e GDK_KEY_e
1055 #define LIVES_KEY_f GDK_KEY_f
1056 #define LIVES_KEY_g GDK_KEY_g
1057 #define LIVES_KEY_h GDK_KEY_h
1058 #define LIVES_KEY_i GDK_KEY_i
1059 #define LIVES_KEY_j GDK_KEY_j
1060 #define LIVES_KEY_k GDK_KEY_k
1061 #define LIVES_KEY_l GDK_KEY_l
1062 #define LIVES_KEY_m GDK_KEY_m
1063 #define LIVES_KEY_n GDK_KEY_n
1064 #define LIVES_KEY_o GDK_KEY_o
1065 #define LIVES_KEY_p GDK_KEY_p
1066 #define LIVES_KEY_q GDK_KEY_q
1067 #define LIVES_KEY_r GDK_KEY_r
1068 #define LIVES_KEY_s GDK_KEY_s
1069 #define LIVES_KEY_t GDK_KEY_t
1070 #define LIVES_KEY_u GDK_KEY_u
1071 #define LIVES_KEY_v GDK_KEY_v
1072 #define LIVES_KEY_w GDK_KEY_w
1073 #define LIVES_KEY_x GDK_KEY_x
1074 #define LIVES_KEY_y GDK_KEY_y
1075 #define LIVES_KEY_z GDK_KEY_z
1076 
1077 #define LIVES_KEY_F1 GDK_KEY_F1
1078 #define LIVES_KEY_F2 GDK_KEY_F2
1079 #define LIVES_KEY_F3 GDK_KEY_F3
1080 #define LIVES_KEY_F4 GDK_KEY_F4
1081 #define LIVES_KEY_F5 GDK_KEY_F5
1082 #define LIVES_KEY_F6 GDK_KEY_F6
1083 #define LIVES_KEY_F7 GDK_KEY_F7
1084 #define LIVES_KEY_F8 GDK_KEY_F8
1085 #define LIVES_KEY_F9 GDK_KEY_F9
1086 #define LIVES_KEY_F10 GDK_KEY_F10
1087 #define LIVES_KEY_F11 GDK_KEY_F11
1088 #define LIVES_KEY_F12 GDK_KEY_F12
1089 
1090 #define LIVES_KEY_Page_Up GDK_KEY_Page_Up
1091 #define LIVES_KEY_Page_Down GDK_KEY_Page_Down
1092 
1093 #define LIVES_KEY_Escape GDK_KEY_Escape
1094 
1095 #else
1096 #define LIVES_KEY_Left GDK_Left
1097 #define LIVES_KEY_Right GDK_Right
1098 #define LIVES_KEY_Up GDK_Up
1099 #define LIVES_KEY_Down GDK_Down
1100 
1101 #define LIVES_KEY_BackSpace GDK_BackSpace
1102 #define LIVES_KEY_Return GDK_Return
1103 #define LIVES_KEY_Tab GDK_Tab
1104 #define LIVES_KEY_Home GDK_Home
1105 #define LIVES_KEY_End GDK_End
1106 #define LIVES_KEY_Slash GDK_slash
1107 #define LIVES_KEY_Space GDK_space
1108 #define LIVES_KEY_Plus GDK_plus
1109 #define LIVES_KEY_Minus GDK_minus
1110 #define LIVES_KEY_Equal GDK_equal
1111 
1112 #define LIVES_KEY_1 GDK_1
1113 #define LIVES_KEY_2 GDK_2
1114 #define LIVES_KEY_3 GDK_3
1115 #define LIVES_KEY_4 GDK_4
1116 #define LIVES_KEY_5 GDK_5
1117 #define LIVES_KEY_6 GDK_6
1118 #define LIVES_KEY_7 GDK_7
1119 #define LIVES_KEY_8 GDK_8
1120 #define LIVES_KEY_9 GDK_9
1121 #define LIVES_KEY_0 GDK_0
1122 
1123 #define LIVES_KEY_a GDK_a
1124 #define LIVES_KEY_b GDK_b
1125 #define LIVES_KEY_c GDK_c
1126 #define LIVES_KEY_d GDK_d
1127 #define LIVES_KEY_e GDK_e
1128 #define LIVES_KEY_f GDK_f
1129 #define LIVES_KEY_g GDK_g
1130 #define LIVES_KEY_h GDK_h
1131 #define LIVES_KEY_i GDK_i
1132 #define LIVES_KEY_j GDK_j
1133 #define LIVES_KEY_k GDK_k
1134 #define LIVES_KEY_l GDK_l
1135 #define LIVES_KEY_m GDK_m
1136 #define LIVES_KEY_n GDK_n
1137 #define LIVES_KEY_o GDK_o
1138 #define LIVES_KEY_p GDK_p
1139 #define LIVES_KEY_q GDK_q
1140 #define LIVES_KEY_r GDK_r
1141 #define LIVES_KEY_s GDK_s
1142 #define LIVES_KEY_t GDK_t
1143 #define LIVES_KEY_u GDK_u
1144 #define LIVES_KEY_v GDK_v
1145 #define LIVES_KEY_w GDK_w
1146 #define LIVES_KEY_x GDK_x
1147 #define LIVES_KEY_y GDK_y
1148 #define LIVES_KEY_z GDK_z
1149 
1150 #define LIVES_KEY_F1 GDK_F1
1151 #define LIVES_KEY_F2 GDK_F2
1152 #define LIVES_KEY_F3 GDK_F3
1153 #define LIVES_KEY_F4 GDK_F4
1154 #define LIVES_KEY_F5 GDK_F5
1155 #define LIVES_KEY_F6 GDK_F6
1156 #define LIVES_KEY_F7 GDK_F7
1157 #define LIVES_KEY_F8 GDK_F8
1158 #define LIVES_KEY_F9 GDK_F9
1159 #define LIVES_KEY_F10 GDK_F10
1160 #define LIVES_KEY_F11 GDK_F11
1161 #define LIVES_KEY_F12 GDK_F12
1162 
1163 #define LIVES_KEY_Page_Up GDK_Page_Up
1164 #define LIVES_KEY_Page_Down GDK_Page_Down
1165 
1166 #define LIVES_KEY_Escape GDK_Escape
1167 
1168 #endif
1169 
1170 #define LIVES_INT_TO_POINTER GINT_TO_POINTER
1171 #define LIVES_UINT_TO_POINTER GUINT_TO_POINTER
1172 #define LIVES_POINTER_TO_INT GPOINTER_TO_INT
1173 
1174 // pango stuff
1175 typedef PangoLayout LingoLayout;
1176 #define lingo_layout_set_alignment(a,b) pango_layout_set_alignment(a,b)
1177 
1178 #define LINGO_ALIGN_LEFT PANGO_ALIGN_LEFT
1179 #define LINGO_ALIGN_RIGHT PANGO_ALIGN_RIGHT
1180 #define LINGO_ALIGN_CENTER PANGO_ALIGN_CENTER
1181 
1182 #define lingo_layout_set_text(a,b,c) pango_layout_set_text(a,b,c)
1183 #define lingo_painter_show_layout(a,b) pango_cairo_show_layout(a,b)
1184 
1185 #define lingo_layout_get_size(a,b,c,d,e) pango_layout_get_size(a,b,c)
1186 
1187 #define LINGO_SCALE PANGO_SCALE
1188 
1189 #endif
1190 
1191 
1192 #endif
int boolean
Definition: videoplugin.h:50
LIVES_INLINE boolean lives_painter_surface_destroy(lives_painter_surface_t *surf)
Definition: widget-helper.c:192