// overrides base Show behavior. bool GSFrame::Show( bool shown ) { if( shown ) { GSPanel* gsPanel = GetViewport(); if( !gsPanel || gsPanel->IsBeingDeleted() ) { gsPanel = new GSPanel( this ); m_id_gspanel = gsPanel->GetId(); } gsPanel->Show( !EmuConfig.GS.DisableOutput ); gsPanel->DoResize(); gsPanel->SetFocus(); if( wxStaticText* label = GetLabel_OutputDisabled() ) label->Show( EmuConfig.GS.DisableOutput ); if( !m_timer_UpdateTitle.IsRunning() ) m_timer_UpdateTitle.Start( TitleBarUpdateMs ); } else { m_timer_UpdateTitle.Stop(); } return _parent::Show( shown ); }
GSFrame::GSFrame( const wxString& title) : wxFrame(NULL, wxID_ANY, title, g_Conf->GSWindow.WindowPos) , m_timer_UpdateTitle( this ) { SetIcons( wxGetApp().GetIconBundle() ); SetBackgroundColour( *wxBLACK ); wxStaticText* label = new wxStaticText( this, wxID_ANY, _("GS Output is Disabled!") ); m_id_OutputDisabled = label->GetId(); label->SetFont( pxGetFixedFont( 20, wxFONTWEIGHT_BOLD ) ); label->SetForegroundColour( *wxWHITE ); AppStatusEvent_OnSettingsApplied(); GSPanel* gsPanel = new GSPanel( this ); gsPanel->Show( !EmuConfig.GS.DisableOutput ); m_id_gspanel = gsPanel->GetId(); // TODO -- Implement this GS window status window! Whee. // (main concern is retaining proper client window sizes when closing/re-opening the window). //m_statusbar = CreateStatusBar( 2 ); Bind(wxEVT_CLOSE_WINDOW, &GSFrame::OnCloseWindow, this); Bind(wxEVT_MOVE, &GSFrame::OnMove, this); Bind(wxEVT_SIZE, &GSFrame::OnResize, this); Bind(wxEVT_ACTIVATE, &GSFrame::OnActivate, this); Bind(wxEVT_TIMER, &GSFrame::OnUpdateTitle, this, m_timer_UpdateTitle.GetId()); }