4 #include "awindowgui.inc"
6 #include "cwindowgui.inc"
8 #include "levelwindowgui.inc"
9 #include "mbuttons.inc"
10 #include "mwindow.inc"
11 #include "mwindowgui.inc"
13 #include "overlayframe.inc"
14 #include "patchbay.inc"
15 #include "preferencesthread.inc"
16 #include "recordgui.inc"
17 #include "recordmonitor.inc"
18 #include "resourcepixmap.inc"
19 #include "timebar.inc"
20 #include "trackcanvas.inc"
21 #include "setformat.inc"
22 #include "statusbar.inc"
24 #include "vwindowgui.inc"
25 #include "zoombar.inc"
29 // Theme uses static png resources at startup.
30 // The reason is GUI elements must be constructed at startup from multiple
35 class Theme
: public BC_Theme
42 virtual void initialize();
43 virtual void get_mwindow_sizes(MWindowGUI
*gui
,
46 virtual void get_vwindow_sizes(VWindowGUI
*gui
);
47 virtual void get_cwindow_sizes(CWindowGUI
*gui
);
48 virtual void get_awindow_sizes(AWindowGUI
*gui
);
49 virtual void get_recordmonitor_sizes(int do_audio
,
51 virtual void get_recordgui_sizes(RecordGUI
*gui
,
54 virtual void get_plugindialog_sizes();
55 virtual void get_menueffect_sizes(int use_list
);
56 virtual void draw_rwindow_bg(RecordGUI
*gui
);
57 virtual void draw_rmonitor_bg(RecordMonitorGUI
*gui
);
58 virtual void draw_awindow_bg(AWindowGUI
*gui
);
59 virtual void draw_cwindow_bg(CWindowGUI
*gui
);
60 virtual void draw_lwindow_bg(LevelWindowGUI
*gui
);
61 virtual void draw_mwindow_bg(MWindowGUI
*gui
);
62 virtual void draw_vwindow_bg(VWindowGUI
*gui
);
63 virtual void draw_resource_bg(TrackCanvas
*canvas
,
64 ResourcePixmap
*pixmap
,
73 virtual void get_preferences_sizes();
74 virtual void draw_preferences_bg(PreferencesWindow
*gui
);
75 virtual void get_new_sizes(NewWindow
*gui
);
76 virtual void draw_new_bg(NewWindow
*gui
);
77 virtual void draw_setformat_bg(SetFormatWindow
*window
);
79 virtual void build_menus();
80 unsigned char* get_image(char *title
);
83 ArrayList
<BC_ListBoxItem
*> aspect_ratios
;
84 ArrayList
<BC_ListBoxItem
*> frame_rates
;
85 ArrayList
<BC_ListBoxItem
*> frame_sizes
;
86 ArrayList
<BC_ListBoxItem
*> sample_rates
;
87 ArrayList
<BC_ListBoxItem
*> zoom_values
;
90 // Tools for building widgets
91 void overlay(VFrame
*dst
, VFrame
*src
, int in_x1
= -1, int in_x2
= -1);
92 void build_transport(VFrame
** &data
,
93 unsigned char *png_overlay
,
96 void build_patches(VFrame
** &data
,
97 unsigned char *png_overlay
,
100 void build_button(VFrame
** &data
,
101 unsigned char *png_overlay
,
105 void build_toggle(VFrame
** &data
,
106 unsigned char *png_overlay
,
109 VFrame
*checked_vframe
,
111 VFrame
*checkedhi_vframe
);
114 int abinbuttons_x
, abinbuttons_y
;
115 int abuttons_x
, abuttons_y
;
116 int adivider_x
, adivider_y
, adivider_w
, adivider_h
;
117 int afolders_x
, afolders_y
, afolders_w
, afolders_h
;
118 int alist_x
, alist_y
, alist_w
, alist_h
;
121 int cauto_x
, cauto_y
, cauto_w
, cauto_h
;
122 int ccanvas_x
, ccanvas_y
, ccanvas_w
, ccanvas_h
;
123 int ccomposite_x
, ccomposite_y
, ccomposite_w
, ccomposite_h
;
124 int cdest_x
, cdest_y
;
125 int cedit_x
, cedit_y
;
126 int channel_position_color
;
127 int cmeter_x
, cmeter_y
, cmeter_h
;
128 int cslider_x
, cslider_y
, cslider_w
;
129 int ctime_x
, ctime_y
;
130 int ctimebar_x
, ctimebar_y
, ctimebar_w
, ctimebar_h
;
131 int ctransport_x
, ctransport_y
;
132 int czoom_x
, czoom_y
;
136 int mbuttons_x
, mbuttons_y
, mbuttons_w
, mbuttons_h
;
137 int mcanvas_x
, mcanvas_y
, mcanvas_w
, mcanvas_h
;
138 int mclock_x
, mclock_y
, mclock_w
, mclock_h
;
141 int mstatus_x
, mstatus_y
, mstatus_w
, mstatus_h
;
142 int mstatus_message_x
, mstatus_message_y
;
143 int mstatus_progress_x
, mstatus_progress_y
, mstatus_progress_w
;
144 int mstatus_cancel_x
, mstatus_cancel_y
;
145 int mtimebar_x
, mtimebar_y
, mtimebar_w
, mtimebar_h
;
146 int mzoom_x
, mzoom_y
, mzoom_w
, mzoom_h
;
147 int new_audio_x
, new_audio_y
;
148 int new_ok_x
, new_ok_y
;
149 int new_video_x
, new_video_y
;
153 int patchbay_x
, patchbay_y
, patchbay_w
, patchbay_h
;
155 int plugindialog_new_x
, plugindialog_new_y
, plugindialog_new_w
, plugindialog_new_h
;
156 int plugindialog_shared_x
, plugindialog_shared_y
, plugindialog_shared_w
, plugindialog_shared_h
;
157 int plugindialog_module_x
, plugindialog_module_y
, plugindialog_module_w
, plugindialog_module_h
;
158 int plugindialog_newattach_x
, plugindialog_newattach_y
;
159 int plugindialog_sharedattach_x
, plugindialog_sharedattach_y
;
160 int plugindialog_moduleattach_x
, plugindialog_moduleattach_y
;
162 int menueffect_list_x
, menueffect_list_y
, menueffect_list_w
, menueffect_list_h
;
163 int menueffect_file_x
, menueffect_file_y
;
164 int menueffect_tools_x
, menueffect_tools_y
;
168 int recordgui_batches_w
, recordgui_batches_h
;
169 int recordgui_batches_x
, recordgui_batches_y
;
170 int recordgui_batch_x
, recordgui_batch_y
, recordgui_batchcaption_x
;
171 int recordgui_buttons_x
, recordgui_buttons_y
;
172 int recordgui_options_x
, recordgui_options_y
;
173 int recordgui_controls_x
, recordgui_controls_y
;
174 int recordgui_loadmode_x
, recordgui_loadmode_y
;
175 int recordgui_status_x
, recordgui_status_y
, recordgui_status_x2
;
176 int recordgui_transport_x
, recordgui_transport_y
;
177 int recordgui_fixed_color
, recordgui_variable_color
;
178 int rmonitor_canvas_w
, rmonitor_canvas_h
;
179 int rmonitor_canvas_x
, rmonitor_canvas_y
;
180 int rmonitor_channel_x
, rmonitor_channel_y
;
181 int rmonitor_interlace_x
, rmonitor_interlace_y
;
182 int rmonitor_meter_h
;
183 int rmonitor_meter_x
, rmonitor_meter_y
;
184 int rmonitor_source_x
, rmonitor_source_y
;
185 int rmonitor_tx_x
, rmonitor_tx_y
;
186 int setformat_x1
, setformat_x2
, setformat_x3
, setformat_x4
, setformat_y1
, setformat_w
, setformat_h
, setformat_margin
;
187 int setformat_channels_x
, setformat_channels_y
, setformat_channels_w
, setformat_channels_h
;
189 int title_font
, title_color
;
190 int vcanvas_x
, vcanvas_y
, vcanvas_w
, vcanvas_h
;
191 int vedit_x
, vedit_y
;
192 int vmeter_x
, vmeter_y
, vmeter_h
;
193 int vslider_x
, vslider_y
, vslider_w
;
194 int vsource_x
, vsource_y
;
195 int vtimebar_x
, vtimebar_y
, vtimebar_w
, vtimebar_h
;
196 int vtime_x
, vtime_y
, vtime_w
;
197 int vtransport_x
, vtransport_y
;
198 int vzoom_x
, vzoom_y
;
204 VFrame
*about_microsoft
;
205 VFrame
**appendasset_data
;
206 VFrame
**append_data
;
208 VFrame
**asset_append_data
;
209 VFrame
**asset_disk_data
;
210 VFrame
**asset_index_data
;
211 VFrame
**asset_info_data
;
212 VFrame
**asset_project_data
;
213 VFrame
**autokeyframe_data
;
214 VFrame
*awindow_icon
;
215 VFrame
**bottom_justify
;
216 VFrame
**browse_data
;
217 VFrame
**calibrate_data
;
218 VFrame
**camera_data
;
219 VFrame
*camerakeyframe_data
;
220 VFrame
**cancel_data
;
221 VFrame
**center_justify
;
223 VFrame
*channel_bg_data
;
224 VFrame
**channel_data
;
225 VFrame
*channel_position_data
;
230 VFrame
*cwindow_icon
;
231 VFrame
**delete_all_indexes_data
;
232 VFrame
**deletebin_data
;
233 VFrame
**delete_data
;
234 VFrame
**deletedisk_data
;
235 VFrame
**deleteproject_data
;
236 VFrame
**detach_data
;
237 VFrame
**dntriangle_data
;
238 VFrame
**drawpatch_data
;
239 VFrame
**duplex_data
;
241 VFrame
**edithandlein_data
;
242 VFrame
**edithandleout_data
;
244 VFrame
**expandpatch_data
;
245 VFrame
**extract_data
;
246 VFrame
**fastfwd_data
;
247 VFrame
**fastrev_data
;
249 VFrame
**forward_data
;
250 VFrame
**framefwd_data
;
251 VFrame
**framerev_data
;
252 VFrame
**gangpatch_data
;
255 VFrame
**indelete_data
;
256 VFrame
**infoasset_data
;
258 VFrame
**insert_data
;
259 VFrame
*keyframe_data
;
260 VFrame
**labelbutton_data
;
261 VFrame
**label_toggle
;
262 VFrame
**left_justify
;
264 VFrame
**magnify_button_data
;
265 VFrame
**magnify_data
;
267 VFrame
*maskkeyframe_data
;
268 VFrame
**middle_justify
;
269 VFrame
*modekeyframe_data
;
270 VFrame
**movedn_data
;
271 VFrame
**moveup_data
;
272 VFrame
**mutepatch_data
;
273 VFrame
*mwindow_icon
;
274 VFrame
**newbin_data
;
275 VFrame
**nextlabel_data
;
277 VFrame
**options_data
;
279 VFrame
**outdelete_data
;
281 VFrame
**over_button
;
282 VFrame
**overwrite_data
;
283 VFrame
*pankeyframe_data
;
284 VFrame
**pasteasset_data
;
288 VFrame
**paused_data
;
289 VFrame
**picture_data
;
290 VFrame
**playpatch_data
;
291 VFrame
*plugin_bg_data
;
292 VFrame
**presentation_data
;
293 VFrame
**presentation_loop
;
294 VFrame
**presentation_stop
;
295 VFrame
**prevlabel_data
;
297 VFrame
*projectorkeyframe_data
;
298 VFrame
**protect_data
;
300 VFrame
**recframe_data
;
302 VFrame
**recordpatch_data
;
304 VFrame
**redrawindex_data
;
305 VFrame
**renamebin_data
;
307 VFrame
*resource1024_bg_data
;
308 VFrame
*resource128_bg_data
;
309 VFrame
*resource256_bg_data
;
310 VFrame
*resource32_bg_data
;
311 VFrame
*resource512_bg_data
;
312 VFrame
*resource64_bg_data
;
313 VFrame
**reverse_data
;
314 VFrame
**rewind_data
;
315 VFrame
**right_justify
;
316 VFrame
**select_data
;
317 VFrame
**show_meters
;
318 VFrame
**splice_data
;
319 VFrame
**start_over_data
;
320 VFrame
**statusbar_cancel_data
;
322 VFrame
**stoprec_data
;
323 VFrame
*timebar_bg_data
;
324 VFrame
*timebar_brender_data
;
325 VFrame
*timebar_view_data
;
326 VFrame
*title_bg_data
;
327 VFrame
**titlesafe_data
;
328 VFrame
**toclip_data
;
330 VFrame
**top_justify
;
331 VFrame
**transition_data
;
333 VFrame
**uptriangle_data
;
334 VFrame
**viewasset_data
;
335 VFrame
*vtimebar_bg_data
;
336 VFrame
*vwindow_icon
;
337 VFrame
**wrench_data
;
342 // Compressed images are loaded in here.
344 char *contents_buffer
;
345 ArrayList
<char*> contents
;
346 ArrayList
<int> offsets
;
347 char path
[BCTEXTLEN
];