LiVES 1.4.9

src/paramspecial.h

Go to the documentation of this file.
00001 // paramspecial.h
00002 // LiVES
00003 // (c) G. Finch 2004 - 2009 <salsaman@xs4all.nl,salsaman@gmail.com>
00004 // released under the GNU GPL 3 or later
00005 // see file ../COPYING or www.gnu.org for licensing details
00006 
00007 
00008 // dynamic window generation from parameter arrays :-)
00009 // special widgets
00010 
00011 // TODO - refactor all of this using lives_param_special_t
00012 
00013 typedef struct {
00014   gint height_param;
00015   gint width_param;
00016   GtkWidget *height_widget;
00017   GtkWidget *width_widget;
00018   GtkWidget *checkbutton;
00019   gulong width_func;
00020   gulong height_func;
00021 } lives_special_aspect_t;
00022 
00023 
00024 typedef struct {
00025   lives_rfx_t *rfx;
00026   gboolean added;
00027   gint type;
00028   gint xstart_param;
00029   gint ystart_param;
00030   gint xend_param;
00031   gint yend_param;
00032   gint *extra_params;
00033   gint num_extra;
00034   GtkWidget *xstart_widget;
00035   GtkWidget *ystart_widget;
00036   GtkWidget *xend_widget;
00037   GtkWidget *yend_widget;
00038   GtkWidget **extra_widgets;
00039 } lives_special_framedraw_rect_t;
00040 
00041 #define FD_NONE 0
00042 #define FD_RECT_DEMASK 1
00043 #define FD_RECT_MULTRECT 2
00044 #define FD_SINGLEPOINT 3
00045 
00046 typedef struct {
00047   lives_rfx_t *rfx;
00048   gint start_param;
00049   gint end_param;
00050   GtkWidget *start_widget;
00051   GtkWidget *end_widget;
00052 } lives_special_mergealign_t;
00054 
00055 void init_special (void);
00056 
00057 gint add_to_special (const gchar *special_string, lives_rfx_t *);
00058 
00059 void check_for_special (lives_param_t *, gint num, GtkBox *, lives_rfx_t *);
00060 
00061 void fd_connect_spinbutton(lives_rfx_t *);
00062 
00063 void fd_tweak(lives_rfx_t *);
00064 
00065 void after_aspect_width_changed (GtkSpinButton *, gpointer);
00066 
00067 void after_aspect_height_changed (GtkToggleButton *, gpointer);
00068 
00069 void special_cleanup (void);
00070 
00071 lives_special_mergealign_t mergealign;
00072 void setmergealign (void);
00073 
00074 gboolean is_perchannel_multi(lives_rfx_t *rfx, gint i);
00075 
00076 #include "framedraw.h"
00077 
00078 #define RFX_EXTRA_WIDTH 200 /* extra width in pixels for framedraw */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines