Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

theme.h

Go to the documentation of this file.
00001 #ifndef THEME_H
00002 #define THEME_H
00003 
00004 #include "awindowgui.inc"
00005 #include "batchrender.inc"
00006 #include "bctheme.h"
00007 #include "cwindowgui.inc"
00008 #include "guicast.h"
00009 #include "levelwindowgui.inc"
00010 #include "mbuttons.inc"
00011 #include "mwindow.inc"
00012 #include "mwindowgui.inc"
00013 #include "new.inc"
00014 #include "overlayframe.inc"
00015 #include "patchbay.inc"
00016 #include "preferencesthread.inc"
00017 #include "recordgui.inc"
00018 #include "recordmonitor.inc"
00019 #include "resourcepixmap.inc"
00020 #include "timebar.inc"
00021 #include "trackcanvas.inc"
00022 #include "setformat.inc"
00023 #include "statusbar.inc"
00024 #include "vframe.inc"
00025 #include "vwindowgui.inc"
00026 #include "zoombar.inc"
00027 
00028 
00029 
00030 // Theme uses static png resources at startup.
00031 // The reason is GUI elements must be constructed at startup from multiple
00032 // pngs.
00033 
00034 
00035 
00036 class Theme : public BC_Theme
00037 {
00038 public:
00039         Theme();
00040         virtual ~Theme();
00041 
00042 
00043         virtual void initialize();
00044         virtual void get_mwindow_sizes(MWindowGUI *gui, 
00045                 int w, 
00046                 int h);
00047         virtual void get_vwindow_sizes(VWindowGUI *gui);
00048         virtual void get_cwindow_sizes(CWindowGUI *gui, int cwindow_controls);
00049         virtual void get_awindow_sizes(AWindowGUI *gui);
00050         virtual void get_rmonitor_sizes(int do_audio, 
00051                 int do_video,
00052                 int do_channel,
00053                 int do_interlace,
00054                 int do_avc,
00055                 int audio_channels);
00056         virtual void get_recordgui_sizes(RecordGUI *gui,
00057                 int w,
00058                 int h);
00059         virtual void get_batchrender_sizes(BatchRenderGUI *gui,
00060                 int w, 
00061                 int h);
00062         virtual void get_plugindialog_sizes();
00063         virtual void get_menueffect_sizes(int use_list);
00064         virtual void draw_rwindow_bg(RecordGUI *gui);
00065         virtual void draw_rmonitor_bg(RecordMonitorGUI *gui);
00066         virtual void draw_awindow_bg(AWindowGUI *gui);
00067         virtual void draw_cwindow_bg(CWindowGUI *gui);
00068         virtual void draw_lwindow_bg(LevelWindowGUI *gui);
00069         virtual void draw_mwindow_bg(MWindowGUI *gui);
00070         virtual void draw_vwindow_bg(VWindowGUI *gui);
00071         virtual void draw_resource_bg(TrackCanvas *canvas,
00072                 ResourcePixmap *pixmap, 
00073                 int edit_x,
00074                 int edit_w,
00075                 int pixmap_x,
00076                 int x1, 
00077                 int y1, 
00078                 int x2,
00079                 int y2);
00080 
00081         virtual void get_preferences_sizes();
00082         virtual void draw_preferences_bg(PreferencesWindow *gui);
00083         virtual void get_new_sizes(NewWindow *gui);
00084         virtual void draw_new_bg(NewWindow *gui);
00085         virtual void draw_setformat_bg(SetFormatWindow *window);
00086 
00087         virtual void build_menus();
00088 //      unsigned char* get_image(char *title);
00089         void flush_images();
00090 
00091         ArrayList<BC_ListBoxItem*> aspect_ratios;
00092         ArrayList<BC_ListBoxItem*> frame_rates;
00093         ArrayList<BC_ListBoxItem*> frame_sizes;
00094         ArrayList<BC_ListBoxItem*> sample_rates;
00095         ArrayList<BC_ListBoxItem*> zoom_values;
00096         char *theme_title;
00097 
00098 // Tools for building widgets
00099         void overlay(VFrame *dst, VFrame *src, int in_x1 = -1, int in_x2 = -1);
00100         void build_transport(char *title,
00101                 unsigned char *png_overlay,
00102                 VFrame **bg_data,
00103                 int region);
00104         void build_patches(VFrame** &data,
00105                 unsigned char *png_overlay,
00106                 VFrame **bg_data,
00107                 int region);
00108         void build_button(VFrame** &data,
00109                 unsigned char *png_overlay,
00110                 VFrame *up_vframe,
00111                 VFrame *hi_vframe,
00112                 VFrame *dn_vframe);
00113         void build_toggle(VFrame** &data,
00114                 unsigned char *png_overlay,
00115                 VFrame *up_vframe,
00116                 VFrame *hi_vframe,
00117                 VFrame *checked_vframe,
00118                 VFrame *dn_vframe,
00119                 VFrame *checkedhi_vframe);
00120 
00121 // colors for the main message text
00122         int message_normal, message_error;
00123 
00124 
00125 // Locations
00126         int abinbuttons_x, abinbuttons_y;
00127         int abuttons_x, abuttons_y;
00128         int adivider_x, adivider_y, adivider_w, adivider_h;
00129         int afolders_x, afolders_y, afolders_w, afolders_h;
00130         int alist_x, alist_y, alist_w, alist_h;
00131         int audio_color;
00132         int browse_pad;
00133         int cauto_x, cauto_y, cauto_w, cauto_h;
00134         int ccanvas_x, ccanvas_y, ccanvas_w, ccanvas_h;
00135         int ccomposite_x, ccomposite_y, ccomposite_w, ccomposite_h;
00136         int cstatus_x, cstatus_y;
00137         int cdest_x, cdest_y;
00138         int cedit_x, cedit_y;
00139         int channel_position_color;
00140         int cmeter_x, cmeter_y, cmeter_h;
00141         int cslider_x, cslider_y, cslider_w;
00142         int ctime_x, ctime_y;
00143         int ctimebar_x, ctimebar_y, ctimebar_w, ctimebar_h;
00144         int ctransport_x, ctransport_y;
00145         int czoom_x, czoom_y;
00146         int fade_h;
00147         int loadfile_pad;
00148         int loadmode_w;
00149         int mbuttons_x, mbuttons_y, mbuttons_w, mbuttons_h;
00150 // pixels between end transport button and arrow button
00151         int mtransport_margin;
00152         int mcanvas_x, mcanvas_y, mcanvas_w, mcanvas_h;
00153         int mclock_x, mclock_y, mclock_w, mclock_h;
00154         int mhscroll_x, mhscroll_y, mhscroll_w;
00155         int mvscroll_x, mvscroll_y, mvscroll_h;
00156         int meter_h;
00157         int mode_h;
00158         int mstatus_x, mstatus_y, mstatus_w, mstatus_h;
00159         int mstatus_message_x, mstatus_message_y;
00160         int mstatus_progress_x, mstatus_progress_y, mstatus_progress_w;
00161         int mstatus_cancel_x, mstatus_cancel_y;
00162         int mtimebar_x, mtimebar_y, mtimebar_w, mtimebar_h;
00163         int mzoom_x, mzoom_y, mzoom_w, mzoom_h;
00164         int new_audio_x, new_audio_y;
00165         int new_ok_x, new_ok_y;
00166         int new_video_x, new_video_y;
00167         int pan_h;
00168         int pan_x;
00169         int play_h;
00170         int preferencescategory_x, preferencescategory_y;
00171         int preferencestitle_x, preferencestitle_y;
00172         int preferencesoptions_x, preferencesoptions_y;
00173         int patchbay_x, patchbay_y, patchbay_w, patchbay_h;
00174 // pixels between toggles and buttons in edit panel
00175         int toggle_margin;
00176 
00177         int plugindialog_new_x, plugindialog_new_y, plugindialog_new_w, plugindialog_new_h;
00178         int plugindialog_shared_x, plugindialog_shared_y, plugindialog_shared_w, plugindialog_shared_h;
00179         int plugindialog_module_x, plugindialog_module_y, plugindialog_module_w, plugindialog_module_h;
00180         int plugindialog_newattach_x, plugindialog_newattach_y;
00181         int plugindialog_sharedattach_x, plugindialog_sharedattach_y;
00182         int plugindialog_moduleattach_x, plugindialog_moduleattach_y;
00183 
00184         int menueffect_list_x, menueffect_list_y, menueffect_list_w, menueffect_list_h;
00185         int menueffect_file_x, menueffect_file_y;
00186         int menueffect_tools_x, menueffect_tools_y;
00187 
00188 
00189         int recordgui_batches_w, recordgui_batches_h;
00190         int recordgui_batches_x, recordgui_batches_y;
00191         int recordgui_batch_x, recordgui_batch_y, recordgui_batchcaption_x;
00192         int recordgui_options_x, recordgui_options_y;
00193         int recordgui_controls_x, recordgui_controls_y;
00194         int recordgui_loadmode_x, recordgui_loadmode_y;
00195         int recordgui_status_x, recordgui_status_y, recordgui_status_x2;
00196         int recordgui_transport_x, recordgui_transport_y;
00197         int recordgui_fixed_color, recordgui_variable_color;
00198         int rmonitor_canvas_w, rmonitor_canvas_h;
00199         int rmonitor_canvas_x, rmonitor_canvas_y;
00200         int rmonitor_channel_x, rmonitor_channel_y;
00201         int rmonitor_interlace_x, rmonitor_interlace_y;
00202         int rmonitor_meter_h;
00203         int rmonitor_meter_x, rmonitor_meter_y;
00204         int rmonitor_source_x, rmonitor_source_y;
00205         int rmonitor_tx_x, rmonitor_tx_y;
00206 
00207         int batchrender_x1, batchrender_x2, batchrender_x3;
00208 
00209         int setformat_x1, setformat_x2, setformat_x3, setformat_x4;
00210         int setformat_y1, setformat_y2, setformat_y3;
00211         int setformat_w, setformat_h, setformat_margin;
00212         int setformat_channels_x, setformat_channels_y, setformat_channels_w, setformat_channels_h;
00213         int title_h;
00214         int title_font, title_color;
00215         int edit_font_color;
00216         int vcanvas_x, vcanvas_y, vcanvas_w, vcanvas_h;
00217         int vedit_x, vedit_y;
00218         int vmeter_x, vmeter_y, vmeter_h;
00219         int vslider_x, vslider_y, vslider_w;
00220         int vsource_x, vsource_y;
00221         int vtimebar_x, vtimebar_y, vtimebar_w, vtimebar_h;
00222         int vtime_x, vtime_y, vtime_w;
00223         int vtransport_x, vtransport_y;
00224         int vzoom_x, vzoom_y;
00225 
00226 
00227 
00228 // Bitmaps
00229         VFrame *about_bg;
00230         VFrame **appendasset_data;
00231         VFrame **append_data;
00232         VFrame **asset_append_data;
00233         VFrame **asset_disk_data;
00234         VFrame **asset_index_data;
00235         VFrame **asset_info_data;
00236         VFrame **asset_project_data;
00237         VFrame **browse_data;
00238         VFrame **calibrate_data;
00239         VFrame *camerakeyframe_data;
00240         VFrame **cancel_data;
00241         VFrame **chain_data;
00242         VFrame *channel_bg_data;
00243         VFrame *channel_position_data;
00244         VFrame **delete_all_indexes_data;
00245         VFrame **deletebin_data;
00246         VFrame **delete_data;
00247         VFrame **deletedisk_data;
00248         VFrame **deleteproject_data;
00249         VFrame **detach_data;
00250         VFrame **dntriangle_data;
00251 
00252         VFrame **edit_data;
00253         VFrame **edithandlein_data;
00254         VFrame **edithandleout_data;
00255         VFrame **extract_data;
00256         VFrame **infoasset_data;
00257         VFrame **in_point;
00258         VFrame **insert_data;
00259         VFrame *keyframe_data;
00260         VFrame **label_toggle;
00261         VFrame **lift_data;
00262         VFrame *maskkeyframe_data;
00263         VFrame *modekeyframe_data;
00264         VFrame **movedn_data;
00265         VFrame **moveup_data;
00266         VFrame **newbin_data;
00267         VFrame **no_data;
00268         VFrame **options_data;
00269         VFrame **out_point;
00270         VFrame **over_button;
00271         VFrame **overwrite_data;
00272         VFrame *pankeyframe_data;
00273         VFrame **pasteasset_data;
00274         VFrame **paused_data;
00275         VFrame **picture_data;
00276         VFrame *plugin_bg_data;
00277         VFrame **presentation_data;
00278         VFrame **presentation_loop;
00279         VFrame **presentation_stop;
00280         VFrame *projectorkeyframe_data;
00281         VFrame **redrawindex_data;
00282         VFrame **renamebin_data;
00283         VFrame **reset_data;
00284         VFrame **reverse_data;
00285         VFrame **rewind_data;
00286         VFrame **select_data;
00287         VFrame **splice_data;
00288         VFrame **start_over_data;
00289         VFrame **statusbar_cancel_data;
00290         VFrame *timebar_view_data;
00291         VFrame *title_bg_data;
00292         VFrame **transition_data;
00293         VFrame **uptriangle_data;
00294         VFrame **viewasset_data;
00295         VFrame *vtimebar_bg_data;
00296 
00297 
00298 
00299         MWindow *mwindow;
00300 // Compressed images are loaded in here.
00301         char *data_buffer;
00302         char *contents_buffer;
00303         ArrayList<char*> contents;
00304         ArrayList<int> offsets;
00305         char path[BCTEXTLEN];
00306         char *last_image;
00307         int last_offset;
00308 };
00309 
00310 #endif

Generated on Sun Jan 8 13:39:00 2006 for Cinelerra-svn by  doxygen 1.4.4