Added preliminary settings window form

This commit is contained in:
jp9000 2013-12-10 11:21:34 -07:00
parent 003dbfef73
commit f9e9626ee6
5 changed files with 4413 additions and 410 deletions

View file

@ -82,7 +82,6 @@ OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& tit
wxBoxSizer* bottomCenterContainer;
bottomCenterContainer = new wxBoxSizer( wxHORIZONTAL );
bottomCenterContainer->SetMinSize( wxSize( 625,-1 ) );
wxBoxSizer* scenesContainer;
scenesContainer = new wxBoxSizer( wxVERTICAL );
@ -168,33 +167,17 @@ OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& tit
bottomCenterContainer->Add( sourcesContainer, 1, wxEXPAND, 5 );
wxBoxSizer* leftButtonsContainer;
leftButtonsContainer = new wxBoxSizer( wxVERTICAL );
positionSizeButton = new wxButton( mainPanel, ID_SETPOSSIZE, _("MainWindow.SetPosSize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
leftButtonsContainer->Add( positionSizeButton, 0, wxALL|wxEXPAND, 2 );
cropButton = new wxButton( mainPanel, ID_CROP, _("MainWindow.Crop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
leftButtonsContainer->Add( cropButton, 0, wxALL|wxEXPAND, 2 );
lockPreview = new wxCheckBox( mainPanel, ID_LOCK, _("MainWindow.Lock"), wxDefaultPosition, wxDefaultSize, 0 );
lockPreview->SetValue(true);
leftButtonsContainer->Add( lockPreview, 0, wxALL|wxEXPAND, 5 );
enablePreview = new wxCheckBox( mainPanel, ID_PREVIEW, _("MainWindow.Preview"), wxDefaultPosition, wxDefaultSize, 0 );
enablePreview->SetValue(true);
leftButtonsContainer->Add( enablePreview, 0, wxALL, 5 );
bottomCenterContainer->Add( leftButtonsContainer, 1, wxEXPAND, 5 );
wxBoxSizer* rightButtonsContainer;
rightButtonsContainer = new wxBoxSizer( wxVERTICAL );
m_staticText6 = new wxStaticText( mainPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_staticText6->Wrap( -1 );
rightButtonsContainer->Add( m_staticText6, 0, wxALL, 2 );
toggleStream = new wxButton( mainPanel, ID_STARTSTREAM, _("MainWindow.StartStream"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
rightButtonsContainer->Add( toggleStream, 0, wxALL|wxEXPAND, 2 );
TogglePreview = new wxButton( mainPanel, ID_RECORD, _("MainWindow.Record"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
TogglePreview = new wxButton( mainPanel, ID_RECORD, _("MainWindow.StartRecording"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
rightButtonsContainer->Add( TogglePreview, 0, wxALL|wxEXPAND, 2 );
settingsButton = new wxButton( mainPanel, ID_SETTINGS, _("MainWindow.Settings"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
@ -236,7 +219,6 @@ OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& tit
this->Connect( file_open->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_openOnMenuSelection ) );
this->Connect( file_save->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_saveOnMenuSelection ) );
this->Connect( file_exit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_exitOnMenuSelection ) );
previewPanel->Connect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::whatever ), NULL, this );
scenes->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesOnRightDown ), NULL, this );
this->Connect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddOnToolClicked ) );
this->Connect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveOnToolClicked ) );
@ -249,6 +231,7 @@ OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& tit
this->Connect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesOnToolClicked ) );
this->Connect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpOnToolClicked ) );
this->Connect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownOnToolClicked ) );
exitButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitButtonOnButtonClick ), NULL, this );
}
OBSBasicBase::~OBSBasicBase()
@ -261,7 +244,6 @@ OBSBasicBase::~OBSBasicBase()
this->Disconnect( IF_FILE_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_openOnMenuSelection ) );
this->Disconnect( IF_FILE_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_saveOnMenuSelection ) );
this->Disconnect( ID_FILE_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::file_exitOnMenuSelection ) );
previewPanel->Disconnect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::whatever ), NULL, this );
scenes->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesOnRightDown ), NULL, this );
this->Disconnect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddOnToolClicked ) );
this->Disconnect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveOnToolClicked ) );
@ -274,6 +256,7 @@ OBSBasicBase::~OBSBasicBase()
this->Disconnect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesOnToolClicked ) );
this->Disconnect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpOnToolClicked ) );
this->Disconnect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownOnToolClicked ) );
exitButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitButtonOnButtonClick ), NULL, this );
}
@ -416,3 +399,281 @@ OBSStudioBase::OBSStudioBase( wxWindow* parent, wxWindowID id, const wxString& t
OBSStudioBase::~OBSStudioBase()
{
}
OBSBasicSettingsBase::OBSBasicSettingsBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DialogSubclass( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizer30;
bSizer30 = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer31;
bSizer31 = new wxBoxSizer( wxVERTICAL );
m_listbook1 = new wxListbook( this, ID_SETTINGS_LIST, wxDefaultPosition, wxDefaultSize, wxLB_DEFAULT );
m_panel8 = new wxPanel( m_listbook1, ID_SETTINGS_GENERAL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer32;
bSizer32 = new wxBoxSizer( wxVERTICAL );
bSizer32->Add( 0, 20, 0, wxEXPAND, 5 );
wxFlexGridSizer* fgSizer13;
fgSizer13 = new wxFlexGridSizer( 0, 2, 0, 0 );
fgSizer13->SetFlexibleDirection( wxBOTH );
fgSizer13->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText27 = new wxStaticText( m_panel8, wxID_ANY, _("Settings.General.Language"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT );
m_staticText27->Wrap( -1 );
fgSizer13->Add( m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
languageList = new wxComboBox( m_panel8, ID_LANGUAGE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer13->Add( languageList, 0, wxALL, 2 );
bSizer32->Add( fgSizer13, 1, wxEXPAND, 5 );
m_panel8->SetSizer( bSizer32 );
m_panel8->Layout();
bSizer32->Fit( m_panel8 );
m_listbook1->AddPage( m_panel8, _("Settings.General"), false );
m_panel9 = new wxPanel( m_listbook1, ID_SETTINGS_OUTPUTS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer33;
bSizer33 = new wxBoxSizer( wxVERTICAL );
m_panel9->SetSizer( bSizer33 );
m_panel9->Layout();
bSizer33->Fit( m_panel9 );
m_listbook1->AddPage( m_panel9, _("Settings.Outputs"), false );
m_panel10 = new wxPanel( m_listbook1, ID_SETTINGS_VIDEO, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer34;
bSizer34 = new wxBoxSizer( wxVERTICAL );
bSizer34->Add( 0, 20, 0, wxEXPAND, 5 );
wxFlexGridSizer* fgSizer1;
fgSizer1 = new wxFlexGridSizer( 0, 2, 2, 0 );
fgSizer1->SetFlexibleDirection( wxBOTH );
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText6 = new wxStaticText( m_panel10, wxID_ANY, _("Settings.Video.Adapter"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText6->Wrap( -1 );
m_staticText6->SetMinSize( wxSize( 270,-1 ) );
fgSizer1->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
videoAdapterList = new wxComboBox( m_panel10, ID_ADAPTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer1->Add( videoAdapterList, 0, wxALL, 2 );
m_staticText8 = new wxStaticText( m_panel10, wxID_ANY, _("Settings.Video.BaseRes"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
m_staticText8->Wrap( -1 );
fgSizer1->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
baseResList = new wxComboBox( m_panel10, ID_BASE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
fgSizer1->Add( baseResList, 0, wxALL, 2 );
m_staticText10 = new wxStaticText( m_panel10, wxID_ANY, _("Settings.Video.DownscaleRes"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText10->Wrap( -1 );
fgSizer1->Add( m_staticText10, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
downscaleResList = new wxComboBox( m_panel10, ID_DOWNSCALE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
fgSizer1->Add( downscaleResList, 0, wxALL, 2 );
m_staticText11 = new wxStaticText( m_panel10, wxID_ANY, _("Settings.Video.DownscaleFilter"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText11->Wrap( -1 );
fgSizer1->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
filterList = new wxComboBox( m_panel10, ID_DOWNSCALE_FILTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer1->Add( filterList, 0, wxALL, 2 );
fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
disableAeroCheckbox = new wxCheckBox( m_panel10, ID_DISABLEAERO, _("Settings.DisableAeroWindows"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer1->Add( disableAeroCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( m_panel10, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
m_staticText22 = new wxStaticText( m_panel10, wxID_ANY, _("Settings.Video.FPS"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText22->Wrap( -1 );
fgSizer1->Add( m_staticText22, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
fpsTypeList = new wxChoicebook( m_panel10, ID_FPS_TYPE, wxDefaultPosition, wxDefaultSize, wxCHB_DEFAULT );
m_panel13 = new wxPanel( fpsTypeList, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer45;
bSizer45 = new wxBoxSizer( wxHORIZONTAL );
fpsCommonList = new wxComboBox( m_panel13, ID_FPS_COMMON, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fpsCommonList->Append( _("10") );
fpsCommonList->Append( _("20") );
fpsCommonList->Append( _("29.97") );
fpsCommonList->Append( _("30") );
fpsCommonList->Append( _("48") );
fpsCommonList->Append( _("59.94") );
fpsCommonList->Append( _("60") );
fpsCommonList->SetSelection( 3 );
bSizer45->Add( fpsCommonList, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
m_panel13->SetSizer( bSizer45 );
m_panel13->Layout();
bSizer45->Fit( m_panel13 );
fpsTypeList->AddPage( m_panel13, _("Settings.Video.FPS.Common"), true );
m_panel14 = new wxPanel( fpsTypeList, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer46;
bSizer46 = new wxBoxSizer( wxHORIZONTAL );
fpsIntegerScroller = new wxSpinCtrl( m_panel14, ID_FPS_INTEGER, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 60, 30 );
bSizer46->Add( fpsIntegerScroller, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
m_panel14->SetSizer( bSizer46 );
m_panel14->Layout();
bSizer46->Fit( m_panel14 );
fpsTypeList->AddPage( m_panel14, _("Settings.Video.FPS.Integer"), false );
m_panel15 = new wxPanel( fpsTypeList, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxFlexGridSizer* fgSizer10;
fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 0 );
fgSizer10->SetFlexibleDirection( wxBOTH );
fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText20 = new wxStaticText( m_panel15, wxID_ANY, _("Settings.Video.FPS.Numerator"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText20->Wrap( -1 );
fgSizer10->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
fpsNumeratorScroller = new wxSpinCtrl( m_panel15, ID_FPS_NUMERATOR, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 1000000000, 30 );
fgSizer10->Add( fpsNumeratorScroller, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 );
m_staticText21 = new wxStaticText( m_panel15, wxID_ANY, _("Settings.Video.FPS.Denominator"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText21->Wrap( -1 );
fgSizer10->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
fpsDenominatorScroller = new wxSpinCtrl( m_panel15, ID_FPS_DENOMINATOR, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 1000000000, 1 );
fgSizer10->Add( fpsDenominatorScroller, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 );
m_panel15->SetSizer( fgSizer10 );
m_panel15->Layout();
fgSizer10->Fit( m_panel15 );
fpsTypeList->AddPage( m_panel15, _("Settings.Video.FPS.Fraction"), false );
m_panel16 = new wxPanel( fpsTypeList, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL );
wxBoxSizer* bSizer50;
bSizer50 = new wxBoxSizer( wxHORIZONTAL );
fpsNanosecondsScroller = new wxSpinCtrl( m_panel16, ID_FPS_NANOSECONDS, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 8333333, 1000000000, 33333333 );
bSizer50->Add( fpsNanosecondsScroller, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
m_panel16->SetSizer( bSizer50 );
m_panel16->Layout();
bSizer50->Fit( m_panel16 );
fpsTypeList->AddPage( m_panel16, _("Settings.Video.FPS.Nanoseconds"), false );
fgSizer1->Add( fpsTypeList, 0, wxALL, 2 );
bSizer34->Add( fgSizer1, 0, wxEXPAND, 5 );
m_panel10->SetSizer( bSizer34 );
m_panel10->Layout();
bSizer34->Fit( m_panel10 );
m_listbook1->AddPage( m_panel10, _("Settings.Video"), false );
m_panel11 = new wxPanel( m_listbook1, ID_SETTINGS_AUDIO, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer36;
bSizer36 = new wxBoxSizer( wxVERTICAL );
bSizer36->Add( 0, 20, 0, wxEXPAND, 5 );
wxFlexGridSizer* fgSizer11;
fgSizer11 = new wxFlexGridSizer( 0, 2, 2, 0 );
fgSizer11->SetFlexibleDirection( wxBOTH );
fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText23 = new wxStaticText( m_panel11, wxID_ANY, _("Settings.Audio.DesktopAudioDevice"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT );
m_staticText23->Wrap( -1 );
fgSizer11->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
desktopAudioDeviceList = new wxComboBox( m_panel11, ID_DESKTOP_AUDIO_DEVICE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer11->Add( desktopAudioDeviceList, 0, wxALL, 2 );
m_staticText24 = new wxStaticText( m_panel11, wxID_ANY, _("Settings.Audio.AuxAudioDevice1"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText24->Wrap( -1 );
fgSizer11->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
auxAudioDeviceList1 = new wxComboBox( m_panel11, ID_AUX_AUDIO_DEVICE1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer11->Add( auxAudioDeviceList1, 0, wxALL, 2 );
m_staticText241 = new wxStaticText( m_panel11, wxID_ANY, _("Settings.Audio.AuxAudioDevice2"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText241->Wrap( -1 );
fgSizer11->Add( m_staticText241, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
auxAudioDeviceList2 = new wxComboBox( m_panel11, ID_AUX_AUDIO_DEVICE2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer11->Add( auxAudioDeviceList2, 0, wxALL, 2 );
m_staticText242 = new wxStaticText( m_panel11, wxID_ANY, _("Settings.Audio.AuxAudioDevice3"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText242->Wrap( -1 );
fgSizer11->Add( m_staticText242, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
auxAudioDeviceList3 = new wxComboBox( m_panel11, ID_AUX_AUDIO_DEVICE3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer11->Add( auxAudioDeviceList3, 0, wxALL, 2 );
m_staticText243 = new wxStaticText( m_panel11, wxID_ANY, _("Settings.Audio.AuxAudioDevice4"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
m_staticText243->Wrap( -1 );
fgSizer11->Add( m_staticText243, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
auxAudioDeviceList4 = new wxComboBox( m_panel11, ID_AUX_AUDIO_DEVICE4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizer11->Add( auxAudioDeviceList4, 0, wxALL, 2 );
bSizer36->Add( fgSizer11, 1, wxEXPAND, 5 );
m_panel11->SetSizer( bSizer36 );
m_panel11->Layout();
bSizer36->Fit( m_panel11 );
m_listbook1->AddPage( m_panel11, _("Settings.Audio"), true );
#ifndef __WXGTK__ // Small icon style not supported in GTK
wxListView* m_listbook1ListView = m_listbook1->GetListView();
long m_listbook1Flags = m_listbook1ListView->GetWindowStyleFlag();
m_listbook1Flags = ( m_listbook1Flags & ~wxLC_ICON ) | wxLC_SMALL_ICON;
m_listbook1ListView->SetWindowStyleFlag( m_listbook1Flags );
#endif
bSizer31->Add( m_listbook1, 1, wxEXPAND | wxALL, 5 );
bSizer30->Add( bSizer31, 1, wxEXPAND, 5 );
wxBoxSizer* bSizer37;
bSizer37 = new wxBoxSizer( wxHORIZONTAL );
okButton = new wxButton( this, ID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer37->Add( okButton, 0, wxALL, 5 );
cancelButton = new wxButton( this, ID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer37->Add( cancelButton, 0, wxALL, 5 );
applyButton = new wxButton( this, ID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer37->Add( applyButton, 0, wxALL, 5 );
bSizer30->Add( bSizer37, 0, wxALIGN_RIGHT, 5 );
this->SetSizer( bSizer30 );
this->Layout();
this->Centre( wxBOTH );
}
OBSBasicSettingsBase::~OBSBasicSettingsBase()
{
}

File diff suppressed because it is too large Load diff

View file

@ -11,6 +11,7 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DialogSubclass;
class WindowSubclass;
#include "../wx-subclass.hpp"
@ -30,9 +31,16 @@ class WindowSubclass;
#include <wx/toolbar.h>
#include <wx/checklst.h>
#include <wx/button.h>
#include <wx/checkbox.h>
#include <wx/statusbr.h>
#include <wx/frame.h>
#include <wx/combobox.h>
#include <wx/checkbox.h>
#include <wx/statline.h>
#include <wx/spinctrl.h>
#include <wx/choicebk.h>
#include <wx/listbook.h>
#include <wx/listctrl.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@ -54,14 +62,37 @@ class WindowSubclass;
#define ID_SOURCE_PROPERTIES 1015
#define ID_SOURCE_MOVEUP 1016
#define ID_SOURCE_MOVEDOWN 1017
#define ID_SETPOSSIZE 1018
#define ID_CROP 1019
#define ID_LOCK 1020
#define ID_PREVIEW 1021
#define ID_STARTSTREAM 1022
#define ID_RECORD 1023
#define ID_SETTINGS 1024
#define ID_EXIT 1025
#define ID_STARTSTREAM 1018
#define ID_RECORD 1019
#define ID_SETTINGS 1020
#define ID_EXIT 1021
#define ID_OBS_STUDIO 1022
#define ID_OBS_BASIC_SETTINGS 1023
#define ID_SETTINGS_LIST 1024
#define ID_SETTINGS_GENERAL 1025
#define ID_LANGUAGE 1026
#define ID_SETTINGS_OUTPUTS 1027
#define ID_SETTINGS_VIDEO 1028
#define ID_ADAPTER 1029
#define ID_BASE_RES 1030
#define ID_DOWNSCALE_RES 1031
#define ID_DOWNSCALE_FILTER 1032
#define ID_DISABLEAERO 1033
#define ID_FPS_TYPE 1034
#define ID_FPS_COMMON 1035
#define ID_FPS_INTEGER 1036
#define ID_FPS_NUMERATOR 1037
#define ID_FPS_DENOMINATOR 1038
#define ID_FPS_NANOSECONDS 1039
#define ID_SETTINGS_AUDIO 1040
#define ID_DESKTOP_AUDIO_DEVICE 1041
#define ID_AUX_AUDIO_DEVICE1 1042
#define ID_AUX_AUDIO_DEVICE2 1043
#define ID_AUX_AUDIO_DEVICE3 1044
#define ID_AUX_AUDIO_DEVICE4 1045
#define ID_OK 1046
#define ID_CANCEL 1047
#define ID_APPLY 1048
///////////////////////////////////////////////////////////////////////////////
/// Class OBSBasicBase
@ -84,10 +115,7 @@ class OBSBasicBase : public WindowSubclass
wxPanel* sourcesPanel;
wxCheckListBox* sources;
wxToolBar* sourcesToolbar;
wxButton* positionSizeButton;
wxButton* cropButton;
wxCheckBox* lockPreview;
wxCheckBox* enablePreview;
wxStaticText* m_staticText6;
wxButton* toggleStream;
wxButton* TogglePreview;
wxButton* settingsButton;
@ -102,7 +130,6 @@ class OBSBasicBase : public WindowSubclass
virtual void file_openOnMenuSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void file_saveOnMenuSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void file_exitOnMenuSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void whatever( wxSizeEvent& event ) { event.Skip(); }
virtual void scenesOnRightDown( wxMouseEvent& event ) { event.Skip(); }
virtual void sceneAddOnToolClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void sceneRemoveOnToolClicked( wxCommandEvent& event ) { event.Skip(); }
@ -115,6 +142,7 @@ class OBSBasicBase : public WindowSubclass
virtual void sourcePropertiesOnToolClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void sourceUpOnToolClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void sourceDownOnToolClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void exitButtonOnButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
@ -149,10 +177,69 @@ class OBSStudioBase : public WindowSubclass
public:
OBSStudioBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _(".openBroadcastStudio"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1240,825 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
OBSStudioBase( wxWindow* parent, wxWindowID id = ID_OBS_STUDIO, const wxString& title = _(".openBroadcastStudio"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1240,825 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
~OBSStudioBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class OBSBasicSettingsBase
///////////////////////////////////////////////////////////////////////////////
class OBSBasicSettingsBase : public DialogSubclass
{
private:
protected:
wxListbook* m_listbook1;
wxPanel* m_panel8;
wxStaticText* m_staticText27;
wxComboBox* languageList;
wxPanel* m_panel9;
wxPanel* m_panel10;
wxStaticText* m_staticText6;
wxComboBox* videoAdapterList;
wxStaticText* m_staticText8;
wxComboBox* baseResList;
wxStaticText* m_staticText10;
wxComboBox* downscaleResList;
wxStaticText* m_staticText11;
wxComboBox* filterList;
wxCheckBox* disableAeroCheckbox;
wxStaticLine* m_staticline1;
wxStaticText* m_staticText22;
wxChoicebook* fpsTypeList;
wxPanel* m_panel13;
wxComboBox* fpsCommonList;
wxPanel* m_panel14;
wxSpinCtrl* fpsIntegerScroller;
wxPanel* m_panel15;
wxStaticText* m_staticText20;
wxSpinCtrl* fpsNumeratorScroller;
wxStaticText* m_staticText21;
wxSpinCtrl* fpsDenominatorScroller;
wxPanel* m_panel16;
wxSpinCtrl* fpsNanosecondsScroller;
wxPanel* m_panel11;
wxStaticText* m_staticText23;
wxComboBox* desktopAudioDeviceList;
wxStaticText* m_staticText24;
wxComboBox* auxAudioDeviceList1;
wxStaticText* m_staticText241;
wxComboBox* auxAudioDeviceList2;
wxStaticText* m_staticText242;
wxComboBox* auxAudioDeviceList3;
wxStaticText* m_staticText243;
wxComboBox* auxAudioDeviceList4;
wxButton* okButton;
wxButton* cancelButton;
wxButton* applyButton;
public:
OBSBasicSettingsBase( wxWindow* parent, wxWindowID id = ID_OBS_BASIC_SETTINGS, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 872,686 ), long style = wxDEFAULT_DIALOG_STYLE );
~OBSBasicSettingsBase();
};
#endif //__OBSWINDOWS_H__

View file

@ -54,6 +54,16 @@ wxFont wxCreateFontFromStockObject2(int index)
}
#endif
DialogSubclass::DialogSubclass(wxWindow *parent, wxWindowID id,
const wxString &title, const wxPoint &pos, const wxSize &size,
long style, const wxString &name)
: wxDialog(parent, id, title, pos, size, style, name)
{
#ifdef _WIN32
this->SetFont(wxFont(wxCreateFontFromStockObject2(DEFAULT_GUI_FONT)));
#endif
}
WindowSubclass::WindowSubclass(wxWindow* parent, wxWindowID id,
const wxString& title, const wxPoint& pos, const wxSize& size,
long style)
@ -100,7 +110,7 @@ wxSize ListCtrlFixed::DoGetBestClientSize() const
* I don't know! LET'S USE 10 * FONT HEIGHT!" ..Unfortunately, this
* person basically makes it impossible to use smaller sized list
* views in report mode. It will always become tremendously large in
* size, despite what constrains you originally have set with sizers.
* size, despite what constraints you originally have set with sizers.
* brilliant job, whoever you are. 10 * character height.. just..
* unbeleivably wow. I am ASTOUNDED.
*/

View file

@ -16,14 +16,15 @@
******************************************************************************/
#pragma once
#include <wx/dialog.h>
#include <wx/frame.h>
#include <wx/listctrl.h>
#include "obs-app.hpp"
/*
* Fixes windows fonts to be default dialog fonts (I don't give a crap what
* microsoft "recommends", the fonts they recommend look like utter garbage)
* Fixes windows fonts to be default dialog fonts (the fonts they recommend
* look like garbage)
*/
#ifdef _
@ -31,6 +32,16 @@
#define _(str) Str(str)
#endif
class DialogSubclass : public wxDialog {
public:
DialogSubclass(wxWindow *parent, wxWindowID id,
const wxString &title,
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE,
const wxString &name = wxDialogNameStr);
};
class WindowSubclass : public wxFrame {
public:
WindowSubclass(wxWindow* parent, wxWindowID id, const wxString& title,