void MWindowGUI::create_objects()
{
+ lock_window("MWindowGUI::create_objects");
const int debug = 0;
resource_thread = new ResourceThread(mwindow, this);
add_subwindow(mbuttons = new MButtons(mwindow, this));
mbuttons->create_objects();
- add_subwindow(ffmpeg_toggle = new FFMpegToggle(mwindow, mbuttons, menu_w(), menu_h()+2));
+ int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2;
+ add_subwindow(proxy_toggle = new ProxyToggle(mwindow, mbuttons, x1, y1));
+ x1 += proxy_toggle->get_w() + 3;
+ add_subwindow(ffmpeg_toggle = new FFMpegToggle(mwindow, mbuttons, x1, y1));
pane[TOP_LEFT_PANE] = new TimelinePane(mwindow,
TOP_LEFT_PANE,
pane[TOP_LEFT_PANE]->canvas->activate();
if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__);
+ unlock_window();
}
void MWindowGUI::redraw_time_dependancies()
int x = w - MainShBtns::calculate_w(0);
mainmenu->resize_event(x, mainmenu->get_h());
mainshbtns->reposition_window(x, -1);
- ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2);
mwindow->theme->get_mwindow_sizes(this, w, h);
mwindow->theme->draw_mwindow_bg(this);
mbuttons->resize_event();
+ int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2;
+ proxy_toggle->reposition_window(x1, y1);
+ x1 += proxy_toggle->get_w() + 3;
+ ffmpeg_toggle->reposition_window(x1, y1);
statusbar->resize_event();
zoombar->resize_event();
}
}
+void MWindowGUI::update_proxy_toggle()
+{
+ int value = mwindow->edl->session->proxy_scale == 1 ? 1 : 0;
+ proxy_toggle->set_value(value);
+ if( mwindow->edl->session->proxy_scale == 1 &&
+ mwindow->edl->session->proxy_disabled_scale == 1 )
+ proxy_toggle->hide();
+ else
+ proxy_toggle->show();
+}
+
+void MWindowGUI::update_plugintoggles()
+{
+ for(int i = 0; i < TOTAL_PANES; i++)
+ {
+ if(pane[i])
+ {
+ pane[i]->canvas->refresh_plugintoggles();
+ }
+ }
+
+}
+
void MWindowGUI::draw_indexes(Indexable *indexable)
{
for(int i = 0; i < TOTAL_PANES; i++)
}
}
+int MWindowGUI::show_window(int flush)
+{
+ int ret = BC_WindowBase::show_window(flush);
+ update_proxy_toggle();
+ return ret;
+}
+
void MWindowGUI::draw_cursor(int do_plugintoggles)
{
for(int i = 0; i < TOTAL_PANES; i++)
}
}
-void MWindowGUI::update_plugintoggles()
-{
- for(int i = 0; i < TOTAL_PANES; i++)
- {
- if(pane[i])
- {
- pane[i]->canvas->refresh_plugintoggles();
- }
- }
-
-}
-
void MWindowGUI::update_scrollbars(int flush)
{
for(int i = 0; i < TOTAL_PANES; i++)
}
+ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y)
+ : BC_Toggle(x, y, ( !mwindow->edl->session->proxy_use_scaler ?
+ mwindow->theme->proxy_p_toggle :
+ mwindow->theme->proxy_s_toggle ),
+ mwindow->edl->session->proxy_disabled_scale != 1)
+{
+ this->mwindow = mwindow;
+ this->mbuttons = mbuttons;
+ scaler_images = mwindow->edl->session->proxy_use_scaler;
+ set_tooltip(mwindow->edl->session->proxy_disabled_scale==1 ?
+ _("Disable proxy") : _("Enable proxy"));
+}
+
+void ProxyToggle::show()
+{
+ int use_scaler = mwindow->edl->session->proxy_use_scaler;
+ if( scaler_images != use_scaler )
+ set_images(!(scaler_images=use_scaler) ?
+ mwindow->theme->proxy_p_toggle :
+ mwindow->theme->proxy_s_toggle );
+ draw_face(1, 0);
+ if( is_hidden() )
+ show_window();
+}
+
+void ProxyToggle::hide()
+{
+ if( !is_hidden() )
+ hide_window();
+}
+
+ProxyToggle::~ProxyToggle()
+{
+}
+
+int ProxyToggle::handle_event()
+{
+ int disabled = get_value();
+ if( disabled )
+ mwindow->disable_proxy();
+ else
+ mwindow->enable_proxy();
+ set_tooltip(!disabled ? _("Disable proxy") : _("Enable proxy"));
+ return 1;
+}
+
+int ProxyToggle::keypress_event()
+{
+ if( ctrl_down() && !shift_down() && !alt_down() ) {
+ int key = get_keypress();
+ if( key == 'r' ) {
+ int value = get_value() ? 0 : 1;
+ set_value(value);
+ return handle_event();
+ }
+ }
+ return 0;
+}
+