Fixed initialisation of tf in file_open(). Without setting the memory to 0,
[cinelerra_cv/mob.git] / plugins / microtheme / microtheme.C
blob664428cbbb7f79ee2149816bac6a77ef25a3c855
1 #include "cwindowgui.h"
2 #include "edl.h"
3 #include "edlsession.h"
4 #include "loadmode.h"
5 #include "mainmenu.h"
6 #include "mainsession.h"
7 #include "microtheme.h"
8 #include "mwindow.h"
9 #include "mwindowgui.h"
10 #include "statusbar.h"
11 #include "timebar.h"
12 #include "trackcanvas.h"
13 #include "vframe.h"
15 PluginClient* new_plugin(PluginServer *server)
17         return new MicroThemeMain(server);
21 MicroThemeMain::MicroThemeMain(PluginServer *server)
22  : PluginTClient(server)
26 MicroThemeMain::~MicroThemeMain()
31 char* MicroThemeMain::plugin_title() 
33         return "Microscopic"; 
36 Theme* MicroThemeMain::new_theme()
38         return theme = new MicroTheme;
45 MicroTheme::MicroTheme()
46  : Theme()
49 MicroTheme::~MicroTheme()
53 void MicroTheme::initialize()
55 //printf("MicroTheme::initialize 1\n");
56         mwindow_icon = new VFrame(get_image("mwindow_icon.png"));
57         vwindow_icon = new VFrame(get_image("mwindow_icon.png"));
58         cwindow_icon = new VFrame(get_image("mwindow_icon.png"));
59         awindow_icon = new VFrame(get_image("mwindow_icon.png"));
60         record_icon = new VFrame(get_image("mwindow_icon.png"));
61         clip_icon = new VFrame(get_image("clip_icon.png"));
64         static VFrame *default_patchbay_bg = new VFrame(get_image("patchbay_bg.png"));
66         BC_WindowBase::get_resources()->bg_color = WHITE;
67         BC_WindowBase::get_resources()->menu_light = WHITE;
68         BC_WindowBase::get_resources()->menu_highlighted = WHITE;
69         BC_WindowBase::get_resources()->menu_down = LTGREY;
70         BC_WindowBase::get_resources()->menu_up = WHITE;
71         BC_WindowBase::get_resources()->menu_shadow = MEGREY;
72         BC_WindowBase::get_resources()->medium_font = "-*-helvetica-medium-r-normal-*-10-*";
73         
74         static VFrame* default_listbox_bg = new VFrame(get_image("patchbay_bg.png"));
75         BC_WindowBase::get_resources()->listbox_bg = default_listbox_bg;
76         BC_WindowBase::get_resources()->button_light = WHITE;
77         BC_WindowBase::get_resources()->button_up = WHITE;
79         
80         static VFrame *default_cancel_images[] = 
81         {
82                 new VFrame(get_image("cancel_up.png")), new VFrame(get_image("cancel_hi.png")), new VFrame(get_image("cancel_dn.png"))
83         };
84         BC_WindowBase::get_resources()->cancel_images = default_cancel_images;
86         static VFrame *default_ok_images[] = 
87         {
88                 new VFrame(get_image("ok_up.png")), new VFrame(get_image("ok_hi.png")), new VFrame(get_image("ok_dn.png"))
89         };
90         BC_WindowBase::get_resources()->ok_images = default_ok_images;
92         static VFrame *default_button_images[] = 
93         {
94                 new VFrame(get_image("generic_up.png")), new VFrame(get_image("generic_hi.png")), new VFrame(get_image("generic_dn.png"))
95         };
96         BC_WindowBase::get_resources()->generic_button_images = default_button_images;
98         static VFrame *default_tumble_images[] = 
99         {
100                 new VFrame(get_image("tumble_up.png")), new VFrame(get_image("tumble_hi.png")), new VFrame(get_image("tumble_bottomdn.png")), new VFrame(get_image("tumble_topdn.png"))
101         };
102         BC_WindowBase::get_resources()->tumble_data = default_tumble_images;
104         static VFrame *default_checkbox_images[] = 
105         {
106                 new VFrame(get_image("checkbox_up.png")), new VFrame(get_image("checkbox_hi.png")), new VFrame(get_image("checkbox_checked.png")), new VFrame(get_image("checkbox_dn.png")), new VFrame(get_image("checkbox_checkedhi.png"))
107         };
108         BC_WindowBase::get_resources()->checkbox_images = default_checkbox_images;
109         
110         static VFrame *default_radial_images[] = 
111         {
112                 new VFrame(get_image("radial_up.png")), new VFrame(get_image("radial_hi.png")), new VFrame(get_image("radial_checked.png")), new VFrame(get_image("radial_dn.png")), new VFrame(get_image("radial_checkedhi.png"))
113         };
114         BC_WindowBase::get_resources()->radial_images = default_radial_images;
116         static VFrame* default_xmeter_data[] =
117         {
118                 new VFrame(get_image("xmeter_normal.png")),
119                 new VFrame(get_image("xmeter_green.png")),
120                 new VFrame(get_image("xmeter_red.png")),
121                 new VFrame(get_image("xmeter_yellow.png")),
122                 new VFrame(get_image("over_horiz.png"))
123         };
125         static VFrame* default_ymeter_data[] =
126         {
127                 new VFrame(get_image("ymeter_normal.png")),
128                 new VFrame(get_image("ymeter_green.png")),
129                 new VFrame(get_image("ymeter_red.png")),
130                 new VFrame(get_image("ymeter_yellow.png")),
131                 new VFrame(get_image("over_vert.png"))
132         };
133         BC_WindowBase::get_resources()->xmeter_images = default_xmeter_data;
134         BC_WindowBase::get_resources()->ymeter_images = default_ymeter_data;
135         BC_WindowBase::get_resources()->meter_font = SMALLFONT;
136         BC_WindowBase::get_resources()->meter_font_color = BLACK;
137         BC_WindowBase::get_resources()->meter_title_w = 25;
138         BC_WindowBase::get_resources()->meter_3d = 0;
140         static VFrame* default_pan_data[] = 
141         {
142                 new VFrame(get_image("pan_up.png")), 
143                 new VFrame(get_image("pan_hi.png")), 
144                 new VFrame(get_image("pan_popup.png")), 
145                 new VFrame(get_image("pan_channel.png")), 
146                 new VFrame(get_image("pan_stick.png")), 
147                 new VFrame(get_image("pan_channel_small.png")), 
148                 new VFrame(get_image("pan_stick_small.png"))
149         };
150         BC_WindowBase::get_resources()->pan_data = default_pan_data;
151         BC_WindowBase::get_resources()->pan_text_color = BLACK;
153         static VFrame *default_hscroll_data[] = 
154         {
155                 new VFrame(get_image("hscroll_handle_up.png")), 
156                 new VFrame(get_image("hscroll_handle_hi.png")), 
157                 new VFrame(get_image("hscroll_handle_dn.png")), 
158                 new VFrame(get_image("hscroll_handle_bg.png")), 
159                 new VFrame(get_image("hscroll_left_up.png")), 
160                 new VFrame(get_image("hscroll_left_hi.png")), 
161                 new VFrame(get_image("hscroll_left_dn.png")), 
162                 new VFrame(get_image("hscroll_right_up.png")), 
163                 new VFrame(get_image("hscroll_right_hi.png")), 
164                 new VFrame(get_image("hscroll_right_dn.png"))
165         };
166         static VFrame *default_vscroll_data[] = 
167         {
168                 new VFrame(get_image("vscroll_handle_up.png")), 
169                 new VFrame(get_image("vscroll_handle_hi.png")), 
170                 new VFrame(get_image("vscroll_handle_dn.png")), 
171                 new VFrame(get_image("vscroll_handle_bg.png")), 
172                 new VFrame(get_image("vscroll_left_up.png")), 
173                 new VFrame(get_image("vscroll_left_hi.png")), 
174                 new VFrame(get_image("vscroll_left_dn.png")), 
175                 new VFrame(get_image("vscroll_right_up.png")), 
176                 new VFrame(get_image("vscroll_right_hi.png")), 
177                 new VFrame(get_image("vscroll_right_dn.png"))
178         };
179         BC_WindowBase::get_resources()->hscroll_data = default_hscroll_data;
180         BC_WindowBase::get_resources()->vscroll_data = default_vscroll_data;
182         channel_bg_data = new VFrame(get_image("channel_bg.png"));
183         channel_position_data = new VFrame(get_image("channel_position.png"));
184         channel_position_color = BLACK;
185         recordgui_fixed_color = BLACK;
186         recordgui_variable_color = RED;
188         patchbay_bg = default_patchbay_bg;
189         resource1024_bg_data = new VFrame(get_image("resource1024.png"));
190         resource512_bg_data = new VFrame(get_image("resource512.png"));
191         resource256_bg_data = new VFrame(get_image("resource256.png"));
192         resource128_bg_data = new VFrame(get_image("resource128.png"));
193         resource64_bg_data = new VFrame(get_image("resource64.png"));
194         resource32_bg_data = new VFrame(get_image("resource32.png"));
195         plugin_bg_data = new VFrame(get_image("plugin_bg.png"));
196         title_bg_data = new VFrame(get_image("title_bg.png"));
197         timebar_bg_data = new VFrame(get_image("timebar_bg.png"));
198         vtimebar_bg_data = new VFrame(get_image("vwindow_timebar.png"));
200         keyframe_data = new VFrame(get_image("keyframe3.png"));
201         camerakeyframe_data = new VFrame(get_image("camerakeyframe.png"));
202         maskkeyframe_data = new VFrame(get_image("maskkeyframe.png"));
203         modekeyframe_data = new VFrame(get_image("modekeyframe.png"));
204         pankeyframe_data = new VFrame(get_image("pankeyframe.png"));
205         projectorkeyframe_data = new VFrame(get_image("projectorkeyframe.png"));
207         VFrame editpanel_up(get_image("editpanel_up.png"));
208         VFrame editpanel_hi(get_image("editpanel_hi.png"));
209         VFrame editpanel_dn(get_image("editpanel_dn.png"));
210         VFrame editpanel_checked(get_image("editpanel_checked.png"));
211         VFrame editpanel_checkedhi(get_image("editpanel_checkedhi.png"));
213         static VFrame *default_inpoint[] = { new VFrame(get_image("out_up.png")), new VFrame(get_image("out_hi.png")), new VFrame(get_image("out_checked.png")), new VFrame(get_image("out_dn.png")), new VFrame(get_image("out_checkedhi.png")) };
214         static VFrame *default_labeltoggle[] = { new VFrame(get_image("labeltoggle_up.png")), new VFrame(get_image("labeltoggle_uphi.png")), new VFrame(get_image("label_checked.png")), new VFrame(get_image("labeltoggle_dn.png")), new VFrame(get_image("label_checkedhi.png")) };
215         static VFrame *default_outpoint[] = { new VFrame(get_image("in_up.png")), new VFrame(get_image("in_hi.png")), new VFrame(get_image("in_checked.png")), new VFrame(get_image("in_dn.png")), new VFrame(get_image("in_checkedhi.png")) };
216         static VFrame *transport_bg[] = { new VFrame(get_image("transportup.png")), new VFrame(get_image("transporthi.png")), new VFrame(get_image("transportdn.png")) };
217         static VFrame *patches_bg[] = { new VFrame(get_image("patches_up.png")), new VFrame(get_image("patches_hi.png")), new VFrame(get_image("patches_checked.png")), new VFrame(get_image("patches_dn.png")), new VFrame(get_image("patches_checkedhi.png")) };
219         build_button(BC_WindowBase::get_resources()->filebox_updir_images, get_image("filebox_updir.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
220         build_button(BC_WindowBase::get_resources()->filebox_newfolder_images, get_image("filebox_newfolder.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
221         build_button(BC_WindowBase::get_resources()->filebox_icons_images, get_image("filebox_icons.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
222         build_button(BC_WindowBase::get_resources()->filebox_text_images, get_image("filebox_text.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
224         build_button(BC_WindowBase::get_resources()->listbox_button, get_image("listbox_button.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
225         build_button(bottom_justify, get_image("bottom_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
226         build_button(center_justify, get_image("center_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
227         build_button(copy_data, get_image("copy.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
228         build_button(cut_data, get_image("cut.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
229         build_button(fit_data, get_image("fit.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
230         build_button(in_data, get_image("outpoint.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
231         build_button(indelete_data, get_image("clearinpoint.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
232         build_button(labelbutton_data, get_image("label.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
233         build_button(left_justify, get_image("left_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
234         build_button(magnify_button_data, get_image("magnify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
235         build_button(middle_justify, get_image("middle_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
236         build_button(nextlabel_data, get_image("nextlabel.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
237         build_button(out_data, get_image("inpoint.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
238         build_button(outdelete_data, get_image("clearoutpoint.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
239         build_button(over_button, get_image("over.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
240         build_button(overwrite_data, get_image("overwrite.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
241         build_button(paste_data, get_image("paste.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
242         build_button(prevlabel_data, get_image("prevlabel.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
243         build_button(redo_data, get_image("redo.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
244         build_button(right_justify, get_image("right_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
245         build_button(splice_data, get_image("splice.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
246         build_button(statusbar_cancel_data, get_image("cancel_small.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
247         build_button(toclip_data, get_image("toclip.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
248         build_button(top_justify, get_image("top_justify.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
249         build_button(undo_data, get_image("undo.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
250         build_toggle(arrow_data, get_image("arrow.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
251         build_toggle(autokeyframe_data, get_image("autokeyframe.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
252         build_toggle(camera_data, get_image("camera.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
253         build_toggle(crop_data, get_image("crop.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
254         build_toggle(ibeam_data, get_image("ibeam.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
255         build_toggle(magnify_data, get_image("magnify.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
256         build_toggle(mask_data, get_image("mask.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
257         build_toggle(proj_data, get_image("projector.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
258         build_toggle(protect_data, get_image("protect.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
259         build_toggle(show_meters, get_image("show_meters.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
260         build_toggle(titlesafe_data, get_image("titlesafe.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
261         build_toggle(tool_data, get_image("toolwindow.png"), &editpanel_up, &editpanel_hi, &editpanel_checked, &editpanel_dn, &editpanel_checkedhi);
262         build_transport(duplex_data, get_image("duplex.png"), transport_bg, 1);
263         build_transport(end_data, get_image("end.png"), transport_bg, 2);
264         build_transport(fastfwd_data, get_image("fastfwd.png"), transport_bg, 1);
265         build_transport(fastrev_data, get_image("fastrev.png"), transport_bg, 1);
266         build_transport(forward_data, get_image("play.png"), transport_bg, 1);
267         build_transport(framefwd_data, get_image("framefwd.png"), transport_bg, 1);
268         build_transport(framefwd_data, get_image("framefwd.png"), transport_bg, 1);
269         build_transport(framerev_data, get_image("framerev.png"), transport_bg, 1);
270         build_transport(rec_data, get_image("record.png"), transport_bg, 1);
271         build_transport(recframe_data, get_image("singleframe.png"), transport_bg, 1);
272         build_transport(reverse_data, get_image("reverse.png"), transport_bg, 1);
273         build_transport(rewind_data, get_image("rewind.png"), transport_bg, 0);
274         build_transport(stop_data, get_image("stop.png"), transport_bg, 1);
275         build_transport(stoprec_data, get_image("stoprec.png"), transport_bg, 2);
277         build_patches(playpatch_data, get_image("playpatch.png"), patches_bg, 0);
278         build_patches(recordpatch_data, get_image("recordpatch.png"), patches_bg, 1);
279         build_patches(gangpatch_data, get_image("gangpatch.png"), patches_bg, 1);
280         build_patches(drawpatch_data, get_image("drawpatch.png"), patches_bg, 1);
281         build_patches(mutepatch_data, get_image("mutepatch.png"), patches_bg, 2);
283         static VFrame *default_expandpatch_data[] = 
284         {
285                 new VFrame(get_image("expandpatch_up.png")), 
286                 new VFrame(get_image("expandpatch_hi.png")), 
287                 new VFrame(get_image("expandpatch_checked.png")), 
288                 new VFrame(get_image("expandpatch_dn.png")), 
289                 new VFrame(get_image("expandpatch_checkedhi.png"))
290         };
291         expandpatch_data = default_expandpatch_data;
293         build_button(channel_data, get_image("channel.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
294         build_button(wrench_data, get_image("wrench.png"), &editpanel_up, &editpanel_hi, &editpanel_dn);
295         in_point = default_inpoint;
296         label_toggle = default_labeltoggle;
297         out_point = default_outpoint;
299         fade_h = BC_WindowBase::get_resources()->horizontal_slider_data[0]->get_h();
300         mode_h = BC_WindowBase::get_resources()->generic_button_images[0]->get_h();
301         meter_h = BC_WindowBase::get_resources()->xmeter_images[0]->get_h();
302         pan_h = BC_WindowBase::get_resources()->pan_data[PAN_UP]->get_h();
303         play_h = playpatch_data[0]->get_h();
304         title_h = 18;
305         pan_x = 25;
307         title_font = MEDIUMFONT;
308         title_color = BLACK;
310         loadmode_w = 250;
311         flush_images();
312 //printf("MicroTheme::initialize 2\n");
315 void MicroTheme::draw_mwindow_bg(MWindowGUI *gui)
317         gui->clear_box(0, 0, gui->get_w(), gui->get_h());
320 void MicroTheme::get_cwindow_sizes(CWindowGUI *gui)
322 //printf("Theme::get_cwindow_sizes 1 %p\n", mwindow);
323         cauto_x = 0;
324         cauto_y = 0; 
325         cauto_w = 0;
326         cauto_h = 0;
327         ccomposite_x = 0;
328         ccomposite_y = 5;
329         ccomposite_w = protect_data[0]->get_w();
330         ccomposite_h = mwindow->session->cwindow_h - ccomposite_y;
331         ccanvas_x = ccomposite_x + ccomposite_w;
332         ccanvas_y = 0;
333 //printf("Theme::get_cwindow_sizes 1\n");
336         if(mwindow->edl->session->cwindow_meter)
337         {
338                 cmeter_x = mwindow->session->cwindow_w - MeterPanel::get_meters_width(mwindow->edl->session->audio_channels, 
339                         mwindow->edl->session->cwindow_meter);
340                 ccanvas_w = cmeter_x - ccanvas_x - 5;
341         }
342         else
343         {
344                 cmeter_x = mwindow->session->cwindow_w;
345                 ccanvas_w = cmeter_x - ccanvas_x;
346         }
347 //printf("Theme::get_cwindow_sizes 1\n");
349         cmeter_y = 10;
350         cmeter_h = mwindow->session->cwindow_h - cmeter_y;
351         cedit_x = 10;
352         cedit_y = mwindow->session->cwindow_h - autokeyframe_data[0]->get_h();
353 //printf("Theme::get_cwindow_sizes 1\n");
354         ctransport_x = 10;
355         ctransport_y = cedit_y - forward_data[0]->get_h();
356         cslider_x = 5;
357         cslider_y = ctransport_y - 
358                 BC_WindowBase::get_resources()->horizontal_slider_data[0]->get_h();
359         cslider_w = ccanvas_x + ccanvas_w - cslider_x - cslider_x;
360         ccanvas_h = cslider_y - 5;
361 //printf("Theme::get_cwindow_sizes 1\n");
362         ctime_x = ctransport_x + PlayTransport::get_transport_width(mwindow);
363         ctime_y = ctransport_y;
364 //      czoom_x = ctime_x + 150;
365         czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + 20;
366 //printf("Theme::get_cwindow_sizes 1\n");
367         czoom_y = ctime_y;
368         cdest_x = czoom_x;
369         cdest_y = czoom_y + 30;
370 //printf("Theme::get_cwindow_sizes 2\n");
374 void MicroTheme::get_vwindow_sizes(VWindowGUI *gui)
376         vcanvas_x = 0;
377         vcanvas_y = 0;
378         if(mwindow->edl->session->vwindow_meter)
379         {
380                 vmeter_x = mwindow->session->vwindow_w - 
381                         MeterPanel::get_meters_width(mwindow->edl->session->audio_channels, 
382                                 mwindow->edl->session->vwindow_meter);
383                 vcanvas_w = vmeter_x - vcanvas_x - 5;
384         }
385         else
386         {
387                 vmeter_x = mwindow->session->vwindow_w;
388                 vcanvas_w = mwindow->session->vwindow_w;
389         }
391         vedit_x = 5;
392         vedit_y = mwindow->session->vwindow_h - autokeyframe_data[0]->get_h();
393         vtransport_x = 5;
394         vtransport_y = vedit_y - forward_data[0]->get_h();
395         vslider_x = 5;
396         vslider_y = vtransport_y - 
397                 BC_WindowBase::get_resources()->horizontal_slider_data[0]->get_h();
398         vslider_w = vcanvas_w - vslider_x - 5;
399         vtimebar_x = 0;
400         vtimebar_y = vslider_y - 20;
401         vtimebar_w = vcanvas_w - vcanvas_x;
404         vcanvas_h = vtimebar_y;
406         vmeter_y = 5;
407         vmeter_h = mwindow->session->vwindow_h - cmeter_y;
411         vtime_x = vtransport_x + PlayTransport::get_transport_width(mwindow) + 5;
412         vtime_y = vtransport_y;
413         vtime_w = 150;
414         vzoom_x = vtime_x + 150;
415         vzoom_y = vtime_y;
416         vsource_x = vtime_x;
417         vsource_y = vedit_y;
421 #define PATCHBAY_W 100
422 #define ZOOM_H 20
423 void MicroTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h)
425         mbuttons_x = 0;
426         mbuttons_y = gui->mainmenu->get_h();
427         mbuttons_w = w;
428         mbuttons_h = arrow_data[0]->get_h() + 4;
429         mclock_x = 0;
430         mclock_y = mbuttons_y + mbuttons_h;
431         mclock_w = PATCHBAY_W - 10;
432         mclock_h = timebar_bg_data->get_h();
433         mtimebar_x = PATCHBAY_W;
434         mtimebar_y = mclock_y;
435         mtimebar_w = w - mtimebar_x;
436         mtimebar_h = timebar_bg_data->get_h();
437         mstatus_x = 0;
438         mstatus_y = h - statusbar_cancel_data[0]->get_h();
439         mstatus_w = w;
440         mstatus_h = statusbar_cancel_data[0]->get_h();
441         mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 240;
442         mstatus_progress_y = mstatus_h - BC_WindowBase::get_resources()->progress_images[0]->get_h();
443         mstatus_progress_w = 230;
444         mstatus_cancel_x = mstatus_w - statusbar_cancel_data[0]->get_w();
445         mstatus_cancel_y = mstatus_h - statusbar_cancel_data[0]->get_h();
446         mzoom_x = 0;
447         mzoom_y = mstatus_y - ZOOM_H;
448         mzoom_h = ZOOM_H;
449         mzoom_w = w;
450         patchbay_x = 0;
451         patchbay_y = mtimebar_y + mtimebar_h;
452         patchbay_w = PATCHBAY_W;
453         patchbay_h = mzoom_y - patchbay_y;
454         mcanvas_x = patchbay_x + patchbay_w;
455         mcanvas_y = patchbay_y;
456         mcanvas_w = w - patchbay_w;
457         mcanvas_h = patchbay_h;
460 void MicroTheme::get_recordgui_sizes(RecordGUI *gui, int w, int h)
462         recordgui_status_x = 5;
463         recordgui_status_y = 5;
464         recordgui_status_x2 = 100;
465         recordgui_batch_x = 220;
466         recordgui_batch_y = 5;
467         recordgui_batchcaption_x = recordgui_batch_x + 70;
470         recordgui_transport_x = recordgui_batch_x;
471         recordgui_transport_y = recordgui_batch_y + 150;
473         recordgui_buttons_x = 220;
474         recordgui_buttons_y = recordgui_transport_y + 30;
475         recordgui_options_x = 220;
476         recordgui_options_y = recordgui_buttons_y + 30;
478         recordgui_batches_x = 10;
479         recordgui_batches_y = 250;
480         recordgui_batches_w = w - 20;
481         recordgui_batches_h = h - recordgui_batches_y - 70;
482         recordgui_loadmode_x = w / 2 - loadmode_w / 2;
483         recordgui_loadmode_y = h - 50;
485         recordgui_controls_x = 10;
486         recordgui_controls_y = h - 30;