OBSWindows.cpp 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. ///////////////////////////////////////////////////////////////////////////
  2. // C++ code generated with wxFormBuilder (version Nov 6 2013)
  3. // http://www.wxformbuilder.org/
  4. //
  5. // PLEASE DO "NOT" EDIT THIS FILE!
  6. ///////////////////////////////////////////////////////////////////////////
  7. #include "OBSWindows.h"
  8. #include "res/delete.ico.h"
  9. #include "res/down.ico.h"
  10. #include "res/htmledit_icon22_properties.gif.h"
  11. #include "res/list_add.png.h"
  12. #include "res/up.ico.h"
  13. ///////////////////////////////////////////////////////////////////////////
  14. OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : WindowSubclass( parent, id, title, pos, size, style )
  15. {
  16. this->SetSizeHints( wxDefaultSize, wxDefaultSize );
  17. mainMenu = new wxMenuBar( 0 );
  18. fileMenu = new wxMenu();
  19. wxMenuItem* fileNewMenu;
  20. fileNewMenu = new wxMenuItem( fileMenu, ID_FILE_NEW, wxString( _("MainMenu.File.New") ) , wxEmptyString, wxITEM_NORMAL );
  21. fileMenu->Append( fileNewMenu );
  22. wxMenuItem* fileOpenMenu;
  23. fileOpenMenu = new wxMenuItem( fileMenu, IF_FILE_OPEN, wxString( _("MainMenu.File.Open") ) , wxEmptyString, wxITEM_NORMAL );
  24. fileMenu->Append( fileOpenMenu );
  25. wxMenuItem* fileSaveMenu;
  26. fileSaveMenu = new wxMenuItem( fileMenu, IF_FILE_SAVE, wxString( _("MainMenu.File.Save") ) , wxEmptyString, wxITEM_NORMAL );
  27. fileMenu->Append( fileSaveMenu );
  28. fileMenu->AppendSeparator();
  29. wxMenuItem* fileExitMenu;
  30. fileExitMenu = new wxMenuItem( fileMenu, ID_FILE_EXIT, wxString( _("MainWindow.Exit") ) , wxEmptyString, wxITEM_NORMAL );
  31. fileMenu->Append( fileExitMenu );
  32. mainMenu->Append( fileMenu, _("MainMenu.File") );
  33. this->SetMenuBar( mainMenu );
  34. wxBoxSizer* mainContainer;
  35. mainContainer = new wxBoxSizer( wxVERTICAL );
  36. mainPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  37. wxBoxSizer* panelContainer;
  38. panelContainer = new wxBoxSizer( wxVERTICAL );
  39. previewContainer = new wxBoxSizer( wxHORIZONTAL );
  40. wxBoxSizer* previewVertical;
  41. previewVertical = new wxBoxSizer( wxHORIZONTAL );
  42. wxBoxSizer* bSizer35;
  43. bSizer35 = new wxBoxSizer( wxVERTICAL );
  44. previewPanel = new wxPanel( mainPanel, ID_PROGRAM, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL );
  45. previewPanel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) );
  46. bSizer35->Add( previewPanel, 0, wxALIGN_CENTER|wxALL, 5 );
  47. previewVertical->Add( bSizer35, 1, wxEXPAND, 5 );
  48. previewContainer->Add( previewVertical, 1, wxALIGN_CENTER, 5 );
  49. panelContainer->Add( previewContainer, 1, wxEXPAND, 5 );
  50. wxBoxSizer* bottomContainer;
  51. bottomContainer = new wxBoxSizer( wxVERTICAL );
  52. bottomContainer->SetMinSize( wxSize( -1,155 ) );
  53. wxBoxSizer* bSizer36;
  54. bSizer36 = new wxBoxSizer( wxVERTICAL );
  55. wxBoxSizer* bottomCenterContainer;
  56. bottomCenterContainer = new wxBoxSizer( wxHORIZONTAL );
  57. wxBoxSizer* scenesContainer;
  58. scenesContainer = new wxBoxSizer( wxVERTICAL );
  59. scenesLabel = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Scenes"), wxDefaultPosition, wxDefaultSize, 0 );
  60. scenesLabel->Wrap( -1 );
  61. scenesContainer->Add( scenesLabel, 0, wxALL|wxEXPAND, 2 );
  62. scenesPanel = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER );
  63. wxBoxSizer* bSizer16;
  64. bSizer16 = new wxBoxSizer( wxVERTICAL );
  65. scenes = new wxListBox( scenesPanel, ID_SCENES, wxDefaultPosition, wxDefaultSize, 0, NULL, 0|wxNO_BORDER );
  66. bSizer16->Add( scenes, 1, wxALL|wxEXPAND, 0 );
  67. scenesToolbar = new wxToolBar( scenesPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL );
  68. scenesToolbar->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
  69. scenesToolbar->AddTool( ID_SCENE_ADD, _("tool"), list_add_png_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  70. scenesToolbar->AddTool( ID_SCENE_DELETE, _("tool"), delete_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  71. scenesToolbar->AddTool( ID_SCENE_PROPERTIES, _("tool"), htmledit_icon22_properties_gif_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  72. scenesToolbar->AddSeparator();
  73. scenesToolbar->AddTool( ID_SCENE_MOVEUP, _("tool"), up_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  74. scenesToolbar->AddTool( ID_SCENE_MOVEDOWN, _("tool"), down_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  75. scenesToolbar->Realize();
  76. bSizer16->Add( scenesToolbar, 0, wxEXPAND, 5 );
  77. scenesPanel->SetSizer( bSizer16 );
  78. scenesPanel->Layout();
  79. bSizer16->Fit( scenesPanel );
  80. scenesContainer->Add( scenesPanel, 1, wxEXPAND | wxALL, 2 );
  81. bottomCenterContainer->Add( scenesContainer, 1, wxEXPAND, 5 );
  82. wxBoxSizer* sourcesContainer;
  83. sourcesContainer = new wxBoxSizer( wxVERTICAL );
  84. sourcesLabel = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Sources"), wxDefaultPosition, wxDefaultSize, 0 );
  85. sourcesLabel->Wrap( -1 );
  86. sourcesContainer->Add( sourcesLabel, 0, wxALL|wxEXPAND, 2 );
  87. sourcesPanel = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER );
  88. wxBoxSizer* bSizer17;
  89. bSizer17 = new wxBoxSizer( wxVERTICAL );
  90. wxArrayString sourcesChoices;
  91. sources = new wxCheckListBox( sourcesPanel, ID_SOURCES, wxDefaultPosition, wxDefaultSize, sourcesChoices, 0|wxNO_BORDER );
  92. bSizer17->Add( sources, 1, wxALL, 0 );
  93. sourcesToolbar = new wxToolBar( sourcesPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL );
  94. sourcesToolbar->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
  95. sourcesToolbar->AddTool( ID_SOURCE_ADD, _("tool"), list_add_png_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  96. sourcesToolbar->AddTool( ID_SOURCE_DELETE, _("tool"), delete_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  97. sourcesToolbar->AddTool( ID_SOURCE_PROPERTIES, _("tool"), htmledit_icon22_properties_gif_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  98. sourcesToolbar->AddSeparator();
  99. sourcesToolbar->AddTool( ID_SOURCE_MOVEUP, _("tool"), up_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  100. sourcesToolbar->AddTool( ID_SOURCE_MOVEDOWN, _("tool"), down_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL );
  101. sourcesToolbar->Realize();
  102. bSizer17->Add( sourcesToolbar, 0, wxEXPAND, 5 );
  103. sourcesPanel->SetSizer( bSizer17 );
  104. sourcesPanel->Layout();
  105. bSizer17->Fit( sourcesPanel );
  106. sourcesContainer->Add( sourcesPanel, 1, wxEXPAND | wxALL, 2 );
  107. bottomCenterContainer->Add( sourcesContainer, 1, wxEXPAND, 5 );
  108. wxBoxSizer* rightButtonsContainer;
  109. rightButtonsContainer = new wxBoxSizer( wxVERTICAL );
  110. m_staticText6 = new wxStaticText( mainPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  111. m_staticText6->Wrap( -1 );
  112. rightButtonsContainer->Add( m_staticText6, 0, wxALL, 2 );
  113. toggleStreamButton = new wxButton( mainPanel, ID_STARTSTREAM, _("MainWindow.StartStream"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
  114. rightButtonsContainer->Add( toggleStreamButton, 0, wxALL|wxEXPAND, 2 );
  115. ToggleRecordButton = new wxButton( mainPanel, ID_RECORD, _("MainWindow.StartRecording"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
  116. rightButtonsContainer->Add( ToggleRecordButton, 0, wxALL|wxEXPAND, 2 );
  117. settingsButton = new wxButton( mainPanel, ID_SETTINGS, _("MainWindow.Settings"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
  118. rightButtonsContainer->Add( settingsButton, 0, wxALL|wxEXPAND, 2 );
  119. exitButton = new wxButton( mainPanel, ID_EXIT, _("MainWindow.Exit"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
  120. rightButtonsContainer->Add( exitButton, 0, wxALL|wxEXPAND, 2 );
  121. bottomCenterContainer->Add( rightButtonsContainer, 1, wxEXPAND, 5 );
  122. bSizer36->Add( bottomCenterContainer, 1, wxALIGN_CENTER, 5 );
  123. bottomContainer->Add( bSizer36, 1, wxALIGN_CENTER|wxEXPAND, 5 );
  124. panelContainer->Add( bottomContainer, 0, wxEXPAND, 5 );
  125. mainPanel->SetSizer( panelContainer );
  126. mainPanel->Layout();
  127. panelContainer->Fit( mainPanel );
  128. mainContainer->Add( mainPanel, 1, wxEXPAND | wxALL, 0 );
  129. this->SetSizer( mainContainer );
  130. this->Layout();
  131. statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
  132. this->Centre( wxBOTH );
  133. // Connect Events
  134. this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicBase::OnClose ) );
  135. this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( OBSBasicBase::OnMinimize ) );
  136. this->Connect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnSize ) );
  137. this->Connect( fileNewMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileNewClicked ) );
  138. this->Connect( fileOpenMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) );
  139. this->Connect( fileSaveMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) );
  140. this->Connect( fileExitMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) );
  141. scenes->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this );
  142. this->Connect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) );
  143. this->Connect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveClicked ) );
  144. this->Connect( ID_SCENE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::scenePropertiesClicked ) );
  145. this->Connect( ID_SCENE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneUpClicked ) );
  146. this->Connect( ID_SCENE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneDownClicked ) );
  147. sources->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::sourcesRDown ), NULL, this );
  148. this->Connect( ID_SOURCE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceAddClicked ) );
  149. this->Connect( ID_SOURCE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceRemoveClicked ) );
  150. this->Connect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesClicked ) );
  151. this->Connect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpClicked ) );
  152. this->Connect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownClicked ) );
  153. toggleStreamButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleStreamClicked ), NULL, this );
  154. ToggleRecordButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleRecordClicked ), NULL, this );
  155. settingsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::settingsClicked ), NULL, this );
  156. exitButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitClicked ), NULL, this );
  157. }
  158. OBSBasicBase::~OBSBasicBase()
  159. {
  160. // Disconnect Events
  161. this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicBase::OnClose ) );
  162. this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( OBSBasicBase::OnMinimize ) );
  163. this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnSize ) );
  164. this->Disconnect( ID_FILE_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileNewClicked ) );
  165. this->Disconnect( IF_FILE_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) );
  166. this->Disconnect( IF_FILE_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) );
  167. this->Disconnect( ID_FILE_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) );
  168. scenes->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this );
  169. this->Disconnect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) );
  170. this->Disconnect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveClicked ) );
  171. this->Disconnect( ID_SCENE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::scenePropertiesClicked ) );
  172. this->Disconnect( ID_SCENE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneUpClicked ) );
  173. this->Disconnect( ID_SCENE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneDownClicked ) );
  174. sources->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::sourcesRDown ), NULL, this );
  175. this->Disconnect( ID_SOURCE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceAddClicked ) );
  176. this->Disconnect( ID_SOURCE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceRemoveClicked ) );
  177. this->Disconnect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesClicked ) );
  178. this->Disconnect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpClicked ) );
  179. this->Disconnect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownClicked ) );
  180. toggleStreamButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleStreamClicked ), NULL, this );
  181. ToggleRecordButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleRecordClicked ), NULL, this );
  182. settingsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::settingsClicked ), NULL, this );
  183. exitButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitClicked ), NULL, this );
  184. }
  185. OBSStudioBase::OBSStudioBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : WindowSubclass( parent, id, title, pos, size, style )
  186. {
  187. this->SetSizeHints( wxSize( 900,400 ), wxDefaultSize );
  188. wxBoxSizer* windowSizer;
  189. windowSizer = new wxBoxSizer( wxVERTICAL );
  190. mainPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  191. wxBoxSizer* clientSizer;
  192. clientSizer = new wxBoxSizer( wxHORIZONTAL );
  193. leftSizer = new wxBoxSizer( wxVERTICAL );
  194. clientSizer->Add( leftSizer, 0, wxEXPAND, 5 );
  195. wxBoxSizer* centerSizer;
  196. centerSizer = new wxBoxSizer( wxVERTICAL );
  197. wxBoxSizer* topSizer;
  198. topSizer = new wxBoxSizer( wxHORIZONTAL );
  199. wxBoxSizer* bSizer5;
  200. bSizer5 = new wxBoxSizer( wxHORIZONTAL );
  201. wxBoxSizer* bSizer8;
  202. bSizer8 = new wxBoxSizer( wxVERTICAL );
  203. wxBoxSizer* bSizer33;
  204. bSizer33 = new wxBoxSizer( wxVERTICAL );
  205. wxBoxSizer* bSizer191;
  206. bSizer191 = new wxBoxSizer( wxVERTICAL );
  207. m_staticText6 = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Preview"), wxDefaultPosition, wxDefaultSize, 0 );
  208. m_staticText6->Wrap( -1 );
  209. bSizer191->Add( m_staticText6, 0, wxALL, 3 );
  210. m_panel2 = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxSize( 480,270 ), wxTAB_TRAVERSAL );
  211. m_panel2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) );
  212. bSizer191->Add( m_panel2, 0, wxALIGN_CENTER|wxALL, 3 );
  213. bSizer33->Add( bSizer191, 0, wxALIGN_CENTER, 0 );
  214. bSizer8->Add( bSizer33, 0, wxALIGN_CENTER|wxEXPAND, 5 );
  215. bSizer5->Add( bSizer8, 1, wxALIGN_CENTER, 5 );
  216. topSizer->Add( bSizer5, 1, wxEXPAND, 5 );
  217. transitionSizer = new wxBoxSizer( wxVERTICAL );
  218. m_button7 = new wxButton( mainPanel, wxID_ANY, _("MainWindow.Cut"), wxDefaultPosition, wxDefaultSize, 0 );
  219. transitionSizer->Add( m_button7, 0, wxALL, 5 );
  220. topSizer->Add( transitionSizer, 0, wxALIGN_CENTER, 5 );
  221. wxBoxSizer* bSizer6;
  222. bSizer6 = new wxBoxSizer( wxHORIZONTAL );
  223. wxBoxSizer* bSizer13;
  224. bSizer13 = new wxBoxSizer( wxVERTICAL );
  225. wxBoxSizer* bSizer34;
  226. bSizer34 = new wxBoxSizer( wxVERTICAL );
  227. wxBoxSizer* bSizer201;
  228. bSizer201 = new wxBoxSizer( wxVERTICAL );
  229. m_staticText7 = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Program"), wxDefaultPosition, wxDefaultSize, 0 );
  230. m_staticText7->Wrap( -1 );
  231. bSizer201->Add( m_staticText7, 0, wxALL, 3 );
  232. m_panel3 = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxSize( 480,270 ), wxTAB_TRAVERSAL );
  233. m_panel3->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) );
  234. bSizer201->Add( m_panel3, 0, wxALIGN_CENTER|wxALL, 3 );
  235. bSizer34->Add( bSizer201, 0, wxALIGN_CENTER, 0 );
  236. bSizer13->Add( bSizer34, 0, wxALIGN_CENTER|wxEXPAND, 5 );
  237. bSizer6->Add( bSizer13, 1, wxALIGN_CENTER, 5 );
  238. topSizer->Add( bSizer6, 1, wxEXPAND, 5 );
  239. centerSizer->Add( topSizer, 1, wxEXPAND, 5 );
  240. bottomSizer = new wxBoxSizer( wxVERTICAL );
  241. centerSizer->Add( bottomSizer, 0, wxEXPAND, 5 );
  242. clientSizer->Add( centerSizer, 1, wxEXPAND, 5 );
  243. rightSizer = new wxBoxSizer( wxVERTICAL );
  244. clientSizer->Add( rightSizer, 0, wxEXPAND, 5 );
  245. mainPanel->SetSizer( clientSizer );
  246. mainPanel->Layout();
  247. clientSizer->Fit( mainPanel );
  248. windowSizer->Add( mainPanel, 1, wxEXPAND, 0 );
  249. this->SetSizer( windowSizer );
  250. this->Layout();
  251. m_menubar1 = new wxMenuBar( 0 );
  252. m_menu1 = new wxMenu();
  253. wxMenuItem* m_menuItem1;
  254. m_menuItem1 = new wxMenuItem( m_menu1, wxID_ANY, wxString( _("MyMenuItem") ) , wxEmptyString, wxITEM_NORMAL );
  255. m_menu1->Append( m_menuItem1 );
  256. m_menubar1->Append( m_menu1, _("MainMenu.File") );
  257. this->SetMenuBar( m_menubar1 );
  258. m_statusBar1 = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
  259. this->Centre( wxBOTH );
  260. }
  261. OBSStudioBase::~OBSStudioBase()
  262. {
  263. }
  264. OBSBasicSettingsBase::OBSBasicSettingsBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DialogSubclass( parent, id, title, pos, size, style )
  265. {
  266. this->SetSizeHints( wxDefaultSize, wxDefaultSize );
  267. wxBoxSizer* bSizer30;
  268. bSizer30 = new wxBoxSizer( wxVERTICAL );
  269. wxBoxSizer* bSizer31;
  270. bSizer31 = new wxBoxSizer( wxVERTICAL );
  271. settingsList = new wxListbook( this, ID_SETTINGS_LIST, wxDefaultPosition, wxDefaultSize, wxLB_DEFAULT );
  272. generalPanel = new wxPanel( settingsList, ID_SETTINGS_GENERAL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  273. wxBoxSizer* bSizer32;
  274. bSizer32 = new wxBoxSizer( wxVERTICAL );
  275. bSizer32->Add( 0, 20, 0, wxEXPAND, 5 );
  276. wxFlexGridSizer* fgSizer13;
  277. fgSizer13 = new wxFlexGridSizer( 0, 2, 0, 0 );
  278. fgSizer13->SetFlexibleDirection( wxBOTH );
  279. fgSizer13->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  280. m_staticText27 = new wxStaticText( generalPanel, wxID_ANY, _("Settings.General.Language"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT );
  281. m_staticText27->Wrap( -1 );
  282. fgSizer13->Add( m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  283. languageList = new wxComboBox( generalPanel, ID_LANGUAGE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  284. fgSizer13->Add( languageList, 0, wxALL, 2 );
  285. bSizer32->Add( fgSizer13, 0, wxEXPAND, 5 );
  286. bSizer32->Add( 0, 20, 0, wxEXPAND, 5 );
  287. generalChangedText = new wxStaticText( generalPanel, wxID_ANY, _("Settings.RestartProgram"), wxDefaultPosition, wxDefaultSize, 0 );
  288. generalChangedText->Wrap( -1 );
  289. bSizer32->Add( generalChangedText, 1, wxALL|wxEXPAND, 5 );
  290. generalPanel->SetSizer( bSizer32 );
  291. generalPanel->Layout();
  292. bSizer32->Fit( generalPanel );
  293. settingsList->AddPage( generalPanel, _("Settings.General"), true );
  294. outputsPanel = new wxPanel( settingsList, ID_SETTINGS_OUTPUTS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  295. wxBoxSizer* bSizer33;
  296. bSizer33 = new wxBoxSizer( wxVERTICAL );
  297. outputsPanel->SetSizer( bSizer33 );
  298. outputsPanel->Layout();
  299. bSizer33->Fit( outputsPanel );
  300. settingsList->AddPage( outputsPanel, _("Settings.Outputs"), false );
  301. videoPanel = new wxPanel( settingsList, ID_SETTINGS_VIDEO, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  302. wxBoxSizer* bSizer34;
  303. bSizer34 = new wxBoxSizer( wxVERTICAL );
  304. bSizer34->Add( 0, 20, 0, wxEXPAND, 5 );
  305. wxFlexGridSizer* fgSizer1;
  306. fgSizer1 = new wxFlexGridSizer( 0, 2, 2, 0 );
  307. fgSizer1->SetFlexibleDirection( wxBOTH );
  308. fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  309. m_staticText211 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.Renderer"), wxDefaultPosition, wxDefaultSize, 0 );
  310. m_staticText211->Wrap( -1 );
  311. fgSizer1->Add( m_staticText211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  312. rendererList = new wxComboBox( videoPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  313. fgSizer1->Add( rendererList, 0, wxALL, 2 );
  314. m_staticText6 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.Adapter"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  315. m_staticText6->Wrap( -1 );
  316. m_staticText6->SetMinSize( wxSize( 270,-1 ) );
  317. fgSizer1->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  318. videoAdapterList = new wxComboBox( videoPanel, ID_ADAPTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  319. videoAdapterList->Enable( false );
  320. fgSizer1->Add( videoAdapterList, 0, wxALL, 2 );
  321. m_staticText8 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.BaseRes"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
  322. m_staticText8->Wrap( -1 );
  323. fgSizer1->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  324. baseResList = new wxComboBox( videoPanel, ID_BASE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
  325. fgSizer1->Add( baseResList, 0, wxALL, 2 );
  326. m_staticText10 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.OutputRes"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  327. m_staticText10->Wrap( -1 );
  328. fgSizer1->Add( m_staticText10, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  329. outputResList = new wxComboBox( videoPanel, ID_DOWNSCALE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
  330. fgSizer1->Add( outputResList, 0, wxALL, 2 );
  331. m_staticText11 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.DownscaleFilter"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  332. m_staticText11->Wrap( -1 );
  333. fgSizer1->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  334. filterList = new wxComboBox( videoPanel, ID_DOWNSCALE_FILTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  335. filterList->Enable( false );
  336. fgSizer1->Add( filterList, 0, wxALL, 2 );
  337. fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
  338. disableAeroCheckbox = new wxCheckBox( videoPanel, ID_DISABLEAERO, _("Settings.DisableAeroWindows"), wxDefaultPosition, wxDefaultSize, 0 );
  339. disableAeroCheckbox->Enable( false );
  340. fgSizer1->Add( disableAeroCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
  341. fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
  342. m_staticline1 = new wxStaticLine( videoPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  343. fgSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
  344. m_staticText22 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.FPS"), wxDefaultPosition, wxDefaultSize, 0 );
  345. m_staticText22->Wrap( -1 );
  346. fgSizer1->Add( m_staticText22, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  347. fpsTypeList = new wxChoicebook( videoPanel, ID_FPS_TYPE, wxDefaultPosition, wxDefaultSize, wxCHB_DEFAULT );
  348. m_panel13 = new wxPanel( fpsTypeList, ID_FPSPANEL_COMMON, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  349. wxBoxSizer* bSizer45;
  350. bSizer45 = new wxBoxSizer( wxHORIZONTAL );
  351. fpsCommonList = new wxComboBox( m_panel13, ID_FPS_COMMON, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  352. fpsCommonList->Append( _("10") );
  353. fpsCommonList->Append( _("20") );
  354. fpsCommonList->Append( _("29.97") );
  355. fpsCommonList->Append( _("30") );
  356. fpsCommonList->Append( _("48") );
  357. fpsCommonList->Append( _("59.94") );
  358. fpsCommonList->Append( _("60") );
  359. fpsCommonList->SetSelection( 3 );
  360. bSizer45->Add( fpsCommonList, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
  361. m_panel13->SetSizer( bSizer45 );
  362. m_panel13->Layout();
  363. bSizer45->Fit( m_panel13 );
  364. fpsTypeList->AddPage( m_panel13, _("Settings.Video.FPS.Common"), true );
  365. m_panel14 = new wxPanel( fpsTypeList, ID_FPSPANEL_INTEGER, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  366. wxBoxSizer* bSizer46;
  367. bSizer46 = new wxBoxSizer( wxHORIZONTAL );
  368. fpsIntegerScroller = new wxSpinCtrl( m_panel14, ID_FPS_INTEGER, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 120, 30 );
  369. bSizer46->Add( fpsIntegerScroller, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
  370. m_panel14->SetSizer( bSizer46 );
  371. m_panel14->Layout();
  372. bSizer46->Fit( m_panel14 );
  373. fpsTypeList->AddPage( m_panel14, _("Settings.Video.FPS.Integer"), false );
  374. m_panel15 = new wxPanel( fpsTypeList, ID_FPSPANEL_FRACTION, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  375. wxFlexGridSizer* fgSizer10;
  376. fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 0 );
  377. fgSizer10->SetFlexibleDirection( wxBOTH );
  378. fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  379. m_staticText20 = new wxStaticText( m_panel15, wxID_ANY, _("Settings.Video.FPS.Numerator"), wxDefaultPosition, wxDefaultSize, 0 );
  380. m_staticText20->Wrap( -1 );
  381. fgSizer10->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  382. fpsNumeratorScroller = new wxSpinCtrl( m_panel15, ID_FPS_NUMERATOR, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 1000000000, 30 );
  383. fgSizer10->Add( fpsNumeratorScroller, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 );
  384. m_staticText21 = new wxStaticText( m_panel15, wxID_ANY, _("Settings.Video.FPS.Denominator"), wxDefaultPosition, wxDefaultSize, 0 );
  385. m_staticText21->Wrap( -1 );
  386. fgSizer10->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  387. fpsDenominatorScroller = new wxSpinCtrl( m_panel15, ID_FPS_DENOMINATOR, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 1000000000, 1 );
  388. fgSizer10->Add( fpsDenominatorScroller, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 );
  389. m_panel15->SetSizer( fgSizer10 );
  390. m_panel15->Layout();
  391. fgSizer10->Fit( m_panel15 );
  392. fpsTypeList->AddPage( m_panel15, _("Settings.Video.FPS.Fraction"), false );
  393. m_panel16 = new wxPanel( fpsTypeList, ID_FPSPANEL_NANOSECONDS, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL );
  394. wxBoxSizer* bSizer50;
  395. bSizer50 = new wxBoxSizer( wxHORIZONTAL );
  396. fpsNanosecondsScroller = new wxSpinCtrl( m_panel16, ID_FPS_NANOSECONDS, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 8333333, 1000000000, 33333333 );
  397. bSizer50->Add( fpsNanosecondsScroller, 0, wxTOP|wxBOTTOM|wxRIGHT, 2 );
  398. m_panel16->SetSizer( bSizer50 );
  399. m_panel16->Layout();
  400. bSizer50->Fit( m_panel16 );
  401. fpsTypeList->AddPage( m_panel16, _("Settings.Video.FPS.Nanoseconds"), false );
  402. fgSizer1->Add( fpsTypeList, 0, wxALL, 2 );
  403. bSizer34->Add( fgSizer1, 0, wxEXPAND, 5 );
  404. bSizer34->Add( 0, 20, 0, wxEXPAND, 5 );
  405. videoChangedText = new wxStaticText( videoPanel, wxID_ANY, _("Settings.StreamRestart"), wxDefaultPosition, wxDefaultSize, 0 );
  406. videoChangedText->Wrap( -1 );
  407. bSizer34->Add( videoChangedText, 1, wxALL|wxEXPAND, 5 );
  408. videoPanel->SetSizer( bSizer34 );
  409. videoPanel->Layout();
  410. bSizer34->Fit( videoPanel );
  411. settingsList->AddPage( videoPanel, _("Settings.Video"), false );
  412. audioPanel = new wxPanel( settingsList, ID_SETTINGS_AUDIO, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  413. wxBoxSizer* bSizer36;
  414. bSizer36 = new wxBoxSizer( wxVERTICAL );
  415. bSizer36->Add( 0, 20, 0, wxEXPAND, 5 );
  416. wxFlexGridSizer* fgSizer11;
  417. fgSizer11 = new wxFlexGridSizer( 0, 2, 2, 0 );
  418. fgSizer11->SetFlexibleDirection( wxBOTH );
  419. fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  420. m_staticText23 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.DesktopAudioDevice"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT );
  421. m_staticText23->Wrap( -1 );
  422. fgSizer11->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  423. desktopAudioDeviceList = new wxComboBox( audioPanel, ID_DESKTOP_AUDIO_DEVICE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  424. desktopAudioDeviceList->Enable( false );
  425. fgSizer11->Add( desktopAudioDeviceList, 0, wxALL, 2 );
  426. m_staticText24 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.AuxAudioDevice1"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  427. m_staticText24->Wrap( -1 );
  428. fgSizer11->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  429. auxAudioDeviceList1 = new wxComboBox( audioPanel, ID_AUX_AUDIO_DEVICE1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  430. auxAudioDeviceList1->Enable( false );
  431. fgSizer11->Add( auxAudioDeviceList1, 0, wxALL, 2 );
  432. m_staticText241 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.AuxAudioDevice2"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  433. m_staticText241->Wrap( -1 );
  434. fgSizer11->Add( m_staticText241, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  435. auxAudioDeviceList2 = new wxComboBox( audioPanel, ID_AUX_AUDIO_DEVICE2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  436. auxAudioDeviceList2->Enable( false );
  437. fgSizer11->Add( auxAudioDeviceList2, 0, wxALL, 2 );
  438. m_staticText242 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.AuxAudioDevice3"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  439. m_staticText242->Wrap( -1 );
  440. fgSizer11->Add( m_staticText242, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  441. auxAudioDeviceList3 = new wxComboBox( audioPanel, ID_AUX_AUDIO_DEVICE3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  442. auxAudioDeviceList3->Enable( false );
  443. fgSizer11->Add( auxAudioDeviceList3, 0, wxALL, 2 );
  444. m_staticText243 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.AuxAudioDevice4"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
  445. m_staticText243->Wrap( -1 );
  446. fgSizer11->Add( m_staticText243, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );
  447. auxAudioDeviceList4 = new wxComboBox( audioPanel, ID_AUX_AUDIO_DEVICE4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
  448. auxAudioDeviceList4->Enable( false );
  449. fgSizer11->Add( auxAudioDeviceList4, 0, wxALL, 2 );
  450. bSizer36->Add( fgSizer11, 0, wxEXPAND, 5 );
  451. audioPanel->SetSizer( bSizer36 );
  452. audioPanel->Layout();
  453. bSizer36->Fit( audioPanel );
  454. settingsList->AddPage( audioPanel, _("Settings.Audio"), false );
  455. /*#ifndef __WXGTK__ // Small icon style not supported in GTK
  456. wxListView* settingsListListView = settingsList->GetListView();
  457. long settingsListFlags = settingsListListView->GetWindowStyleFlag();
  458. settingsListFlags = ( settingsListFlags & ~wxLC_ICON ) | wxLC_SMALL_ICON;
  459. settingsListListView->SetWindowStyleFlag( settingsListFlags );
  460. #endif*/
  461. bSizer31->Add( settingsList, 1, wxEXPAND | wxALL, 5 );
  462. bSizer30->Add( bSizer31, 1, wxEXPAND, 5 );
  463. wxBoxSizer* bSizer37;
  464. bSizer37 = new wxBoxSizer( wxHORIZONTAL );
  465. okButton = new wxButton( this, ID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
  466. bSizer37->Add( okButton, 0, wxALL, 5 );
  467. cancelButton = new wxButton( this, ID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
  468. bSizer37->Add( cancelButton, 0, wxALL, 5 );
  469. applyButton = new wxButton( this, ID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 );
  470. applyButton->Enable( false );
  471. bSizer37->Add( applyButton, 0, wxALL, 5 );
  472. bSizer30->Add( bSizer37, 0, wxALIGN_RIGHT, 5 );
  473. this->SetSizer( bSizer30 );
  474. this->Layout();
  475. this->Centre( wxBOTH );
  476. // Connect Events
  477. this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicSettingsBase::OnClose ) );
  478. settingsList->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( OBSBasicSettingsBase::PageChanged ), NULL, this );
  479. settingsList->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( OBSBasicSettingsBase::PageChanging ), NULL, this );
  480. okButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::OKClicked ), NULL, this );
  481. cancelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::CancelClicked ), NULL, this );
  482. applyButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::ApplyClicked ), NULL, this );
  483. }
  484. OBSBasicSettingsBase::~OBSBasicSettingsBase()
  485. {
  486. // Disconnect Events
  487. this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicSettingsBase::OnClose ) );
  488. settingsList->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( OBSBasicSettingsBase::PageChanged ), NULL, this );
  489. settingsList->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( OBSBasicSettingsBase::PageChanging ), NULL, this );
  490. okButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::OKClicked ), NULL, this );
  491. cancelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::CancelClicked ), NULL, this );
  492. applyButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::ApplyClicked ), NULL, this );
  493. }
  494. ProjectChooserBase::ProjectChooserBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
  495. {
  496. this->SetSizeHints( wxDefaultSize, wxDefaultSize );
  497. wxBoxSizer* bSizer40;
  498. bSizer40 = new wxBoxSizer( wxVERTICAL );
  499. m_staticText22 = new wxStaticText( this, wxID_ANY, _("ProjectChooser.SelectType"), wxDefaultPosition, wxDefaultSize, 0 );
  500. m_staticText22->Wrap( -1 );
  501. bSizer40->Add( m_staticText22, 0, wxALL, 5 );
  502. wxBoxSizer* bSizer41;
  503. bSizer41 = new wxBoxSizer( wxVERTICAL );
  504. basicButton = new wxButton( this, wxID_ANY, _("ProjectChooser.Basic"), wxDefaultPosition, wxDefaultSize, 0 );
  505. bSizer41->Add( basicButton, 0, wxALL|wxEXPAND, 5 );
  506. studioButton = new wxButton( this, wxID_ANY, _("ProjectChooser.Studio"), wxDefaultPosition, wxDefaultSize, 0 );
  507. bSizer41->Add( studioButton, 0, wxALL|wxEXPAND, 5 );
  508. exitButton = new wxButton( this, wxID_ANY, _("MainWindow.Exit"), wxDefaultPosition, wxDefaultSize, 0 );
  509. bSizer41->Add( exitButton, 0, wxALL|wxEXPAND, 5 );
  510. bSizer40->Add( bSizer41, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
  511. this->SetSizer( bSizer40 );
  512. this->Layout();
  513. this->Centre( wxBOTH );
  514. // Connect Events
  515. this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProjectChooserBase::OnClose ) );
  516. basicButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::BasicClicked ), NULL, this );
  517. studioButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::StudioClicked ), NULL, this );
  518. exitButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::ExitClicked ), NULL, this );
  519. }
  520. ProjectChooserBase::~ProjectChooserBase()
  521. {
  522. // Disconnect Events
  523. this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProjectChooserBase::OnClose ) );
  524. basicButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::BasicClicked ), NULL, this );
  525. studioButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::StudioClicked ), NULL, this );
  526. exitButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::ExitClicked ), NULL, this );
  527. }