LiVES  3.2.0
paramspecial.h
Go to the documentation of this file.
1 // paramspecial.h
2 // LiVES
3 // (c) G. Finch 2004 - 2020 <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 // dynamic window generation from parameter arrays :-)
8 // special widgets
9 
10 // TODO - refactor all of this using lives_special_t, use a union
11 
12 #ifndef HAS_LIVES_PARAMSPECIAL_H
13 #define HAS_LIVES_PARAMSPECIAL_H
14 
15 typedef struct {
17  boolean added;
24 
25  int stdwidgets; // 2 for singlepoint, 3 for scaledpoint, 4 for demask, multirect
27  int num_extra;
28  LiVESWidget **extra_widgets;
30 
31 typedef struct {
34  LiVESWidget *lockbutton;
37  double ratio;
38  int nwidgets;
39  boolean no_reset;
41 
42 typedef struct {
47  int nwidgets;
49 
50 typedef struct {
55 
57 
58 #define ASPECT_BUTTON_WIDTH ((int)(250. * widget_opts.scale))
59 #define ASPECT_BUTTON_HEIGHT DEF_BUTTON_HEIGHT
60 
61 #define WEED_LEAF_HOST_VALUE_SPECIAL "host_valspec"
62 #define LIVES_VALUE_LETTERBOX_OFFSX (1 << 0) // def val. == param_max * lb_offs_x / width
63 #define LIVES_VALUE_LETTERBOX_OFFSY (1 << 1)
64 #define LIVES_VALUE_LETTERBOX_WIDTH (1 << 2) // def val == param_max * lb_width / width
65 #define LIVES_VALUE_LETTERBOX_HEIGHT (1 << 3)
66 
67 #include "multitrack.h"
68 
69 void init_special(void);
70 
71 void add_to_special(const char *special_string, lives_rfx_t *);
72 
73 void check_for_special(lives_rfx_t *, lives_param_t *param, LiVESBox *);
74 void check_for_special_type(lives_rfx_t *rfx, lives_param_t *param, LiVESBox *pbox);
75 
76 void reset_framedraw_preview(void);
77 
79 
80 void fd_tweak(lives_rfx_t *);
81 
82 void after_aspect_width_changed(LiVESSpinButton *, livespointer);
83 
84 void after_aspect_height_changed(LiVESToggleButton *, livespointer);
85 
87 
88 boolean check_filewrite_overwrites(void);
89 
90 boolean special_cleanup(boolean is_ok);
91 
92 void setmergealign(void);
93 
95 
96 boolean is_perchannel_multi(lives_rfx_t *rfx, int pnum);
97 
98 LiVESPixbuf *mt_framedraw(lives_mt *, weed_layer_t *layer);
99 
101 
102 #endif
reset_framedraw_preview
void reset_framedraw_preview(void)
Definition: paramspecial.c:27
lives_special_framedraw_rect_t::yend_param
lives_param_t * yend_param
Definition: paramspecial.h:23
lives_special_aspect_t::height_param
lives_param_t * height_param
Definition: paramspecial.h:32
check_for_special
void check_for_special(lives_rfx_t *, lives_param_t *param, LiVESBox *)
Definition: paramspecial.c:298
lives_special_fontchooser_t::size_paramfunc
ulong size_paramfunc
Definition: paramspecial.h:45
lives_special_framedraw_rect_t::stdwidgets
int stdwidgets
Definition: paramspecial.h:25
lives_special_fontchooser_t::entry_func
ulong entry_func
Definition: paramspecial.h:46
lives_special_aspect_t::nwidgets
int nwidgets
Definition: paramspecial.h:38
lives_special_framedraw_rect_t::added
boolean added
Definition: paramspecial.h:17
mt_framedraw
LiVESPixbuf * mt_framedraw(lives_mt *, weed_layer_t *layer)
Definition: paramspecial.c:741
lives_param_special_t
lives_param_special_t
Definition: plugins.h:518
lives_special_mergealign_t::rfx
lives_rfx_t * rfx
Definition: paramspecial.h:51
lives_special_framedraw_rect_t::rfx
lives_rfx_t * rfx
Definition: paramspecial.h:16
multitrack.h
lives_special_framedraw_rect_t::extra_widgets
LiVESWidget ** extra_widgets
Definition: paramspecial.h:28
after_aspect_width_changed
void after_aspect_width_changed(LiVESSpinButton *, livespointer)
Definition: paramspecial.c:585
mergealign
lives_special_mergealign_t mergealign
Definition: paramspecial.h:100
lives_special_aspect_t::lockbutton
LiVESWidget * lockbutton
Definition: paramspecial.h:34
lives_rfx_t
Definition: plugins.h:625
lives_special_aspect_t
Definition: paramspecial.h:31
lives_special_fontchooser_t::font_param
lives_param_t * font_param
Definition: paramspecial.h:43
lives_param_t
Definition: plugins.h:538
lives_special_mergealign_t::end_param
lives_param_t * end_param
Definition: paramspecial.h:53
paramspecial_get_aspect
const lives_special_aspect_t * paramspecial_get_aspect(void)
Definition: paramspecial.c:50
lives_special_framedraw_rect_t::scale_param
lives_param_t * scale_param
Definition: paramspecial.h:21
lives_special_fontchooser_t
Definition: paramspecial.h:42
after_aspect_height_changed
void after_aspect_height_changed(LiVESToggleButton *, livespointer)
Definition: paramspecial.c:601
lives_special_framedraw_rect_t::xend_param
lives_param_t * xend_param
Definition: paramspecial.h:22
set_aspect_ratio_widgets
void set_aspect_ratio_widgets(lives_param_t *w, lives_param_t *h)
Definition: paramspecial.c:681
init_special
void init_special(void)
Definition: paramspecial.c:30
lives_special_mergealign_t
Definition: paramspecial.h:50
lives_special_aspect_t::height_func
ulong height_func
Definition: paramspecial.h:36
is_perchannel_multi
boolean is_perchannel_multi(lives_rfx_t *rfx, int pnum)
Definition: paramspecial.c:765
lives_special_framedraw_rect_t
Definition: paramspecial.h:15
check_for_special_type
void check_for_special_type(lives_rfx_t *rfx, lives_param_t *param, LiVESBox *pbox)
Definition: paramspecial.c:228
lives_special_mergealign_t::start_param
lives_param_t * start_param
Definition: paramspecial.h:52
special_cleanup
boolean special_cleanup(boolean is_ok)
Definition: paramspecial.c:641
weed_layer_t
weed_plant_t weed_layer_t
Definition: colourspace.h:71
lives_special_aspect_t::width_param
lives_param_t * width_param
Definition: paramspecial.h:33
lives_special_framedraw_rect_t::num_extra
int num_extra
Definition: paramspecial.h:27
lives_special_fontchooser_t::nwidgets
int nwidgets
Definition: paramspecial.h:47
fd_tweak
void fd_tweak(lives_rfx_t *)
Definition: paramspecial.c:159
lives_special_aspect_t::no_reset
boolean no_reset
Definition: paramspecial.h:39
lives_special_framedraw_rect_t::xstart_param
lives_param_t * xstart_param
Definition: paramspecial.h:19
lives_special_aspect_t::ratio
double ratio
Definition: paramspecial.h:37
lives_special_framedraw_rect_t::type
lives_param_special_t type
Definition: paramspecial.h:18
add_to_special
void add_to_special(const char *special_string, lives_rfx_t *)
Definition: paramspecial.c:53
setmergealign
void setmergealign(void)
Definition: paramspecial.c:687
fd_connect_spinbutton
void fd_connect_spinbutton(lives_rfx_t *)
Definition: paramspecial.c:174
lives_special_fontchooser_t::size_param
lives_param_t * size_param
Definition: paramspecial.h:44
lives_special_aspect_t::width_func
ulong width_func
Definition: paramspecial.h:35
ulong
#define ulong
Definition: main.h:178
check_filewrite_overwrites
boolean check_filewrite_overwrites(void)
Definition: paramspecial.c:617
lives_special_framedraw_rect_t::ystart_param
lives_param_t * ystart_param
Definition: paramspecial.h:20
lives_special_framedraw_rect_t::extra_params
int * extra_params
Definition: paramspecial.h:26