EVT_COMMAND(1, wxEVT_INTF, Interface::OnControlEvent)
EVT_TIMER(ID_CONTROLS_TIMER, Interface::OnControlsTimer)
+ EVT_TIMER(ID_SLIDER_TIMER, Interface::OnSliderTimer)
END_EVENT_TABLE()
/*****************************************************************************
SetupHotkeys();
m_controls_timer.SetOwner(this, ID_CONTROLS_TIMER);
+ m_slider_timer.SetOwner(this, ID_SLIDER_TIMER);
/* Start timer */
timer = new Timer( p_intf, this );
{
case 0:
{
- int size_to_video = config_GetInt( p_intf, "wxwin-size-to-video" );
-
- if (size_to_video)
+ if( p_intf->p_sys->b_video_autosize )
{
frame_sizer->Layout();
frame_sizer->Fit(this);
delete [] p_entries;
}
+void Interface::HideSlider(bool layout)
+{
+ ShowSlider(false, layout);
+}
+
+void Interface::ShowSlider(bool show, bool layout)
+{
+ if (show)
+ {
+ //prevent the hide timers from hiding it now
+ m_slider_timer.Stop();
+ m_controls_timer.Stop();
+
+ //prevent continuous layout
+ if (slider_frame->IsShown())
+ {
+ return;
+ }
+
+ slider_frame->Show();
+ frame_sizer->Show( slider_frame );
+ }
+ else
+ {
+
+ //prevent continuous layout
+ if (!slider_frame->IsShown())
+ {
+ return;
+ }
+
+ slider_frame->Hide();
+ frame_sizer->Hide( slider_frame );
+ }
+
+ if (layout)
+ {
+ frame_sizer->Layout();
+ if ( p_intf->p_sys->b_video_autosize )
+ {
+ frame_sizer->Fit( this );
+ }
+ }
+}
+
+void Interface::HideDiscFrame(bool layout)
+{
+ ShowDiscFrame(false, layout);
+}
+
+void Interface::ShowDiscFrame(bool show, bool layout)
+{
+ if (show)
+ {
+ //prevent the hide timer from hiding it now
+ m_controls_timer.Stop();
+
+ //prevent continuous layout
+ if (disc_frame->IsShown())
+ {
+ return;
+ }
+
+ disc_frame->Show();
+ slider_sizer->Show( disc_frame );
+ }
+ else
+ {
+
+ //prevent continuous layout
+ if (!disc_frame->IsShown())
+ {
+ return;
+ }
+
+ disc_frame->Hide();
+ slider_sizer->Hide( disc_frame );
+ }
+
+ if (layout)
+ {
+ slider_sizer->Layout();
+ if ( p_intf->p_sys->b_video_autosize )
+ {
+ slider_sizer->Fit( slider_frame );
+ }
+ }
+}
+
/*****************************************************************************
* Event Handlers.
*****************************************************************************/
void Interface::OnControlsTimer(wxTimerEvent& WXUNUSED(event))
{
- int size_to_video = config_GetInt( p_intf, "wxwin-size-to-video" );
-
/* Hide slider and Disc Buttons */
- disc_frame->Hide();
- slider_sizer->Hide( disc_frame );
+ //postpone layout, we'll do it ourselves
+ HideDiscFrame(false);
+ HideSlider(false);
+
slider_sizer->Layout();
- if (size_to_video)
+ if ( p_intf->p_sys->b_video_autosize )
{
slider_sizer->Fit( slider_frame );
+ frame_sizer->Fit( this );
}
+}
- slider_frame->Hide();
- frame_sizer->Hide( slider_frame );
- frame_sizer->Layout();
- if (size_to_video)
+void Interface::OnSliderTimer(wxTimerEvent& WXUNUSED(event))
{
- frame_sizer->Fit( this );
- }
+ HideSlider();
}
void Interface::OnMenuOpen(wxMenuEvent& event)