LiVES 3.2.0
widget-helper.h
Go to the documentation of this file.
1// widget-helper.h
2// LiVES
3// (c) G. Finch 2012 - 2018 <salsaman+lives@gmail.com>
4// released under the GNU GPL 3 or later
5// see file ../COPYING or www.gnu.org for licensing details
6
7#ifndef HAS_LIVES_WIDGET_HELPER_H
8#define HAS_LIVES_WIDGET_HELPER_H
9
10#ifndef IS_SOLARIS
11#define WIDGET_HELPER_GLOBAL_INLINE inline
12#define WIDGET_HELPER_LOCAL_INLINE static inline
13#else
14#define WIDGET_HELPER_GLOBAL_INLINE
15#define WIDGET_HELPER_LOCAL_INLINE
16#endif
17
18#ifndef M_PI
19#define M_PI 3.1415926536
20#endif
21
22#define LIVES_HAS_GRID_WIDGET 0
23#define LIVES_HAS_SWITCH_WIDGET 0
24#define LIVES_HAS_IMAGE_MENU_ITEM 0
25#define LIVES_HAS_DEVICE_MANAGER 0
26
27#define MIN_SPINBUTTON_SIZE 6
28
29#define LONG_ENTRY_WIDTH ((int)(100.*widget_opts.scale))
30#define SHORT_ENTRY_WIDTH ((int)(40.*widget_opts.scale))
31#define MEDIUM_ENTRY_WIDTH ((int)(60.*widget_opts.scale))
32#define SHORTER_ENTRY_WIDTH (MEDIUM_ENTRY_WIDTH >> 1)
33
34typedef enum {
40
41typedef struct {
42 int x, y;
43 int width, height;
45
46// values below are multiplied by scale (unless value is -1)
47#define W_CSS_MIN_WIDTH -1
48#define W_CSS_MIN_HEIGHT 18
49#define W_PACKING_WIDTH 10 // packing width for widgets with labels
50#define W_PACKING_HEIGHT 6 // packing height for widgets
51#define W_BORDER_WIDTH 10 // default border width
52#define W_FILL_LENGTH (W_PACKING_WIDTH * 4) // default extra fill size
53
54#if defined (GUI_GTK) || defined (LIVES_PAINTER_IS_CAIRO)
55#include "widget-helper-gtk.h"
56#endif
57
58// basic functions (wrappers for Toolkit functions)
59
60#ifdef LIVES_LINGO_IS_PANGO
61// pango stuff. I suppose it should be here on the offchance that it might one day be used with a non-gtk+ toolkit...
62typedef PangoLayout LingoLayout;
63typedef PangoContext LingoContext;
64typedef PangoWrapMode LingoWrapMode;
65typedef PangoEllipsizeMode LingoEllipsizeMode;
66typedef PangoFontDescription LingoFontDescription;
67#define lingo_layout_set_alignment(a, b) pango_layout_set_alignment(a, b)
68
69#define LINGO_ALIGN_LEFT PANGO_ALIGN_LEFT
70#define LINGO_ALIGN_RIGHT PANGO_ALIGN_RIGHT
71#define LINGO_ALIGN_CENTER PANGO_ALIGN_CENTER
72
73#define LINGO_WRAP_WORD PANGO_WRAP_WORD
74#define LINGO_WRAP_CHAR PANGO_WRAP_CHAR
75#define LINGO_WRAP_WORD_CHAR PANGO_WRAP_WORD_CHAR
76
77#define LINGO_ELLIPSIZE_NONE PANGO_ELLIPSIZE_NONE
78#define LINGO_ELLIPSIZE_START PANGO_ELLIPSIZE_START
79#define LINGO_ELLIPSIZE_END PANGO_ELLIPSIZE_END
80#define LINGO_ELLIPSIZE_MIDDLE PANGO_ELLIPSIZE_MIDDLE
81
82#define lingo_layout_set_text(a, b, c) pango_layout_set_text(a, b, c)
83#define lingo_layout_set_markup_with_accel(a, b, c, d, e) \
84 pango_layout_set_markup_with_accel(a, b, c, d, e)
85#ifdef LIVES_PAINTER_IS_CAIRO
86#define LIVES_PAINTER_COLOR_PALETTE(endian) (endian == LIVES_BIG_ENDIAN ? WEED_PALETTE_ARGB32 \
87 : WEED_PALETTE_BGRA32)
88#define lingo_painter_show_layout(a, b) pango_cairo_show_layout(a, b)
89#endif
90#ifdef GUI_GTK
91#define lives_widget_create_lingo_context(a) gtk_widget_create_pango_context(a)
92#endif
93#define lingo_layout_get_size(a, b, c) pango_layout_get_size(a, b, c)
94#define lingo_layout_new(a) pango_layout_new(a)
95#define lingo_layout_set_markup(a, b, c) pango_layout_set_markup(a, b, c)
96#define lingo_layout_set_width(a, b) pango_layout_set_width(a, b)
97#define lingo_layout_set_height(a, b) pango_layout_set_height(a, b)
98
99#define lingo_font_description_new(a) pango_font_description_new()
100#define lingo_font_description_get_size(a) pango_font_description_get_size(a)
101#define lingo_font_description_set_size(a, b) pango_font_description_set_size(a, b)
102#define lingo_font_description_free(a) pango_font_description_free(a)
103
104#define LINGO_IS_LAYOUT(a) PANGO_IS_LAYOUT(a)
105#define LINGO_IS_CONTEXT(a) PANGO_IS_CONTEXT(a)
106
107#define LINGO_SCALE PANGO_SCALE
108#endif
109
110typedef LingoEllipsizeMode LiVESEllipsizeMode;
111#define LIVES_ELLIPSIZE_NONE LINGO_ELLIPSIZE_NONE
112#define LIVES_ELLIPSIZE_START LINGO_ELLIPSIZE_START
113#define LIVES_ELLIPSIZE_MIDDLE LINGO_ELLIPSIZE_MIDDLE
114#define LIVES_ELLIPSIZE_END LINGO_ELLIPSIZE_END
115
116
117#ifdef LIVES_PAINTER_IS_CAIRO
118// ...likewise with cairo
119#ifndef GUI_GTK
120#include <cairo/cairo.h>
121#endif
122
123typedef cairo_t lives_painter_t;
124typedef cairo_surface_t lives_painter_surface_t;
125
126boolean lives_painter_surface_destroy(lives_painter_surface_t *);
127lives_painter_surface_t *lives_painter_surface_reference(lives_painter_surface_t *);
128
129typedef cairo_format_t lives_painter_format_t;
130
131#define LIVES_PAINTER_FORMAT_A1 CAIRO_FORMAT_A1
132#define LIVES_PAINTER_FORMAT_A8 CAIRO_FORMAT_A8
133#define LIVES_PAINTER_FORMAT_RGB24 CAIRO_FORMAT_RGB24
134#define LIVES_PAINTER_FORMAT_ARGB32 CAIRO_FORMAT_ARGB32
135
136typedef cairo_content_t lives_painter_content_t; // eg. color, alpha, color+alpha
137
138#define LIVES_PAINTER_CONTENT_COLOR CAIRO_CONTENT_COLOR
139
140typedef cairo_operator_t lives_painter_operator_t;
141
142#define LIVES_PAINTER_OPERATOR_UNKNOWN CAIRO_OPERATOR_OVER
143#define LIVES_PAINTER_OPERATOR_DEFAULT CAIRO_OPERATOR_OVER
144
145#define LIVES_PAINTER_OPERATOR_DEST_OUT CAIRO_OPERATOR_DEST_OUT
146#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
147#define LIVES_PAINTER_OPERATOR_DIFFERENCE CAIRO_OPERATOR_OVER
148#define LIVES_PAINTER_OPERATOR_OVERLAY CAIRO_OPERATOR_OVER
149#else
150#define LIVES_PAINTER_OPERATOR_DIFFERENCE CAIRO_OPERATOR_DIFFERENCE
151#define LIVES_PAINTER_OPERATOR_OVERLAY CAIRO_OPERATOR_OVERLAY
152#endif
153
154typedef cairo_fill_rule_t lives_painter_fill_rule_t;
155
156#define LIVES_PAINTER_FILL_RULE_WINDING CAIRO_FILL_RULE_WINDING
157#define LIVES_PAINTER_FILL_RULE_EVEN_ODD CAIRO_FILL_RULE_EVEN_ODD
158
159#endif
160
161// lives_painter_functions
162
163lives_painter_t *lives_painter_create_from_surface(lives_painter_surface_t *target);
164
165lives_painter_t *lives_painter_create_from_widget(LiVESWidget *);
166boolean lives_painter_remerge(lives_painter_t *);
167
168boolean lives_painter_set_source_pixbuf(lives_painter_t *, const LiVESPixbuf *, double pixbuf_x, double pixbuf_y);
169boolean lives_painter_set_source_surface(lives_painter_t *, lives_painter_surface_t *, double x, double y);
170
171lives_painter_surface_t *lives_xwindow_create_similar_surface(LiVESXWindow *window,
172 lives_painter_content_t cont,
173 int width, int height);
174lives_painter_surface_t *lives_widget_create_painter_surface(LiVESWidget *);
175lives_painter_surface_t *lives_painter_image_surface_create(lives_painter_format_t format, int width, int height);
176lives_painter_surface_t *lives_painter_image_surface_create_for_data(uint8_t *data, lives_painter_format_t,
177 int width, int height, int stride);
178
179boolean lives_painter_surface_flush(lives_painter_surface_t *);
180
181boolean lives_painter_destroy(lives_painter_t *);
182
183boolean lives_painter_new_path(lives_painter_t *);
184
185boolean lives_painter_paint(lives_painter_t *);
186
187boolean lives_painter_fill(lives_painter_t *);
188boolean lives_painter_stroke(lives_painter_t *);
189boolean lives_painter_clip(lives_painter_t *);
190
191boolean lives_painter_render_background(LiVESWidget *, lives_painter_t *, double x, double y, double width, double height);
192
193boolean lives_painter_set_source_rgb(lives_painter_t *, double red, double green, double blue);
194boolean lives_painter_set_source_rgba(lives_painter_t *, double red, double green, double blue, double alpha);
195
196boolean lives_painter_set_line_width(lives_painter_t *, double width);
197
198boolean lives_painter_translate(lives_painter_t *, double x, double y);
199
200boolean lives_painter_rectangle(lives_painter_t *, double x, double y, double width, double height);
201boolean lives_painter_arc(lives_painter_t *, double xc, double yc, double radius, double angle1, double angle2);
202boolean lives_painter_line_to(lives_painter_t *, double x, double y);
203boolean lives_painter_move_to(lives_painter_t *, double x, double y);
204boolean lives_painter_close_path(lives_painter_t *);
205
206boolean lives_painter_set_operator(lives_painter_t *, lives_painter_operator_t);
207
208boolean lives_painter_set_fill_rule(lives_painter_t *, lives_painter_fill_rule_t);
209
210lives_painter_surface_t *lives_painter_get_target(lives_painter_t *);
211int lives_painter_format_stride_for_width(lives_painter_format_t, int width);
212
213uint8_t *lives_painter_image_surface_get_data(lives_painter_surface_t *);
214int lives_painter_image_surface_get_width(lives_painter_surface_t *);
215int lives_painter_image_surface_get_height(lives_painter_surface_t *);
216int lives_painter_image_surface_get_stride(lives_painter_surface_t *);
217lives_painter_format_t lives_painter_image_surface_get_format(lives_painter_surface_t *);
218
219// utils
220LiVESAlign lives_justify_to_align(LiVESJustification justification);
221
222LiVESScrollDirection lives_get_scroll_direction(LiVESXEventScroll *event);
223
224boolean lives_has_icon(LiVESIconTheme *, const char *stock_id, LiVESIconSize size);
225
226const char *lives_get_stock_icon_alt(int alt_stock_id);
227void widget_helper_set_stock_icon_alts(LiVESIconTheme *);
228
229boolean widget_helper_init(void);
230boolean widget_opts_rescale(double scale);
231
232lives_colRGBA64_t lives_rgba_col_new(int red, int green, int blue, int alpha);
234LiVESWidgetColor *lives_rgba_to_widget_color(LiVESWidgetColor *, lives_colRGBA64_t *);
235
238LiVESWidgetColor *lives_painter_set_source_rgb_from_lives_widget_color(lives_painter_t *, LiVESWidgetColor *);
239
240boolean clear_widget_bg(LiVESWidget *widget, lives_painter_surface_t *);
241boolean clear_widget_bg_area(LiVESWidget *widget, lives_painter_surface_t *s,
242 double x, double y, double width, double height);
243
246
247// object funcs.
248
249boolean lives_widget_object_ref(livespointer);
250boolean lives_widget_object_unref(livespointer);
251
252// remove any "floating" reference and add a new ref
253boolean lives_widget_object_ref_sink(livespointer);
254
255// set string data and free it later
256void lives_widget_object_set_data_auto(LiVESWidgetObject *, const char *key, livespointer data);
257
258// set list and free it later (but not the list data)
259void lives_widget_object_set_data_list(LiVESWidgetObject *, const char *key, LiVESList *list);
260
261// set widget object and unref it later
262void lives_widget_object_set_data_widget_object(LiVESWidgetObject *, const char *key, livespointer other);
263// lives_pixbuf functions
264
265int lives_pixbuf_get_width(const LiVESPixbuf *);
266int lives_pixbuf_get_height(const LiVESPixbuf *);
267boolean lives_pixbuf_get_has_alpha(const LiVESPixbuf *);
268int lives_pixbuf_get_rowstride(const LiVESPixbuf *);
269int lives_pixbuf_get_n_channels(const LiVESPixbuf *);
270unsigned char *lives_pixbuf_get_pixels(const LiVESPixbuf *);
271const unsigned char *lives_pixbuf_get_pixels_readonly(const LiVESPixbuf *);
272LiVESPixbuf *lives_pixbuf_new(boolean has_alpha, int width, int height);
273LiVESPixbuf *lives_pixbuf_copy(LiVESPixbuf *);
274LiVESPixbuf *lives_pixbuf_new_from_data(const unsigned char *buf, boolean has_alpha, int width, int height,
275 int rowstride, LiVESPixbufDestroyNotify lives_free_buffer_fn,
276 livespointer destroy_fn_data);
277
278LiVESPixbuf *lives_pixbuf_new_from_file(const char *filename, LiVESError **error);
279LiVESWidget *lives_image_new_from_pixbuf(LiVESPixbuf *);
280LiVESPixbuf *lives_pixbuf_new_from_file_at_scale(const char *filename, int width, int height, boolean preserve_aspect_ratio,
281 LiVESError **error);
282
283LiVESPixbuf *lives_pixbuf_scale_simple(const LiVESPixbuf *src, int dest_width, int dest_height,
284 LiVESInterpType interp_type);
285
286boolean lives_pixbuf_saturate_and_pixelate(const LiVESPixbuf *src, LiVESPixbuf *dest, float saturation, boolean pixilate);
287
288// basic widget fns
289
290// TODO consider combining get/set value, get/set label, get/set label widget
291
292#ifdef GUI_GTK
293
294typedef GConnectFlags LiVESConnectFlags;
295
296#define LIVES_CONNECT_AFTER G_CONNECT_AFTER
297#define LIVES_CONNECT_SWAPPED G_CONNECT_SWAPPED
298
299unsigned long lives_signal_connect_sync(livespointer instance, const char *detailed_signal, LiVESGuiCallback c_handler,
300 livespointer data, LiVESConnectFlags flags);
301
302unsigned long lives_signal_connect_async(livespointer instance, const char *detailed_signal, LiVESGuiCallback c_handler,
303 livespointer data, LiVESConnectFlags flags);
304
305#define lives_signal_connect(instance, detailed_signal, c_handler, data) \
306 lives_signal_connect_async(instance, detailed_signal, c_handler, data, 0)
307#define lives_signal_connect_after(instance, detailed_signal, c_handler, data) \
308 lives_signal_connect_async(instance, detailed_signal, c_handler, data, LIVES_CONNECT_AFTER)
309#define lives_signal_connect_swapped(instance, detailed_signal, c_handler, data) \
310 lives_signal_connect_async(instance, detailed_signal, c_handler, data, LIVES_CONNECT_SWAPPED)
311
312#define lives_signal_sync_connect(instance, detailed_signal, c_handler, data) \
313 lives_signal_connect_sync(instance, detailed_signal, c_handler, data, 0)
314#define lives_signal_sync_connect_after(instance, detailed_signal, c_handler, data) \
315 lives_signal_connect_sync(instance, detailed_signal, c_handler, data, LIVES_CONNECT_AFTER)
316#define lives_signal_sync_connect_swapped(instance, detailed_signal, c_handler, data) \
317 lives_signal_connect_sync(instance, detailed_signal, c_handler, data, LIVES_CONNECT_SWAPPED)
318
319boolean lives_signal_handlers_sync_disconnect_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
320boolean lives_signal_handlers_sync_block_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
321boolean lives_signal_handlers_sync_unblock_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
322
323boolean lives_signal_handlers_disconnect_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
324boolean lives_signal_handlers_block_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
325boolean lives_signal_handlers_unblock_by_func(livespointer instance, LiVESGuiCallback func, livespointer data);
326#else
327ulong lives_signal_connect(LiVESWidget *, const char *signal_name, ulong funcptr, livespointer data);
328#endif
329
330boolean lives_signal_handler_block(livespointer instance, unsigned long handler_id);
331boolean lives_signal_handler_unblock(livespointer instance, unsigned long handler_id);
332
333boolean lives_signal_handler_disconnect(livespointer instance, unsigned long handler_id);
334boolean lives_signal_stop_emission_by_name(livespointer instance, const char *detailed_signal);
335
336boolean lives_grab_add(LiVESWidget *);
337boolean lives_grab_remove(LiVESWidget *);
338
339#ifdef GUI_GTK
340boolean set_css_value_direct(LiVESWidget *, LiVESWidgetState state, const char *selector,
341 const char *detail, const char *value);
342#endif
343
344boolean lives_widget_set_sensitive(LiVESWidget *, boolean state);
345boolean lives_widget_get_sensitive(LiVESWidget *);
346
347boolean lives_widget_show(LiVESWidget *);
348boolean lives_widget_show_now(LiVESWidget *);
349boolean lives_widget_show_all(LiVESWidget *);
350boolean lives_widget_show_all_from_bg(LiVESWidget *);
351boolean lives_widget_hide(LiVESWidget *);
352boolean lives_widget_destroy(LiVESWidget *);
353boolean lives_widget_realize(LiVESWidget *);
354
355boolean lives_widget_queue_draw(LiVESWidget *);
356boolean lives_widget_queue_draw_area(LiVESWidget *, int x, int y, int width, int height);
357boolean lives_widget_queue_resize(LiVESWidget *);
358boolean lives_widget_set_size_request(LiVESWidget *, int width, int height);
359boolean lives_widget_set_minimum_size(LiVESWidget *, int width, int height);
360boolean lives_widget_set_maximum_size(LiVESWidget *, int width, int height);
361boolean lives_widget_reparent(LiVESWidget *, LiVESWidget *new_parent);
362
363boolean lives_widget_is_ancestor(LiVESWidget *, LiVESWidget *ancestor);
364
365boolean lives_widget_set_app_paintable(LiVESWidget *, boolean paintable);
366boolean lives_widget_set_opacity(LiVESWidget *widget, double opacity);
367
368boolean lives_widget_has_focus(LiVESWidget *);
369boolean lives_widget_is_focus(LiVESWidget *);
370boolean lives_widget_has_default(LiVESWidget *);
371
372boolean lives_widget_set_halign(LiVESWidget *, LiVESAlign align);
373boolean lives_widget_set_valign(LiVESWidget *, LiVESAlign align);
374
375LiVESWidget *lives_event_box_new(void);
376boolean lives_event_box_set_above_child(LiVESEventBox *, boolean set);
377
378LiVESWidget *lives_label_new(const char *text);
379
380const char *lives_label_get_text(LiVESLabel *);
381boolean lives_label_set_text(LiVESLabel *, const char *text);
382
383boolean lives_label_set_markup(LiVESLabel *, const char *markup);
384
385boolean lives_label_set_mnemonic_widget(LiVESLabel *, LiVESWidget *widget);
386LiVESWidget *lives_label_get_mnemonic_widget(LiVESLabel *);
387
388boolean lives_label_set_selectable(LiVESLabel *, boolean setting);
389
390boolean lives_label_set_line_wrap(LiVESLabel *, boolean set);
391boolean lives_label_set_line_wrap_mode(LiVESLabel *, LingoWrapMode mode);
392boolean lives_label_seT_lines(LiVESLabel *, int nlines);
393boolean lives_label_set_ellipsize(LiVESLabel *, LiVESEllipsizeMode mode);
394
396
397LiVESWidget *lives_button_new(void);
398LiVESWidget *lives_button_new_with_label(const char *label);
399
400boolean lives_button_set_label(LiVESButton *, const char *label);
401const char *lives_button_get_label(LiVESButton *);
402boolean lives_button_clicked(LiVESButton *);
403
404boolean lives_button_set_relief(LiVESButton *, LiVESReliefStyle);
405boolean lives_button_set_image(LiVESButton *, LiVESWidget *image);
406boolean lives_button_set_image_from_stock(LiVESButton *, const char *stock_id);
407boolean lives_button_set_focus_on_click(LiVESButton *, boolean focus);
408boolean lives_widget_set_focus_on_click(LiVESWidget *, boolean focus);
409
411
412LiVESWidget *lives_switch_new(void);
413boolean lives_switch_set_active(LiVESSwitch *, boolean);
414boolean lives_switch_get_active(LiVESSwitch *);
415
416LiVESWidget *lives_spinner_new(void);
417boolean lives_spinner_start(LiVESSpinner *);
418boolean lives_spinner_stop(LiVESSpinner *);
419
420LiVESWidget *lives_check_button_new(void);
421LiVESWidget *lives_check_button_new_with_label(const char *label);
422
423LiVESWidget *lives_radio_button_new(LiVESSList *group);
424
425LiVESWidget *lives_spin_button_new(LiVESAdjustment *, double climb_rate, uint32_t digits);
426
427LiVESResponseType lives_dialog_run(LiVESDialog *);
428boolean lives_dialog_response(LiVESDialog *, int response);
429int lives_dialog_get_response_for_widget(LiVESDialog *, LiVESWidget *);
430
431boolean lives_widget_set_bg_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
432boolean lives_widget_set_fg_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
433boolean lives_widget_set_text_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
434boolean lives_widget_set_base_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
435
436boolean lives_widget_set_border_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
437boolean lives_widget_set_outline_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *);
438
439boolean lives_widget_set_text_size(LiVESWidget *, LiVESWidgetState state, const char *size);
440
441boolean lives_widget_get_fg_state_color(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *);
442boolean lives_widget_get_bg_state_color(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *);
443
444boolean lives_color_parse(const char *spec, LiVESWidgetColor *);
445
446LiVESWidgetColor *lives_widget_color_copy(LiVESWidgetColor *c1orNULL, const LiVESWidgetColor *c2);
447boolean lives_widget_color_equal(LiVESWidgetColor *, const LiVESWidgetColor *);
448boolean lives_widget_color_mix(LiVESWidgetColor *c1, const LiVESWidgetColor *c2, float mixval);
449
450LiVESWidget *lives_image_new(void);
451LiVESWidget *lives_image_new_from_file(const char *filename);
452LiVESWidget *lives_image_new_from_stock(const char *stock_id, LiVESIconSize size);
453
454boolean lives_image_set_from_pixbuf(LiVESImage *, LiVESPixbuf *);
455LiVESPixbuf *lives_image_get_pixbuf(LiVESImage *);
456
457boolean lives_widget_set_margin_left(LiVESWidget *, int margin);
458boolean lives_widget_set_margin_right(LiVESWidget *, int margin);
459boolean lives_widget_set_margin_top(LiVESWidget *, int margin);
460boolean lives_widget_set_margin_bottom(LiVESWidget *, int margin);
461
462boolean lives_widget_set_margin(LiVESWidget *, int margin);
463boolean lives_widget_set_padding(LiVESWidget *, int padding);
464
465LiVESWidget *lives_dialog_get_content_area(LiVESDialog *);
466LiVESWidget *lives_dialog_get_action_area(LiVESDialog *);
467
468boolean lives_dialog_add_action_widget(LiVESDialog *, LiVESWidget *, int response_id);
469
470LiVESWidget *lives_window_new(LiVESWindowType wintype);
471boolean lives_window_set_title(LiVESWindow *, const char *title);
472const char *lives_window_get_title(LiVESWindow *);
473boolean lives_window_set_transient_for(LiVESWindow *, LiVESWindow *parent);
474
475boolean lives_window_set_modal(LiVESWindow *, boolean modal);
476boolean lives_window_set_deletable(LiVESWindow *, boolean deletable);
477boolean lives_window_set_resizable(LiVESWindow *, boolean resizable);
478boolean lives_window_set_keep_below(LiVESWindow *, boolean keep_below);
479boolean lives_window_set_keep_above(LiVESWindow *, boolean keep_below);
480boolean lives_window_set_decorated(LiVESWindow *, boolean decorated);
481
482boolean lives_window_set_default_size(LiVESWindow *, int width, int height);
483
484boolean lives_window_set_monitor(LiVESWindow *window, int monnum);
485
486boolean lives_widget_get_position(LiVESWidget *, int *x, int *y);
487
488LiVESWidget *lives_window_get_focus(LiVESWindow *);
489
490boolean lives_window_get_modal(LiVESWindow *);
491boolean lives_window_set_modal(LiVESWindow *, boolean modal);
492
493boolean lives_window_move(LiVESWindow *, int x, int y);
494boolean lives_window_get_position(LiVESWindow *, int *x, int *y);
495boolean lives_window_set_position(LiVESWindow *, LiVESWindowPosition pos);
496boolean lives_window_resize(LiVESWindow *, int width, int height);
497boolean lives_window_present(LiVESWindow *);
498boolean lives_window_fullscreen(LiVESWindow *);
499boolean lives_window_unfullscreen(LiVESWindow *);
500boolean lives_window_maximize(LiVESWindow *);
501boolean lives_window_unmaximize(LiVESWindow *);
502boolean lives_window_set_hide_titlebar_when_maximized(LiVESWindow *, boolean setting);
503
504boolean lives_window_add_accel_group(LiVESWindow *, LiVESAccelGroup *group);
505boolean lives_window_remove_accel_group(LiVESWindow *, LiVESAccelGroup *group);
506boolean lives_menu_set_accel_group(LiVESMenu *, LiVESAccelGroup *group);
507
508LiVESAdjustment *lives_adjustment_new(double value, double lower, double upper,
509 double step_increment, double page_increment, double page_size);
510
511boolean lives_box_reorder_child(LiVESBox *, LiVESWidget *child, int pos);
512boolean lives_box_set_homogeneous(LiVESBox *, boolean homogeneous);
513boolean lives_box_set_spacing(LiVESBox *, int spacing);
514boolean lives_box_set_child_packing(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill,
515 uint32_t padding, LiVESPackType pack_type);
516
517boolean lives_box_pack_start(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding);
518boolean lives_box_pack_end(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding);
519
520LiVESWidget *lives_hbox_new(boolean homogeneous, int spacing);
521LiVESWidget *lives_vbox_new(boolean homogeneous, int spacing);
522
523LiVESWidget *lives_hseparator_new(void);
524LiVESWidget *lives_vseparator_new(void);
525
526LiVESWidget *lives_hbutton_box_new(void);
527LiVESWidget *lives_vbutton_box_new(void);
528
529boolean lives_button_box_set_layout(LiVESButtonBox *, LiVESButtonBoxStyle bstyle);
530boolean lives_button_box_set_button_width(LiVESButtonBox *, LiVESWidget *button, int min_width);
531
532boolean lives_button_box_set_child_non_homogeneous(LiVESButtonBox *, LiVESWidget *child, boolean set);
533
534boolean lives_button_set_border_colour(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *);
535boolean lives_button_center(LiVESWidget *);
536boolean lives_button_uncenter(LiVESWidget *, int normal_width);
537boolean lives_button_box_make_first(LiVESButtonBox *, LiVESWidget *);
538boolean lives_dialog_make_widget_first(LiVESDialog *, LiVESWidget *);
539LiVESAccelGroup *lives_dialog_add_escape(LiVESDialog *dlg, LiVESWidget *button);
540
541LiVESWidget *lives_standard_toolbar_new(void);
542
543LiVESWidget *lives_standard_hscale_new(LiVESAdjustment *);
544LiVESWidget *lives_vscale_new(LiVESAdjustment *);
545
546LiVESWidget *lives_hpaned_new(void);
547LiVESWidget *lives_vpaned_new(void);
548
549boolean lives_paned_set_position(LiVESPaned *, int pos);
550int lives_paned_get_position(LiVESPaned *);
551boolean lives_paned_pack(int where, LiVESPaned *, LiVESWidget *child, boolean resize, boolean shrink);
552
553LiVESWidget *lives_hscrollbar_new(LiVESAdjustment *);
554LiVESWidget *lives_vscrollbar_new(LiVESAdjustment *);
555
556LiVESWidget *lives_arrow_new(LiVESArrowType, LiVESShadowType);
557
558LiVESWidget *lives_alignment_new(float xalign, float yalign, float xscale, float yscale);
559boolean lives_alignment_set(LiVESWidget *, float xalign, float yalign, float xscale, float yscale);
560
561LiVESWidget *lives_expander_new(const char *label);
562LiVESWidget *lives_expander_get_label_widget(LiVESExpander *);
563boolean lives_expander_set_use_markup(LiVESExpander *, boolean val);
564boolean lives_expander_set_expanded(LiVESExpander *, boolean val);
565boolean lives_expander_set_label(LiVESExpander *, const char *text);
566boolean lives_expander_get_expanded(LiVESExpander *);
567boolean lives_label_set_width_chars(LiVESLabel *, int nchars);
568boolean lives_label_set_halignment(LiVESLabel *, float yalign);
569
570LiVESWidget *lives_combo_new(void);
571LiVESWidget *lives_combo_new_with_model(LiVESTreeModel *model);
572LiVESTreeModel *lives_combo_get_model(LiVESCombo *);
573boolean lives_combo_set_model(LiVESCombo *, LiVESTreeModel *);
574boolean lives_combo_set_focus_on_click(LiVESCombo *, boolean state);
575void lives_combo_popup(LiVESCombo *);
576boolean lives_combo_remove_all_text(LiVESCombo *);
577
578boolean lives_combo_append_text(LiVESCombo *, const char *text);
579boolean lives_combo_set_entry_text_column(LiVESCombo *, int column);
580
581const char *lives_combo_get_active_text(LiVESCombo *) WARN_UNUSED;
582boolean lives_combo_set_active_text(LiVESCombo *, const char *text);
583boolean lives_combo_set_active_index(LiVESCombo *, int index);
584int lives_combo_get_active_index(LiVESCombo *);
585boolean lives_combo_get_active_iter(LiVESCombo *, LiVESTreeIter *);
586boolean lives_combo_set_active_iter(LiVESCombo *, LiVESTreeIter *);
587boolean lives_combo_set_active_string(LiVESCombo *, const char *active_str);
588
589LiVESWidget *lives_combo_get_entry(LiVESCombo *);
590
591boolean lives_combo_populate(LiVESCombo *, LiVESList *list);
592
593LiVESWidget *lives_text_view_new(void);
594LiVESWidget *lives_text_view_new_with_buffer(LiVESTextBuffer *);
595LiVESTextBuffer *lives_text_view_get_buffer(LiVESTextView *);
596boolean lives_text_view_set_editable(LiVESTextView *, boolean setting);
597boolean lives_text_view_set_accepts_tab(LiVESTextView *, boolean setting);
598boolean lives_text_view_set_cursor_visible(LiVESTextView *, boolean setting);
599boolean lives_text_view_set_wrap_mode(LiVESTextView *, LiVESWrapMode wrapmode);
600boolean lives_text_view_set_justification(LiVESTextView *, LiVESJustification justify);
601boolean lives_text_view_set_top_margin(LiVESTextView *, int margin);
602boolean lives_text_view_set_bottom_margin(LiVESTextView *, int margin);
603
604LiVESTextBuffer *lives_text_buffer_new(void);
605char *lives_text_buffer_get_text(LiVESTextBuffer *, LiVESTextIter *start,
606 LiVESTextIter *end, boolean inc_hidden_chars);
607char *lives_text_buffer_get_all_text(LiVESTextBuffer *);
608boolean lives_text_buffer_set_text(LiVESTextBuffer *, const char *, int len);
609
610boolean lives_text_buffer_insert(LiVESTextBuffer *, LiVESTextIter *, const char *, int len);
611boolean lives_text_buffer_insert_at_cursor(LiVESTextBuffer *, const char *, int len);
612
613boolean lives_text_buffer_get_start_iter(LiVESTextBuffer *, LiVESTextIter *);
614boolean lives_text_buffer_get_end_iter(LiVESTextBuffer *, LiVESTextIter *);
615
616boolean lives_text_buffer_place_cursor(LiVESTextBuffer *, LiVESTextIter *);
617
618LiVESTextMark *lives_text_buffer_create_mark(LiVESTextBuffer *, const char *mark_name,
619 const LiVESTextIter *where, boolean left_gravity);
620boolean lives_text_buffer_delete_mark(LiVESTextBuffer *, LiVESTextMark *);
621
622boolean lives_text_buffer_delete(LiVESTextBuffer *, LiVESTextIter *start, LiVESTextIter *end);
623
624boolean lives_text_buffer_get_iter_at_mark(LiVESTextBuffer *, LiVESTextIter *, LiVESTextMark *);
625
626boolean lives_tree_model_get(LiVESTreeModel *, LiVESTreeIter *, ...);
627boolean lives_tree_model_get_iter(LiVESTreeModel *, LiVESTreeIter *, LiVESTreePath *);
628boolean lives_tree_model_get_iter_first(LiVESTreeModel *, LiVESTreeIter *);
629LiVESTreePath *lives_tree_model_get_path(LiVESTreeModel *, LiVESTreeIter *);
630boolean lives_tree_model_iter_children(LiVESTreeModel *, LiVESTreeIter *, LiVESTreeIter *parent);
631int lives_tree_model_iter_n_children(LiVESTreeModel *, LiVESTreeIter *);
632boolean lives_tree_model_iter_next(LiVESTreeModel *, LiVESTreeIter *);
633
634boolean lives_tree_path_free(LiVESTreePath *);
635LiVESTreePath *lives_tree_path_new_from_string(const char *path);
636int lives_tree_path_get_depth(LiVESTreePath *);
637int *lives_tree_path_get_indices(LiVESTreePath *);
638
639LiVESTreeStore *lives_tree_store_new(int ncols, ...);
640boolean lives_tree_store_append(LiVESTreeStore *, LiVESTreeIter *, LiVESTreeIter *parent);
641boolean lives_tree_store_prepend(LiVESTreeStore *, LiVESTreeIter *, LiVESTreeIter *parent);
642boolean lives_tree_store_set(LiVESTreeStore *, LiVESTreeIter *, ...);
643
644LiVESWidget *lives_tree_view_new(void);
645LiVESWidget *lives_tree_view_new_with_model(LiVESTreeModel *);
646boolean lives_tree_view_set_model(LiVESTreeView *, LiVESTreeModel *);
647LiVESTreeModel *lives_tree_view_get_model(LiVESTreeView *);
648int lives_tree_view_append_column(LiVESTreeView *, LiVESTreeViewColumn *);
649boolean lives_tree_view_set_headers_visible(LiVESTreeView *, boolean vis);
650LiVESAdjustment *lives_tree_view_get_hadjustment(LiVESTreeView *);
651LiVESTreeSelection *lives_tree_view_get_selection(LiVESTreeView *);
652
653LiVESTreeViewColumn *lives_tree_view_column_new_with_attributes(const char *title, LiVESCellRenderer *, ...);
654boolean lives_tree_view_column_set_sizing(LiVESTreeViewColumn *, LiVESTreeViewColumnSizing type);
655boolean lives_tree_view_column_set_fixed_width(LiVESTreeViewColumn *, int fwidth);
656
657boolean lives_tree_selection_get_selected(LiVESTreeSelection *, LiVESTreeModel **, LiVESTreeIter *);
658boolean lives_tree_selection_set_mode(LiVESTreeSelection *, LiVESSelectionMode);
659boolean lives_tree_selection_select_iter(LiVESTreeSelection *, LiVESTreeIter *);
660
661LiVESListStore *lives_list_store_new(int ncols, ...);
662boolean lives_list_store_set(LiVESListStore *, LiVESTreeIter *, ...);
663boolean lives_list_store_insert(LiVESListStore *, LiVESTreeIter *, int position);
664
665LiVESCellRenderer *lives_cell_renderer_text_new(void);
666LiVESCellRenderer *lives_cell_renderer_spin_new(void);
667LiVESCellRenderer *lives_cell_renderer_toggle_new(void);
668LiVESCellRenderer *lives_cell_renderer_pixbuf_new(void);
669
670LiVESWidget *lives_drawing_area_new(void);
671
672int lives_event_get_time(LiVESXEvent *);
673
674boolean lives_toggle_button_get_active(LiVESToggleButton *);
675boolean lives_toggle_button_set_active(LiVESToggleButton *, boolean active);
676boolean lives_toggle_button_set_mode(LiVESToggleButton *, boolean drawind);
677boolean lives_toggle_button_toggle(LiVESToggleButton *);
678
679LiVESWidget *lives_toggle_tool_button_new(void);
680boolean lives_toggle_tool_button_get_active(LiVESToggleToolButton *);
681boolean lives_toggle_tool_button_set_active(LiVESToggleToolButton *, boolean active);
682boolean lives_toggle_tool_button_toggle(LiVESToggleToolButton *);
683
684int lives_utf8_strcmpfunc(livesconstpointer, livesconstpointer, livespointer fwd);
685
686LiVESList *add_sorted_list_to_menu(LiVESMenu *, LiVESList *);
687
688LiVESSList *lives_radio_button_get_group(LiVESRadioButton *);
689LiVESSList *lives_radio_menu_item_get_group(LiVESRadioMenuItem *);
690
691LiVESWidget *lives_widget_get_parent(LiVESWidget *);
692LiVESWidget *lives_widget_get_toplevel(LiVESWidget *);
693
694LiVESXWindow *lives_widget_get_xwindow(LiVESWidget *);
695boolean lives_xwindow_set_keep_above(LiVESXWindow *, boolean setting);
696boolean lives_xwindow_invalidate_rect(LiVESXWindow *, lives_rect_t *, boolean inv_childs);
697
698boolean lives_widget_set_can_focus(LiVESWidget *, boolean state);
699boolean lives_widget_set_can_default(LiVESWidget *, boolean state);
700boolean lives_widget_set_can_focus_and_default(LiVESWidget *);
701
702boolean lives_widget_add_events(LiVESWidget *, int events);
703boolean lives_widget_set_events(LiVESWidget *, int events);
704boolean lives_widget_remove_accelerator(LiVESWidget *, LiVESAccelGroup *, uint32_t accel_key, LiVESXModifierType accel_mods);
705boolean lives_widget_get_preferred_size(LiVESWidget *, LiVESRequisition *min_size, LiVESRequisition *nat_size);
706
707boolean lives_widget_set_no_show_all(LiVESWidget *, boolean set);
708boolean lives_widget_get_no_show_all(LiVESWidget *);
709
710boolean lives_container_remove(LiVESContainer *, LiVESWidget *);
711boolean lives_container_add(LiVESContainer *, LiVESWidget *);
712boolean lives_container_set_border_width(LiVESContainer *, uint32_t width);
713
714boolean lives_container_foreach(LiVESContainer *, LiVESWidgetCallback callback, livespointer cb_data);
715LiVESList *lives_container_get_children(LiVESContainer *);
716boolean lives_container_set_focus_child(LiVESContainer *, LiVESWidget *child);
717LiVESWidget *lives_container_get_focus_child(LiVESContainer *);
718
719LiVESWidget *lives_progress_bar_new(void);
720boolean lives_progress_bar_set_fraction(LiVESProgressBar *, double fraction);
721boolean lives_progress_bar_set_pulse_step(LiVESProgressBar *, double fraction);
722boolean lives_progress_bar_pulse(LiVESProgressBar *);
723
724double lives_spin_button_get_value(LiVESSpinButton *);
725int lives_spin_button_get_value_as_int(LiVESSpinButton *);
726
727LiVESAdjustment *lives_spin_button_get_adjustment(LiVESSpinButton *);
728LiVESAdjustment *lives_spin_button_set_adjustment(LiVESSpinButton *, LiVESAdjustment *adj);
729
730boolean lives_spin_button_set_value(LiVESSpinButton *, double value);
731boolean lives_spin_button_set_range(LiVESSpinButton *, double min, double max);
732
733boolean lives_spin_button_set_wrap(LiVESSpinButton *, boolean wrap);
734
735boolean lives_spin_button_set_step_increment(LiVESSpinButton *button, double step_increment);
736boolean lives_spin_button_set_snap_to_ticks(LiVESSpinButton *, boolean snap);
737boolean lives_spin_button_set_snap_to_multiples(LiVESSpinButton *, double mult);
738
739boolean lives_spin_button_set_digits(LiVESSpinButton *, uint32_t digits);
740
741boolean lives_spin_button_update(LiVESSpinButton *);
742
743LiVESWidget *lives_color_button_new_with_color(const LiVESWidgetColor *);
744LiVESWidgetColor *lives_color_button_get_color(LiVESColorButton *, LiVESWidgetColor *);
745boolean lives_color_button_set_color(LiVESColorButton *, const LiVESWidgetColor *);
746boolean lives_color_button_set_alpha(LiVESColorButton *, int16_t alpha);
747int16_t lives_color_button_get_alpha(LiVESColorButton *);
748boolean lives_color_button_set_title(LiVESColorButton *, const char *title);
749boolean lives_color_button_set_use_alpha(LiVESColorButton *, boolean use_alpha);
750
751LiVESToolItem *lives_tool_button_new(LiVESWidget *icon_widget, const char *label);
752LiVESToolItem *lives_tool_item_new(void);
753LiVESToolItem *lives_separator_tool_item_new(void);
754boolean lives_tool_button_set_icon_widget(LiVESToolButton *, LiVESWidget *icon);
755boolean lives_tool_button_set_label_widget(LiVESToolButton *, LiVESWidget *label);
756boolean lives_tool_button_set_use_underline(LiVESToolButton *, boolean use_underline);
757
758LiVESWidget *lives_message_dialog_new(LiVESWindow *parent, LiVESDialogFlags flags, LiVESMessageType type,
759 LiVESButtonsType buttons,
760 const char *msg_fmt, ...);
761
762double lives_ruler_get_value(LiVESRuler *);
763double lives_ruler_set_value(LiVESRuler *, double value);
764
765boolean lives_ruler_set_range(LiVESRuler *, double lower, double upper, double position, double max_size);
766double lives_ruler_set_upper(LiVESRuler *, double upper);
767double lives_ruler_set_lower(LiVESRuler *, double lower);
768
769LiVESWidget *lives_toolbar_new(void);
770boolean lives_toolbar_insert(LiVESToolbar *, LiVESToolItem *, int pos);
771boolean lives_toolbar_set_show_arrow(LiVESToolbar *, boolean show);
772LiVESIconSize lives_toolbar_get_icon_size(LiVESToolbar *);
773boolean lives_toolbar_set_icon_size(LiVESToolbar *, LiVESIconSize icon_size);
774boolean lives_toolbar_set_style(LiVESToolbar *, LiVESToolbarStyle style);
775
776int lives_widget_get_allocation_x(LiVESWidget *);
777int lives_widget_get_allocation_y(LiVESWidget *);
778int lives_widget_get_allocation_width(LiVESWidget *);
779int lives_widget_get_allocation_height(LiVESWidget *);
780
781boolean lives_widget_set_state(LiVESWidget *, LiVESWidgetState state);
782LiVESWidgetState lives_widget_get_state(LiVESWidget *widget);
783
784LiVESWidget *lives_bin_get_child(LiVESBin *);
785
786boolean lives_widget_is_sensitive(LiVESWidget *);
787boolean lives_widget_is_visible(LiVESWidget *);
788boolean lives_widget_is_realized(LiVESWidget *);
789
790double lives_adjustment_get_upper(LiVESAdjustment *);
791double lives_adjustment_get_lower(LiVESAdjustment *);
792double lives_adjustment_get_page_size(LiVESAdjustment *);
793double lives_adjustment_get_step_increment(LiVESAdjustment *);
794double lives_adjustment_get_value(LiVESAdjustment *);
795
796boolean lives_adjustment_set_upper(LiVESAdjustment *, double upper);
797boolean lives_adjustment_set_lower(LiVESAdjustment *, double lower);
798boolean lives_adjustment_set_page_size(LiVESAdjustment *, double page_size);
799boolean lives_adjustment_set_step_increment(LiVESAdjustment *, double step_increment);
800boolean lives_adjustment_set_value(LiVESAdjustment *, double value);
801
802boolean lives_adjustment_clamp_page(LiVESAdjustment *, double lower, double upper);
803
804LiVESAdjustment *lives_range_get_adjustment(LiVESRange *);
805boolean lives_range_set_value(LiVESRange *, double value);
806boolean lives_range_set_range(LiVESRange *, double min, double max);
807boolean lives_range_set_increments(LiVESRange *, double step, double page);
808boolean lives_range_set_inverted(LiVESRange *, boolean invert);
809
810double lives_range_get_value(LiVESRange *);
811
812boolean lives_editable_set_editable(LiVESEditable *, boolean editable);
813boolean lives_editable_get_editable(LiVESEditable *);
814boolean lives_editable_select_region(LiVESEditable *, int start_pos, int end_pos);
815
816LiVESWidget *lives_entry_new(void);
817boolean lives_entry_set_editable(LiVESEntry *, boolean editable);
818boolean lives_entry_get_editable(LiVESEntry *);
819const char *lives_entry_get_text(LiVESEntry *);
820boolean lives_entry_set_text(LiVESEntry *, const char *text);
821boolean lives_entry_set_width_chars(LiVESEntry *, int nchars);
822boolean lives_entry_set_max_length(LiVESEntry *, int len);
823boolean lives_entry_set_activates_default(LiVESEntry *, boolean act);
824boolean lives_entry_get_activates_default(LiVESEntry *);
825boolean lives_entry_set_visibility(LiVESEntry *, boolean vis);
826boolean lives_entry_set_has_frame(LiVESEntry *, boolean has);
827boolean lives_entry_set_alignment(LiVESEntry *, float align);
828
829double lives_scale_button_get_value(LiVESScaleButton *);
830boolean lives_scale_button_set_value(LiVESScaleButton *, double value);
831
832LiVESWidget *lives_table_new(uint32_t rows, uint32_t cols, boolean homogeneous);
833boolean lives_table_set_row_spacings(LiVESTable *, uint32_t spacing);
834boolean lives_table_set_col_spacings(LiVESTable *, uint32_t spacing);
835boolean lives_table_resize(LiVESTable *, uint32_t rows, uint32_t cols);
836boolean lives_table_attach(LiVESTable *, LiVESWidget *child, uint32_t left, uint32_t right,
837 uint32_t top, uint32_t bottom, LiVESAttachOptions xoptions, LiVESAttachOptions yoptions,
838 uint32_t xpad, uint32_t ypad);
839
840boolean lives_table_set_column_homogeneous(LiVESTable *, boolean homogeneous);
841boolean lives_table_set_row_homogeneous(LiVESTable *, boolean homogeneous);
842
843#if LIVES_TABLE_IS_GRID
844LiVESWidget *lives_grid_new(void);
845boolean lives_grid_set_row_spacing(LiVESGrid *, uint32_t spacing);
846boolean lives_grid_set_column_spacing(LiVESGrid *, uint32_t spacing);
847boolean lives_grid_attach_next_to(LiVESGrid *, LiVESWidget *child, LiVESWidget *sibling,
848 LiVESPositionType side, int width, int height);
849
850boolean lives_grid_insert_row(LiVESGrid *, int posn);
851boolean lives_grid_remove_row(LiVESGrid *, int posn);
852#endif
853
854#if GTK_CHECK_VERSION(3,2,0)
855char *lives_font_chooser_get_font(LiVESFontChooser *);
856boolean lives_font_chooser_set_font(LiVESFontChooser *, const char *fontname);
857LingoFontDescription *lives_font_chooser_get_font_desc(LiVESFontChooser *);
858boolean lives_font_chooser_set_font_desc(LiVESFontChooser *, LingoFontDescription *lfd);
859#endif
860
861LiVESWidget *lives_frame_new(const char *label);
862boolean lives_frame_set_label(LiVESFrame *, const char *label);
863boolean lives_frame_set_label_align(LiVESFrame *, float xalign, float yalign);
864boolean lives_frame_set_label_widget(LiVESFrame *, LiVESWidget *);
865LiVESWidget *lives_frame_get_label_widget(LiVESFrame *);
866boolean lives_frame_set_shadow_type(LiVESFrame *, LiVESShadowType);
867
868LiVESWidget *lives_notebook_new(void);
869LiVESWidget *lives_notebook_get_nth_page(LiVESNotebook *, int pagenum);
870int lives_notebook_get_current_page(LiVESNotebook *);
871boolean lives_notebook_set_current_page(LiVESNotebook *, int pagenum);
872boolean lives_notebook_set_tab_label(LiVESNotebook *, LiVESWidget *child, LiVESWidget *tablabel);
873
874LiVESWidget *lives_menu_new(void);
875LiVESWidget *lives_menu_bar_new(void);
876
877boolean lives_menu_popup(LiVESMenu *, LiVESXEventButton *);
878
879boolean lives_menu_reorder_child(LiVESMenu *, LiVESWidget *, int pos);
880boolean lives_menu_detach(LiVESMenu *);
881
882boolean lives_menu_shell_insert(LiVESMenuShell *, LiVESWidget *child, int pos);
883boolean lives_menu_shell_prepend(LiVESMenuShell *, LiVESWidget *child);
884boolean lives_menu_shell_append(LiVESMenuShell *, LiVESWidget *child);
885
886LiVESWidget *lives_menu_item_new(void);
887LiVESWidget *lives_menu_item_new_with_label(const char *label);
888
889boolean lives_menu_item_set_accel_path(LiVESMenuItem *, const char *path);
890
891LiVESWidget *lives_check_menu_item_new_with_label(const char *label);
892boolean lives_check_menu_item_set_draw_as_radio(LiVESCheckMenuItem *, boolean setting);
893
894LiVESWidget *lives_radio_menu_item_new_with_label(LiVESSList *group, const char *label);
895LiVESWidget *lives_image_menu_item_new_with_label(const char *label);
896LiVESWidget *lives_image_menu_item_new_from_stock(const char *stock_id, LiVESAccelGroup *accel_group);
897
898LiVESToolItem *lives_menu_tool_button_new(LiVESWidget *icon, const char *label);
899boolean lives_menu_tool_button_set_menu(LiVESMenuToolButton *, LiVESWidget *menu);
900
901#if !GTK_CHECK_VERSION(3, 10, 0)
902
903boolean lives_image_menu_item_set_image(LiVESImageMenuItem *, LiVESWidget *image);
904
905#endif
906
907boolean lives_menu_item_set_submenu(LiVESMenuItem *, LiVESWidget *);
908LiVESWidget *lives_menu_item_get_submenu(LiVESMenuItem *);
909
910boolean lives_menu_item_activate(LiVESMenuItem *);
911
912boolean lives_check_menu_item_set_active(LiVESCheckMenuItem *, boolean state);
913boolean lives_check_menu_item_get_active(LiVESCheckMenuItem *);
914
915boolean lives_menu_set_title(LiVESMenu *, const char *title);
916
917int lives_display_get_n_screens(LiVESXDisplay *);
918
919char *lives_file_chooser_get_filename(LiVESFileChooser *);
920LiVESSList *lives_file_chooser_get_filenames(LiVESFileChooser *);
921
922boolean lives_widget_grab_focus(LiVESWidget *);
923boolean lives_widget_grab_default(LiVESWidget *);
924
925LiVESWidget *lives_widget_set_tooltip_text(LiVESWidget *, const char *text);
926
927boolean lives_widget_process_updates(LiVESWidget *);
928
929boolean lives_xwindow_get_origin(LiVESXWindow *, int *posx, int *posy);
930boolean lives_xwindow_get_frame_extents(LiVESXWindow *, lives_rect_t *);
931
932LiVESAccelGroup *lives_accel_group_new(void);
933boolean lives_accel_group_connect(LiVESAccelGroup *, uint32_t key, LiVESXModifierType mod, LiVESAccelFlags flags,
934 LiVESWidgetClosure *closure);
935boolean lives_accel_group_disconnect(LiVESAccelGroup *, LiVESWidgetClosure *closure);
936boolean lives_accel_groups_activate(LiVESWidgetObject *object, uint32_t key, LiVESXModifierType mod);
937
938boolean lives_widget_add_accelerator(LiVESWidget *, const char *accel_signal, LiVESAccelGroup *accel_group,
939 uint32_t accel_key, LiVESXModifierType accel_mods, LiVESAccelFlags accel_flags);
940
941boolean lives_widget_get_pointer(LiVESXDevice *, LiVESWidget *, int *x, int *y);
942boolean lives_widget_get_modmask(LiVESXDevice *, LiVESWidget *, LiVESXModifierType *modmask);
943LiVESXWindow *lives_display_get_window_at_pointer(LiVESXDevice *, LiVESXDisplay *, int *win_x, int *win_y);
944boolean lives_display_get_pointer(LiVESXDevice *, LiVESXDisplay *, LiVESXScreen **, int *x, int *y, LiVESXModifierType *mask);
945boolean lives_display_warp_pointer(LiVESXDevice *, LiVESXDisplay *, LiVESXScreen *, int x, int y);
946
947LiVESXDisplay *lives_widget_get_display(LiVESWidget *);
949
950uint64_t lives_widget_get_xwinid(LiVESWidget *, const char *failure_msg);
951LiVESWindow *lives_widget_get_window(LiVESWidget *);
952
953LiVESWidget *lives_scrolled_window_new(LiVESAdjustment *hadj, LiVESAdjustment *vadj);
954LiVESAdjustment *lives_scrolled_window_get_hadjustment(LiVESScrolledWindow *);
955LiVESAdjustment *lives_scrolled_window_get_vadjustment(LiVESScrolledWindow *);
956
957boolean lives_scrolled_window_set_policy(LiVESScrolledWindow *, LiVESPolicyType hpolicy, LiVESPolicyType vpolicy);
958boolean lives_scrolled_window_add_with_viewport(LiVESScrolledWindow *, LiVESWidget *child);
959
960boolean lives_scrolled_window_set_min_content_height(LiVESScrolledWindow *, int height);
961boolean lives_scrolled_window_set_min_content_width(LiVESScrolledWindow *, int width);
962
963boolean lives_xwindow_raise(LiVESXWindow *);
964boolean lives_xwindow_set_cursor(LiVESXWindow *, LiVESXCursor *);
965
966uint32_t lives_timer_add(uint32_t interval, LiVESWidgetSourceFunc function, livespointer data);
967boolean lives_timer_remove(uint32_t timer);
968uint32_t lives_idle_add(LiVESWidgetSourceFunc function, livespointer data);
969
970boolean lives_source_remove(uint32_t handle);
971
973
974int lives_screen_get_width(LiVESXScreen *);
975int lives_screen_get_height(LiVESXScreen *);
976
977boolean lives_scale_set_draw_value(LiVESScale *, boolean draw_value);
978boolean lives_scale_set_value_pos(LiVESScale *, LiVESPositionType ptype);
979boolean lives_scale_set_digits(LiVESScale *, int digits);
980
981boolean lives_has_toplevel_focus(LiVESWidget *window);
982
983// optional (return TRUE if implemented)
984
985boolean lives_dialog_set_has_separator(LiVESDialog *, boolean has);
986boolean lives_widget_set_hexpand(LiVESWidget *, boolean state);
987boolean lives_widget_set_vexpand(LiVESWidget *, boolean state);
988boolean lives_image_menu_item_set_always_show_image(LiVESImageMenuItem *, boolean show);
989boolean lives_scale_button_set_orientation(LiVESScaleButton *, LiVESOrientation orientation);
991
992// compound functions (composed of basic functions)
993boolean lives_widget_set_pack_type(LiVESBox *, LiVESWidget *, LiVESPackType);
994
995void lives_label_set_hpadding(LiVESLabel *, int pad);
996
997LiVESWidget *align_horizontal_with(LiVESWidget *thingtoadd, LiVESWidget *thingtoalignwith);
998
999boolean lives_box_pack_first(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding);
1000
1001// this is not the same as a GtkLayout !!
1002LiVESWidget *lives_layout_new(LiVESBox *);
1003LiVESWidget *lives_layout_hbox_new(LiVESLayout *);
1004LiVESWidget *lives_layout_row_new(LiVESLayout *);
1005int lives_layout_add_row(LiVESLayout *);
1006LiVESWidget *lives_layout_pack(LiVESHBox *, LiVESWidget *);
1007LiVESWidget *lives_layout_add_label(LiVESLayout *, const char *text, boolean horizontal);
1008void lives_layout_label_set_text(LiVESLabel *, const char *text);
1009LiVESWidget *lives_layout_add_fill(LiVESLayout *, boolean horizontal);
1010LiVESWidget *lives_layout_add_separator(LiVESLayout *, boolean horizontal);
1011LiVESWidget *lives_layout_expansion_row_new(LiVESLayout *, LiVESWidget *widget);
1012
1013boolean lives_button_grab_default_special(LiVESWidget *);
1014boolean lives_button_ungrab_default_special(LiVESWidget *);
1015
1016#define BUTTON_DIM_VAL (0.4 * 65535.) // fg / bg ratio for dimmed buttons (BUTTON_DIM_VAL/65535) (lower is dimmer)
1017
1018#define LOCK_BUTTON_WIDTH 24
1019#define LOCK_BUTTON_HEIGHT 24
1020
1021boolean show_warn_image(LiVESWidget *, const char *text);
1022boolean hide_warn_image(LiVESWidget *);
1023
1024boolean is_standard_widget(LiVESWidget *);
1025
1026boolean lives_widget_set_frozen(LiVESWidget *, boolean state);
1027
1028#ifdef USE_SPECIAL_BUTTONS
1029void sbutt_render(LiVESWidget *, LiVESWidgetState state, livespointer user_data);
1030
1031LiVESWidget *lives_standard_button_new(int width, int height);
1032LiVESWidget *lives_standard_button_new_with_label(const char *labeltext, int width, int height);
1033boolean lives_standard_button_set_label(LiVESButton *, const char *label);
1034const char *lives_standard_button_get_label(LiVESButton *);
1035boolean lives_standard_button_set_image(LiVESButton *, LiVESWidget *image);
1036
1037LiVESWidget *lives_standard_button_new_full(const char *label, int width, int height, LiVESBox *,
1038 boolean fake_default, const char *ttips);
1039LiVESWidget *lives_standard_button_new_from_stock_full(const char *stock_id, const char *label,
1040 int width, int height, LiVESBox *, boolean fake_default, const char *ttips);
1041#else
1042#define lives_standard_button_new(w, h) lives_button_new()
1043#define lives_standard_button_new_with_label(l, w, h) lives_button_new_with_label(l)
1044#define lives_standard_button_set_label(b, l); lives_button_set_label(b, l)
1045#define lives_standard_button_get_label(b) lives_button_get_label(b)
1046#define lives_standard_button_set_image(b, i) lives_button_set_image(b, i)
1047#endif
1048
1049LiVESWidget *lives_standard_button_new_from_stock(const char *stock_id, const char *label,
1050 int width, int height);
1051LiVESWidget *lives_standard_menu_new(void);
1052
1053LiVESWidget *lives_standard_menu_item_new(void);
1054LiVESWidget *lives_standard_menu_item_new_with_label(const char *labeltext);
1055
1056LiVESWidget *lives_standard_image_menu_item_new_with_label(const char *labeltext);
1057LiVESWidget *lives_standard_image_menu_item_new_from_stock(const char *stock_id, LiVESAccelGroup *accel_group);
1058
1059LiVESWidget *lives_standard_radio_menu_item_new_with_label(LiVESSList *group, const char *labeltext);
1060
1061LiVESWidget *lives_standard_check_menu_item_new_with_label(const char *labeltext, boolean active);
1062
1063LiVESWidget *lives_standard_check_menu_item_new_for_var(const char *ltext, boolean *var, boolean invert);
1064
1065LiVESWidget *lives_standard_switch_new(const char *labeltext, boolean active, LiVESBox *,
1066 const char *tooltip);
1067
1068LiVESWidget *lives_standard_vpaned_new(void);
1069LiVESWidget *lives_standard_hpaned_new(void);
1070
1071LiVESWidget *lives_standard_notebook_new(const LiVESWidgetColor *bg_color, const LiVESWidgetColor *act_color);
1072
1073LiVESWidget *lives_standard_label_new(const char *labeltext);
1074LiVESWidget *lives_standard_label_new_with_mnemonic_widget(const char *text, LiVESWidget *mnemonic_widget);
1075LiVESWidget *lives_standard_label_new_with_tooltips(const char *text, LiVESBox *box,
1076 const char *tips);
1077LiVESWidget *lives_standard_formatted_label_new(const char *text);
1078
1079char *lives_big_and_bold(const char *fmt, ...);
1080
1081void lives_label_chomp(LiVESLabel *);
1082
1083LiVESWidget *lives_standard_drawing_area_new(LiVESGuiCallback, lives_painter_surface_t **);
1084
1085LiVESWidget *lives_standard_frame_new(const char *labeltext, float xalign, boolean invisible_outline);
1086
1087LiVESWidget *lives_standard_check_button_new(const char *labeltext, boolean active, LiVESBox *, const char *tooltip);
1088LiVESWidget *lives_glowing_check_button_new(const char *labeltext, LiVESBox *, const char *tooltip, boolean *togglevalue);
1089LiVESWidget *lives_standard_radio_button_new(const char *labeltext, LiVESSList **rbgroup,
1090 LiVESBox *, const char *tooltip);
1091LiVESWidget *lives_standard_spin_button_new(const char *labeltext, double val, double min,
1092 double max, double step, double page, int dp, LiVESBox *,
1093 const char *tooltip);
1094LiVESWidget *lives_standard_combo_new(const char *labeltext, LiVESList *list, LiVESBox *, const char *tooltip);
1095
1096LiVESWidget *lives_standard_combo_new_with_model(LiVESTreeModel *, LiVESBox *);
1097
1098LiVESWidget *lives_standard_entry_new(const char *labeltext, const char *txt, int dispwidth, int maxchars, LiVESBox *,
1099 const char *tooltip);
1100
1101LiVESWidget *lives_standard_direntry_new(const char *labeltext, const char *txt, int dispwidth, int maxchars, LiVESBox *,
1102 const char *tooltip);
1103
1104LiVESWidget *lives_standard_fileentry_new(const char *labeltext, const char *txt, const char *defdir, int dispwidth,
1105 int maxchars,
1106 LiVESBox *box, const char *tooltip);
1107
1108LiVESWidget *lives_standard_progress_bar_new(void);
1109
1110LiVESWidget *lives_standard_font_chooser_new(void);
1111
1112LiVESToolItem *lives_menu_tool_button_new(LiVESWidget *icon, const char *label);
1113
1114LiVESWidget *lives_standard_lock_button_new(boolean is_locked, int width, int height,
1115 const char *label, const char *tooltip);
1116
1117boolean lives_lock_button_get_locked(LiVESButton *);
1118boolean lives_lock_button_toggle(LiVESButton *);
1119
1120boolean lives_dialog_set_button_layout(LiVESDialog *, LiVESButtonBoxStyle bstyle);
1121
1122LiVESWidget *lives_standard_dialog_new(const char *title, boolean add_std_buttons, int width, int height);
1123
1124LiVESWidget *lives_dialog_add_button_from_stock(LiVESDialog *, const char *stock_id, const char *label, int response_id);
1125
1126LiVESWidget *lives_standard_hruler_new(void);
1127
1128LiVESWidget *lives_standard_scrolled_window_new(int width, int height, LiVESWidget *child);
1129
1130double lives_scrolled_window_scroll_to(LiVESScrolledWindow *, LiVESPositionType pos);
1131
1132LiVESWidget *lives_standard_expander_new(const char *labeltext, LiVESBox *parent, LiVESWidget *child);
1133
1134LiVESWidget *lives_volume_button_new(LiVESOrientation orientation, LiVESAdjustment *, double volume);
1135
1136LiVESWidget *lives_standard_file_button_new(boolean is_dir, const char *def_dir);
1137
1138LiVESWidget *lives_standard_color_button_new(LiVESBox *parent, const char *name, boolean use_alpha, lives_colRGBA64_t *rgba,
1139 LiVESWidget **sb_red, LiVESWidget **sb_green, LiVESWidget **sb_blue, LiVESWidget **sb_alpha);
1140
1141LiVESWidget *lives_standard_text_view_new(const char *text, LiVESTextBuffer *tbuff);
1142
1143LiVESWidget *lives_standard_table_new(uint32_t rows, uint32_t cols, boolean homogeneous);
1144
1145LiVESToolItem *lives_standard_menu_tool_button_new(LiVESWidget *icon, const char *label);
1146
1147LiVESXCursor *lives_cursor_new_from_pixbuf(LiVESXDisplay *, LiVESPixbuf *, int x, int y);
1148
1149void set_button_image_border_colour(LiVESButton *, LiVESWidgetState state, LiVESWidgetColor *);
1150
1151// util functions
1152
1153// THEME COLOURS (will be done more logically in the future)
1154void lives_widget_apply_theme(LiVESWidget *, LiVESWidgetState state); // normal theme colours
1155void lives_widget_apply_theme_dimmed(LiVESWidget *, LiVESWidgetState state, int dimval); // dimmed normal theme
1156void set_child_dimmed_colour(LiVESWidget *, int dim); // dimmed normal theme for children (insensitive state only)
1157
1158// if set_all, set the widget itself (labels always set_all; buttons are ignored if set_all is FALSE)
1159void set_child_colour(LiVESWidget *, boolean set_all); // normal theme, sensitive and insensitive
1160
1161void lives_widget_apply_theme2(LiVESWidget *, LiVESWidgetState state, boolean set_fg); // menu and bars colours
1162void lives_widget_apply_theme_dimmed2(LiVESWidget *, LiVESWidgetState state, int dimval);
1163void set_child_dimmed_colour2(LiVESWidget *, int dim); // dimmed m & b for children (insensitive state only)
1164
1165// like set_child_colour, but with menu and bars colours
1166void set_child_alt_colour(LiVESWidget *, boolean set_all);
1167void set_child_alt_colour_prelight(LiVESWidget *);
1168
1169void lives_widget_apply_theme3(LiVESWidget *, LiVESWidgetState state); // info base/text
1170void set_child_colour3(LiVESWidget *, boolean set_all);
1171
1172boolean lives_widget_set_sensitive_with(LiVESWidget *, LiVESWidget *other);
1173boolean lives_widget_set_show_hide_with(LiVESWidget *, LiVESWidget *other);
1174
1175boolean lives_image_scale(LiVESImage *, int width, int height, LiVESInterpType interp_type);
1176
1177LiVESPixbuf *lives_pixbuf_new_from_stock_at_size(const char *stock_id, LiVESIconSize size, int x, int y);
1178LiVESWidget *lives_image_new_from_stock_at_size(const char *stock_id, LiVESIconSize size, int x, int y);
1179
1180boolean lives_widget_queue_draw_if_visible(LiVESWidget *);
1181boolean lives_widget_queue_draw_and_update(LiVESWidget *);
1182
1183boolean global_recent_manager_add(const char *file_name);
1184
1185boolean lives_cursor_unref(LiVESXCursor *);
1186
1187boolean lives_tree_store_find_iter(LiVESTreeStore *, int col, const char *val, LiVESTreeIter *existing, LiVESTreeIter *newiter);
1188
1189boolean lives_widget_context_update(void);
1190
1191LiVESWidget *lives_menu_add_separator(LiVESMenu *);
1192
1193void lives_menu_item_set_text(LiVESWidget *, const char *text, boolean use_mnemonic);
1194const char *lives_menu_item_get_text(LiVESWidget *);
1195
1196boolean lives_widget_get_fg_color(LiVESWidget *, LiVESWidgetColor *);
1197
1198boolean lives_widget_set_show_hide_parent(LiVESWidget *);
1199
1200boolean lives_window_center(LiVESWindow *);
1201boolean lives_window_uncenter(LiVESWindow *);
1202
1203boolean lives_entry_set_completion_from_list(LiVESEntry *, LiVESList *);
1204
1205boolean lives_widget_unparent(LiVESWidget *);
1206
1207void lives_tooltips_copy(LiVESWidget *dest, LiVESWidget *source);
1208
1209char *lives_text_view_get_text(LiVESTextView *);
1210boolean lives_text_view_set_text(LiVESTextView *, const char *text, int len);
1211
1212boolean lives_text_buffer_insert_at_end(LiVESTextBuffer *, const char *text);
1213
1214void lives_general_button_clicked(LiVESButton *, livespointer data_to_free);
1215
1216boolean lives_spin_button_configure(LiVESSpinButton *, double value, double lower, double upper,
1217 double step_increment, double page_increment);
1218
1219size_t calc_spin_button_width(double min, double max, int dp);
1220
1221double lives_spin_button_get_snapval(LiVESSpinButton *, double val);
1222
1223int get_box_child_index(LiVESBox *, LiVESWidget *child);
1224
1225boolean lives_box_pack_top(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding);
1226//lives_box_reorder_child(LIVES_BOX(mt->fx_list_vbox), xeventbox, 0);
1227
1228boolean lives_container_child_set_shrinkable(LiVESContainer *, LiVESWidget *child, boolean val);
1229
1230boolean set_submenu_colours(LiVESMenu *, LiVESWidgetColor *colf, LiVESWidgetColor *colb);
1231
1233boolean toggle_sets_sensitive(LiVESToggleButton *, LiVESWidget *, boolean invert);
1234boolean toggle_toolbutton_sets_sensitive(LiVESToggleToolButton *, LiVESWidget *, boolean invert);
1235boolean menu_sets_sensitive(LiVESCheckMenuItem *, LiVESWidget *, boolean invert);
1236boolean toggle_sets_visible(LiVESToggleButton *, LiVESWidget *, boolean invert);
1237boolean toggle_toolbutton_sets_visible(LiVESToggleToolButton *, LiVESWidget *, boolean invert);
1238boolean menu_sets_visible(LiVESCheckMenuItem *, LiVESWidget *, boolean invert);
1239boolean toggle_sets_sensitive_cond(LiVESToggleButton *, LiVESWidget *,
1240 livespointer condsens, livespointer condinsens, boolean invert);
1241boolean toggle_toggles_var(LiVESToggleButton *, boolean *var, boolean invert);
1242
1243// callbacks
1244boolean label_act_toggle(LiVESWidget *, LiVESXEventButton *, LiVESWidget *);
1245boolean widget_act_toggle(LiVESWidget *, LiVESWidget *);
1246boolean widget_inact_toggle(LiVESWidget *, LiVESWidget *);
1247
1248boolean toggle_button_toggle(LiVESToggleButton *);
1249
1250boolean label_act_lockbutton(LiVESWidget *, LiVESXEventButton *, LiVESButton *);
1251
1252void funkify_dialog(LiVESWidget *dialog);
1254void lives_cool_toggled(LiVESWidget *tbutton, livespointer);
1255
1256boolean unhide_cursor(LiVESXWindow *);
1257void hide_cursor(LiVESXWindow *);
1258
1259boolean set_tooltips_state(LiVESWidget *, boolean state);
1260
1261boolean get_border_size(LiVESWidget *win, int *bx, int *by);
1262boolean lives_window_get_inner_size(LiVESWindow *, int *x, int *y);
1263
1264LiVESWidget *lives_standard_hseparator_new(void);
1265LiVESWidget *lives_standard_vseparator_new(void);
1266
1267LiVESWidget *add_hsep_to_box(LiVESBox *);
1268LiVESWidget *add_vsep_to_box(LiVESBox *);
1269
1270LiVESWidget *add_fill_to_box(LiVESBox *);
1271LiVESWidget *add_spring_to_box(LiVESBox *, int min);
1272
1273LiVESWidget *lives_toolbar_insert_space(LiVESToolbar *);
1274LiVESWidget *lives_toolbar_insert_label(LiVESToolbar *, const char *labeltext, LiVESWidget *actwidg);
1275LiVESWidget *lives_standard_tool_button_new(LiVESToolbar *, GtkWidget *icon_widget, const char *label, const char *tooltips);
1276boolean lives_tool_button_set_border_color(LiVESWidget *button, LiVESWidgetState state, LiVESWidgetColor *);
1277LiVESWidget *lives_glowing_tool_button_new(const char *labeltext, LiVESToolbar *tbar, const char *tooltip,
1278 boolean *togglevalue);
1279
1280boolean lives_accel_path_disconnect(LiVESAccelGroup *, const char *path);
1281
1282boolean lives_widget_get_mod_mask(LiVESWidget *, LiVESXModifierType *modmask);
1283
1284boolean lives_widget_nullify_with(LiVESWidget *, void **);
1285boolean lives_widget_destroy_with(LiVESWidget *, LiVESWidget *dieplease);
1286
1287void *lives_fg_run(weed_plant_t *lpt, void *retval);
1288
1289#define LIVES_JUSTIFY_DEFAULT (def_widget_opts.justify)
1290
1291typedef enum {
1300
1307
1308void lives_set_cursor_style(lives_cursor_t cstyle, LiVESWidget *);
1309
1310typedef int lives_expand_t;
1311#define LIVES_EXPAND_NONE 0
1312#define LIVES_EXPAND_DEFAULT_HEIGHT 1
1313#define LIVES_EXPAND_DEFAULT_WIDTH 2
1314#define LIVES_EXPAND_DEFAULT (LIVES_EXPAND_DEFAULT_HEIGHT | LIVES_EXPAND_DEFAULT_WIDTH)
1315#define LIVES_EXPAND_EXTRA_HEIGHT 4
1316#define LIVES_EXPAND_EXTRA_WIDTH 8
1317#define LIVES_EXPAND_EXTRA (LIVES_EXPAND_EXTRA_HEIGHT | LIVES_EXPAND_EXTRA_WIDTH)
1318
1319#define LIVES_SHOULD_EXPAND (widget_opts.expand != LIVES_EXPAND_NONE)
1320#define LIVES_SHOULD_EXPAND_DEFAULT (widget_opts.expand == LIVES_EXPAND_DEFAULT)
1321#define LIVES_SHOULD_EXPAND_EXTRA (widget_opts.expand == LIVES_EXPAND_EXTRA)
1322
1323#define LIVES_SHOULD_EXPAND_WIDTH (widget_opts.expand & (LIVES_EXPAND_DEFAULT_WIDTH | LIVES_EXPAND_EXTRA_WIDTH))
1324#define LIVES_SHOULD_EXPAND_HEIGHT (widget_opts.expand & (LIVES_EXPAND_DEFAULT_HEIGHT | LIVES_EXPAND_EXTRA_HEIGHT))
1325
1326#define LIVES_SHOULD_EXPAND_EXTRA_WIDTH (widget_opts.expand & LIVES_EXPAND_EXTRA_WIDTH)
1327#define LIVES_SHOULD_EXPAND_EXTRA_HEIGHT (widget_opts.expand & LIVES_EXPAND_EXTRA_HEIGHT)
1328
1329#define LIVES_SHOULD_EXPAND_DEFAULT_WIDTH (LIVES_SHOULD_EXPAND_WIDTH && !LIVES_SHOULD_EXPAND_EXTRA_WIDTH)
1330#define LIVES_SHOULD_EXPAND_DEFAULT_HEIGHT (LIVES_SHOULD_EXPAND_HEIGHT && !LIVES_SHOULD_EXPAND_EXTRA_HEIGHT)
1331
1332#define LIVES_SHOULD_EXPAND_DEFAULT_FOR(box) ((LIVES_IS_HBOX(box) && LIVES_SHOULD_EXPAND_DEFAULT_WIDTH) || (LIVES_IS_VBOX(box) && LIVES_EXPAND_DEFAULT_HEIGHT))
1333
1334#define LIVES_SHOULD_EXPAND_EXTRA_FOR(box) ((LIVES_IS_HBOX(box) && LIVES_SHOULD_EXPAND_EXTRA_WIDTH) || (LIVES_IS_VBOX(box) && LIVES_SHOULD_EXPAND_EXTRA_HEIGHT))
1335
1336#define LIVES_SHOULD_EXPAND_FOR(box) (LIVES_SHOULD_EXPAND_DEFAULT_FOR(box) || LIVES_SHOULD_EXPAND_EXTRA_FOR(box))
1337
1338LiVESList *get_textsizes_list(void);
1339const char *lives_textsize_to_string(int val);
1340
1341// custom stock images
1342#define LIVES_LIVES_STOCK_AUDIO "lives-audio"
1343#define LIVES_LIVES_STOCK_PLAY_SEL "lives-playsel"
1344#define LIVES_LIVES_STOCK_FULLSCREEN "lives-fullscreen"
1345#define LIVES_LIVES_STOCK_SEPWIN "lives-sepwin"
1346#define LIVES_LIVES_STOCK_VOLUME_MUTE "lives-volume_mute"
1347#define LIVES_LIVES_STOCK_LOOP "lives-loop"
1348#define LIVES_LIVES_STOCK_ZOOM_IN "lives-zoom-in"
1349#define LIVES_LIVES_STOCK_ZOOM_OUT "lives-zoom-out"
1350#define LIVES_LIVES_STOCK_PREF_GUI "lives-pref_gui"
1351#define LIVES_LIVES_STOCK_PREF_DECODING "lives-pref_decoding"
1352#define LIVES_LIVES_STOCK_PREF_DIRECTORY "lives-pref_directory"
1353#define LIVES_LIVES_STOCK_PREF_EFFECTS "lives-pref_effects"
1354#define LIVES_LIVES_STOCK_PREF_ENCODING "lives-pref_encoding"
1355#define LIVES_LIVES_STOCK_PREF_JACK "lives-pref_jack"
1356#define LIVES_LIVES_STOCK_PREF_MIDI "lives-pref_midi"
1357#define LIVES_LIVES_STOCK_PREF_MISC "lives-pref_misc"
1358#define LIVES_LIVES_STOCK_PREF_MULTITRACK "lives-pref_multitrack"
1359#define LIVES_LIVES_STOCK_PREF_NET "lives-pref_net"
1360#define LIVES_LIVES_STOCK_PREF_PLAYBACK "lives-pref_playback"
1361#define LIVES_LIVES_STOCK_PREF_RECORD "lives-pref_record"
1362#define LIVES_LIVES_STOCK_PREF_THEMES "lives-pref_themes"
1363#define LIVES_LIVES_STOCK_PREF_WARNING "lives-pref_warning"
1364
1365// font sizes
1366#define LIVES_TEXT_SIZE_XX_SMALL "xx-small" // 0
1367#define LIVES_TEXT_SIZE_X_SMALL "x-small" // 1
1368#define LIVES_TEXT_SIZE_SMALL "small" // 2
1369#define LIVES_TEXT_SIZE_MEDIUM "medium" // 3
1370#define LIVES_TEXT_SIZE_LARGE "large" // 4
1371#define LIVES_TEXT_SIZE_X_LARGE "x-large" // 5
1372#define LIVES_TEXT_SIZE_XX_LARGE "xx-large" // 6
1373#define LIVES_TEXT_SIZE_NORMAL LIVES_TEXT_SIZE_MEDIUM
1374#define N_TEXT_SIZES 7
1375
1392
1399
1403
1404typedef struct {
1406 LiVESWidget *last_label;
1407 LiVESWidget *last_container;
1412 LiVESJustification justify;
1413
1415 const char *text_size;
1417 boolean swap_label;
1418 boolean pack_end;
1419 boolean line_wrap;
1421 boolean use_markup;
1422 boolean non_modal;
1423 LiVESWindow *transient;
1425
1432 boolean no_gui;
1433 double scale;
1441
1444
1445#ifdef NEED_DEF_WIDGET_OPTS
1446
1447const widget_opts_t _def_widget_opts = {
1448 NULL,
1449 NULL,
1451 0,
1454 LIVES_JUSTIFY_START,
1457
1458 FALSE,
1459 FALSE,
1460 FALSE,
1461 TRUE,
1462 FALSE,
1463 FALSE,
1464 NULL,
1466
1469 LIVES_ICON_SIZE_LARGE_TOOLBAR,
1470 NULL,
1471 -1,
1472 FALSE,
1473 1.0,
1474 FALSE,
1475 NULL,
1476 "",
1477 0,
1478 FALSE,
1479 NULL
1480};
1481
1482#endif
1483
1484// object data keys
1485#define HIDDEN_KEY "hidden"
1486#define SECLIST_KEY "secondary_list"
1487#define SECLIST_VAL_KEY "secondary_list_value"
1488#define ISDIR_KEY "is_dir"
1489#define FILTER_KEY "filter"
1490#define DEFDIR_KEY "def_dir"
1491#define RFX_KEY "rfx"
1492#define TEXTWIDGET_KEY "def_dir"
1493#define FILESEL_TYPE_KEY "filesel_type"
1494#define PARAM_NUMBER_KEY "param_number"
1495#define WH_LAYOUT_KEY "_wh_layout"
1496
1497#endif
1498
error("LSD_RANDFUNC(ptr, size) must be defined")
void resize(double scale)
Definition: main.c:10230
#define WARN_UNUSED
Definition: main.h:77
#define ulong
Definition: main.h:178
LiVESWidget * last_container
container which wraps last widget created + subwidgets (READONLY)
boolean no_gui
show nothing !
boolean swap_label
swap label/widget position
int icon_size
icon size for tooltips image, warn image, toolbar img, etc.
LiVESWindow * transient
transient window for dialogs, if NULL then use the default (READ / WRITE)
char ** image_filter
/ NULL or NULL terminated list of image extensions which can be loaded
LiVESJustification justify
justify for labels
const char * text_size
specialised values /////
LiVESWidget * last_label
commonly adjusted values //////
double scale
scale factor for all sizes
boolean non_modal
non-modal for dialogs
char * font_name
readonly for now
boolean alt_button_order
unused for now
int packing_height
vertical pixels between widgets
boolean show_button_images
whether to show small images in buttons or not
int css_min_width
rarely changed values /////
int filler_len
length of extra "fill" between widgets
boolean mnemonic_label
if underscore in label text should be mnemonic accelerator
boolean pack_end
pack widget at end or start
int monitor
monitor we are displaying on
lives_expand_t expand
how much space to apply between widgets
int packing_width
horizontal pixels between widgets
int font_size
ditto
boolean use_markup
whether markup should be used in labels
char * title_prefix
Text which is prepended to window titles, etc.
int border_width
border width in pixels
boolean line_wrap
line wrapping for labels
int apply_theme
theming variation for widget (0 -> no theme, 1 -> normal colours, 2+ -> theme variants)
#define TRUE
Definition: videoplugin.h:59
#define FALSE
Definition: videoplugin.h:60
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_sync_unblock_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_grid_attach_next_to(LiVESGrid *grid, LiVESWidget *child, LiVESWidget *sibling, LiVESPositionType side, int width, int height)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_sync_block_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_grid_insert_row(LiVESGrid *grid, int posn)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_painter_surface_destroy(lives_painter_surface_t *surf)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_unblock_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
WIDGET_HELPER_GLOBAL_INLINE LiVESWidget * lives_grid_new(void)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_grid_set_row_spacing(LiVESGrid *grid, uint32_t spacing)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_grid_remove_row(LiVESGrid *grid, int posn)
unsigned long lives_signal_connect_async(livespointer instance, const char *detailed_signal, LiVESGuiCallback c_handler, livespointer data, LiVESConnectFlags flags)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_grid_set_column_spacing(LiVESGrid *grid, uint32_t spacing)
WIDGET_HELPER_GLOBAL_INLINE lives_painter_surface_t * lives_painter_surface_reference(lives_painter_surface_t *surf)
boolean draw_cool_toggle(LiVESWidget *widget, lives_painter_t *cr, livespointer data)
unsigned long lives_signal_connect_sync(livespointer instance, const char *detailed_signal, LiVESGuiCallback c_handler, livespointer data, LiVESConnectFlags flags)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_block_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
boolean set_css_value_direct(LiVESWidget *, LiVESWidgetState state, const char *selector, const char *detail, const char *value)
LiVESWidget * lives_standard_button_new_from_stock_full(const char *stock_id, const char *label, int width, int height, LiVESBox *box, boolean fake_default, const char *ttips)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_sync_disconnect_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
WIDGET_HELPER_GLOBAL_INLINE boolean lives_signal_handlers_disconnect_by_func(livespointer instance, LiVESGuiCallback func, livespointer data)
WIDGET_HELPER_GLOBAL_INLINE LiVESWidget * lives_standard_button_new_full(const char *label, int width, int height, LiVESBox *box, boolean fake_default, const char *ttips)
uint8_t * lives_painter_image_surface_get_data(lives_painter_surface_t *)
LiVESTreeSelection * lives_tree_view_get_selection(LiVESTreeView *)
boolean lives_widget_set_minimum_size(LiVESWidget *, int width, int height)
boolean lives_widget_set_margin_left(LiVESWidget *, int margin)
char LIVES_STOCK_LABEL_SELECT[32]
boolean lives_xwindow_set_cursor(LiVESXWindow *, LiVESXCursor *)
boolean lives_tree_selection_select_iter(LiVESTreeSelection *, LiVESTreeIter *)
double lives_adjustment_get_step_increment(LiVESAdjustment *)
LiVESWidget * lives_drawing_area_new(void)
boolean lives_range_set_range(LiVESRange *, double min, double max)
LiVESWidget * lives_spin_button_new(LiVESAdjustment *, double climb_rate, uint32_t digits)
boolean lives_widget_get_position(LiVESWidget *, int *x, int *y)
LiVESWidget * lives_frame_get_label_widget(LiVESFrame *)
LiVESWidget * lives_notebook_get_nth_page(LiVESNotebook *, int pagenum)
double lives_spin_button_get_snapval(LiVESSpinButton *, double val)
int lives_widget_get_allocation_y(LiVESWidget *)
boolean lives_container_set_focus_child(LiVESContainer *, LiVESWidget *child)
LiVESWidget * lives_menu_item_new_with_label(const char *label)
boolean lives_widget_process_updates(LiVESWidget *)
boolean lives_toggle_button_set_mode(LiVESToggleButton *, boolean drawind)
boolean lives_notebook_set_current_page(LiVESNotebook *, int pagenum)
double lives_ruler_set_upper(LiVESRuler *, double upper)
LiVESAdjustment * lives_scrolled_window_get_vadjustment(LiVESScrolledWindow *)
boolean lives_widget_set_bg_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
LiVESWidget * lives_entry_new(void)
LiVESWidget * lives_widget_set_tooltip_text(LiVESWidget *, const char *text)
boolean lives_label_set_line_wrap_mode(LiVESLabel *, LingoWrapMode mode)
LiVESCellRenderer * lives_cell_renderer_pixbuf_new(void)
LiVESWidget * lives_standard_text_view_new(const char *text, LiVESTextBuffer *tbuff)
boolean lives_xwindow_invalidate_rect(LiVESXWindow *, lives_rect_t *, boolean inv_childs)
boolean lives_painter_set_line_width(lives_painter_t *, double width)
boolean lives_accel_groups_activate(LiVESWidgetObject *object, uint32_t key, LiVESXModifierType mod)
LiVESWidget * lives_standard_label_new_with_tooltips(const char *text, LiVESBox *box, const char *tips)
boolean lives_window_fullscreen(LiVESWindow *)
boolean toggle_sets_visible(LiVESToggleButton *, LiVESWidget *, boolean invert)
boolean lives_text_view_set_editable(LiVESTextView *, boolean setting)
int lives_screen_get_width(LiVESXScreen *)
boolean lives_color_parse(const char *spec, LiVESWidgetColor *)
LiVESPixbuf * lives_pixbuf_new_from_file_at_scale(const char *filename, int width, int height, boolean preserve_aspect_ratio, LiVESError **error)
boolean lives_text_buffer_place_cursor(LiVESTextBuffer *, LiVESTextIter *)
boolean lives_frame_set_shadow_type(LiVESFrame *, LiVESShadowType)
boolean lives_text_view_set_accepts_tab(LiVESTextView *, boolean setting)
boolean lives_table_resize(LiVESTable *, uint32_t rows, uint32_t cols)
boolean lives_widget_set_frozen(LiVESWidget *, boolean state)
#define lives_standard_button_set_label(b, l)
boolean lives_widget_realize(LiVESWidget *)
boolean lives_box_pack_top(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding)
boolean lives_entry_set_text(LiVESEntry *, const char *text)
boolean lives_widget_set_valign(LiVESWidget *, LiVESAlign align)
boolean lives_menu_reorder_child(LiVESMenu *, LiVESWidget *, int pos)
boolean lives_painter_destroy(lives_painter_t *)
boolean lives_widget_set_outline_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
boolean lives_grab_remove(LiVESWidget *)
uint64_t lives_widget_get_xwinid(LiVESWidget *, const char *failure_msg)
const char * lives_label_get_text(LiVESLabel *)
char * lives_file_chooser_get_filename(LiVESFileChooser *)
boolean lives_widget_nullify_with(LiVESWidget *, void **)
LiVESWidget * lives_layout_add_separator(LiVESLayout *, boolean horizontal)
boolean lives_adjustment_set_upper(LiVESAdjustment *, double upper)
boolean lives_toolbar_set_style(LiVESToolbar *, LiVESToolbarStyle style)
LiVESWidget * lives_standard_hscale_new(LiVESAdjustment *)
boolean lives_toggle_tool_button_toggle(LiVESToggleToolButton *)
boolean lives_widget_set_app_paintable(LiVESWidget *, boolean paintable)
const char * lives_textsize_to_string(int val)
LiVESResponseType lives_dialog_run(LiVESDialog *)
const char * lives_entry_get_text(LiVESEntry *)
boolean lives_spin_button_set_step_increment(LiVESSpinButton *button, double step_increment)
LiVESWidget * lives_vbox_new(boolean homogeneous, int spacing)
boolean lives_text_buffer_get_iter_at_mark(LiVESTextBuffer *, LiVESTextIter *, LiVESTextMark *)
boolean lives_window_present(LiVESWindow *)
#define lives_standard_button_set_image(b, i)
boolean lives_toggle_button_get_active(LiVESToggleButton *)
#define W_FILL_LENGTH
Definition: widget-helper.h:52
boolean lives_range_set_value(LiVESRange *, double value)
boolean lives_combo_set_focus_on_click(LiVESCombo *, boolean state)
boolean lives_window_unmaximize(LiVESWindow *)
LiVESWidget * lives_hscrollbar_new(LiVESAdjustment *)
boolean lives_window_get_inner_size(LiVESWindow *, int *x, int *y)
#define W_CSS_MIN_WIDTH
Definition: widget-helper.h:47
boolean lives_menu_set_accel_group(LiVESMenu *, LiVESAccelGroup *group)
double lives_adjustment_get_page_size(LiVESAdjustment *)
LiVESWidget * lives_standard_tool_button_new(LiVESToolbar *, GtkWidget *icon_widget, const char *label, const char *tooltips)
boolean lives_switch_set_active(LiVESSwitch *, boolean)
LiVESWidget * lives_standard_spin_button_new(const char *labeltext, double val, double min, double max, double step, double page, int dp, LiVESBox *, const char *tooltip)
LiVESWidgetColor * lives_color_button_get_color(LiVESColorButton *, LiVESWidgetColor *)
boolean lives_label_set_markup(LiVESLabel *, const char *markup)
LiVESPixbuf * lives_pixbuf_new_from_file(const char *filename, LiVESError **error)
LiVESAdjustment * lives_spin_button_get_adjustment(LiVESSpinButton *)
void set_child_dimmed_colour2(LiVESWidget *, int dim)
LiVESAdjustment * lives_tree_view_get_hadjustment(LiVESTreeView *)
boolean lives_ruler_set_range(LiVESRuler *, double lower, double upper, double position, double max_size)
LiVESToolItem * lives_standard_menu_tool_button_new(LiVESWidget *icon, const char *label)
LiVESWidget * lives_standard_font_chooser_new(void)
boolean lives_menu_popup(LiVESMenu *, LiVESXEventButton *)
boolean lives_button_box_make_first(LiVESButtonBox *, LiVESWidget *)
boolean toggle_sets_sensitive(LiVESToggleButton *, LiVESWidget *, boolean invert)
set callbacks
boolean lives_label_set_line_wrap(LiVESLabel *, boolean set)
boolean lives_display_get_pointer(LiVESXDevice *, LiVESXDisplay *, LiVESXScreen **, int *x, int *y, LiVESXModifierType *mask)
boolean lives_scrolled_window_set_policy(LiVESScrolledWindow *, LiVESPolicyType hpolicy, LiVESPolicyType vpolicy)
LiVESWidget * lives_standard_toolbar_new(void)
double lives_scale_button_get_value(LiVESScaleButton *)
boolean lives_widget_set_fg_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
LiVESWidget * lives_tree_view_new_with_model(LiVESTreeModel *)
boolean lives_widget_set_maximum_size(LiVESWidget *, int width, int height)
double lives_adjustment_get_value(LiVESAdjustment *)
LiVESWidgetState lives_widget_get_state(LiVESWidget *widget)
LiVESCellRenderer * lives_cell_renderer_spin_new(void)
boolean lives_text_buffer_insert_at_end(LiVESTextBuffer *, const char *text)
boolean lives_combo_set_active_index(LiVESCombo *, int index)
boolean lives_dialog_make_widget_first(LiVESDialog *, LiVESWidget *)
LiVESWidget * lives_standard_hruler_new(void)
boolean lives_text_buffer_insert_at_cursor(LiVESTextBuffer *, const char *, int len)
LiVESWidget * lives_image_menu_item_new_from_stock(const char *stock_id, LiVESAccelGroup *accel_group)
LiVESWidget * lives_color_button_new_with_color(const LiVESWidgetColor *)
uint32_t lives_accelerator_get_default_mod_mask()
boolean lives_widget_hide(LiVESWidget *)
boolean lives_scale_button_set_orientation(LiVESScaleButton *, LiVESOrientation orientation)
#define lives_standard_button_new_with_label(l, w, h)
void set_button_image_border_colour(LiVESButton *, LiVESWidgetState state, LiVESWidgetColor *)
LiVESWidget * lives_arrow_new(LiVESArrowType, LiVESShadowType)
double lives_ruler_set_lower(LiVESRuler *, double lower)
boolean lives_text_view_set_text(LiVESTextView *, const char *text, int len)
boolean lives_button_set_image_from_stock(LiVESButton *, const char *stock_id)
LiVESWidget * lives_standard_fileentry_new(const char *labeltext, const char *txt, const char *defdir, int dispwidth, int maxchars, LiVESBox *box, const char *tooltip)
int lives_expand_t
LiVESWidget * lives_bin_get_child(LiVESBin *)
boolean lives_entry_get_editable(LiVESEntry *)
boolean lives_widget_set_hexpand(LiVESWidget *, boolean state)
boolean lives_adjustment_set_lower(LiVESAdjustment *, double lower)
LiVESWidget * lives_standard_label_new(const char *labeltext)
widget_opts_t def_widget_opts
LingoEllipsizeMode LiVESEllipsizeMode
int lives_display_get_n_screens(LiVESXDisplay *)
LiVESWidget * lives_hbox_new(boolean homogeneous, int spacing)
boolean lives_entry_set_max_length(LiVESEntry *, int len)
boolean lives_widget_color_mix(LiVESWidgetColor *c1, const LiVESWidgetColor *c2, float mixval)
boolean lives_tree_view_column_set_sizing(LiVESTreeViewColumn *, LiVESTreeViewColumnSizing type)
LiVESToolItem * lives_separator_tool_item_new(void)
boolean lives_box_set_spacing(LiVESBox *, int spacing)
boolean lives_window_set_auto_startup_notification(boolean set)
LiVESWidget * lives_table_new(uint32_t rows, uint32_t cols, boolean homogeneous)
LiVESWidget * add_vsep_to_box(LiVESBox *)
boolean lives_adjustment_set_page_size(LiVESAdjustment *, double page_size)
LiVESWidget * lives_image_new_from_file(const char *filename)
boolean lives_window_set_deletable(LiVESWindow *, boolean deletable)
char LIVES_STOCK_LABEL_SAVE_AS[32]
lives_cursor_t
@ LIVES_CURSOR_CROSSHAIR
@ LIVES_CURSOR_BOTTOM_RIGHT_CORNER
@ LIVES_CURSOR_SB_H_DOUBLE_ARROW
@ LIVES_CURSOR_NORMAL
must be zero
@ LIVES_CURSOR_HAND2
@ LIVES_CURSOR_TOP_LEFT_CORNER
@ LIVES_CURSOR_VIDEO_BLOCK
@ LIVES_CURSOR_BLOCK
non-standard cursors
@ LIVES_CURSOR_BUSY
@ LIVES_CURSOR_CENTER_PTR
@ LIVES_CURSOR_AUDIO_BLOCK
@ LIVES_CURSOR_FX_BLOCK
boolean lives_widget_get_preferred_size(LiVESWidget *, LiVESRequisition *min_size, LiVESRequisition *nat_size)
void lives_tooltips_copy(LiVESWidget *dest, LiVESWidget *source)
boolean lives_spin_button_set_digits(LiVESSpinButton *, uint32_t digits)
LiVESPixbuf * lives_pixbuf_copy(LiVESPixbuf *)
LiVESWidget * lives_message_dialog_new(LiVESWindow *parent, LiVESDialogFlags flags, LiVESMessageType type, LiVESButtonsType buttons, const char *msg_fmt,...)
LiVESWidget * lives_check_button_new(void)
boolean lives_button_center(LiVESWidget *)
LiVESWidget * lives_check_button_new_with_label(const char *label)
char LIVES_STOCK_LABEL_REVERT[32]
void hide_cursor(LiVESXWindow *)
LiVESPixbuf * lives_pixbuf_new_from_data(const unsigned char *buf, boolean has_alpha, int width, int height, int rowstride, LiVESPixbufDestroyNotify lives_free_buffer_fn, livespointer destroy_fn_data)
LiVESWidget * lives_switch_new(void)
LiVESTextBuffer * lives_text_view_get_buffer(LiVESTextView *)
boolean lives_button_set_image(LiVESButton *, LiVESWidget *image)
boolean toggle_button_toggle(LiVESToggleButton *)
LiVESWidget * lives_standard_switch_new(const char *labeltext, boolean active, LiVESBox *, const char *tooltip)
double lives_ruler_set_value(LiVESRuler *, double value)
boolean lives_button_ungrab_default_special(LiVESWidget *)
LiVESWidget * lives_tree_view_new(void)
lives_painter_surface_t * lives_xwindow_create_similar_surface(LiVESXWindow *window, lives_painter_content_t cont, int width, int height)
void set_child_colour(LiVESWidget *, boolean set_all)
boolean label_act_toggle(LiVESWidget *, LiVESXEventButton *, LiVESWidget *)
boolean lives_signal_handler_disconnect(livespointer instance, unsigned long handler_id)
LiVESWidget * lives_layout_add_label(LiVESLayout *, const char *text, boolean horizontal)
boolean lives_event_box_set_above_child(LiVESEventBox *, boolean set)
boolean lives_button_box_set_button_width(LiVESButtonBox *, LiVESWidget *button, int min_width)
char LIVES_STOCK_LABEL_MEDIA_STOP[32]
LiVESScrollDirection lives_get_scroll_direction(LiVESXEventScroll *event)
lives_painter_t * lives_painter_create_from_surface(lives_painter_surface_t *target)
boolean lives_box_set_child_packing(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding, LiVESPackType pack_type)
boolean lives_widget_set_can_focus_and_default(LiVESWidget *)
LiVESWidget * lives_combo_get_entry(LiVESCombo *)
boolean lives_spin_button_set_value(LiVESSpinButton *, double value)
LiVESWidget * lives_standard_check_menu_item_new_with_label(const char *labeltext, boolean active)
int lives_pixbuf_get_height(const LiVESPixbuf *)
boolean lives_text_view_set_justification(LiVESTextView *, LiVESJustification justify)
LiVESWidget * lives_radio_menu_item_new_with_label(LiVESSList *group, const char *label)
boolean lives_widget_get_fg_state_color(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *)
boolean lives_painter_set_source_surface(lives_painter_t *, lives_painter_surface_t *, double x, double y)
boolean lives_widget_is_visible(LiVESWidget *)
LiVESTreePath * lives_tree_model_get_path(LiVESTreeModel *, LiVESTreeIter *)
LiVESWidget * lives_standard_frame_new(const char *labeltext, float xalign, boolean invisible_outline)
boolean lives_grab_add(LiVESWidget *)
boolean lives_paned_set_position(LiVESPaned *, int pos)
boolean lives_pixbuf_get_has_alpha(const LiVESPixbuf *)
LiVESAccelGroup * lives_dialog_add_escape(LiVESDialog *dlg, LiVESWidget *button)
boolean lives_widget_queue_draw(LiVESWidget *)
boolean lives_window_set_resizable(LiVESWindow *, boolean resizable)
char LIVES_STOCK_LABEL_QUIT[32]
LiVESWidget * lives_standard_menu_item_new_with_label(const char *labeltext)
boolean lives_tree_model_get_iter(LiVESTreeModel *, LiVESTreeIter *, LiVESTreePath *)
LiVESWidget * lives_standard_progress_bar_new(void)
boolean lives_tree_path_free(LiVESTreePath *)
boolean lives_painter_clip(lives_painter_t *)
LiVESWidget * lives_toolbar_insert_label(LiVESToolbar *, const char *labeltext, LiVESWidget *actwidg)
boolean lives_notebook_set_tab_label(LiVESNotebook *, LiVESWidget *child, LiVESWidget *tablabel)
boolean toggle_toolbutton_sets_sensitive(LiVESToggleToolButton *, LiVESWidget *, boolean invert)
uint32_t lives_timer_add(uint32_t interval, LiVESWidgetSourceFunc function, livespointer data)
boolean lives_adjustment_set_value(LiVESAdjustment *, double value)
size_t calc_spin_button_width(double min, double max, int dp)
boolean lives_paned_pack(int where, LiVESPaned *, LiVESWidget *child, boolean resize, boolean shrink)
boolean lives_spinner_start(LiVESSpinner *)
int lives_tree_path_get_depth(LiVESTreePath *)
boolean lives_entry_set_width_chars(LiVESEntry *, int nchars)
boolean widget_helper_init(void)
boolean lives_label_set_text(LiVESLabel *, const char *text)
void set_child_colour3(LiVESWidget *, boolean set_all)
int lives_utf8_strcmpfunc(livesconstpointer, livesconstpointer, livespointer fwd)
int lives_dialog_get_response_for_widget(LiVESDialog *, LiVESWidget *)
LiVESWidget * lives_spinner_new(void)
LiVESWidget * lives_menu_item_get_submenu(LiVESMenuItem *)
boolean lives_editable_set_editable(LiVESEditable *, boolean editable)
boolean lives_tree_model_get(LiVESTreeModel *, LiVESTreeIter *,...)
lives_colRGB48_t * lives_painter_set_source_rgb_from_lives_rgb(lives_painter_t *, lives_colRGB48_t *)
LiVESXCursor * lives_cursor_new_from_pixbuf(LiVESXDisplay *, LiVESPixbuf *, int x, int y)
boolean lives_widget_set_sensitive(LiVESWidget *, boolean state)
LiVESWidget * lives_dialog_get_action_area(LiVESDialog *)
boolean lives_combo_remove_all_text(LiVESCombo *)
boolean lives_window_move(LiVESWindow *, int x, int y)
int lives_paned_get_position(LiVESPaned *)
char LIVES_STOCK_LABEL_CLOSE[32]
boolean lives_widget_show(LiVESWidget *)
LiVESWidget * lives_layout_add_fill(LiVESLayout *, boolean horizontal)
LiVESPixbuf * lives_pixbuf_new(boolean has_alpha, int width, int height)
boolean lives_painter_rectangle(lives_painter_t *, double x, double y, double width, double height)
boolean lives_toolbar_set_show_arrow(LiVESToolbar *, boolean show)
boolean lives_tree_store_find_iter(LiVESTreeStore *, int col, const char *val, LiVESTreeIter *existing, LiVESTreeIter *newiter)
LiVESWidget * lives_standard_dialog_new(const char *title, boolean add_std_buttons, int width, int height)
boolean lives_widget_set_no_show_all(LiVESWidget *, boolean set)
boolean lives_widget_set_pack_type(LiVESBox *, LiVESWidget *, LiVESPackType)
boolean lives_text_view_set_cursor_visible(LiVESTextView *, boolean setting)
boolean lives_list_store_insert(LiVESListStore *, LiVESTreeIter *, int position)
LiVESWidget * lives_vseparator_new(void)
boolean lives_scale_button_set_value(LiVESScaleButton *, double value)
boolean lives_label_set_ellipsize(LiVESLabel *, LiVESEllipsizeMode mode)
boolean lives_check_menu_item_set_active(LiVESCheckMenuItem *, boolean state)
int lives_painter_format_stride_for_width(lives_painter_format_t, int width)
void lives_widget_apply_theme(LiVESWidget *, LiVESWidgetState state)
lives_display_t
Definition: widget-helper.h:34
@ LIVES_DISPLAY_TYPE_UNKNOWN
Definition: widget-helper.h:35
@ LIVES_DISPLAY_TYPE_X11
Definition: widget-helper.h:36
@ LIVES_DISPLAY_TYPE_WAYLAND
Definition: widget-helper.h:38
@ LIVES_DISPLAY_TYPE_WIN32
Definition: widget-helper.h:37
boolean lives_source_remove(uint32_t handle)
boolean lives_spin_button_set_snap_to_multiples(LiVESSpinButton *, double mult)
boolean lives_widget_get_sensitive(LiVESWidget *)
LiVESWidgetColor * lives_painter_set_source_rgb_from_lives_widget_color(lives_painter_t *, LiVESWidgetColor *)
double lives_ruler_get_value(LiVESRuler *)
LiVESWidget * lives_text_view_new(void)
char LIVES_STOCK_LABEL_MEDIA_PAUSE[32]
boolean lives_accel_group_disconnect(LiVESAccelGroup *, LiVESWidgetClosure *closure)
boolean lives_painter_arc(lives_painter_t *, double xc, double yc, double radius, double angle1, double angle2)
double lives_spin_button_get_value(LiVESSpinButton *)
boolean lives_dialog_response(LiVESDialog *, int response)
boolean lives_window_remove_accel_group(LiVESWindow *, LiVESAccelGroup *group)
int lives_event_get_time(LiVESXEvent *)
LiVESWidget * lives_standard_button_new_from_stock(const char *stock_id, const char *label, int width, int height)
boolean lives_button_set_label(LiVESButton *, const char *label)
boolean lives_toggle_button_set_active(LiVESToggleButton *, boolean active)
boolean lives_window_add_accel_group(LiVESWindow *, LiVESAccelGroup *group)
boolean lives_widget_get_no_show_all(LiVESWidget *)
boolean lives_cursor_unref(LiVESXCursor *)
boolean lives_text_buffer_get_start_iter(LiVESTextBuffer *, LiVESTextIter *)
int lives_spin_button_get_value_as_int(LiVESSpinButton *)
boolean lives_spin_button_update(LiVESSpinButton *)
boolean lives_scrolled_window_set_min_content_width(LiVESScrolledWindow *, int width)
#define W_PACKING_WIDTH
Definition: widget-helper.h:49
boolean lives_widget_get_modmask(LiVESXDevice *, LiVESWidget *, LiVESXModifierType *modmask)
const unsigned char * lives_pixbuf_get_pixels_readonly(const LiVESPixbuf *)
void lives_widget_apply_theme2(LiVESWidget *, LiVESWidgetState state, boolean set_fg)
boolean lives_color_button_set_title(LiVESColorButton *, const char *title)
boolean lives_label_set_mnemonic_widget(LiVESLabel *, LiVESWidget *widget)
boolean lives_painter_translate(lives_painter_t *, double x, double y)
boolean lives_text_view_set_top_margin(LiVESTextView *, int margin)
#define W_CSS_MIN_HEIGHT
Definition: widget-helper.h:48
char LIVES_STOCK_LABEL_GO_FORWARD[32]
char LIVES_STOCK_LABEL_APPLY[32]
LiVESTreeViewColumn * lives_tree_view_column_new_with_attributes(const char *title, LiVESCellRenderer *,...)
boolean unhide_cursor(LiVESXWindow *)
boolean lives_toolbar_set_icon_size(LiVESToolbar *, LiVESIconSize icon_size)
boolean lives_alignment_set(LiVESWidget *, float xalign, float yalign, float xscale, float yscale)
boolean lives_menu_shell_append(LiVESMenuShell *, LiVESWidget *child)
boolean lives_adjustment_clamp_page(LiVESAdjustment *, double lower, double upper)
LiVESWidget * lives_hpaned_new(void)
boolean lives_menu_item_activate(LiVESMenuItem *)
boolean lives_painter_remerge(lives_painter_t *)
boolean lives_check_menu_item_get_active(LiVESCheckMenuItem *)
boolean lives_color_button_set_color(LiVESColorButton *, const LiVESWidgetColor *)
LiVESWidget * lives_alignment_new(float xalign, float yalign, float xscale, float yscale)
boolean lives_expander_set_expanded(LiVESExpander *, boolean val)
boolean lives_container_remove(LiVESContainer *, LiVESWidget *)
char LIVES_STOCK_LABEL_MEDIA_FORWARD[32]
boolean lives_scale_set_draw_value(LiVESScale *, boolean draw_value)
boolean lives_button_set_border_colour(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *)
LiVESWidget * lives_image_new(void)
void lives_combo_popup(LiVESCombo *)
void lives_set_cursor_style(lives_cursor_t cstyle, LiVESWidget *)
boolean clear_widget_bg_area(LiVESWidget *widget, lives_painter_surface_t *s, double x, double y, double width, double height)
void funkify_dialog(LiVESWidget *dialog)
#define USE_REVEAL - not working here
boolean lives_tree_model_iter_next(LiVESTreeModel *, LiVESTreeIter *)
LiVESWidget * lives_check_menu_item_new_with_label(const char *label)
unsigned char * lives_pixbuf_get_pixels(const LiVESPixbuf *)
boolean lives_dialog_set_has_separator(LiVESDialog *, boolean has)
LiVESXWindow * lives_widget_get_xwindow(LiVESWidget *)
boolean lives_accel_group_connect(LiVESAccelGroup *, uint32_t key, LiVESXModifierType mod, LiVESAccelFlags flags, LiVESWidgetClosure *closure)
boolean lives_painter_stroke(lives_painter_t *)
LiVESWidget * lives_button_new(void)
boolean lives_tree_model_get_iter_first(LiVESTreeModel *, LiVESTreeIter *)
boolean lives_widget_destroy_with(LiVESWidget *, LiVESWidget *dieplease)
boolean lives_widget_object_ref(livespointer)
increase refcount by one
boolean lives_widget_set_text_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
boolean lives_widget_set_focus_on_click(LiVESWidget *, boolean focus)
boolean lives_widget_is_focus(LiVESWidget *)
boolean lives_painter_paint(lives_painter_t *)
LiVESWindow * lives_widget_get_window(LiVESWidget *)
boolean widget_opts_rescale(double scale)
boolean lives_text_view_set_bottom_margin(LiVESTextView *, int margin)
boolean lives_widget_is_ancestor(LiVESWidget *, LiVESWidget *ancestor)
boolean lives_box_pack_first(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding)
LiVESWidget * lives_dialog_get_content_area(LiVESDialog *)
LiVESAlign lives_justify_to_align(LiVESJustification justification)
boolean lives_adjustment_set_step_increment(LiVESAdjustment *, double step_increment)
boolean lives_editable_select_region(LiVESEditable *, int start_pos, int end_pos)
LiVESWidget * lives_notebook_new(void)
char * lives_text_buffer_get_all_text(LiVESTextBuffer *)
boolean toggle_toolbutton_sets_visible(LiVESToggleToolButton *, LiVESWidget *, boolean invert)
boolean lives_spinner_stop(LiVESSpinner *)
boolean lives_table_set_row_spacings(LiVESTable *, uint32_t spacing)
LiVESWidget * lives_container_get_focus_child(LiVESContainer *)
boolean lives_accel_path_disconnect(LiVESAccelGroup *, const char *path)
LiVESWidget * lives_standard_check_menu_item_new_for_var(const char *ltext, boolean *var, boolean invert)
LiVESWidget * lives_toggle_tool_button_new(void)
LiVESList * get_textsizes_list(void)
boolean lives_text_buffer_delete(LiVESTextBuffer *, LiVESTextIter *start, LiVESTextIter *end)
boolean lives_scale_set_value_pos(LiVESScale *, LiVESPositionType ptype)
LiVESWidget * lives_standard_notebook_new(const LiVESWidgetColor *bg_color, const LiVESWidgetColor *act_color)
LiVESWidget * lives_expander_get_label_widget(LiVESExpander *)
LiVESWidgetColor * lives_rgba_to_widget_color(LiVESWidgetColor *, lives_colRGBA64_t *)
LiVESWidget * lives_window_get_focus(LiVESWindow *)
boolean lives_widget_set_sensitive_with(LiVESWidget *, LiVESWidget *other)
LiVESWidget * lives_glowing_tool_button_new(const char *labeltext, LiVESToolbar *tbar, const char *tooltip, boolean *togglevalue)
boolean lives_widget_has_focus(LiVESWidget *)
boolean is_standard_widget(LiVESWidget *)
int lives_notebook_get_current_page(LiVESNotebook *)
LiVESWidget * lives_menu_item_new(void)
#define W_BORDER_WIDTH
Definition: widget-helper.h:51
boolean lives_widget_set_events(LiVESWidget *, int events)
void lives_widget_object_set_data_list(LiVESWidgetObject *, const char *key, LiVESList *list)
boolean lives_xwindow_get_origin(LiVESXWindow *, int *posx, int *posy)
LiVESWidget * lives_vscrollbar_new(LiVESAdjustment *)
LiVESCellRenderer * lives_cell_renderer_text_new(void)
boolean lives_painter_set_fill_rule(lives_painter_t *, lives_painter_fill_rule_t)
LiVESAccelGroup * lives_accel_group_new(void)
LiVESTextMark * lives_text_buffer_create_mark(LiVESTextBuffer *, const char *mark_name, const LiVESTextIter *where, boolean left_gravity)
const char * lives_combo_get_active_text(LiVESCombo *) WARN_UNUSED
boolean lives_button_set_relief(LiVESButton *, LiVESReliefStyle)
boolean lives_frame_set_label_align(LiVESFrame *, float xalign, float yalign)
boolean lives_window_get_position(LiVESWindow *, int *x, int *y)
int lives_painter_image_surface_get_width(lives_painter_surface_t *)
LiVESSList * lives_radio_menu_item_get_group(LiVESRadioMenuItem *)
boolean lives_widget_destroy(LiVESWidget *)
LiVESWidget * lives_standard_radio_menu_item_new_with_label(LiVESSList *group, const char *labeltext)
LiVESWidget * lives_menu_bar_new(void)
LiVESAdjustment * lives_spin_button_set_adjustment(LiVESSpinButton *, LiVESAdjustment *adj)
boolean lives_toggle_button_toggle(LiVESToggleButton *)
boolean lives_toolbar_insert(LiVESToolbar *, LiVESToolItem *, int pos)
boolean lives_widget_queue_draw_and_update(LiVESWidget *)
const char * lives_menu_item_get_text(LiVESWidget *)
boolean lives_container_set_border_width(LiVESContainer *, uint32_t width)
boolean lives_timer_remove(uint32_t timer)
LiVESWidget * add_hsep_to_box(LiVESBox *)
boolean lives_widget_set_base_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
boolean lives_container_foreach(LiVESContainer *, LiVESWidgetCallback callback, livespointer cb_data)
boolean lives_window_get_modal(LiVESWindow *)
int lives_widget_get_allocation_width(LiVESWidget *)
boolean lives_widget_reparent(LiVESWidget *, LiVESWidget *new_parent)
boolean lives_widget_queue_draw_area(LiVESWidget *, int x, int y, int width, int height)
void lives_widget_apply_theme_dimmed2(LiVESWidget *, LiVESWidgetState state, int dimval)
boolean lives_widget_get_bg_state_color(LiVESWidget *, LiVESWidgetState state, LiVESWidgetColor *)
LiVESWidget * lives_hseparator_new(void)
boolean lives_widget_set_show_hide_parent(LiVESWidget *)
LiVESWidget * lives_glowing_check_button_new(const char *labeltext, LiVESBox *, const char *tooltip, boolean *togglevalue)
boolean lives_editable_get_editable(LiVESEditable *)
boolean lives_window_set_keep_above(LiVESWindow *, boolean keep_below)
boolean lives_box_reorder_child(LiVESBox *, LiVESWidget *child, int pos)
boolean lives_menu_item_set_accel_path(LiVESMenuItem *, const char *path)
boolean set_tooltips_state(LiVESWidget *, boolean state)
LiVESIconSize lives_toolbar_get_icon_size(LiVESToolbar *)
LiVESSList * lives_file_chooser_get_filenames(LiVESFileChooser *)
void lives_cool_toggled(LiVESWidget *tbutton, livespointer)
boolean lives_combo_append_text(LiVESCombo *, const char *text)
boolean lives_widget_set_show_hide_with(LiVESWidget *, LiVESWidget *other)
#define LIVES_TEXT_SIZE_MEDIUM
char LIVES_STOCK_LABEL_SELECT_ALL[32]
boolean lives_tree_store_append(LiVESTreeStore *, LiVESTreeIter *, LiVESTreeIter *parent)
boolean lives_painter_set_source_rgba(lives_painter_t *, double red, double green, double blue, double alpha)
boolean lives_button_grab_default_special(LiVESWidget *)
boolean lives_expander_get_expanded(LiVESExpander *)
boolean lives_widget_set_halign(LiVESWidget *, LiVESAlign align)
boolean lives_combo_set_entry_text_column(LiVESCombo *, int column)
boolean lives_container_add(LiVESContainer *, LiVESWidget *)
boolean lives_widget_set_can_default(LiVESWidget *, boolean state)
LiVESAdjustment * lives_adjustment_new(double value, double lower, double upper, double step_increment, double page_increment, double page_size)
boolean lives_entry_set_has_frame(LiVESEntry *, boolean has)
boolean lives_label_set_width_chars(LiVESLabel *, int nchars)
lives_painter_format_t lives_painter_image_surface_get_format(lives_painter_surface_t *)
#define lives_standard_button_new(w, h)
boolean lives_combo_set_active_text(LiVESCombo *, const char *text)
lives_colRGBA64_t * widget_color_to_lives_rgba(lives_colRGBA64_t *, LiVESWidgetColor *)
LiVESWidget * lives_vscale_new(LiVESAdjustment *)
char * lives_text_view_get_text(LiVESTextView *)
LiVESWidget * lives_standard_menu_item_new(void)
boolean lives_signal_handler_unblock(livespointer instance, unsigned long handler_id)
int lives_widget_get_allocation_height(LiVESWidget *)
double lives_scrolled_window_scroll_to(LiVESScrolledWindow *, LiVESPositionType pos)
boolean lives_widget_show_all(LiVESWidget *)
LiVESWidget * lives_standard_direntry_new(const char *labeltext, const char *txt, int dispwidth, int maxchars, LiVESBox *, const char *tooltip)
boolean lives_display_warp_pointer(LiVESXDevice *, LiVESXDisplay *, LiVESXScreen *, int x, int y)
boolean lives_widget_get_pointer(LiVESXDevice *, LiVESWidget *, int *x, int *y)
char LIVES_STOCK_LABEL_YES[32]
char LIVES_STOCK_LABEL_DELETE[32]
boolean lives_expander_set_label(LiVESExpander *, const char *text)
LiVESWidget * lives_standard_entry_new(const char *labeltext, const char *txt, int dispwidth, int maxchars, LiVESBox *, const char *tooltip)
void lives_label_set_hpadding(LiVESLabel *, int pad)
boolean lives_progress_bar_set_pulse_step(LiVESProgressBar *, double fraction)
boolean lives_signal_handler_block(livespointer instance, unsigned long handler_id)
LiVESWidget * lives_image_new_from_pixbuf(LiVESPixbuf *)
boolean lives_frame_set_label(LiVESFrame *, const char *label)
boolean lives_painter_close_path(lives_painter_t *)
boolean lives_tool_button_set_use_underline(LiVESToolButton *, boolean use_underline)
LiVESWidget * lives_menu_new(void)
int * lives_tree_path_get_indices(LiVESTreePath *)
LiVESWidget * lives_standard_combo_new_with_model(LiVESTreeModel *, LiVESBox *)
boolean lives_button_set_focus_on_click(LiVESButton *, boolean focus)
LiVESWidget * lives_dialog_add_button_from_stock(LiVESDialog *, const char *stock_id, const char *label, int response_id)
void lives_menu_item_set_text(LiVESWidget *, const char *text, boolean use_mnemonic)
const char * lives_button_get_label(LiVESButton *)
boolean lives_label_set_halignment(LiVESLabel *, float yalign)
LiVESTreePath * lives_tree_path_new_from_string(const char *path)
LiVESWidget * lives_layout_hbox_new(LiVESLayout *)
boolean lives_widget_set_can_focus(LiVESWidget *, boolean state)
LiVESListStore * lives_list_store_new(int ncols,...)
boolean show_warn_image(LiVESWidget *, const char *text)
char * lives_big_and_bold(const char *fmt,...)
char LIVES_STOCK_LABEL_SKIP[32]
void * lives_fg_run(weed_plant_t *lpt, void *retval)
int lives_pixbuf_get_width(const LiVESPixbuf *)
lives_colRGBA64_t * lives_rgba_copy(lives_colRGBA64_t *col1, lives_colRGBA64_t *col2)
void lives_widget_object_set_data_auto(LiVESWidgetObject *, const char *key, livespointer data)
boolean lives_combo_set_active_string(LiVESCombo *, const char *active_str)
char LIVES_STOCK_LABEL_CLOSE_WINDOW[32]
boolean lives_widget_get_mod_mask(LiVESWidget *, LiVESXModifierType *modmask)
boolean lives_tree_view_set_model(LiVESTreeView *, LiVESTreeModel *)
boolean lives_painter_line_to(lives_painter_t *, double x, double y)
boolean lives_window_set_default_size(LiVESWindow *, int width, int height)
boolean lives_progress_bar_pulse(LiVESProgressBar *)
LiVESWidget * lives_combo_new_with_model(LiVESTreeModel *model)
LiVESWidget * lives_toolbar_insert_space(LiVESToolbar *)
int lives_widget_get_allocation_x(LiVESWidget *)
LiVESWidget * lives_standard_menu_new(void)
boolean lives_table_set_column_homogeneous(LiVESTable *, boolean homogeneous)
boolean lives_tree_view_set_headers_visible(LiVESTreeView *, boolean vis)
boolean lives_spin_button_set_snap_to_ticks(LiVESSpinButton *, boolean snap)
boolean lives_table_set_row_homogeneous(LiVESTable *, boolean homogeneous)
LiVESWidget * lives_standard_label_new_with_mnemonic_widget(const char *text, LiVESWidget *mnemonic_widget)
boolean lives_xwindow_set_keep_above(LiVESXWindow *, boolean setting)
LiVESWidget * lives_standard_scrolled_window_new(int width, int height, LiVESWidget *child)
LiVESXDisplay * lives_widget_get_display(LiVESWidget *)
LiVESWidget * lives_event_box_new(void)
boolean clear_widget_bg(LiVESWidget *widget, lives_painter_surface_t *)
boolean widget_act_toggle(LiVESWidget *, LiVESWidget *)
LiVESToolItem * lives_tool_button_new(LiVESWidget *icon_widget, const char *label)
boolean lives_widget_remove_accelerator(LiVESWidget *, LiVESAccelGroup *, uint32_t accel_key, LiVESXModifierType accel_mods)
#define lives_standard_button_get_label(b)
double lives_adjustment_get_lower(LiVESAdjustment *)
LiVESWidget * align_horizontal_with(LiVESWidget *thingtoadd, LiVESWidget *thingtoalignwith)
boolean lives_window_set_title(LiVESWindow *, const char *title)
boolean lives_window_set_monitor(LiVESWindow *window, int monnum)
boolean lives_combo_set_active_iter(LiVESCombo *, LiVESTreeIter *)
boolean lives_spin_button_set_range(LiVESSpinButton *, double min, double max)
boolean lives_menu_item_set_submenu(LiVESMenuItem *, LiVESWidget *)
boolean lives_image_menu_item_set_image(LiVESImageMenuItem *, LiVESWidget *image)
boolean widget_inact_toggle(LiVESWidget *, LiVESWidget *)
LiVESWidget * lives_widget_get_parent(LiVESWidget *)
const char * lives_window_get_title(LiVESWindow *)
boolean lives_painter_new_path(lives_painter_t *)
boolean lives_has_icon(LiVESIconTheme *, const char *stock_id, LiVESIconSize size)
boolean lives_window_set_transient_for(LiVESWindow *, LiVESWindow *parent)
boolean lives_menu_tool_button_set_menu(LiVESMenuToolButton *, LiVESWidget *menu)
boolean lives_painter_surface_flush(lives_painter_surface_t *)
LiVESWidget * add_fill_to_box(LiVESBox *)
boolean lives_rgba_equal(lives_colRGBA64_t *col1, lives_colRGBA64_t *col2)
LiVESWidget * lives_vpaned_new(void)
boolean lives_painter_render_background(LiVESWidget *, lives_painter_t *, double x, double y, double width, double height)
boolean lives_tree_view_column_set_fixed_width(LiVESTreeViewColumn *, int fwidth)
boolean lives_widget_set_margin_top(LiVESWidget *, int margin)
boolean label_act_lockbutton(LiVESWidget *, LiVESXEventButton *, LiVESButton *)
boolean lives_painter_set_source_rgb(lives_painter_t *, double red, double green, double blue)
LiVESWidget * lives_image_menu_item_new_with_label(const char *label)
int lives_pixbuf_get_rowstride(const LiVESPixbuf *)
LiVESWidget * lives_standard_file_button_new(boolean is_dir, const char *def_dir)
LiVESWidget * add_spring_to_box(LiVESBox *, int min)
boolean lives_tree_selection_set_mode(LiVESTreeSelection *, LiVESSelectionMode)
boolean lives_text_buffer_insert(LiVESTextBuffer *, LiVESTextIter *, const char *, int len)
boolean lives_box_pack_start(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding)
boolean lives_toggle_tool_button_set_active(LiVESToggleToolButton *, boolean active)
boolean lives_expander_set_use_markup(LiVESExpander *, boolean val)
boolean lives_window_set_decorated(LiVESWindow *, boolean decorated)
LiVESPixbuf * lives_image_get_pixbuf(LiVESImage *)
boolean lives_widget_queue_draw_if_visible(LiVESWidget *)
boolean lives_widget_get_fg_color(LiVESWidget *, LiVESWidgetColor *)
LiVESWidget * lives_standard_image_menu_item_new_with_label(const char *labeltext)
boolean lives_xwindow_raise(LiVESXWindow *)
boolean lives_window_set_modal(LiVESWindow *, boolean modal)
boolean lives_widget_set_margin(LiVESWidget *, int margin)
boolean lives_combo_set_model(LiVESCombo *, LiVESTreeModel *)
boolean lives_color_button_set_use_alpha(LiVESColorButton *, boolean use_alpha)
boolean lives_spin_button_set_wrap(LiVESSpinButton *, boolean wrap)
double lives_range_get_value(LiVESRange *)
boolean lives_widget_set_opacity(LiVESWidget *widget, double opacity)
LiVESWidget * lives_layout_row_new(LiVESLayout *)
boolean lives_widget_queue_resize(LiVESWidget *)
boolean lives_scrolled_window_set_min_content_height(LiVESScrolledWindow *, int height)
int lives_painter_image_surface_get_stride(lives_painter_surface_t *)
void lives_widget_apply_theme3(LiVESWidget *, LiVESWidgetState state)
LiVESCellRenderer * lives_cell_renderer_toggle_new(void)
boolean lives_table_set_col_spacings(LiVESTable *, uint32_t spacing)
boolean lives_widget_object_ref_sink(livespointer)
void lives_general_button_clicked(LiVESButton *, livespointer data_to_free)
boolean lives_tree_store_set(LiVESTreeStore *, LiVESTreeIter *,...)
boolean lives_painter_set_operator(lives_painter_t *, lives_painter_operator_t)
boolean lives_entry_set_alignment(LiVESEntry *, float align)
boolean lives_has_toplevel_focus(LiVESWidget *window)
lives_painter_surface_t * lives_painter_get_target(lives_painter_t *)
boolean menu_sets_sensitive(LiVESCheckMenuItem *, LiVESWidget *, boolean invert)
LiVESWidget * lives_frame_new(const char *label)
#define LIVES_EXPAND_DEFAULT
LiVESWidget * lives_image_new_from_stock_at_size(const char *stock_id, LiVESIconSize size, int x, int y)
LiVESWidget * lives_standard_image_menu_item_new_from_stock(const char *stock_id, LiVESAccelGroup *accel_group)
boolean lives_widget_add_events(LiVESWidget *, int events)
boolean lives_tree_store_prepend(LiVESTreeStore *, LiVESTreeIter *, LiVESTreeIter *parent)
LiVESWidget * lives_radio_button_new(LiVESSList *group)
LiVESToolItem * lives_tool_item_new(void)
LiVESWidget * lives_text_view_new_with_buffer(LiVESTextBuffer *)
boolean lives_container_child_set_shrinkable(LiVESContainer *, LiVESWidget *child, boolean val)
boolean lives_widget_show_all_from_bg(LiVESWidget *)
boolean lives_tool_button_set_icon_widget(LiVESToolButton *, LiVESWidget *icon)
boolean lives_widget_set_size_request(LiVESWidget *, int width, int height)
char * lives_text_buffer_get_text(LiVESTextBuffer *, LiVESTextIter *start, LiVESTextIter *end, boolean inc_hidden_chars)
boolean lives_widget_set_margin_bottom(LiVESWidget *, int margin)
boolean lives_switch_get_active(LiVESSwitch *)
boolean lives_image_scale(LiVESImage *, int width, int height, LiVESInterpType interp_type)
ulong lives_signal_connect(LiVESWidget *, const char *signal_name, ulong funcptr, livespointer data)
double lives_adjustment_get_upper(LiVESAdjustment *)
boolean lives_lock_button_get_locked(LiVESButton *)
boolean lives_spin_button_configure(LiVESSpinButton *, double value, double lower, double upper, double step_increment, double page_increment)
int lives_tree_view_append_column(LiVESTreeView *, LiVESTreeViewColumn *)
boolean lives_painter_set_source_pixbuf(lives_painter_t *, const LiVESPixbuf *, double pixbuf_x, double pixbuf_y)
boolean lives_text_buffer_get_end_iter(LiVESTextBuffer *, LiVESTextIter *)
boolean lives_window_set_hide_titlebar_when_maximized(LiVESWindow *, boolean setting)
boolean lives_widget_object_unref(livespointer)
decrease refcount by one: if refcount==0, object is destroyed
LiVESWidget * lives_standard_hpaned_new(void)
LiVESWidget * lives_standard_radio_button_new(const char *labeltext, LiVESSList **rbgroup, LiVESBox *, const char *tooltip)
int lives_screen_get_height(LiVESXScreen *)
LiVESList * add_sorted_list_to_menu(LiVESMenu *, LiVESList *)
boolean lives_dialog_add_action_widget(LiVESDialog *, LiVESWidget *, int response_id)
boolean lives_widget_context_update(void)
LiVESAdjustment * lives_scrolled_window_get_hadjustment(LiVESScrolledWindow *)
boolean lives_widget_show_now(LiVESWidget *)
boolean lives_range_set_increments(LiVESRange *, double step, double page)
LiVESWidget * lives_standard_expander_new(const char *labeltext, LiVESBox *parent, LiVESWidget *child)
LiVESWidget * lives_standard_vpaned_new(void)
boolean lives_lock_button_toggle(LiVESButton *)
LiVESWidget * lives_standard_hseparator_new(void)
LiVESTextBuffer * lives_text_buffer_new(void)
boolean lives_box_pack_end(LiVESBox *, LiVESWidget *child, boolean expand, boolean fill, uint32_t padding)
widget_opts_t widget_opts
LiVESTreeModel * lives_combo_get_model(LiVESCombo *)
boolean lives_tool_button_set_border_color(LiVESWidget *button, LiVESWidgetState state, LiVESWidgetColor *)
boolean lives_painter_move_to(lives_painter_t *, double x, double y)
void lives_label_chomp(LiVESLabel *)
int16_t lives_color_button_get_alpha(LiVESColorButton *)
boolean lives_entry_set_editable(LiVESEntry *, boolean editable)
boolean lives_entry_set_visibility(LiVESEntry *, boolean vis)
void lives_widget_object_set_data_widget_object(LiVESWidgetObject *, const char *key, livespointer other)
LiVESAdjustment * lives_range_get_adjustment(LiVESRange *)
boolean lives_text_buffer_set_text(LiVESTextBuffer *, const char *, int len)
boolean lives_widget_has_default(LiVESWidget *)
boolean get_border_size(LiVESWidget *win, int *bx, int *by)
LiVESWidget * lives_image_new_from_stock(const char *stock_id, LiVESIconSize size)
LiVESXWindow * lives_display_get_window_at_pointer(LiVESXDevice *, LiVESXDisplay *, int *win_x, int *win_y)
#define W_PACKING_HEIGHT
Definition: widget-helper.h:50
boolean lives_window_center(LiVESWindow *)
boolean lives_widget_set_vexpand(LiVESWidget *, boolean state)
boolean lives_image_menu_item_set_always_show_image(LiVESImageMenuItem *, boolean show)
LiVESList * lives_container_get_children(LiVESContainer *)
boolean lives_tool_button_set_label_widget(LiVESToolButton *, LiVESWidget *label)
boolean lives_widget_unparent(LiVESWidget *)
lives_painter_surface_t * lives_painter_image_surface_create_for_data(uint8_t *data, lives_painter_format_t, int width, int height, int stride)
boolean lives_label_set_selectable(LiVESLabel *, boolean setting)
LiVESWidget * lives_standard_drawing_area_new(LiVESGuiCallback, lives_painter_surface_t **)
boolean toggle_toggles_var(LiVESToggleButton *, boolean *var, boolean invert)
boolean lives_menu_shell_prepend(LiVESMenuShell *, LiVESWidget *child)
LiVESWidget * lives_scrolled_window_new(LiVESAdjustment *hadj, LiVESAdjustment *vadj)
char LIVES_STOCK_LABEL_REFRESH[32]
char LIVES_STOCK_LABEL_MEDIA_PLAY[32]
LiVESWidget * lives_layout_pack(LiVESHBox *, LiVESWidget *)
LiVESWidget * lives_layout_expansion_row_new(LiVESLayout *, LiVESWidget *widget)
int lives_combo_get_active_index(LiVESCombo *)
LiVESWidget * lives_window_new(LiVESWindowType wintype)
boolean lives_list_store_set(LiVESListStore *, LiVESTreeIter *,...)
lives_painter_surface_t * lives_painter_image_surface_create(lives_painter_format_t format, int width, int height)
int get_box_child_index(LiVESBox *, LiVESWidget *child)
boolean lives_widget_set_state(LiVESWidget *, LiVESWidgetState state)
LiVESWidget * lives_progress_bar_new(void)
void widget_helper_set_stock_icon_alts(LiVESIconTheme *)
boolean set_submenu_colours(LiVESMenu *, LiVESWidgetColor *colf, LiVESWidgetColor *colb)
boolean lives_table_attach(LiVESTable *, LiVESWidget *child, uint32_t left, uint32_t right, uint32_t top, uint32_t bottom, LiVESAttachOptions xoptions, LiVESAttachOptions yoptions, uint32_t xpad, uint32_t ypad)
boolean lives_box_set_homogeneous(LiVESBox *, boolean homogeneous)
LiVESWidget * lives_standard_check_button_new(const char *labeltext, boolean active, LiVESBox *, const char *tooltip)
boolean lives_menu_shell_insert(LiVESMenuShell *, LiVESWidget *child, int pos)
boolean lives_widget_is_sensitive(LiVESWidget *)
boolean lives_widget_set_text_size(LiVESWidget *, LiVESWidgetState state, const char *size)
void lives_widget_apply_theme_dimmed(LiVESWidget *, LiVESWidgetState state, int dimval)
char LIVES_STOCK_LABEL_MEDIA_RECORD[32]
boolean lives_signal_stop_emission_by_name(livespointer instance, const char *detailed_signal)
LiVESToolItem * lives_menu_tool_button_new(LiVESWidget *icon, const char *label)
LiVESPixbuf * lives_pixbuf_scale_simple(const LiVESPixbuf *src, int dest_width, int dest_height, LiVESInterpType interp_type)
boolean lives_menu_set_title(LiVESMenu *, const char *title)
int lives_pixbuf_get_n_channels(const LiVESPixbuf *)
LiVESWidget * lives_layout_new(LiVESBox *)
boolean lives_range_set_inverted(LiVESRange *, boolean invert)
boolean lives_image_set_from_pixbuf(LiVESImage *, LiVESPixbuf *)
LiVESWidget * lives_hbutton_box_new(void)
boolean lives_button_uncenter(LiVESWidget *, int normal_width)
uint32_t lives_idle_add(LiVESWidgetSourceFunc function, livespointer data)
EXPOSE_FN_PROTOTYPE(draw_cool_toggle)
char LIVES_STOCK_LABEL_MEDIA_REWIND[32]
boolean lives_widget_add_accelerator(LiVESWidget *, const char *accel_signal, LiVESAccelGroup *accel_group, uint32_t accel_key, LiVESXModifierType accel_mods, LiVESAccelFlags accel_flags)
LiVESSList * lives_radio_button_get_group(LiVESRadioButton *)
boolean lives_label_seT_lines(LiVESLabel *, int nlines)
boolean lives_xwindow_get_frame_extents(LiVESXWindow *, lives_rect_t *)
LiVESWidget * lives_volume_button_new(LiVESOrientation orientation, LiVESAdjustment *, double volume)
char LIVES_STOCK_LABEL_OPEN[32]
const char * lives_get_stock_icon_alt(int alt_stock_id)
lives_display_t lives_widget_get_display_type(LiVESWidget *)
void set_child_alt_colour(LiVESWidget *, boolean set_all)
boolean lives_window_uncenter(LiVESWindow *)
boolean lives_toggle_tool_button_get_active(LiVESToggleToolButton *)
LiVESWidget * lives_vbutton_box_new(void)
boolean hide_warn_image(LiVESWidget *)
LiVESTreeModel * lives_tree_view_get_model(LiVESTreeView *)
boolean lives_button_clicked(LiVESButton *)
boolean lives_check_menu_item_set_draw_as_radio(LiVESCheckMenuItem *, boolean setting)
boolean menu_sets_visible(LiVESCheckMenuItem *, LiVESWidget *, boolean invert)
LiVESWidget * lives_label_get_mnemonic_widget(LiVESLabel *)
boolean lives_combo_get_active_iter(LiVESCombo *, LiVESTreeIter *)
boolean lives_pixbuf_saturate_and_pixelate(const LiVESPixbuf *src, LiVESPixbuf *dest, float saturation, boolean pixilate)
boolean lives_progress_bar_set_fraction(LiVESProgressBar *, double fraction)
boolean lives_tree_selection_get_selected(LiVESTreeSelection *, LiVESTreeModel **, LiVESTreeIter *)
boolean lives_window_maximize(LiVESWindow *)
boolean lives_scrolled_window_add_with_viewport(LiVESScrolledWindow *, LiVESWidget *child)
LiVESWidget * lives_menu_add_separator(LiVESMenu *)
LiVESWidget * lives_toolbar_new(void)
boolean lives_frame_set_label_widget(LiVESFrame *, LiVESWidget *)
void lives_layout_label_set_text(LiVESLabel *, const char *text)
LiVESWidget * lives_standard_combo_new(const char *labeltext, LiVESList *list, LiVESBox *, const char *tooltip)
boolean lives_widget_set_margin_right(LiVESWidget *, int margin)
LiVESWidget * lives_standard_vseparator_new(void)
LiVESWidget * lives_standard_table_new(uint32_t rows, uint32_t cols, boolean homogeneous)
LiVESWidget * lives_standard_formatted_label_new(const char *text)
lives_painter_surface_t * lives_widget_create_painter_surface(LiVESWidget *)
boolean lives_tree_model_iter_children(LiVESTreeModel *, LiVESTreeIter *, LiVESTreeIter *parent)
boolean lives_entry_set_activates_default(LiVESEntry *, boolean act)
boolean lives_entry_set_completion_from_list(LiVESEntry *, LiVESList *)
int lives_tree_model_iter_n_children(LiVESTreeModel *, LiVESTreeIter *)
boolean lives_window_set_keep_below(LiVESWindow *, boolean keep_below)
LiVESWidget * lives_button_new_with_label(const char *label)
boolean lives_button_box_set_child_non_homogeneous(LiVESButtonBox *, LiVESWidget *child, boolean set)
LiVESWidget * lives_expander_new(const char *label)
char LIVES_STOCK_LABEL_SAVE[32]
boolean lives_widget_grab_focus(LiVESWidget *)
lives_colRGBA64_t * lives_painter_set_source_rgb_from_lives_rgba(lives_painter_t *, lives_colRGBA64_t *)
boolean lives_widget_set_border_color(LiVESWidget *, LiVESWidgetState state, const LiVESWidgetColor *)
boolean lives_widget_grab_default(LiVESWidget *)
boolean lives_text_buffer_delete_mark(LiVESTextBuffer *, LiVESTextMark *)
boolean lives_button_box_set_layout(LiVESButtonBox *, LiVESButtonBoxStyle bstyle)
boolean lives_menu_detach(LiVESMenu *)
boolean lives_dialog_set_button_layout(LiVESDialog *, LiVESButtonBoxStyle bstyle)
boolean lives_painter_fill(lives_painter_t *)
boolean lives_widget_is_realized(LiVESWidget *)
char LIVES_STOCK_LABEL_NO[32]
boolean lives_color_button_set_alpha(LiVESColorButton *, int16_t alpha)
int lives_painter_image_surface_get_height(lives_painter_surface_t *)
int lives_layout_add_row(LiVESLayout *)
lives_painter_t * lives_painter_create_from_widget(LiVESWidget *)
boolean lives_window_resize(LiVESWindow *, int width, int height)
boolean lives_text_view_set_wrap_mode(LiVESTextView *, LiVESWrapMode wrapmode)
void set_child_alt_colour_prelight(LiVESWidget *)
boolean lives_entry_get_activates_default(LiVESEntry *)
boolean lives_window_unfullscreen(LiVESWindow *)
LiVESPixbuf * lives_pixbuf_new_from_stock_at_size(const char *stock_id, LiVESIconSize size, int x, int y)
LiVESWidget * lives_label_new(const char *text)
boolean lives_scale_set_digits(LiVESScale *, int digits)
boolean lives_window_set_position(LiVESWindow *, LiVESWindowPosition pos)
boolean lives_combo_populate(LiVESCombo *, LiVESList *list)
boolean lives_widget_set_padding(LiVESWidget *, int padding)
LiVESWidget * lives_combo_new(void)
LiVESWidget * lives_standard_lock_button_new(boolean is_locked, int width, int height, const char *label, const char *tooltip)
lives_colRGBA64_t lives_rgba_col_new(int red, int green, int blue, int alpha)
LiVESWidgetColor * lives_widget_color_copy(LiVESWidgetColor *c1orNULL, const LiVESWidgetColor *c2)
LiVESTreeStore * lives_tree_store_new(int ncols,...)
char LIVES_STOCK_LABEL_CANCEL[32]
stock labels, these are set up in widget_helper_init()
char LIVES_STOCK_LABEL_OK[32]
void set_child_dimmed_colour(LiVESWidget *, int dim)
LiVESWidget * lives_standard_color_button_new(LiVESBox *parent, const char *name, boolean use_alpha, lives_colRGBA64_t *rgba, LiVESWidget **sb_red, LiVESWidget **sb_green, LiVESWidget **sb_blue, LiVESWidget **sb_alpha)
boolean global_recent_manager_add(const char *file_name)
boolean lives_widget_color_equal(LiVESWidgetColor *, const LiVESWidgetColor *)
boolean toggle_sets_sensitive_cond(LiVESToggleButton *, LiVESWidget *, livespointer condsens, livespointer condinsens, boolean invert)
LiVESWidget * lives_widget_get_toplevel(LiVESWidget *)