made it so that preview panel scales based upon window size

master
jp9000 2013-12-06 06:39:19 -07:00
parent a8d9c5b25c
commit 85374daa94
2 changed files with 31 additions and 1 deletions

View File

@ -21,6 +21,33 @@
void OBSBasic::OnClose(wxCloseEvent& event)
{
wxGetApp().ExitMainLoop();
event.Skip();
}
void OBSBasic::OnMinimize(wxIconizeEvent& event)
{
event.Skip();
}
void OBSBasic::OnSize(wxSizeEvent& event)
{
struct obs_video_info ovi;
event.Skip();
if (!obs_get_video_info(&ovi))
return;
wxSize targetSize = GetPreviewContainer()->GetSize();
double targetAspect = double(targetSize.x) / double(targetSize.y);
double baseAspect = double(ovi.base_width) / double(ovi.base_height);
if (targetAspect > baseAspect)
GetPreviewPanel()->SetMinSize(wxSize(targetSize.y * baseAspect,
targetSize.y));
else
GetPreviewPanel()->SetMinSize(wxSize(targetSize.x,
targetSize.x / baseAspect));
}
void OBSBasic::file_newOnMenuSelection(wxCommandEvent& event)

View File

@ -22,6 +22,8 @@
class OBSBasic : public OBSBasicBase {
protected:
virtual void OnClose(wxCloseEvent& event);
virtual void OnMinimize(wxIconizeEvent& event);
virtual void OnSize(wxSizeEvent& event);
virtual void file_newOnMenuSelection(wxCommandEvent& event);
virtual void file_openOnMenuSelection(wxCommandEvent& event);
virtual void file_saveOnMenuSelection(wxCommandEvent& event);
@ -42,5 +44,6 @@ protected:
public:
inline OBSBasic() : OBSBasicBase(NULL) {}
inline const wxPanel *GetPreviewPanel() const {return previewPanel;}
inline wxPanel *GetPreviewPanel() {return previewPanel;}
inline wxSizer *GetPreviewContainer() {return previewContainer;}
};