From afeed34b7ac9592185bb5a53d0c506eb3e704be1 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 23 Jan 2014 11:53:55 -0700 Subject: [PATCH] Change the UI to Qt (work in progress) -------------------------------------------------- Notes and details -------------------------------------------------- Why was this done? Because wxWidgets was just lacking in many areas. I know wxWidgets is designed to be used with native controls, and that's great, but wxWidgets just is not a feature-complete toolkit for multiplatform applications. It lacks in dialog editors, its code is archaic and outdated, and I just feel frustrated every time I try to do things with it. Qt on the other hand.. I had to actually try Qt to realize how much better it was as a toolkit. They've got everything from dialog editors, to an IDE, a debugger, build tools, just everything, and it's all top-notch and highly maintained. The focus of the toolkit is application development, and they spend their time trying to help people do exactly that: make programs. Great support, great tools, and because of that, great toolkit. I just didn't want to alienate any developers by being stubborn about native widgets. There *are* some things that are rather lackluster about it and design choices I disagree with though. For example, I realize that to have an easy to use toolkit you have to have some level of code generation. However, in my personal and humble opinion, moc just feels like a terrible way to approach the problem. Even now I feel like there are a variety of ways you could handle code generation and automatic management of things like that. I don't like the idea of circumventing the language itself like that. It feels like one giant massive hack. -------------------------------------------------- Things that aren't working properly: -------------------------------------------------- - Settings dialog is not implemented. The dialog is complete but the code to handle the dialog hasn't been constructed yet. - There is a problem with using Qt widgets as a device target on windows, with at least OpenGL: if I have the preview widget automatically resize itself, it seems to cause some sort of video card failure that I don't understand. - Because of the above, resizing the preview widget has been disabled until I can figure out what's going on, so it's currently only a 32x32 area. - Direct3D doesn't seem to render correctly either, seems that the viewport is messed up or something. I'm sort of confused about what's going on with it. - The new main window seems to be triggering more race conditions than the wxWidgets main window dialog did. I'm not entirely sure what's going on here, but this may just be existing race conditions within libobs itself that I just never spotted before (even though I tend to be very thorough with race conditions any time I use variables cross-thread) --- .gitignore | 8 + obs/forms/NameDialog.ui | 105 + obs/forms/OBSBasic.ui | 533 ++ obs/forms/OBSBasicSettings.ui | 451 + obs/forms/OBSWindows.cpp | 854 -- obs/forms/OBSWindows.fbp | 8093 ----------------- obs/forms/OBSWindows.h | 328 - .../images/settings/applications-system-2.png | Bin 0 -> 5330 bytes .../images/settings/decibel_audio_player.png | Bin 0 -> 5249 bytes .../images/settings/network-bluetooth.png | Bin 0 -> 3222 bytes .../settings/preferences-system-network-3.png | Bin 0 -> 5546 bytes .../images/settings/system-settings-3.png | Bin 0 -> 4797 bytes obs/forms/images/settings/video-display-3.png | Bin 0 -> 3238 bytes obs/forms/obs.qrc | 23 + obs/forms/res/delete.ico.h | 136 - obs/forms/res/down.ico.h | 136 - obs/forms/res/list_add.png.h | 139 - obs/forms/res/properties.ico.h | 136 - obs/forms/res/up.ico.h | 136 - obs/obs-app.cpp | 71 +- obs/obs-app.hpp | 36 +- obs/qt-display.hpp | 20 + obs/qt-ptr-variant.hpp | 37 + obs/qt-wrappers.cpp | 51 + obs/qt-wrappers.hpp | 27 + obs/window-basic-main.cpp | 329 +- obs/window-basic-main.hpp | 77 +- obs/window-namedialog.cpp | 34 +- obs/window-namedialog.hpp | 27 +- obs/wx-subclass.cpp | 118 - obs/wx-subclass.hpp | 66 - obs/wx-wrappers.cpp | 90 - obs/wx-wrappers.hpp | 126 - vs/2013/OBS.sln | 30 +- vs/2013/OBS/OBS.vcxproj | 201 - vs/2013/OBS/OBS.vcxproj.filters | 87 - vs/2013/obs-studio/obs-studio.vcxproj | 442 + vs/2013/obs-studio/obs-studio.vcxproj.filters | 162 + vs/2013/pthreads/pthreads.vcxproj | 28 +- 39 files changed, 2170 insertions(+), 10967 deletions(-) create mode 100644 obs/forms/NameDialog.ui create mode 100644 obs/forms/OBSBasic.ui create mode 100644 obs/forms/OBSBasicSettings.ui delete mode 100644 obs/forms/OBSWindows.cpp delete mode 100644 obs/forms/OBSWindows.fbp delete mode 100644 obs/forms/OBSWindows.h create mode 100644 obs/forms/images/settings/applications-system-2.png create mode 100644 obs/forms/images/settings/decibel_audio_player.png create mode 100644 obs/forms/images/settings/network-bluetooth.png create mode 100644 obs/forms/images/settings/preferences-system-network-3.png create mode 100644 obs/forms/images/settings/system-settings-3.png create mode 100644 obs/forms/images/settings/video-display-3.png create mode 100644 obs/forms/obs.qrc delete mode 100644 obs/forms/res/delete.ico.h delete mode 100644 obs/forms/res/down.ico.h delete mode 100644 obs/forms/res/list_add.png.h delete mode 100644 obs/forms/res/properties.ico.h delete mode 100644 obs/forms/res/up.ico.h create mode 100644 obs/qt-display.hpp create mode 100644 obs/qt-ptr-variant.hpp create mode 100644 obs/qt-wrappers.cpp create mode 100644 obs/qt-wrappers.hpp delete mode 100644 obs/wx-subclass.cpp delete mode 100644 obs/wx-subclass.hpp delete mode 100644 obs/wx-wrappers.cpp delete mode 100644 obs/wx-wrappers.hpp delete mode 100644 vs/2013/OBS/OBS.vcxproj delete mode 100644 vs/2013/OBS/OBS.vcxproj.filters create mode 100644 vs/2013/obs-studio/obs-studio.vcxproj create mode 100644 vs/2013/obs-studio/obs-studio.vcxproj.filters diff --git a/.gitignore b/.gitignore index 4df8687f4..ba28b2391 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ Release/ Debug/ x64/ ipch/ +GeneratedFiles/ +.moc/ */bin/obs */bin/test @@ -39,6 +41,11 @@ compile libtool ltmain.sh +*.dmg +*.json +*.app +.DS_Store + .depend tags *.trace @@ -58,6 +65,7 @@ tags *.ncb *.user *.lo +*.ilk *.la *.o *.obj diff --git a/obs/forms/NameDialog.ui b/obs/forms/NameDialog.ui new file mode 100644 index 000000000..ffb6e8dfb --- /dev/null +++ b/obs/forms/NameDialog.ui @@ -0,0 +1,105 @@ + + + NameDialog + + + + 0 + 0 + 555 + 104 + + + + + 0 + 0 + + + + Dialog + + + + + + + 0 + 0 + + + + TextLabel + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + true + + + + + + + + + buttonBox + accepted() + NameDialog + accept() + + + 257 + 94 + + + 157 + 274 + + + + + buttonBox + rejected() + NameDialog + reject() + + + 325 + 94 + + + 286 + 274 + + + + + diff --git a/obs/forms/OBSBasic.ui b/obs/forms/OBSBasic.ui new file mode 100644 index 000000000..550f84698 --- /dev/null +++ b/obs/forms/OBSBasic.ui @@ -0,0 +1,533 @@ + + + Jim + OBSBasic + + + + 0 + 0 + 927 + 703 + + + + + 0 + 0 + + + + + 0 + 0 + + + + MainWindow + + + + + + + + 0 + 0 + + + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + + + + + + + + 0 + 0 + + + + + 620 + 0 + + + + + 16777215 + 154 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + Scenes + + + + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + 0 + 0 + + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + + + 16 + 16 + + + + false + + + + + + + + + + + + + + + + + + + + Sources + + + + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + QFrame::NoFrame + + + + + + + + 16 + 16 + + + + false + + + + + + + + + + + + + + + + + + + + Volume + + + + + + + + 0 + 0 + + + + true + + + + + 0 + 0 + 147 + 131 + + + + + 6 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Start Streaming + + + false + + + + + + + Start Recording + + + + + + + Settings + + + + + + + Exit + + + + + + + + + + + + + + + 0 + 0 + 927 + 24 + + + + + &File + + + + + + + + + + + + + + :/res/images/add.ico:/res/images/add.ico + + + AddScene + + + + + + :/res/images/add.ico:/res/images/add.ico + + + AddSource + + + + + + :/res/images/list_remove.png:/res/images/list_remove.png + + + RemoveScene + + + + + + :/res/images/list_remove.png:/res/images/list_remove.png + + + RemoveSource + + + + + + :/res/images/properties.ico:/res/images/properties.ico + + + SceneProperties + + + + + + :/res/images/properties.ico:/res/images/properties.ico + + + SourceProperties + + + + + + :/res/images/up.ico:/res/images/up.ico + + + SceneMoveUp + + + + + + :/res/images/up.ico:/res/images/up.ico + + + SourceMoveUp + + + + + + :/res/images/down.ico:/res/images/down.ico + + + SceneMoveDown + + + + + + :/res/images/down.ico:/res/images/down.ico + + + SourceMoveDown + + + + + &New + + + + + &Open + + + + + &Save + + + + + E&xit + + + + + + OBSQTDisplay + QWidget +
qt-display.hpp
+ 1 +
+
+ + + + + + actionE_xit + triggered() + OBSBasic + close() + + + -1 + -1 + + + 463 + 351 + + + + + exitButton + clicked() + OBSBasic + close() + + + 697 + 615 + + + 463 + 351 + + + + +
diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui new file mode 100644 index 000000000..6cb512c65 --- /dev/null +++ b/obs/forms/OBSBasicSettings.ui @@ -0,0 +1,451 @@ + + + OBSBasicSettings + + + + 0 + 0 + 752 + 602 + + + + Settings + + + + + + + + + 0 + 0 + + + + + 135 + 16777215 + + + + + 48 + 48 + + + + + General + + + + :/settings/images/settings/system-settings-3.png:/settings/images/settings/system-settings-3.png + + + + + Outputs + + + + :/settings/images/settings/network-bluetooth.png:/settings/images/settings/network-bluetooth.png + + + + + Audio + + + + :/settings/images/settings/decibel_audio_player.png:/settings/images/settings/decibel_audio_player.png + + + + + Video + + + + :/settings/images/settings/video-display-3.png:/settings/images/settings/video-display-3.png + + + + + + + + 3 + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 150 + 0 + + + + Language: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + false + + + + + + + + 170 + 0 + + + + Desktop Audio Device 1: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Desktop Audio Device 2: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + false + + + + + + + Aux Audio Device 1: + + + + + + + false + + + + + + + Aux Audio Device 2: + + + + + + + false + + + + + + + Aux Audio Device 3: + + + + + + + false + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Renderer: + + + + + + + + + + + + + + + 170 + 0 + + + + Video Adapter: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + Base Resolution: + + + + + + + true + + + + + + false + + + true + + + + + + + Output Resolution: + + + + + + + true + + + + + + + + + + + + + Downscale Filter: + + + + + + + + 0 + 0 + + + + Common FPS + + + QComboBox::AdjustToContents + + + + Common FPS + + + + + Fractional FPS (Advanced) + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + Numerator: + + + + + + + Denomniator: + + + + + + + + + + + + + + + + + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + listWidget + buttonBox + language + + + + + + + listWidget + currentRowChanged(int) + settingsPages + setCurrentIndex(int) + + + 75 + 35 + + + 199 + 50 + + + + + comboBox_6 + currentIndexChanged(int) + stackedWidget + setCurrentIndex(int) + + + 286 + 155 + + + 340 + 154 + + + + + diff --git a/obs/forms/OBSWindows.cpp b/obs/forms/OBSWindows.cpp deleted file mode 100644 index 040520c89..000000000 --- a/obs/forms/OBSWindows.cpp +++ /dev/null @@ -1,854 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 6 2013) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "OBSWindows.h" - -#include "res/delete.ico.h" -#include "res/down.ico.h" -#include "res/list_add.png.h" -#include "res/properties.ico.h" -#include "res/up.ico.h" - -/////////////////////////////////////////////////////////////////////////// - -OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : WindowSubclass( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - mainMenu = new wxMenuBar( 0 ); - fileMenu = new wxMenu(); - wxMenuItem* fileNewMenu; - fileNewMenu = new wxMenuItem( fileMenu, ID_FILE_NEW, wxString( _("MainMenu.File.New") ) , wxEmptyString, wxITEM_NORMAL ); - fileMenu->Append( fileNewMenu ); - - wxMenuItem* fileOpenMenu; - fileOpenMenu = new wxMenuItem( fileMenu, IF_FILE_OPEN, wxString( _("MainMenu.File.Open") ) , wxEmptyString, wxITEM_NORMAL ); - fileMenu->Append( fileOpenMenu ); - - wxMenuItem* fileSaveMenu; - fileSaveMenu = new wxMenuItem( fileMenu, IF_FILE_SAVE, wxString( _("MainMenu.File.Save") ) , wxEmptyString, wxITEM_NORMAL ); - fileMenu->Append( fileSaveMenu ); - - fileMenu->AppendSeparator(); - - wxMenuItem* fileExitMenu; - fileExitMenu = new wxMenuItem( fileMenu, ID_FILE_EXIT, wxString( _("MainWindow.Exit") ) , wxEmptyString, wxITEM_NORMAL ); - fileMenu->Append( fileExitMenu ); - - mainMenu->Append( fileMenu, _("MainMenu.File") ); - - this->SetMenuBar( mainMenu ); - - wxBoxSizer* mainContainer; - mainContainer = new wxBoxSizer( wxVERTICAL ); - - mainPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* panelContainer; - panelContainer = new wxBoxSizer( wxVERTICAL ); - - previewContainer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* previewVertical; - previewVertical = new wxBoxSizer( wxVERTICAL ); - - previewPanel = new wxPanel( mainPanel, ID_PROGRAM, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL ); - previewPanel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) ); - - previewVertical->Add( previewPanel, 0, wxALIGN_CENTER|wxALL, 5 ); - - - previewContainer->Add( previewVertical, 1, wxALIGN_CENTER, 5 ); - - - panelContainer->Add( previewContainer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bottomContainer; - bottomContainer = new wxBoxSizer( wxVERTICAL ); - - bottomContainer->SetMinSize( wxSize( -1,155 ) ); - wxFlexGridSizer* fgSizer5; - fgSizer5 = new wxFlexGridSizer( 0, 4, 0, 0 ); - fgSizer5->AddGrowableRow( 1 ); - fgSizer5->SetFlexibleDirection( wxVERTICAL ); - fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - scenesLabel = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Scenes"), wxDefaultPosition, wxDefaultSize, 0 ); - scenesLabel->Wrap( -1 ); - fgSizer5->Add( scenesLabel, 0, wxALL|wxEXPAND, 2 ); - - sourcesLabel = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Sources"), wxDefaultPosition, wxDefaultSize, 0 ); - sourcesLabel->Wrap( -1 ); - fgSizer5->Add( sourcesLabel, 0, wxALL|wxEXPAND, 2 ); - - sourcesLabel1 = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Volume"), wxDefaultPosition, wxDefaultSize, 0 ); - sourcesLabel1->Wrap( -1 ); - fgSizer5->Add( sourcesLabel1, 0, wxALL|wxEXPAND, 2 ); - - - fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 ); - - scenesPanel = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER ); - wxBoxSizer* bSizer16; - bSizer16 = new wxBoxSizer( wxVERTICAL ); - - scenes = new wxListBox( scenesPanel, ID_SCENES, wxDefaultPosition, wxDefaultSize, 0, NULL, 0|wxNO_BORDER ); - bSizer16->Add( scenes, 1, wxEXPAND, 0 ); - - scenesToolbar = new wxToolBar( scenesPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL ); - scenesToolbar->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); - - scenesToolbar->AddTool( ID_SCENE_ADD, _("tool"), list_add_png_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - scenesToolbar->AddTool( ID_SCENE_DELETE, _("tool"), delete_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - scenesToolbar->AddTool( ID_SCENE_PROPERTIES, _("tool"), properties_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - scenesToolbar->AddSeparator(); - - scenesToolbar->AddTool( ID_SCENE_MOVEUP, _("tool"), up_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - scenesToolbar->AddTool( ID_SCENE_MOVEDOWN, _("tool"), down_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - scenesToolbar->Realize(); - - bSizer16->Add( scenesToolbar, 0, wxEXPAND, 5 ); - - - scenesPanel->SetSizer( bSizer16 ); - scenesPanel->Layout(); - bSizer16->Fit( scenesPanel ); - fgSizer5->Add( scenesPanel, 1, wxEXPAND | wxALL, 2 ); - - sourcesPanel = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER ); - wxBoxSizer* bSizer17; - bSizer17 = new wxBoxSizer( wxVERTICAL ); - - wxArrayString sourcesChoices; - sources = new wxCheckListBox( sourcesPanel, ID_SOURCES, wxDefaultPosition, wxDefaultSize, sourcesChoices, 0|wxNO_BORDER ); - bSizer17->Add( sources, 1, wxEXPAND, 0 ); - - sourcesToolbar = new wxToolBar( sourcesPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL ); - sourcesToolbar->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); - - sourcesToolbar->AddTool( ID_SOURCE_ADD, _("tool"), list_add_png_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - sourcesToolbar->AddTool( ID_SOURCE_DELETE, _("tool"), delete_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - sourcesToolbar->AddTool( ID_SOURCE_PROPERTIES, _("tool"), properties_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - sourcesToolbar->AddSeparator(); - - sourcesToolbar->AddTool( ID_SOURCE_MOVEUP, _("tool"), up_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - sourcesToolbar->AddTool( ID_SOURCE_MOVEDOWN, _("tool"), down_ico_to_wx_bitmap(), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL ); - - sourcesToolbar->Realize(); - - bSizer17->Add( sourcesToolbar, 0, wxEXPAND, 5 ); - - - sourcesPanel->SetSizer( bSizer17 ); - sourcesPanel->Layout(); - bSizer17->Fit( sourcesPanel ); - fgSizer5->Add( sourcesPanel, 1, wxEXPAND | wxALL, 2 ); - - m_scrolledWindow1 = new wxScrolledWindow( mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL ); - m_scrolledWindow1->SetScrollRate( 5, 5 ); - wxBoxSizer* bSizer44; - bSizer44 = new wxBoxSizer( wxVERTICAL ); - - - m_scrolledWindow1->SetSizer( bSizer44 ); - m_scrolledWindow1->Layout(); - bSizer44->Fit( m_scrolledWindow1 ); - fgSizer5->Add( m_scrolledWindow1, 1, wxEXPAND|wxALL, 2 ); - - wxBoxSizer* rightButtonsContainer; - rightButtonsContainer = new wxBoxSizer( wxVERTICAL ); - - toggleStreamButton = new wxButton( mainPanel, ID_STARTSTREAM, _("MainWindow.StartStream"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); - rightButtonsContainer->Add( toggleStreamButton, 0, wxALL|wxEXPAND, 2 ); - - ToggleRecordButton = new wxButton( mainPanel, ID_RECORD, _("MainWindow.StartRecording"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); - rightButtonsContainer->Add( ToggleRecordButton, 0, wxALL|wxEXPAND, 2 ); - - settingsButton = new wxButton( mainPanel, ID_SETTINGS, _("MainWindow.Settings"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); - rightButtonsContainer->Add( settingsButton, 0, wxALL|wxEXPAND, 2 ); - - exitButton = new wxButton( mainPanel, ID_EXIT, _("MainWindow.Exit"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); - rightButtonsContainer->Add( exitButton, 0, wxALL|wxEXPAND, 2 ); - - - fgSizer5->Add( rightButtonsContainer, 1, wxEXPAND, 5 ); - - - bottomContainer->Add( fgSizer5, 1, wxALIGN_CENTER_HORIZONTAL, 5 ); - - - panelContainer->Add( bottomContainer, 0, wxEXPAND, 5 ); - - - mainPanel->SetSizer( panelContainer ); - mainPanel->Layout(); - panelContainer->Fit( mainPanel ); - mainContainer->Add( mainPanel, 1, wxEXPAND | wxALL, 0 ); - - - this->SetSizer( mainContainer ); - this->Layout(); - statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY ); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicBase::OnClose ) ); - this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( OBSBasicBase::OnMinimize ) ); - this->Connect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnSize ) ); - this->Connect( fileNewMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileNewClicked ) ); - this->Connect( fileOpenMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) ); - this->Connect( fileSaveMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) ); - this->Connect( fileExitMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) ); - previewPanel->Connect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnResizePreview ), NULL, this ); - scenes->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::scenesClicked ), NULL, this ); - scenes->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this ); - this->Connect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) ); - this->Connect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveClicked ) ); - this->Connect( ID_SCENE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::scenePropertiesClicked ) ); - this->Connect( ID_SCENE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneUpClicked ) ); - this->Connect( ID_SCENE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneDownClicked ) ); - sources->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::sourcesClicked ), NULL, this ); - sources->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( OBSBasicBase::sourcesToggled ), NULL, this ); - sources->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::sourcesRDown ), NULL, this ); - this->Connect( ID_SOURCE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceAddClicked ) ); - this->Connect( ID_SOURCE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceRemoveClicked ) ); - this->Connect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesClicked ) ); - this->Connect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpClicked ) ); - this->Connect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownClicked ) ); - toggleStreamButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleStreamClicked ), NULL, this ); - ToggleRecordButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleRecordClicked ), NULL, this ); - settingsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::settingsClicked ), NULL, this ); - exitButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitClicked ), NULL, this ); -} - -OBSBasicBase::~OBSBasicBase() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicBase::OnClose ) ); - this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( OBSBasicBase::OnMinimize ) ); - this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnSize ) ); - this->Disconnect( ID_FILE_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileNewClicked ) ); - this->Disconnect( IF_FILE_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) ); - this->Disconnect( IF_FILE_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) ); - this->Disconnect( ID_FILE_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) ); - previewPanel->Disconnect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnResizePreview ), NULL, this ); - scenes->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::scenesClicked ), NULL, this ); - scenes->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this ); - this->Disconnect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) ); - this->Disconnect( ID_SCENE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneRemoveClicked ) ); - this->Disconnect( ID_SCENE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::scenePropertiesClicked ) ); - this->Disconnect( ID_SCENE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneUpClicked ) ); - this->Disconnect( ID_SCENE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneDownClicked ) ); - sources->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::sourcesClicked ), NULL, this ); - sources->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( OBSBasicBase::sourcesToggled ), NULL, this ); - sources->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::sourcesRDown ), NULL, this ); - this->Disconnect( ID_SOURCE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceAddClicked ) ); - this->Disconnect( ID_SOURCE_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceRemoveClicked ) ); - this->Disconnect( ID_SOURCE_PROPERTIES, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourcePropertiesClicked ) ); - this->Disconnect( ID_SOURCE_MOVEUP, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceUpClicked ) ); - this->Disconnect( ID_SOURCE_MOVEDOWN, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sourceDownClicked ) ); - toggleStreamButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleStreamClicked ), NULL, this ); - ToggleRecordButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::toggleRecordClicked ), NULL, this ); - settingsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::settingsClicked ), NULL, this ); - exitButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicBase::exitClicked ), NULL, this ); - -} - -OBSStudioBase::OBSStudioBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : WindowSubclass( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( 900,400 ), wxDefaultSize ); - - wxBoxSizer* windowSizer; - windowSizer = new wxBoxSizer( wxVERTICAL ); - - mainPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* clientSizer; - clientSizer = new wxBoxSizer( wxHORIZONTAL ); - - leftSizer = new wxBoxSizer( wxVERTICAL ); - - - clientSizer->Add( leftSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* centerSizer; - centerSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* topSizer; - topSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer5; - bSizer5 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer8; - bSizer8 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer33; - bSizer33 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer191; - bSizer191 = new wxBoxSizer( wxVERTICAL ); - - m_staticText6 = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Preview"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText6->Wrap( -1 ); - bSizer191->Add( m_staticText6, 0, wxALL, 3 ); - - m_panel2 = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxSize( 480,270 ), wxTAB_TRAVERSAL ); - m_panel2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) ); - - bSizer191->Add( m_panel2, 0, wxALIGN_CENTER|wxALL, 3 ); - - - bSizer33->Add( bSizer191, 0, wxALIGN_CENTER, 0 ); - - - bSizer8->Add( bSizer33, 0, wxALIGN_CENTER|wxEXPAND, 5 ); - - - bSizer5->Add( bSizer8, 1, wxALIGN_CENTER, 5 ); - - - topSizer->Add( bSizer5, 1, wxEXPAND, 5 ); - - transitionSizer = new wxBoxSizer( wxVERTICAL ); - - m_button7 = new wxButton( mainPanel, wxID_ANY, _("MainWindow.Cut"), wxDefaultPosition, wxDefaultSize, 0 ); - transitionSizer->Add( m_button7, 0, wxALL, 5 ); - - - topSizer->Add( transitionSizer, 0, wxALIGN_CENTER, 5 ); - - wxBoxSizer* bSizer6; - bSizer6 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer13; - bSizer13 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer34; - bSizer34 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer201; - bSizer201 = new wxBoxSizer( wxVERTICAL ); - - m_staticText7 = new wxStaticText( mainPanel, wxID_ANY, _("MainWindow.Program"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText7->Wrap( -1 ); - bSizer201->Add( m_staticText7, 0, wxALL, 3 ); - - m_panel3 = new wxPanel( mainPanel, wxID_ANY, wxDefaultPosition, wxSize( 480,270 ), wxTAB_TRAVERSAL ); - m_panel3->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) ); - - bSizer201->Add( m_panel3, 0, wxALIGN_CENTER|wxALL, 3 ); - - - bSizer34->Add( bSizer201, 0, wxALIGN_CENTER, 0 ); - - - bSizer13->Add( bSizer34, 0, wxALIGN_CENTER|wxEXPAND, 5 ); - - - bSizer6->Add( bSizer13, 1, wxALIGN_CENTER, 5 ); - - - topSizer->Add( bSizer6, 1, wxEXPAND, 5 ); - - - centerSizer->Add( topSizer, 1, wxEXPAND, 5 ); - - bottomSizer = new wxBoxSizer( wxVERTICAL ); - - - centerSizer->Add( bottomSizer, 0, wxEXPAND, 5 ); - - - clientSizer->Add( centerSizer, 1, wxEXPAND, 5 ); - - rightSizer = new wxBoxSizer( wxVERTICAL ); - - - clientSizer->Add( rightSizer, 0, wxEXPAND, 5 ); - - - mainPanel->SetSizer( clientSizer ); - mainPanel->Layout(); - clientSizer->Fit( mainPanel ); - windowSizer->Add( mainPanel, 1, wxEXPAND, 0 ); - - - this->SetSizer( windowSizer ); - this->Layout(); - m_menubar1 = new wxMenuBar( 0 ); - m_menu1 = new wxMenu(); - wxMenuItem* m_menuItem1; - m_menuItem1 = new wxMenuItem( m_menu1, wxID_ANY, wxString( _("MyMenuItem") ) , wxEmptyString, wxITEM_NORMAL ); - m_menu1->Append( m_menuItem1 ); - - m_menubar1->Append( m_menu1, _("MainMenu.File") ); - - this->SetMenuBar( m_menubar1 ); - - m_statusBar1 = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY ); - - this->Centre( wxBOTH ); -} - -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 ); - - settingsList = new wxListbook( this, ID_SETTINGS_LIST, wxDefaultPosition, wxDefaultSize, wxLB_DEFAULT ); - generalPanel = new wxPanel( settingsList, 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( generalPanel, 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( generalPanel, ID_LANGUAGE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - fgSizer13->Add( languageList, 0, wxALL, 2 ); - - - bSizer32->Add( fgSizer13, 0, wxEXPAND, 5 ); - - - bSizer32->Add( 0, 20, 0, wxEXPAND, 5 ); - - generalChangedText = new wxStaticText( generalPanel, wxID_ANY, _("Settings.RestartProgram"), wxDefaultPosition, wxDefaultSize, 0 ); - generalChangedText->Wrap( -1 ); - bSizer32->Add( generalChangedText, 1, wxALL|wxEXPAND, 5 ); - - - generalPanel->SetSizer( bSizer32 ); - generalPanel->Layout(); - bSizer32->Fit( generalPanel ); - settingsList->AddPage( generalPanel, _("Settings.General"), true ); - outputsPanel = new wxPanel( settingsList, ID_SETTINGS_OUTPUTS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer33; - bSizer33 = new wxBoxSizer( wxVERTICAL ); - - - outputsPanel->SetSizer( bSizer33 ); - outputsPanel->Layout(); - bSizer33->Fit( outputsPanel ); - settingsList->AddPage( outputsPanel, _("Settings.Outputs"), false ); - videoPanel = new wxPanel( settingsList, 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_staticText211 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.Renderer"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText211->Wrap( -1 ); - fgSizer1->Add( m_staticText211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 ); - - rendererList = new wxComboBox( videoPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - fgSizer1->Add( rendererList, 0, wxALL, 2 ); - - m_staticText6 = new wxStaticText( videoPanel, 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( videoPanel, ID_ADAPTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - videoAdapterList->Enable( false ); - - fgSizer1->Add( videoAdapterList, 0, wxALL, 2 ); - - m_staticText8 = new wxStaticText( videoPanel, 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( videoPanel, ID_BASE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizer1->Add( baseResList, 0, wxALL, 2 ); - - m_staticText10 = new wxStaticText( videoPanel, wxID_ANY, _("Settings.Video.OutputRes"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); - m_staticText10->Wrap( -1 ); - fgSizer1->Add( m_staticText10, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 ); - - outputResList = new wxComboBox( videoPanel, ID_DOWNSCALE_RES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizer1->Add( outputResList, 0, wxALL, 2 ); - - m_staticText11 = new wxStaticText( videoPanel, 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( videoPanel, ID_DOWNSCALE_FILTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - filterList->Enable( false ); - - fgSizer1->Add( filterList, 0, wxALL, 2 ); - - - fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); - - disableAeroCheckbox = new wxCheckBox( videoPanel, ID_DISABLEAERO, _("Settings.DisableAeroWindows"), wxDefaultPosition, wxDefaultSize, 0 ); - disableAeroCheckbox->Enable( false ); - - fgSizer1->Add( disableAeroCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - - fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( videoPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); - - m_staticText22 = new wxStaticText( videoPanel, 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( videoPanel, ID_FPS_TYPE, wxDefaultPosition, wxDefaultSize, wxCHB_DEFAULT ); - m_panel13 = new wxPanel( fpsTypeList, ID_FPSPANEL_COMMON, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer45; - bSizer45 = new wxBoxSizer( wxHORIZONTAL ); - - fpsCommonList = new wxComboBox( m_panel13, ID_FPS_COMMON, _("30"), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - fpsCommonList->Append( _("10") ); - fpsCommonList->Append( _("20") ); - fpsCommonList->Append( _("25") ); - fpsCommonList->Append( _("29.97") ); - fpsCommonList->Append( _("30") ); - fpsCommonList->Append( _("48") ); - fpsCommonList->Append( _("59.94") ); - fpsCommonList->Append( _("60") ); - fpsCommonList->SetSelection( 4 ); - 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, ID_FPSPANEL_INTEGER, 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, 120, 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, ID_FPSPANEL_FRACTION, 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, ID_FPSPANEL_NANOSECONDS, 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 ); - - - bSizer34->Add( 0, 20, 0, wxEXPAND, 5 ); - - videoChangedText = new wxStaticText( videoPanel, wxID_ANY, _("Settings.StreamRestart"), wxDefaultPosition, wxDefaultSize, 0 ); - videoChangedText->Wrap( -1 ); - bSizer34->Add( videoChangedText, 1, wxALL|wxEXPAND, 5 ); - - - videoPanel->SetSizer( bSizer34 ); - videoPanel->Layout(); - bSizer34->Fit( videoPanel ); - settingsList->AddPage( videoPanel, _("Settings.Video"), false ); - audioPanel = new wxPanel( settingsList, 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( audioPanel, wxID_ANY, _("Settings.Audio.DesktopAudioDevice1"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT ); - m_staticText23->Wrap( -1 ); - fgSizer11->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 ); - - desktopAudioDeviceList1 = new wxComboBox( audioPanel, ID_DESKTOP_AUDIO_DEVICE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - desktopAudioDeviceList1->Enable( false ); - - fgSizer11->Add( desktopAudioDeviceList1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - m_staticText231 = new wxStaticText( audioPanel, wxID_ANY, _("Settings.Audio.DesktopAudioDevice2"), wxDefaultPosition, wxSize( 270,-1 ), wxALIGN_RIGHT ); - m_staticText231->Wrap( -1 ); - fgSizer11->Add( m_staticText231, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 ); - - desktopAudioDeviceList2 = new wxComboBox( audioPanel, ID_DESKTOP_AUDIO_DEVICE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - desktopAudioDeviceList2->Enable( false ); - - fgSizer11->Add( desktopAudioDeviceList2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - m_staticText24 = new wxStaticText( audioPanel, 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( audioPanel, ID_AUX_AUDIO_DEVICE1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - auxAudioDeviceList1->Enable( false ); - - fgSizer11->Add( auxAudioDeviceList1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - m_staticText241 = new wxStaticText( audioPanel, 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( audioPanel, ID_AUX_AUDIO_DEVICE2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - auxAudioDeviceList2->Enable( false ); - - fgSizer11->Add( auxAudioDeviceList2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - m_staticText242 = new wxStaticText( audioPanel, 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( audioPanel, ID_AUX_AUDIO_DEVICE3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - auxAudioDeviceList3->Enable( false ); - - fgSizer11->Add( auxAudioDeviceList3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - m_staticText243 = new wxStaticText( audioPanel, 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( audioPanel, ID_AUX_AUDIO_DEVICE4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); - auxAudioDeviceList4->Enable( false ); - - fgSizer11->Add( auxAudioDeviceList4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); - - - bSizer36->Add( fgSizer11, 0, wxEXPAND, 5 ); - - - audioPanel->SetSizer( bSizer36 ); - audioPanel->Layout(); - bSizer36->Fit( audioPanel ); - settingsList->AddPage( audioPanel, _("Settings.Audio"), false ); - - bSizer31->Add( settingsList, 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 ); - applyButton->Enable( false ); - - bSizer37->Add( applyButton, 0, wxALL, 5 ); - - - bSizer30->Add( bSizer37, 0, wxALIGN_RIGHT, 5 ); - - - this->SetSizer( bSizer30 ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicSettingsBase::OnClose ) ); - settingsList->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( OBSBasicSettingsBase::PageChanged ), NULL, this ); - settingsList->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( OBSBasicSettingsBase::PageChanging ), NULL, this ); - okButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::OKClicked ), NULL, this ); - cancelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::CancelClicked ), NULL, this ); - applyButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::ApplyClicked ), NULL, this ); -} - -OBSBasicSettingsBase::~OBSBasicSettingsBase() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OBSBasicSettingsBase::OnClose ) ); - settingsList->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( OBSBasicSettingsBase::PageChanged ), NULL, this ); - settingsList->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( OBSBasicSettingsBase::PageChanging ), NULL, this ); - okButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::OKClicked ), NULL, this ); - cancelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::CancelClicked ), NULL, this ); - applyButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OBSBasicSettingsBase::ApplyClicked ), NULL, this ); - -} - -ProjectChooserBase::ProjectChooserBase( 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* bSizer40; - bSizer40 = new wxBoxSizer( wxVERTICAL ); - - m_staticText22 = new wxStaticText( this, wxID_ANY, _("ProjectChooser.SelectType"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText22->Wrap( -1 ); - bSizer40->Add( m_staticText22, 0, wxALL, 5 ); - - wxBoxSizer* bSizer41; - bSizer41 = new wxBoxSizer( wxVERTICAL ); - - basicButton = new wxButton( this, wxID_ANY, _("ProjectChooser.Basic"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer41->Add( basicButton, 0, wxALL|wxEXPAND, 5 ); - - studioButton = new wxButton( this, wxID_ANY, _("ProjectChooser.Studio"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer41->Add( studioButton, 0, wxALL|wxEXPAND, 5 ); - - exitButton = new wxButton( this, wxID_ANY, _("MainWindow.Exit"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer41->Add( exitButton, 0, wxALL|wxEXPAND, 5 ); - - - bSizer40->Add( bSizer41, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - - this->SetSizer( bSizer40 ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProjectChooserBase::OnClose ) ); - basicButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::BasicClicked ), NULL, this ); - studioButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::StudioClicked ), NULL, this ); - exitButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::ExitClicked ), NULL, this ); -} - -ProjectChooserBase::~ProjectChooserBase() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProjectChooserBase::OnClose ) ); - basicButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::BasicClicked ), NULL, this ); - studioButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::StudioClicked ), NULL, this ); - exitButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProjectChooserBase::ExitClicked ), NULL, this ); - -} - -NameDialogBase::NameDialogBase( 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* bSizer44; - bSizer44 = new wxBoxSizer( wxVERTICAL ); - - questionText = new wxStaticText( this, wxID_ANY, _("Please enter a name (or is it text you want to enter?):"), wxDefaultPosition, wxDefaultSize, 0 ); - questionText->Wrap( -1 ); - bSizer44->Add( questionText, 0, wxTOP|wxRIGHT|wxLEFT, 10 ); - - wxBoxSizer* bSizer46; - bSizer46 = new wxBoxSizer( wxHORIZONTAL ); - - - bSizer46->Add( 20, 0, 0, 0, 5 ); - - nameEdit = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer46->Add( nameEdit, 1, wxALL|wxEXPAND, 5 ); - - - bSizer46->Add( 20, 0, 0, 0, 5 ); - - - bSizer44->Add( bSizer46, 0, wxEXPAND, 5 ); - - wxBoxSizer* bSizer45; - bSizer45 = new wxBoxSizer( wxHORIZONTAL ); - - okButton = new wxButton( this, wxID_ANY, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - okButton->SetDefault(); - bSizer45->Add( okButton, 0, wxALL, 5 ); - - cancelButton = new wxButton( this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer45->Add( cancelButton, 0, wxALL, 5 ); - - - bSizer44->Add( bSizer45, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - - this->SetSizer( bSizer44 ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( NameDialogBase::OnClose ) ); - okButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameDialogBase::OKPressed ), NULL, this ); - cancelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameDialogBase::CancelPressed ), NULL, this ); -} - -NameDialogBase::~NameDialogBase() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( NameDialogBase::OnClose ) ); - okButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameDialogBase::OKPressed ), NULL, this ); - cancelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameDialogBase::CancelPressed ), NULL, this ); - -} diff --git a/obs/forms/OBSWindows.fbp b/obs/forms/OBSWindows.fbp deleted file mode 100644 index 7c4d0f9e8..000000000 --- a/obs/forms/OBSWindows.fbp +++ /dev/null @@ -1,8093 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - OBSWindows - 1000 - none - 1 - OBSWindows - - . - - 1 - 1 - 1 - 1 - UI - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - ID_OBS_BASIC - - - OBSBasicBase - - 854,595 - wxDEFAULT_FRAME_STYLE - WindowSubclass; ../wx-subclass.hpp - .mainwindow - - - - wxTAB_TRAVERSAL - 1 - - - - - - - - - - OnClose - - - - OnMinimize - - - - - - - - - - - - - - - - - - - - OnSize - - - - - 1 - 1 - - - 0 - wxID_ANY - MyMenuBar - - - mainMenu - protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MainMenu.File - fileMenu - protected - - - 0 - 1 - - ID_FILE_NEW - wxITEM_NORMAL - MainMenu.File.New - fileNewMenu - none - - - fileNewClicked - - - - - 0 - 1 - - IF_FILE_OPEN - wxITEM_NORMAL - MainMenu.File.Open - fileOpenMenu - none - - - fileOpenClicked - - - - - 0 - 1 - - IF_FILE_SAVE - wxITEM_NORMAL - MainMenu.File.Save - fileSaveMenu - none - - - fileSaveClicked - - - - m_separator1 - none - - - - 0 - 1 - - ID_FILE_EXIT - wxITEM_NORMAL - MainWindow.Exit - fileExitMenu - none - - - fileExitClicked - - - - - - - mainContainer - wxVERTICAL - none - - 0 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - mainPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - panelContainer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - previewContainer - wxHORIZONTAL - protected - - 5 - wxALIGN_CENTER - 1 - - - previewVertical - wxVERTICAL - none - - 5 - wxALIGN_CENTER|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - wxSYS_COLOUR_APPWORKSPACE - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_PROGRAM - - 0 - - - 0 - - 1 - previewPanel - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - OnResizePreview - - - - - - - - - 5 - wxEXPAND - 0 - - -1,155 - bottomContainer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL - 1 - - 4 - wxVERTICAL - - 1 - 0 - - fgSizer5 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Scenes - - 0 - - - 0 - - 1 - scenesLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Sources - - 0 - - - 0 - - 1 - sourcesLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Volume - - 0 - - - 0 - - 1 - sourcesLabel1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 2 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - scenesPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxSIMPLE_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer16 - wxVERTICAL - none - - 0 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SCENES - - 0 - - - 0 - - 1 - scenes - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxNO_BORDER - - - - - - - - - - - scenesClicked - - - - - - - - - - scenesRDown - - - - - - - - 5 - wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - wxSYS_COLOUR_BTNFACE - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - scenesToolbar - 1 - 1 - - - protected - 1 - - Resizable - 5 - 1 - - wxTB_HORIZONTAL - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Load From Embedded File; images\list_add.png - 0 - ID_SCENE_ADD - wxITEM_NORMAL - tool - sceneAdd - protected - - - - - - - - - sceneAddClicked - - - - - - Load From Embedded File; images\delete.ico - 0 - ID_SCENE_DELETE - wxITEM_NORMAL - tool - sceneRemove - protected - - - - - - - - - sceneRemoveClicked - - - - - - Load From Embedded File; images\properties.ico - 0 - ID_SCENE_PROPERTIES - wxITEM_NORMAL - tool - sceneProperties - protected - - - - - - - - - scenePropertiesClicked - - - - - - protected - - - Load From Embedded File; images\up.ico - 0 - ID_SCENE_MOVEUP - wxITEM_NORMAL - tool - sceneUp - protected - - - - - - - - - sceneUpClicked - - - - - - Load From Embedded File; images\down.ico - 0 - ID_SCENE_MOVEDOWN - wxITEM_NORMAL - tool - sceneDown - protected - - - - - - - - - sceneDownClicked - - - - - - - - - - - 2 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - sourcesPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxSIMPLE_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer17 - wxVERTICAL - none - - 0 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SOURCES - - 0 - - - 0 - - 1 - sources - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxNO_BORDER - - sourcesClicked - - sourcesToggled - - - - - - - - - - - - - - - - - - sourcesRDown - - - - - - - - 5 - wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - wxSYS_COLOUR_BTNFACE - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - sourcesToolbar - 1 - 1 - - - protected - 1 - - Resizable - 5 - 1 - - wxTB_HORIZONTAL - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Load From Embedded File; images\list_add.png - 0 - ID_SOURCE_ADD - wxITEM_NORMAL - tool - sourceAdd - protected - - - - - - - - - sourceAddClicked - - - - - - Load From Embedded File; images\delete.ico - 0 - ID_SOURCE_DELETE - wxITEM_NORMAL - tool - sourceRemove - protected - - - - - - - - - sourceRemoveClicked - - - - - - Load From Embedded File; images\properties.ico - 0 - ID_SOURCE_PROPERTIES - wxITEM_NORMAL - tool - sourceProperties - protected - - - - - - - - - sourcePropertiesClicked - - - - - - protected - - - Load From Embedded File; images\up.ico - 0 - ID_SOURCE_MOVEUP - wxITEM_NORMAL - tool - sourceUp - protected - - - - - - - - - sourceUpClicked - - - - - - Load From Embedded File; images\down.ico - 0 - ID_SOURCE_MOVEDOWN - wxITEM_NORMAL - tool - sourceDown - protected - - - - - - - - - sourceDownClicked - - - - - - - - - - - 2 - wxEXPAND|wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_scrolledWindow1 - 1 - - - protected - 1 - - Resizable - 5 - 5 - 1 - - - 0 - - - - wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer44 - wxVERTICAL - none - - - - - 5 - wxEXPAND - 1 - - - rightButtonsContainer - wxVERTICAL - none - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_STARTSTREAM - MainWindow.StartStream - - 0 - - - 0 - - 1 - toggleStreamButton - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - toggleStreamClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_RECORD - MainWindow.StartRecording - - 0 - - - 0 - - 1 - ToggleRecordButton - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - toggleRecordClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS - MainWindow.Settings - - 0 - - - 0 - - 1 - settingsButton - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - settingsClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_EXIT - MainWindow.Exit - - 0 - - - 0 - - 1 - exitButton - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - exitClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 1 - - 1 - - 0 - wxID_ANY - - - statusBar - protected - - - wxST_SIZEGRIP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - ID_OBS_STUDIO - - 900,400 - OBSStudioBase - - 1240,825 - wxDEFAULT_FRAME_STYLE - WindowSubclass; ../wx-subclass.hpp - .openBroadcastStudio - - - - wxTAB_TRAVERSAL - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - windowSizer - wxVERTICAL - none - - 0 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - mainPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - clientSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 0 - - - leftSizer - wxVERTICAL - protected - - - - 5 - wxEXPAND - 1 - - - centerSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - topSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - bSizer5 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER - 1 - - - bSizer8 - wxVERTICAL - none - - 5 - wxALIGN_CENTER|wxEXPAND - 0 - - - bSizer33 - wxVERTICAL - none - - 0 - wxALIGN_CENTER - 0 - - - bSizer191 - wxVERTICAL - none - - 3 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Preview - - 0 - - - 0 - - 1 - m_staticText6 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - wxSYS_COLOUR_APPWORKSPACE - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panel2 - 1 - - - protected - 1 - - Resizable - 1 - 480,270 - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER - 0 - - - transitionSizer - wxVERTICAL - protected - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Cut - - 0 - - - 0 - - 1 - m_button7 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer6 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER - 1 - - - bSizer13 - wxVERTICAL - none - - 5 - wxALIGN_CENTER|wxEXPAND - 0 - - - bSizer34 - wxVERTICAL - none - - 0 - wxALIGN_CENTER - 0 - - - bSizer201 - wxVERTICAL - none - - 3 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Program - - 0 - - - 0 - - 1 - m_staticText7 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - wxSYS_COLOUR_APPWORKSPACE - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panel3 - 1 - - - protected - 1 - - Resizable - 1 - 480,270 - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bottomSizer - wxVERTICAL - protected - - - - - - 5 - wxEXPAND - 0 - - - rightSizer - wxVERTICAL - protected - - - - - - - - - - 1 - 1 - - - 0 - wxID_ANY - MyMenuBar - - - m_menubar1 - protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MainMenu.File - m_menu1 - protected - - - 0 - 1 - - wxID_ANY - wxITEM_NORMAL - MyMenuItem - m_menuItem1 - none - - - - - - - - - - - 1 - 1 - - 1 - - 0 - wxID_ANY - - - m_statusBar1 - protected - - - wxST_SIZEGRIP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - ID_OBS_BASIC_SETTINGS - - - OBSBasicSettingsBase - - 872,686 - wxDEFAULT_DIALOG_STYLE - DialogSubclass; ../wx-subclass.hpp - Settings - - - - - - - - - - - - - - OnClose - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer30 - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bSizer31 - wxVERTICAL - none - - 5 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS_LIST - - 0 - - - 0 - - 1 - settingsList - 1 - - - public - 1 - - Resizable - 1 - - wxLB_DEFAULT - - 0 - - - - - - - - - - - - - - - PageChanged - PageChanging - - - - - - - - - - - - - - - - Settings.General - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS_GENERAL - - 0 - - - 0 - - 1 - generalPanel - 1 - - - public - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer32 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 20 - protected - 0 - - - - 5 - wxEXPAND - 0 - - 2 - wxBOTH - - - 0 - - fgSizer13 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.General.Language - - 0 - - - 0 - - 1 - m_staticText27 - 1 - - - protected - 1 - - Resizable - 1 - 270,-1 - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_LANGUAGE - - 0 - - - 0 - - 1 - languageList - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - 20 - protected - 0 - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.RestartProgram - - 0 - - - 0 - - 1 - generalChangedText - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Outputs - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS_OUTPUTS - - 0 - - - 0 - - 1 - outputsPanel - 1 - - - public - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer33 - wxVERTICAL - none - - - - - - Settings.Video - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS_VIDEO - - 0 - - - 0 - - 1 - videoPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer34 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 20 - protected - 0 - - - - 5 - wxEXPAND - 0 - - 2 - wxBOTH - - - 0 - - fgSizer1 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 2 - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.Renderer - - 0 - - - 0 - - 1 - m_staticText211 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - rendererList - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.Adapter - - 0 - - - 0 - 270,-1 - 1 - m_staticText6 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_ADAPTER - - 0 - - - 0 - - 1 - videoAdapterList - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.BaseRes - - 0 - - - 0 - - 1 - m_staticText8 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_LEFT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_BASE_RES - - 0 - - - 0 - - 1 - baseResList - 1 - - - public - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.OutputRes - - 0 - - - 0 - - 1 - m_staticText10 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_DOWNSCALE_RES - - 0 - - - 0 - - 1 - outputResList - 1 - - - public - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.DownscaleFilter - - 0 - - - 0 - - 1 - m_staticText11 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_DOWNSCALE_FILTER - - 0 - - - 0 - - 1 - filterList - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_DISABLEAERO - Settings.DisableAeroWindows - - 0 - - - 0 - - 1 - disableAeroCheckbox - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.FPS - - 0 - - - 0 - - 1 - m_staticText22 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_TYPE - - 0 - - - 0 - - 1 - fpsTypeList - 1 - - - public - 1 - - Resizable - 1 - - wxCHB_DEFAULT - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Video.FPS.Common - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPSPANEL_COMMON - - 0 - - - 0 - - 1 - m_panel13 - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer45 - wxHORIZONTAL - none - - 2 - wxTOP|wxBOTTOM|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "10" "20" "25" "29.97" "30" "48" "59.94" "60" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_COMMON - - 0 - - - 0 - - 1 - fpsCommonList - 1 - - - public - 1 - - Resizable - 4 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Video.FPS.Integer - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPSPANEL_INTEGER - - 0 - - - 0 - - 1 - m_panel14 - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer46 - wxHORIZONTAL - none - - 2 - wxTOP|wxBOTTOM|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_INTEGER - 30 - 120 - - 0 - - 1 - - 0 - - 1 - fpsIntegerScroller - 1 - - - public - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Video.FPS.Fraction - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPSPANEL_FRACTION - - 0 - - - 0 - - 1 - m_panel15 - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxBOTH - - - 0 - - fgSizer10 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.FPS.Numerator - - 0 - - - 0 - - 1 - m_staticText20 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_NUMERATOR - 30 - 1000000000 - - 0 - - 1 - - 0 - - 1 - fpsNumeratorScroller - 1 - - - public - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Video.FPS.Denominator - - 0 - - - 0 - - 1 - m_staticText21 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_DENOMINATOR - 1 - 1000000000 - - 0 - - 1 - - 0 - - 1 - fpsDenominatorScroller - 1 - - - public - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Video.FPS.Nanoseconds - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPSPANEL_NANOSECONDS - - 0 - - - 0 - - 1 - m_panel16 - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer50 - wxHORIZONTAL - none - - 2 - wxTOP|wxBOTTOM|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_FPS_NANOSECONDS - 33333333 - 1000000000 - - 0 - - 8333333 - - 0 - - 1 - fpsNanosecondsScroller - 1 - - - public - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - 20 - protected - 0 - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.StreamRestart - - 0 - - - 0 - - 1 - videoChangedText - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Settings.Audio - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_SETTINGS_AUDIO - - 0 - - - 0 - - 1 - audioPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer36 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 20 - protected - 0 - - - - 5 - wxEXPAND - 0 - - 2 - wxBOTH - - - 0 - - fgSizer11 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 2 - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.DesktopAudioDevice1 - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - Resizable - 1 - 270,-1 - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_DESKTOP_AUDIO_DEVICE - - 0 - - - 0 - - 1 - desktopAudioDeviceList1 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.DesktopAudioDevice2 - - 0 - - - 0 - - 1 - m_staticText231 - 1 - - - protected - 1 - - Resizable - 1 - 270,-1 - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_DESKTOP_AUDIO_DEVICE - - 0 - - - 0 - - 1 - desktopAudioDeviceList2 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.AuxAudioDevice1 - - 0 - - - 0 - - 1 - m_staticText24 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_AUX_AUDIO_DEVICE1 - - 0 - - - 0 - - 1 - auxAudioDeviceList1 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.AuxAudioDevice2 - - 0 - - - 0 - - 1 - m_staticText241 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_AUX_AUDIO_DEVICE2 - - 0 - - - 0 - - 1 - auxAudioDeviceList2 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.AuxAudioDevice3 - - 0 - - - 0 - - 1 - m_staticText242 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_AUX_AUDIO_DEVICE3 - - 0 - - - 0 - - 1 - auxAudioDeviceList3 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Settings.Audio.AuxAudioDevice4 - - 0 - - - 0 - - 1 - m_staticText243 - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_RIGHT - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_AUX_AUDIO_DEVICE4 - - 0 - - - 0 - - 1 - auxAudioDeviceList4 - 1 - - - public - 1 - - Resizable - -1 - 1 - - wxCB_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT - 0 - - - bSizer37 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_OK - OK - - 0 - - - 0 - - 1 - okButton - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OKClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CANCEL - Cancel - - 0 - - - 0 - - 1 - cancelButton - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - CancelClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 0 - - 1 - - 0 - 0 - ID_APPLY - Apply - - 0 - - - 0 - - 1 - applyButton - 1 - - - public - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - ApplyClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - ID_PROJECT_CHOOSER - - - ProjectChooserBase - - 445,159 - wxDEFAULT_DIALOG_STYLE - DialogSubclass; ../wx-subclass.hpp - ProjectChooser - - - - - - - - - - - - - - OnClose - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer40 - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - ProjectChooser.SelectType - - 0 - - - 0 - - 1 - m_staticText22 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - bSizer41 - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - ProjectChooser.Basic - - 0 - - - 0 - - 1 - basicButton - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - BasicClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - ProjectChooser.Studio - - 0 - - - 0 - - 1 - studioButton - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - StudioClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MainWindow.Exit - - 0 - - - 0 - - 1 - exitButton - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - ExitClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - NameDialogBase - - 540,132 - wxDEFAULT_DIALOG_STYLE - DialogSubclass; ../wx-subclass.hpp - MaximumText - - - - - - - - - - - - - - OnClose - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer44 - wxVERTICAL - none - - 10 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Please enter a name (or is it text you want to enter?): - - 0 - - - 0 - - 1 - questionText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bSizer46 - wxHORIZONTAL - none - - 5 - - 0 - - 0 - protected - 20 - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - nameEdit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 0 - - 0 - protected - 20 - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - bSizer45 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - OK - - 0 - - - 0 - - 1 - okButton - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OKPressed - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Cancel - - 0 - - - 0 - - 1 - cancelButton - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - CancelPressed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/obs/forms/OBSWindows.h b/obs/forms/OBSWindows.h deleted file mode 100644 index 2596e410b..000000000 --- a/obs/forms/OBSWindows.h +++ /dev/null @@ -1,328 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 6 2013) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __OBSWINDOWS_H__ -#define __OBSWINDOWS_H__ - -#include -#include -#include -class DialogSubclass; -class WindowSubclass; - -#include "../wx-subclass.hpp" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -#define ID_OBS_BASIC 1000 -#define ID_FILE_NEW 1001 -#define IF_FILE_OPEN 1002 -#define IF_FILE_SAVE 1003 -#define ID_FILE_EXIT 1004 -#define ID_PROGRAM 1005 -#define ID_SCENES 1006 -#define ID_SCENE_ADD 1007 -#define ID_SCENE_DELETE 1008 -#define ID_SCENE_PROPERTIES 1009 -#define ID_SCENE_MOVEUP 1010 -#define ID_SCENE_MOVEDOWN 1011 -#define ID_SOURCES 1012 -#define ID_SOURCE_ADD 1013 -#define ID_SOURCE_DELETE 1014 -#define ID_SOURCE_PROPERTIES 1015 -#define ID_SOURCE_MOVEUP 1016 -#define ID_SOURCE_MOVEDOWN 1017 -#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_FPSPANEL_COMMON 1035 -#define ID_FPS_COMMON 1036 -#define ID_FPSPANEL_INTEGER 1037 -#define ID_FPS_INTEGER 1038 -#define ID_FPSPANEL_FRACTION 1039 -#define ID_FPS_NUMERATOR 1040 -#define ID_FPS_DENOMINATOR 1041 -#define ID_FPSPANEL_NANOSECONDS 1042 -#define ID_FPS_NANOSECONDS 1043 -#define ID_SETTINGS_AUDIO 1044 -#define ID_DESKTOP_AUDIO_DEVICE 1045 -#define ID_AUX_AUDIO_DEVICE1 1046 -#define ID_AUX_AUDIO_DEVICE2 1047 -#define ID_AUX_AUDIO_DEVICE3 1048 -#define ID_AUX_AUDIO_DEVICE4 1049 -#define ID_OK 1050 -#define ID_CANCEL 1051 -#define ID_APPLY 1052 -#define ID_PROJECT_CHOOSER 1053 - -/////////////////////////////////////////////////////////////////////////////// -/// Class OBSBasicBase -/////////////////////////////////////////////////////////////////////////////// -class OBSBasicBase : public WindowSubclass -{ - private: - - protected: - wxMenuBar* mainMenu; - wxMenu* fileMenu; - wxPanel* mainPanel; - wxBoxSizer* previewContainer; - wxPanel* previewPanel; - wxStaticText* scenesLabel; - wxStaticText* sourcesLabel; - wxStaticText* sourcesLabel1; - wxPanel* scenesPanel; - wxListBox* scenes; - wxToolBar* scenesToolbar; - wxPanel* sourcesPanel; - wxCheckListBox* sources; - wxToolBar* sourcesToolbar; - wxScrolledWindow* m_scrolledWindow1; - wxButton* toggleStreamButton; - wxButton* ToggleRecordButton; - wxButton* settingsButton; - wxButton* exitButton; - wxStatusBar* statusBar; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void OnMinimize( wxIconizeEvent& event ) { event.Skip(); } - virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } - virtual void fileNewClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void fileOpenClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void fileSaveClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void fileExitClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnResizePreview( wxSizeEvent& event ) { event.Skip(); } - virtual void scenesClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void scenesRDown( wxMouseEvent& event ) { event.Skip(); } - virtual void sceneAddClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sceneRemoveClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void scenePropertiesClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sceneUpClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sceneDownClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourcesClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourcesToggled( wxCommandEvent& event ) { event.Skip(); } - virtual void sourcesRDown( wxMouseEvent& event ) { event.Skip(); } - virtual void sourceAddClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourceRemoveClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourcePropertiesClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourceUpClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void sourceDownClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void toggleStreamClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void toggleRecordClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void settingsClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void exitClicked( wxCommandEvent& event ) { event.Skip(); } - - - public: - - OBSBasicBase( wxWindow* parent, wxWindowID id = ID_OBS_BASIC, const wxString& title = _(".mainwindow"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 854,595 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); - - ~OBSBasicBase(); - -}; - -/////////////////////////////////////////////////////////////////////////////// -/// Class OBSStudioBase -/////////////////////////////////////////////////////////////////////////////// -class OBSStudioBase : public WindowSubclass -{ - private: - - protected: - wxPanel* mainPanel; - wxBoxSizer* leftSizer; - wxStaticText* m_staticText6; - wxPanel* m_panel2; - wxBoxSizer* transitionSizer; - wxButton* m_button7; - wxStaticText* m_staticText7; - wxPanel* m_panel3; - wxBoxSizer* bottomSizer; - wxBoxSizer* rightSizer; - wxMenuBar* m_menubar1; - wxMenu* m_menu1; - wxStatusBar* m_statusBar1; - - public: - - 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: - wxStaticText* m_staticText27; - wxPanel* videoPanel; - wxStaticText* m_staticText211; - wxStaticText* m_staticText6; - wxStaticText* m_staticText8; - wxStaticText* m_staticText10; - wxStaticText* m_staticText11; - wxStaticLine* m_staticline1; - wxStaticText* m_staticText22; - wxPanel* m_panel13; - wxPanel* m_panel14; - wxPanel* m_panel15; - wxStaticText* m_staticText20; - wxStaticText* m_staticText21; - wxPanel* m_panel16; - wxPanel* audioPanel; - wxStaticText* m_staticText23; - wxStaticText* m_staticText231; - wxStaticText* m_staticText24; - wxStaticText* m_staticText241; - wxStaticText* m_staticText242; - wxStaticText* m_staticText243; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void PageChanged( wxListbookEvent& event ) { event.Skip(); } - virtual void PageChanging( wxListbookEvent& event ) { event.Skip(); } - virtual void OKClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void CancelClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void ApplyClicked( wxCommandEvent& event ) { event.Skip(); } - - - public: - wxListbook* settingsList; - wxPanel* generalPanel; - wxComboBox* languageList; - wxStaticText* generalChangedText; - wxPanel* outputsPanel; - wxComboBox* rendererList; - wxComboBox* videoAdapterList; - wxComboBox* baseResList; - wxComboBox* outputResList; - wxComboBox* filterList; - wxCheckBox* disableAeroCheckbox; - wxChoicebook* fpsTypeList; - wxComboBox* fpsCommonList; - wxSpinCtrl* fpsIntegerScroller; - wxSpinCtrl* fpsNumeratorScroller; - wxSpinCtrl* fpsDenominatorScroller; - wxSpinCtrl* fpsNanosecondsScroller; - wxStaticText* videoChangedText; - wxComboBox* desktopAudioDeviceList1; - wxComboBox* desktopAudioDeviceList2; - wxComboBox* auxAudioDeviceList1; - wxComboBox* auxAudioDeviceList2; - wxComboBox* auxAudioDeviceList3; - wxComboBox* auxAudioDeviceList4; - wxButton* okButton; - wxButton* cancelButton; - wxButton* applyButton; - - 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(); - -}; - -/////////////////////////////////////////////////////////////////////////////// -/// Class ProjectChooserBase -/////////////////////////////////////////////////////////////////////////////// -class ProjectChooserBase : public DialogSubclass -{ - private: - - protected: - wxStaticText* m_staticText22; - wxButton* basicButton; - wxButton* studioButton; - wxButton* exitButton; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void BasicClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void StudioClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void ExitClicked( wxCommandEvent& event ) { event.Skip(); } - - - public: - - ProjectChooserBase( wxWindow* parent, wxWindowID id = ID_PROJECT_CHOOSER, const wxString& title = _("ProjectChooser"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 445,159 ), long style = wxDEFAULT_DIALOG_STYLE ); - ~ProjectChooserBase(); - -}; - -/////////////////////////////////////////////////////////////////////////////// -/// Class NameDialogBase -/////////////////////////////////////////////////////////////////////////////// -class NameDialogBase : public DialogSubclass -{ - private: - - protected: - wxStaticText* questionText; - wxTextCtrl* nameEdit; - wxButton* okButton; - wxButton* cancelButton; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void OKPressed( wxCommandEvent& event ) { event.Skip(); } - virtual void CancelPressed( wxCommandEvent& event ) { event.Skip(); } - - - public: - - NameDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("MaximumText"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 540,132 ), long style = wxDEFAULT_DIALOG_STYLE ); - ~NameDialogBase(); - -}; - -#endif //__OBSWINDOWS_H__ diff --git a/obs/forms/images/settings/applications-system-2.png b/obs/forms/images/settings/applications-system-2.png new file mode 100644 index 0000000000000000000000000000000000000000..34d5305295c71eaf478252bd5a5abe6164ab8355 GIT binary patch literal 5330 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 literal 0 HcmV?d00001 diff --git a/obs/forms/images/settings/decibel_audio_player.png b/obs/forms/images/settings/decibel_audio_player.png new file mode 100644 index 0000000000000000000000000000000000000000..415b04f38d0622e90b95432c1e224b1ba72d94ed GIT binary patch literal 5249 zcmZ{IcQhPa_w^{z6D1PDLJ!*_dbPpzoj5dtu-Gm9F zL>pa{=mgREdEWOc>-*!oYu&roKKJai@4D;$an_B~*Hybo!$t!D0B&liD?_gl^zWpi zxL!?2Phzft+(A)C5df%4raia5am`7*plV8h@&Vx5HQ|J-Lv;Xv0A2tfED``Xy$*%_ z1^|4ntE^iA0N_sm0E>HegMrNT28E55n({SXkCW$(q1Qm|u5RY_-)tWc$&9#X|Gzx#{lFLyP1Vd{M_ z?I^6BSsZg$P0o+!GRTBgJ9`jGwGD?@gnzH$Th2CsKO5a!P7$&nRvb*7;llV-ph~*> zdnT1?4PU9r%?sbTt?9t@FPSloK1k!mE{-LM_1p#@HtDOYql;G5I_x~OsVK*0eOJg( z93vCD@bE#Xx7lYge|eL~pGTbLwCdv=C0}@YhGb{ERcb3UT#n3gh0NyDM#<$q^ULkc zaJoDvT&Atn7fveuBfTK~cj56n-e1!9v{H*ojBJY3v7E1zo|czA{QlP*G9JIfbv*8SB9mK^K> zoYenPe>bW<*$8-viW6|7-ccBAItx3@Tg(|F(4GrcwDdIYG;MVocn4j^iMOttt<5<} zcDj8Kti>FvO5AmNFK*n|t*KEYOqV{$hG&&Q-(&ucd;h1Y#>ISnUB`{*ej4`DL-s1HSri&o)y=LF=Qp>~_V>TyQE>;i7}50OhmV9)_o6zGEhX1`2&qoFzZSrxuLg%aNHjT(!a-JY3%7yEx6$pW6PY|_|_%zmZIKzq3VU}c6Md}7h zWRbLmr|rBbvTH8$;VK>1l!t`xujc(4>(`q>Cimy%U6(W;_O)!p)C^n3b4|%dA~kE< zhseH8S=IJ9CQ4GkVfzDM)*7gCKktb}raeP`ZFP11X4~(7hK}TduA0x}F_gNwG8!nT z#(i1e^X0v`(yOA%S1taluT&>FCKmxvm~h*{SLXy(=TTC$`925ZOb+`9o56%_eycjO zWNZiTT8-tW>}(<%M^^CB-~J7G(Ys4}WS65AE$_yNIk~wZ*0$aUbClKx=f!m_!P9gZ zL6#78ANERB!6;*D0S$ctMLto1xT!gKYSD#IoWa&rCqOBsf4O&gKa4Z(_PCC}<)_SN z5{FurjR&`@Ca+kJMVbznXr)|X;uwq`%Nb?MOl&Ga1np9U%EJ+s+6Jrb)p!w1fsbs! z1V}?M%Y%ZP_X(m@T)iuv%84>inoR51X!x4;sh9lmwx7IR=&j>58TXUEJ043DRktrL z$gW`Qd&9$hs<41(=i0a6zu%5(`k+gVrfc1Y?=xxuYsVj^7Re@ar($D36mx`m=_jO$ z!0t5ss8U+VYErh$TIgrW%Y9n3$kk#01%2p+`CI|)NwRe5PpR6JR(ChMW-FHmBFIkG zh%t)77ba5;WnNLnYzSsmdFGm)8X!Y?dmQG5w+z>f}() z)FmbbN?>3bsr96@^H(g&`3(q8a96<#-LR2p}_R}dtbzQtpHW{Sf=#55|gqU z=tH{Q6>f4Grhg8VRv-LADy;NTdwl5#v zX&01SwY5jgax>9bI0d0kW*)FTd3nmFx%L%$s#Mg$XELsp`)jqTXa>(SlU5qQk9qmE zfkT}rM*J0S9PH?yZ%D&{xNz?5Iwqg2A@ry^vm?8xTk?AFOX`cUuTj|;;SB@Q&;u#i zkGeX#mF{QTj8h&Wo14ZlaGq!KBkOqY3WeIGk#x-hSQzr+sg)&Y$LU_pnCw>Fa)kRc zF)1~4wN@dc)zn>>APpJWn>8T=*2Rf*Zi}P$9gP(!FIz)8>kz9=DPtKkudRy3Zba4u z2){LcNnNXoUqq8)>rxJFQH$RMxf6PPT!3XaKyloQ%E%r0wuuQUKUWb>az{kv{f~?D zBuy^qE>#LxQ;A_LM`_nf)#ALM)W=C`f6C9!ed{Glq7t+Im_OO6A%oS`&QZ_5qF8^s zt*(9~v-C}pGA8;S`+Zbv1$|_`kw8^YXw=~huOTKTt^+J6cvOXmvB&i8POt`3syULA zs0ub|W9uP2`-Z)T9ci4Fm+>T~G zaf$wgOBR!Y;0MFWY%yljMl@(<+IW1^;ljL#3%vdIVRmK{*#0$wY}EI|sw%9i zzHknp*ESr>cWzx%^#wJ%-=n6m} z@p&PCG=7Q0^DA229xtC1ZzS3iJ!Ok(8X$b&EQWpk2Xp;mfnVISvOj8i9Q+0%kx1tF z8`YCSrA9RP>bADOu2KCnY$Juwg{F@q?J;%!@`2mWI6_@=9rXIW*1M>K<|@X^MmJjb zvaXCt&Kij2lwy<9%t`}eZ}q{YLb1C2qRqahN3jRPuZwq_-j8U8hYbxyBs^f_&cna| zJ2H`;=u}5x4fI;Qq_{U%h{d!o&NP~)tFT4`!4d=YtCnpV{>+9?)QXEg$$LEPYjnNP zyIe{R+&X?m?a#0F8CqH&FeuI1^Uhnc*3Eq4nZa++cuxInsl1a;nw&-(CNn={DGzb~z!PVl^$_u9t%K!LE=2R|)2gv0%)MN&*XPjF!DA^7 zh{t(h>v>r#?4$>!rNnR7K>n^U6uM%>!^XZz{Pp3SM0Pcc$L#DgW?{MHKf zDpSrJUF07q6~BQdqY7i=C>YfS`kCjjHiCC?bG0$MtH=P7lESmJ9@zb<7t&{H=lAjPJAF+! z=rO8fE&7 zSvP?;lI2EwnNOiKh!`G$dcv-~jpi9FAZy)Rx?}_S}Zv*h-+H1*C{WmYS zx9WDq?%mQ!NM7EV<_EIfH)s}08^|0pn14RZC|jv?kXb?CVB&gI8<1lz<@#Qyn7ZSW z0)&qKW_7J+OtO4~c7aVAlqYU+v77e1qgzA_1X2g$WK1pj=%n~R;H8t|B{DPC_$9}5 zQ+C+rSGFLR5zBT*dqGduD5^9UKO=fS=X*7A1^C`QYv*1HX;XT;`Qru@yY0-*Zqec! z5twyHH9AKB@V?yXE>77Xb|_kPaOr2M;dviQOIt@bm9Siih;Ok8uN<21=^zz!c5XTw zm~upYbKiRyQ(QdB|6#K+KE5=3q&U#51U89|wEmU|a{N#eK7y5z#rw%{nWt}?TKL9{ z!am;Z*sH>jWlM)JL#W>zZ9UL0GY0kOmyJJ@2#Ku-zF^Om_DFT%jsGRhN_JwATQy{0 z;bi!oBjROrw8hTHD(+DOqfvnGEB z$fb@=GNy-5LA@s2aDP82G%!AY($>TOo_x;i3y+#_$!&+pa#U)n(G})UAA(i2FFW!35{B9nngWl^Vt!rL0BE|5WvLf*p6QB5fjLsy8n_!?5_x z!oEX&<1W8j%ZV(T;(fB8Uwr;V$+RB#uv;`8KZ>THPvH^W$jVCd^(}cJ@TP?@7|z9n zibY1&>_mtr(9t7Bm`l_Qn*LZVZ!I_aY0}@eLijA-#`(xs7D0>!5!N?}HD9WgH6vUp zo$-q~TmN*hRtja6_EP6cU$6$B(8(WP`W+vf9**&Gyw zw%uyKyJ0@Hk5Zc=gYj0j1y3 z8`+Z4O#V6iv!ugp%`}!MYxbs@eock4m%7Xz%;BO5Nw@Yp_6d6j$YczrwvT=;0Et4W zB#1^@D>rk1z}IiKwswje?MG-skTd2jxZ323z1g{DO46~hG57l{ zT#u}?-A~p>*E`VWSHXesU!m}+z0>vAA|rM7sh5`>M&Ub<~r9v0vmCWVCCSjwhzd3;q6@L#7sANK?1ID@|W?4l!Bqh z?5(H$%O`kWYeL z$9NmPdkNXePh5!lC?fV$3b!8d!YX34AHCkOWq#!hM;x}wil&*fWkF6I(OVWLHg|Cn zFL4Bmn)^FPh9Re3ufQ8`a+803o4_X8QKw3CQN51r=lvY~gEfi~Yv;A}9cUS_d?z>L zFOcS2&>@?NTm#gyrSVu}g3j$G5SWX<^Uf=T7fG;J<(W^ki$BcU-Q;_-v?Az9IC2h*dK4iPQj&<54*|%iWFaT7EmOE^Y_}&cFy^UNI6XIE78j)5Tk~%rDbKxq!0{YoHA^ z%`awWo**a>VJiH0wyOdFo22Xt_06B<|J6v^sv;Lns*aAcbLw~1+jd1u*iTei5 z*jN&p>D%-IN{Rd0J0#Y}_sXv*g~S$L)!PP{U;k=7@>VhRwzc-Q1H(P-t^pth5(No^ zM1@5~jX=-95)xqXYbpf>fkOAgnEoFD!p+vn-v9qExK%D)ek~CD*FoC}Zs+P{2XOTE zb_a`y{Kw15*A9MtOKz@SPux5mM67Mxe7r?m{+s9}vbvikeXVBwS8eF#;|aF|m^e8* zA?$3OtT~_mS2x^Yn0cKe`G0dPUqH40kIDZk?)SfC|FQX(iRf56xmxO5JJ>Ouvj|^T O0BES_Dwiu+z5O4(`z!7M literal 0 HcmV?d00001 diff --git a/obs/forms/images/settings/network-bluetooth.png b/obs/forms/images/settings/network-bluetooth.png new file mode 100644 index 0000000000000000000000000000000000000000..052878c221c8053bbc69a4ee511aea617f38c812 GIT binary patch literal 3222 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 F{{i`D)Gh!3 literal 0 HcmV?d00001 diff --git a/obs/forms/images/settings/video-display-3.png b/obs/forms/images/settings/video-display-3.png new file mode 100644 index 0000000000000000000000000000000000000000..bbeb9e7280a893c978d63a5b18e4b7a76636ba1b GIT binary patch literal 3238 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 UG*)z~`?(ar!qf&+Z|olTFJZ9Axc~qF literal 0 HcmV?d00001 diff --git a/obs/forms/obs.qrc b/obs/forms/obs.qrc new file mode 100644 index 000000000..50dfc7b1c --- /dev/null +++ b/obs/forms/obs.qrc @@ -0,0 +1,23 @@ + + + images/add.ico + images/delete.ico + images/document-properties-2.png + images/down.ico + images/editscene.ico + images/list_add.png + images/list_remove.png + images/live.ico + images/properties.ico + images/sound.ico + images/sound_muted.ico + images/up.ico + + + images/settings/video-display-3.png + images/settings/decibel_audio_player.png + images/settings/applications-system-2.png + images/settings/system-settings-3.png + images/settings/network-bluetooth.png + + diff --git a/obs/forms/res/delete.ico.h b/obs/forms/res/delete.ico.h deleted file mode 100644 index b3aaec574..000000000 --- a/obs/forms/res/delete.ico.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef DELETE_ICO_H -#define DELETE_ICO_H - -#include -#include -#include - -static const unsigned char delete_ico[] = -{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x16, 0x00, - 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x4C, 0x0F, - 0x13, 0x16, 0x64, 0x6D, 0x08, 0x08, 0x29, 0x33, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x25, 0x2B, 0x83, 0x6D, 0x42, 0x54, 0xE3, 0xF8, 0x1F, 0x31, - 0xB6, 0xC4, 0x1F, 0x29, 0x72, 0x09, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, - 0x1E, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x30, 0x35, 0x91, 0x0F, 0x4C, 0x59, 0xCA, 0xCE, 0x46, 0x5C, - 0xEC, 0xFF, 0x1E, 0x34, 0xD1, 0xFC, 0x1C, 0x2F, 0xC8, 0x47, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x12, - 0x31, 0x2A, 0x12, 0x13, 0x69, 0x7B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x41, 0xD6, 0x0E, 0x4B, 0x58, - 0xE0, 0xC9, 0x41, 0x59, 0xE4, 0xFF, 0x31, 0x46, 0xDD, 0xFF, - 0x1C, 0x30, 0xC7, 0xA8, 0x1D, 0x32, 0xCE, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1E, 0x22, 0x9A, 0x98, 0x12, 0x13, 0x6F, 0x76, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x41, 0x4A, 0xE8, 0x88, 0x34, 0x4C, 0xDD, 0xFF, - 0x1C, 0x37, 0xDD, 0xFF, 0x18, 0x28, 0xAF, 0xD8, 0x1B, 0x30, - 0xC9, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x13, 0x55, 0x49, 0x16, 0x25, 0xC3, 0xDC, - 0x08, 0x07, 0x23, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x37, 0xA8, 0x1D, - 0x37, 0x48, 0xCB, 0xD9, 0x16, 0x32, 0xD8, 0xFF, 0x17, 0x2D, - 0xCB, 0xFB, 0x0B, 0x0B, 0x43, 0x55, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0B, 0x07, 0x20, 0x17, 0x16, 0x2B, 0xCC, 0xDC, - 0x0C, 0x19, 0x84, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x55, 0x59, 0xB8, 0x47, 0x2D, 0x43, - 0xDA, 0xF3, 0x12, 0x2E, 0xDA, 0xFF, 0x16, 0x24, 0xAC, 0xDD, - 0x03, 0x01, 0x13, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x13, 0x15, 0x51, 0x09, 0x1C, 0x2A, 0xA4, 0xB7, - 0x18, 0x2E, 0xD0, 0xE9, 0x0D, 0x0B, 0x2D, 0x19, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x67, 0xE4, 0x64, 0x1A, 0x32, 0xCF, 0xF9, - 0x10, 0x2D, 0xDE, 0xFF, 0x1B, 0x24, 0x8F, 0xBE, 0x01, 0x01, - 0x03, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x29, 0x9E, 0xA0, - 0x1B, 0x36, 0xEE, 0xFF, 0x14, 0x19, 0x68, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x5E, 0xE7, 0x67, 0x18, 0x30, 0xD2, 0xF5, 0x1E, 0x38, - 0xE0, 0xFF, 0x17, 0x22, 0x8E, 0xB2, 0x14, 0x22, 0x95, 0xAB, - 0x15, 0x32, 0xF3, 0xFF, 0x13, 0x23, 0xA3, 0xA6, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x65, - 0xE2, 0x4C, 0x12, 0x27, 0xBC, 0xED, 0x0D, 0x26, 0xD3, 0xFF, - 0x0E, 0x2B, 0xE1, 0xFF, 0x13, 0x26, 0xC1, 0xC7, 0x17, 0x1C, - 0x64, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0B, - 0x32, 0x0B, 0x29, 0x2F, 0xA1, 0x70, 0x0A, 0x23, 0xD0, 0xF4, - 0x09, 0x22, 0xDB, 0xFF, 0x03, 0x1C, 0xD3, 0xFF, 0x10, 0x23, - 0xBE, 0xD2, 0x12, 0x2C, 0xD9, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x1F, - 0x5E, 0x4A, 0x2D, 0x3A, 0xAD, 0xC4, 0x18, 0x33, 0xE4, 0xFF, - 0x07, 0x27, 0xEB, 0xFF, 0x10, 0x26, 0xCB, 0xDD, 0x2B, 0x39, - 0xC8, 0xB8, 0x09, 0x1E, 0xD1, 0xFF, 0x0A, 0x1A, 0xA6, 0xC8, - 0x0B, 0x1C, 0x93, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2F, 0x2F, 0x50, 0x2D, 0x50, 0x57, - 0x9D, 0xA0, 0x6B, 0x79, 0xE6, 0xFA, 0x54, 0x6A, 0xF9, 0xFF, - 0x40, 0x57, 0xF5, 0xFF, 0x25, 0x3A, 0xD4, 0xDC, 0x28, 0x2C, - 0x8C, 0x37, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x58, 0xE5, 0x79, - 0x29, 0x42, 0xF5, 0xFA, 0x23, 0x30, 0xA6, 0xD9, 0x08, 0x08, - 0x41, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x45, 0x48, 0x72, 0x65, 0x5C, 0x6A, - 0xCE, 0xF0, 0x89, 0x98, 0xF8, 0xFF, 0x87, 0x96, 0xFA, 0xFF, - 0x7A, 0x8A, 0xF6, 0xFF, 0x50, 0x5E, 0xD0, 0xBA, 0x24, 0x24, - 0x5D, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5D, 0x60, 0xE1, 0x3B, 0x67, 0x75, - 0xF7, 0xC6, 0x5D, 0x68, 0xD1, 0xF4, 0x1C, 0x1F, 0x56, 0x7C, - 0x00, 0x00, 0x15, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xA2, - 0xC3, 0x55, 0x8B, 0x9A, 0xF9, 0xE5, 0x72, 0x83, 0xE9, 0xFF, - 0x83, 0x90, 0xE7, 0xE9, 0x5E, 0x65, 0xAE, 0x7D, 0x40, 0x47, - 0x9D, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x68, 0x69, 0xDE, 0x09, 0x74, 0x79, 0xEE, 0x69, - 0x72, 0x7B, 0xEC, 0xCF, 0x34, 0x3A, 0x90, 0xC1, 0x0A, 0x0B, - 0x34, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xFF, 0x00, 0x00, - 0x87, 0xFB, 0x00, 0x00, 0x07, 0xF3, 0x00, 0x00, 0x03, 0xF3, - 0x00, 0x00, 0x83, 0xE3, 0x00, 0x00, 0x83, 0xC7, 0x00, 0x00, - 0xC1, 0x87, 0x00, 0x00, 0xE0, 0x8F, 0x00, 0x00, 0xF0, 0x1F, - 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, - 0xE0, 0x0F, 0x00, 0x00, 0x80, 0x87, 0x00, 0x00, 0x01, 0xC1, - 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -}; - -wxBitmap& delete_ico_to_wx_bitmap() -{ - static wxMemoryInputStream memIStream( delete_ico, sizeof( delete_ico ) ); - static wxImage image( memIStream, wxBITMAP_TYPE_ICO ); - static wxBitmap bmp( image ); - return bmp; -}; - - -#endif //DELETE_ICO_H diff --git a/obs/forms/res/down.ico.h b/obs/forms/res/down.ico.h deleted file mode 100644 index 139d3077d..000000000 --- a/obs/forms/res/down.ico.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef DOWN_ICO_H -#define DOWN_ICO_H - -#include -#include -#include - -static const unsigned char down_ico[] = -{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x16, 0x00, - 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5D, - 0xB3, 0x78, 0x29, 0xFF, 0xBE, 0x83, 0x33, 0x5F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x71, 0x22, 0x5D, - 0xB3, 0x78, 0x29, 0xFF, 0xE9, 0xC9, 0x97, 0xFF, 0xB2, 0x76, - 0x26, 0xFF, 0xBE, 0x83, 0x33, 0x5F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5D, - 0xB3, 0x78, 0x29, 0xFF, 0xE4, 0xB2, 0x5C, 0xFF, 0xD5, 0x8D, - 0x17, 0xFF, 0xE8, 0xC7, 0x90, 0xFF, 0xB2, 0x76, 0x26, 0xFF, - 0xBE, 0x83, 0x33, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x72, 0x22, 0x5D, - 0xB3, 0x78, 0x29, 0xFF, 0xEA, 0xBA, 0x61, 0xFF, 0xDE, 0x9A, - 0x1E, 0xFF, 0xDA, 0x95, 0x1B, 0xFF, 0xD5, 0x8E, 0x18, 0xFF, - 0xE8, 0xC7, 0x91, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, - 0x34, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x73, 0x23, 0x5F, - 0xB3, 0x78, 0x29, 0xFF, 0xEF, 0xC1, 0x65, 0xFF, 0xE8, 0xA5, - 0x23, 0xFF, 0xE3, 0xA1, 0x22, 0xFF, 0xE0, 0x9B, 0x20, 0xFF, - 0xDB, 0x95, 0x1C, 0xFF, 0xD5, 0x8F, 0x19, 0xFF, 0xE8, 0xC7, - 0x91, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x72, 0x22, 0x5E, - 0xB3, 0x78, 0x29, 0xFF, 0xF4, 0xCD, 0x7B, 0xFF, 0xEE, 0xAE, - 0x2C, 0xFF, 0xEB, 0xAA, 0x26, 0xFF, 0xE9, 0xA6, 0x25, 0xFF, - 0xE6, 0xA2, 0x23, 0xFF, 0xE0, 0x9C, 0x1F, 0xFF, 0xDC, 0x96, - 0x1C, 0xFF, 0xD7, 0x90, 0x19, 0xFF, 0xE9, 0xC7, 0x91, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5D, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x71, 0x22, 0x5E, - 0xB3, 0x78, 0x29, 0xFF, 0xF6, 0xD0, 0x80, 0xFF, 0xF2, 0xBC, - 0x4A, 0xFF, 0xF0, 0xB3, 0x32, 0xFF, 0xEE, 0xAE, 0x27, 0xFF, - 0xEC, 0xAB, 0x28, 0xFF, 0xE9, 0xA7, 0x26, 0xFF, 0xE6, 0xA2, - 0x23, 0xFF, 0xE4, 0xA6, 0x38, 0xFF, 0xE9, 0xBF, 0x73, 0xFF, - 0xE6, 0xBB, 0x70, 0xFF, 0xE9, 0xC8, 0x91, 0xFF, 0xB8, 0x7E, - 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5D, 0x00, 0x00, 0x00, 0x00, - 0xA5, 0x66, 0x16, 0xAA, 0xA5, 0x66, 0x16, 0xFF, 0xA5, 0x66, - 0x16, 0xFF, 0xA5, 0x66, 0x16, 0xFF, 0xA5, 0x66, 0x16, 0xFF, - 0xF0, 0xAF, 0x28, 0xFF, 0xEF, 0xAE, 0x29, 0xFF, 0xEC, 0xAB, - 0x28, 0xFF, 0xEA, 0xA7, 0x25, 0xFF, 0xF0, 0xC5, 0x76, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0xB8, 0x7E, - 0x2F, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0xB1, 0x74, 0x25, 0xAA, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xA5, 0x66, 0x16, 0xFF, 0xF0, 0xB0, 0x2B, 0xFF, 0xF0, 0xB0, - 0x29, 0xFF, 0xEF, 0xAF, 0x2A, 0xFF, 0xED, 0xAB, 0x27, 0xFF, - 0xF2, 0xC9, 0x79, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xA5, 0x66, 0x16, 0xFF, 0xEF, 0xB1, - 0x2E, 0xFF, 0xF0, 0xAF, 0x29, 0xFF, 0xF0, 0xB0, 0x2A, 0xFF, - 0xF0, 0xAF, 0x2A, 0xFF, 0xF4, 0xCC, 0x7A, 0xFF, 0xB8, 0x7E, - 0x2F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x66, - 0x16, 0xFF, 0xED, 0xAF, 0x31, 0xFF, 0xEE, 0xAE, 0x27, 0xFF, - 0xF0, 0xB0, 0x2A, 0xFF, 0xF0, 0xB0, 0x2A, 0xFF, 0xF6, 0xCD, - 0x7B, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xA5, 0x66, 0x16, 0xFF, 0xEA, 0xB0, 0x38, 0xFF, - 0xEB, 0xAB, 0x26, 0xFF, 0xEE, 0xAE, 0x29, 0xFF, 0xEF, 0xAF, - 0x2A, 0xFF, 0xF6, 0xCE, 0x7B, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x66, 0x16, 0xFF, - 0xE6, 0xAF, 0x3E, 0xFF, 0xE7, 0xA7, 0x27, 0xFF, 0xEB, 0xAA, - 0x26, 0xFF, 0xEE, 0xAE, 0x28, 0xFF, 0xF6, 0xCF, 0x7A, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xA5, 0x66, 0x16, 0xFF, 0xE2, 0xAB, 0x41, 0xFF, 0xE3, 0xA6, - 0x2C, 0xFF, 0xE6, 0xA6, 0x23, 0xFF, 0xEB, 0xAB, 0x27, 0xFF, - 0xF4, 0xCD, 0x7A, 0xFF, 0xB8, 0x7E, 0x2F, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xA5, 0x66, 0x16, 0xFF, 0xE4, 0xB8, - 0x68, 0xFF, 0xE7, 0xB7, 0x5F, 0xFF, 0xE8, 0xB4, 0x4F, 0xFF, - 0xEC, 0xB9, 0x52, 0xFF, 0xF3, 0xCC, 0x7A, 0xFF, 0xB8, 0x7E, - 0x2F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x81, - 0x32, 0x77, 0xA5, 0x66, 0x16, 0xFF, 0xA5, 0x66, 0x16, 0xFF, - 0xA5, 0x66, 0x16, 0xFF, 0xA5, 0x66, 0x16, 0xFF, 0xA5, 0x66, - 0x16, 0xFF, 0xC0, 0x87, 0x39, 0x77, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x00, - 0xF8, 0x3F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xE0, 0x0F, - 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xF0, 0x1F, - 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, - 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, - 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, -}; - -wxBitmap& down_ico_to_wx_bitmap() -{ - static wxMemoryInputStream memIStream( down_ico, sizeof( down_ico ) ); - static wxImage image( memIStream, wxBITMAP_TYPE_ICO ); - static wxBitmap bmp( image ); - return bmp; -}; - - -#endif //DOWN_ICO_H diff --git a/obs/forms/res/list_add.png.h b/obs/forms/res/list_add.png.h deleted file mode 100644 index 7a0225a87..000000000 --- a/obs/forms/res/list_add.png.h +++ /dev/null @@ -1,139 +0,0 @@ -#ifndef LIST_ADD_PNG_H -#define LIST_ADD_PNG_H - -#include -#include -#include - -static const unsigned char list_add_png[] = -{ - 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, - 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, - 0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4B, 0x47, - 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x43, 0xBB, - 0x7F, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, - 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, 0x00, 0x9A, - 0x9C, 0x18, 0x00, 0x00, 0x00, 0x09, 0x76, 0x70, 0x41, 0x67, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x5C, - 0xC6, 0xAD, 0xC3, 0x00, 0x00, 0x02, 0x7C, 0x49, 0x44, 0x41, - 0x54, 0x38, 0xCB, 0x8D, 0x92, 0xCD, 0xAB, 0x94, 0x65, 0x18, - 0xC6, 0x7F, 0xCF, 0xFD, 0x3C, 0xEF, 0x3B, 0xF3, 0xCE, 0x34, - 0x73, 0xBE, 0xD4, 0x51, 0x6B, 0xA1, 0xE5, 0x46, 0x5D, 0x45, - 0x14, 0x8A, 0x41, 0x1F, 0x04, 0xD1, 0x32, 0xA4, 0xBF, 0xA0, - 0xBF, 0x20, 0xDA, 0x88, 0x20, 0xEA, 0xAE, 0x4D, 0x08, 0xAD, - 0x8D, 0x76, 0x41, 0xBB, 0x36, 0x16, 0x91, 0x0B, 0xC1, 0x08, - 0x54, 0x72, 0x71, 0x42, 0xA1, 0x73, 0x92, 0xCA, 0x8E, 0x7A, - 0x3C, 0xC7, 0x73, 0x74, 0xC6, 0x33, 0xEF, 0x99, 0x79, 0xDF, - 0xE7, 0xB9, 0xEF, 0x16, 0xD3, 0x46, 0x27, 0xA5, 0x0B, 0xAE, - 0xDD, 0x75, 0xFD, 0xB8, 0xB9, 0xB9, 0x1C, 0x53, 0x3A, 0x9D, - 0xF7, 0xDE, 0xF4, 0x1F, 0xEC, 0xDF, 0x37, 0xF7, 0xA9, 0x08, - 0xBD, 0xB2, 0x8C, 0x65, 0x7F, 0x50, 0xFD, 0xF4, 0xD7, 0x83, - 0x87, 0x9F, 0xEB, 0xF5, 0xCF, 0xFE, 0x7C, 0x3A, 0x1D, 0xA6, - 0xFA, 0x07, 0x36, 0x67, 0x8A, 0xF6, 0x9E, 0x0F, 0xDF, 0x79, - 0xEF, 0xF5, 0x63, 0x45, 0xAB, 0x2D, 0x6A, 0xCA, 0x37, 0x17, - 0xAE, 0xBD, 0x3C, 0x5F, 0xF6, 0x2F, 0x3F, 0xC0, 0xFE, 0x06, - 0x97, 0x9E, 0x0F, 0x78, 0x71, 0x5E, 0x1C, 0x69, 0xD7, 0xE5, - 0xA5, 0x0D, 0xD1, 0x66, 0x4D, 0xBF, 0x8C, 0xA8, 0xF3, 0x85, - 0xD4, 0xB6, 0x00, 0x67, 0x3C, 0xF0, 0x04, 0x40, 0xA6, 0x00, - 0xE3, 0x81, 0x37, 0x73, 0x6C, 0x8F, 0x95, 0xE1, 0x28, 0x91, - 0xD4, 0x30, 0x80, 0x2C, 0xE7, 0xBF, 0x14, 0x00, 0x3F, 0xF1, - 0x69, 0xE0, 0xA6, 0x67, 0xD0, 0x6D, 0xCA, 0x8C, 0x13, 0x35, - 0x48, 0x6A, 0xA4, 0x64, 0x60, 0x60, 0x2E, 0x65, 0xB0, 0x56, - 0xC0, 0x47, 0x7E, 0x52, 0x3D, 0x94, 0xE0, 0x6C, 0x15, 0x66, - 0xDF, 0x3A, 0x71, 0xAC, 0x21, 0xCD, 0xD7, 0x34, 0x69, 0x27, - 0x70, 0x90, 0x68, 0xD6, 0x56, 0x4B, 0xAF, 0xA8, 0x2A, 0xB5, - 0x1A, 0x51, 0x8D, 0x60, 0x26, 0x99, 0xD7, 0xF7, 0x77, 0xBF, - 0xDD, 0x5B, 0x70, 0x7E, 0x77, 0x92, 0x28, 0x6A, 0x21, 0xDC, - 0x5F, 0xAB, 0x4F, 0x5C, 0x72, 0x87, 0x8E, 0x9F, 0xBB, 0xD2, - 0xEE, 0xF5, 0x5E, 0x4D, 0x38, 0x31, 0x35, 0xA2, 0x99, 0x9B, - 0xEB, 0xE4, 0x6E, 0x93, 0xAE, 0x1B, 0xAA, 0x27, 0x29, 0xB4, - 0x75, 0x8B, 0x5D, 0xA1, 0x52, 0x70, 0x84, 0x20, 0x96, 0x07, - 0xC1, 0xC5, 0x7A, 0x74, 0xE3, 0xD7, 0xA5, 0xAF, 0xC2, 0x0B, - 0xDD, 0xE2, 0xC0, 0xC7, 0xC7, 0x8F, 0x64, 0xAB, 0x83, 0x1A, - 0x35, 0xC3, 0xD4, 0xD8, 0xD8, 0x8A, 0x7C, 0xBF, 0x78, 0x9F, - 0xA4, 0x93, 0x63, 0xDB, 0x33, 0x73, 0x1C, 0x3D, 0xBC, 0x53, - 0xEA, 0xA8, 0xE4, 0x99, 0xA7, 0x11, 0x1C, 0xAE, 0xDE, 0x6E, - 0x2F, 0xDD, 0x58, 0x3E, 0x18, 0x86, 0xA3, 0xBA, 0x3A, 0x7F, - 0xF1, 0x16, 0xD1, 0x09, 0x31, 0x1A, 0x95, 0x1A, 0x75, 0x52, - 0x6A, 0x75, 0x38, 0x27, 0x38, 0x8C, 0xE1, 0xA8, 0xE6, 0xC7, - 0xC5, 0x7B, 0x14, 0xB9, 0xA7, 0x95, 0x7B, 0x8A, 0x46, 0xC0, - 0xCA, 0x81, 0x89, 0x93, 0x2A, 0x94, 0xFD, 0xF2, 0x87, 0x78, - 0xEB, 0xB7, 0x77, 0xCD, 0xAC, 0x69, 0x86, 0x53, 0x53, 0x09, - 0x41, 0x3A, 0x6E, 0xE7, 0xBE, 0x2C, 0x86, 0x82, 0x56, 0xEE, - 0x69, 0x96, 0xEB, 0x8C, 0x6E, 0xAF, 0x6E, 0x55, 0xDE, 0x8F, - 0x86, 0x22, 0x88, 0x88, 0x9A, 0xE9, 0xE6, 0xB8, 0xD4, 0xEF, - 0xC2, 0x1F, 0x8B, 0xAB, 0x27, 0xBB, 0xB3, 0x0B, 0xBD, 0x94, - 0x95, 0xCD, 0x0E, 0x30, 0xEE, 0xF8, 0x85, 0x4E, 0x1E, 0x4E, - 0x35, 0x77, 0xBC, 0xF4, 0x86, 0xCF, 0x84, 0x22, 0x17, 0x78, - 0x34, 0x8E, 0x1B, 0x77, 0xD6, 0xBF, 0x4C, 0x55, 0xFD, 0xAD, - 0xCF, 0xFD, 0xF8, 0xF1, 0x10, 0x32, 0x5A, 0x83, 0x47, 0x72, - 0x7B, 0x25, 0xB0, 0x72, 0xEE, 0xEE, 0x60, 0x85, 0xBB, 0x00, - 0x43, 0x80, 0x23, 0x9F, 0xEC, 0x9D, 0x6B, 0xED, 0x78, 0xD8, - 0x08, 0x82, 0xCF, 0x85, 0x22, 0xF7, 0xC4, 0xE0, 0xCD, 0x70, - 0xCB, 0xEB, 0x57, 0x9B, 0x3F, 0xC3, 0xD9, 0xEA, 0xF9, 0x43, - 0x02, 0x9C, 0x83, 0x46, 0xE6, 0x29, 0xF2, 0x89, 0x83, 0xC0, - 0x64, 0x4D, 0xD3, 0x9A, 0x06, 0x34, 0xBA, 0xC9, 0xCC, 0xB4, - 0x11, 0x1C, 0xAD, 0x7F, 0x9F, 0x16, 0xBC, 0x80, 0x44, 0xFD, - 0x7F, 0x80, 0x3B, 0x9B, 0x6A, 0xF8, 0xB5, 0xA0, 0x75, 0xCA, - 0x62, 0x89, 0xAF, 0x4A, 0x5C, 0xAA, 0xB7, 0x15, 0xD9, 0x78, - 0xD6, 0x94, 0x9F, 0xD4, 0xEF, 0xF3, 0xFD, 0xC1, 0x1E, 0xFD, - 0xFA, 0xDE, 0xCD, 0xE5, 0x59, 0x2F, 0xB6, 0xD7, 0x8B, 0x8B, - 0xA9, 0x8A, 0xD7, 0x7D, 0xFF, 0xF1, 0x2F, 0xF0, 0x45, 0xF5, - 0x74, 0xFC, 0x1F, 0xD6, 0xC1, 0x2E, 0xDC, 0xA4, 0x2B, 0xC5, - 0xBC, 0x00, 0x00, 0x00, 0x1D, 0x74, 0x45, 0x58, 0x74, 0x43, - 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x00, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x47, 0x49, 0x4D, 0x50, 0xEF, 0x64, - 0x25, 0x6E, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2D, 0x64, 0x61, 0x74, - 0x65, 0x00, 0x32, 0x30, 0x30, 0x39, 0x2D, 0x31, 0x31, 0x2D, - 0x31, 0x37, 0x54, 0x32, 0x30, 0x3A, 0x30, 0x36, 0x3A, 0x35, - 0x35, 0x2D, 0x30, 0x37, 0x3A, 0x30, 0x30, 0x59, 0xA6, 0x2A, - 0xBB, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3A, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x00, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x32, 0x2D, 0x32, - 0x32, 0x54, 0x31, 0x33, 0x3A, 0x34, 0x31, 0x3A, 0x30, 0x37, - 0x2D, 0x30, 0x37, 0x3A, 0x30, 0x30, 0xAC, 0xA6, 0x9C, 0xB4, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3A, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x00, - 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x31, 0x2D, 0x31, 0x31, - 0x54, 0x31, 0x34, 0x3A, 0x32, 0x39, 0x3A, 0x35, 0x39, 0x2D, - 0x30, 0x37, 0x3A, 0x30, 0x30, 0x9A, 0x31, 0xB4, 0x01, 0x00, - 0x00, 0x00, 0x34, 0x74, 0x45, 0x58, 0x74, 0x4C, 0x69, 0x63, - 0x65, 0x6E, 0x73, 0x65, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, - 0x2F, 0x2F, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x63, 0x6F, 0x6D, 0x6D, 0x6F, 0x6E, 0x73, 0x2E, 0x6F, 0x72, - 0x67, 0x2F, 0x6C, 0x69, 0x63, 0x65, 0x6E, 0x73, 0x65, 0x73, - 0x2F, 0x47, 0x50, 0x4C, 0x2F, 0x32, 0x2E, 0x30, 0x2F, 0x6C, - 0x6A, 0x06, 0xA8, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, - 0x74, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x2D, 0x64, 0x61, - 0x74, 0x65, 0x00, 0x32, 0x30, 0x30, 0x39, 0x2D, 0x31, 0x31, - 0x2D, 0x31, 0x37, 0x54, 0x32, 0x30, 0x3A, 0x30, 0x36, 0x3A, - 0x35, 0x35, 0x2D, 0x30, 0x37, 0x3A, 0x30, 0x30, 0x06, 0x17, - 0x5C, 0x8F, 0x00, 0x00, 0x00, 0x18, 0x74, 0x45, 0x58, 0x74, - 0x53, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x49, 0x6E, 0x74, - 0x72, 0x69, 0x67, 0x75, 0x65, 0x20, 0x49, 0x63, 0x6F, 0x6E, - 0x20, 0x53, 0x65, 0x74, 0xAE, 0x27, 0xA1, 0x3F, 0x00, 0x00, - 0x00, 0x46, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6F, 0x75, 0x72, - 0x63, 0x65, 0x5F, 0x55, 0x52, 0x4C, 0x00, 0x68, 0x74, 0x74, - 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x69, 0x6D, 0x70, 0x6C, 0x65, - 0x69, 0x6E, 0x6E, 0x6F, 0x76, 0x61, 0x74, 0x69, 0x6F, 0x6E, - 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x69, 0x6E, 0x64, 0x65, 0x78, - 0x2E, 0x70, 0x68, 0x70, 0x3F, 0x70, 0x61, 0x67, 0x65, 0x3D, - 0x32, 0x32, 0x26, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x3D, - 0x32, 0x26, 0x69, 0x64, 0x3D, 0x32, 0x95, 0x41, 0xF9, 0xC6, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, - 0x60, 0x82, -}; - -wxBitmap& list_add_png_to_wx_bitmap() -{ - static wxMemoryInputStream memIStream( list_add_png, sizeof( list_add_png ) ); - static wxImage image( memIStream, wxBITMAP_TYPE_PNG ); - static wxBitmap bmp( image ); - return bmp; -}; - - -#endif //LIST_ADD_PNG_H diff --git a/obs/forms/res/properties.ico.h b/obs/forms/res/properties.ico.h deleted file mode 100644 index be14baa3c..000000000 --- a/obs/forms/res/properties.ico.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef PROPERTIES_ICO_H -#define PROPERTIES_ICO_H - -#include -#include -#include - -static const unsigned char properties_ico[] = -{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x16, 0x00, - 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0xFE, 0xFD, 0xFE, 0xFF, 0xFD, 0xFC, 0xFD, 0xFF, 0xFB, 0xFB, - 0xFB, 0xFF, 0xFA, 0xFA, 0xF9, 0xFF, 0xF8, 0xF9, 0xF8, 0xFF, - 0xF7, 0xF7, 0xF7, 0xFF, 0xF5, 0xF6, 0xF6, 0xFF, 0xF5, 0xF4, - 0xF4, 0xFF, 0xF3, 0xF3, 0xF3, 0xFF, 0xF2, 0xF2, 0xF2, 0xFF, - 0xF1, 0xF1, 0xF1, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0xF0, 0xF0, - 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF, 0xAB, 0x98, - 0x9A, 0xFF, 0xAB, 0x97, 0x9A, 0xFF, 0xAA, 0x97, 0x9A, 0xFF, - 0xAB, 0x98, 0x9A, 0xFF, 0xAB, 0x97, 0x9A, 0xFF, 0xAA, 0x97, - 0x9A, 0xFF, 0xAA, 0x97, 0x99, 0xFF, 0xAA, 0x96, 0x99, 0xFF, - 0xAB, 0x97, 0x9A, 0xFF, 0xAA, 0x97, 0x9A, 0xFF, 0xAA, 0x97, - 0x99, 0xFF, 0xAA, 0x96, 0x99, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF, 0xF6, 0xF6, 0xF6, 0xFF, - 0xF6, 0xF6, 0xF6, 0xFF, 0xF6, 0xF6, 0xF6, 0xFF, 0xF5, 0xF5, - 0xF5, 0xFF, 0xF5, 0xF6, 0xF5, 0xFF, 0xF6, 0xF6, 0xF5, 0xFF, - 0xF5, 0xF4, 0xF4, 0xFF, 0xF3, 0xF3, 0xF4, 0xFF, 0xF2, 0xF2, - 0xF2, 0xFF, 0xF1, 0xF1, 0xF1, 0xFF, 0xF1, 0xF0, 0xF1, 0xFF, - 0xF0, 0xF0, 0xF0, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, - 0xFB, 0xFB, 0xFB, 0xFF, 0xFB, 0xFA, 0xFB, 0xFF, 0xF9, 0xF8, - 0xF9, 0xFF, 0xF7, 0xF6, 0xF7, 0xFF, 0xF7, 0xF7, 0xF7, 0xFF, - 0xF8, 0xF7, 0xF8, 0xFF, 0xF6, 0xF7, 0xF6, 0xFF, 0xF5, 0xF5, - 0xF5, 0xFF, 0xF3, 0xF3, 0xF4, 0xFF, 0xF2, 0xF2, 0xF3, 0xFF, - 0xF2, 0xF1, 0xF1, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xAB, 0x98, 0x9A, 0xFF, 0xAB, 0x97, 0x9A, 0xFF, 0xAA, 0x97, - 0x9A, 0xFF, 0xAB, 0x98, 0x9A, 0xFF, 0xAB, 0x97, 0x9A, 0xFF, - 0xAA, 0x97, 0x9A, 0xFF, 0xAA, 0x97, 0x99, 0xFF, 0xAA, 0x96, - 0x99, 0xFF, 0xAB, 0x97, 0x9A, 0xFF, 0xAA, 0x97, 0x9A, 0xFF, - 0xAA, 0x97, 0x99, 0xFF, 0xAA, 0x96, 0x99, 0xFF, 0xF0, 0xF0, - 0xF1, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFD, - 0xFD, 0xFF, 0xFD, 0xFC, 0xFD, 0xFF, 0xFA, 0xFA, 0xFA, 0xFF, - 0xF7, 0xF7, 0xF7, 0xFF, 0xF6, 0xF5, 0xF6, 0xFF, 0xEB, 0xEB, - 0xEB, 0xFF, 0x7F, 0x85, 0xAA, 0xFF, 0xAB, 0xAA, 0xB6, 0xFF, - 0xF4, 0xF4, 0xF4, 0xFF, 0xF3, 0xF3, 0xF3, 0xFF, 0xF2, 0xF2, - 0xF2, 0xFF, 0xF1, 0xF1, 0xF1, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0xD9, 0xD9, 0xE3, 0xFF, 0xDE, 0xDE, - 0xE1, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF, - 0xFE, 0xFE, 0xFE, 0xFF, 0xFC, 0xFB, 0xFC, 0xFF, 0xB8, 0xBD, - 0xD8, 0xFF, 0x7C, 0x85, 0xB4, 0xFF, 0x85, 0x8F, 0xBD, 0xFF, - 0x90, 0x9B, 0xCE, 0xFF, 0x7F, 0x84, 0x98, 0xFF, 0xE5, 0xE4, - 0xE6, 0xFF, 0xF3, 0xF2, 0xF2, 0xFF, 0xF1, 0xF1, 0xF2, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0xCB, 0xD7, - 0xFA, 0xFF, 0x90, 0x99, 0xD0, 0xFF, 0x73, 0x6A, 0x7A, 0xFF, - 0xA9, 0x96, 0x99, 0xFF, 0xAB, 0x98, 0x9A, 0xFF, 0x85, 0x7E, - 0x90, 0xFF, 0x65, 0x68, 0x84, 0xFF, 0xAF, 0xBC, 0xF5, 0xFF, - 0x75, 0x7E, 0xB7, 0xFF, 0x93, 0x9E, 0xCE, 0xFF, 0x7B, 0x7F, - 0xAD, 0xFF, 0x71, 0x75, 0x99, 0xFF, 0xA2, 0x8F, 0x93, 0xFF, - 0xF2, 0xF3, 0xF2, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0xE8, 0xE9, 0xED, 0xFF, 0xD1, 0xDC, 0xFC, 0xFF, - 0xA8, 0xB5, 0xEC, 0xFF, 0x89, 0x8F, 0xBE, 0xFF, 0xD3, 0xD4, - 0xD7, 0xFF, 0xA4, 0xAC, 0xDB, 0xFF, 0x93, 0x9F, 0xDC, 0xFF, - 0x52, 0x5A, 0x80, 0xFF, 0xBC, 0xCB, 0xF7, 0xFF, 0x77, 0x81, - 0xBC, 0xFF, 0x7A, 0x82, 0xB2, 0xFF, 0x79, 0x83, 0xB6, 0xFF, - 0x91, 0x96, 0xB2, 0xFF, 0xF3, 0xF3, 0xF3, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0xCD, 0xCC, 0xCA, 0xFF, - 0xC5, 0xC5, 0xC6, 0xFF, 0xCE, 0xD8, 0xEF, 0xFF, 0xBE, 0xCD, - 0xFB, 0xFF, 0x89, 0x92, 0xCB, 0xFF, 0x79, 0x81, 0xAC, 0xFF, - 0x76, 0x80, 0xA9, 0xFF, 0xA6, 0xB2, 0xED, 0xFF, 0x51, 0x5A, - 0x86, 0xFF, 0xB8, 0xC1, 0xEE, 0xFF, 0x74, 0x76, 0xAA, 0xFF, - 0x7A, 0x84, 0xBC, 0xFF, 0x86, 0x91, 0xC9, 0xFF, 0xA8, 0xAB, - 0xBE, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0xE0, 0xD9, 0xD3, 0xFF, 0xE0, 0xD9, 0xD3, 0xFF, 0xDF, 0xD8, - 0xD3, 0xFF, 0xD4, 0xD8, 0xE8, 0xFF, 0xC7, 0xD5, 0xFA, 0xFF, - 0xAB, 0xB5, 0xEA, 0xFF, 0x73, 0x7B, 0xA5, 0xFF, 0x95, 0xA0, - 0xCE, 0xFF, 0xA5, 0xAF, 0xDF, 0xFF, 0x4A, 0x4F, 0x78, 0xFF, - 0x96, 0xA0, 0xDE, 0xFF, 0x8E, 0x9A, 0xD9, 0xFF, 0xA0, 0xAD, - 0xF2, 0xFF, 0xAB, 0xB7, 0xF6, 0xFF, 0x87, 0x86, 0x99, 0xFF, - 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, - 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, 0x97, 0x92, 0x8F, 0xFF, - 0x95, 0x94, 0x98, 0xFF, 0xA9, 0xB4, 0xE3, 0xFF, 0xA9, 0xB7, - 0xEB, 0xFF, 0x52, 0x56, 0x7E, 0xFF, 0x8E, 0x93, 0xC4, 0xFF, - 0x9A, 0xA6, 0xDD, 0xFF, 0xB3, 0xC1, 0xF9, 0xFF, 0xA6, 0xB4, - 0xF7, 0xFF, 0xAE, 0xBA, 0xFC, 0xFF, 0xBA, 0xC8, 0xFE, 0xFF, - 0xB2, 0xBC, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x60, - 0x86, 0x1C, 0xB0, 0xBE, 0xFA, 0xE8, 0x92, 0x9D, 0xDB, 0xFF, - 0xA1, 0xAE, 0xF3, 0xFF, 0xBC, 0xCA, 0xFE, 0xFF, 0xC1, 0xD1, - 0xFE, 0xFF, 0xC0, 0xD0, 0xFE, 0xFF, 0xC9, 0xD9, 0xFE, 0xFF, - 0xC8, 0xD8, 0xFD, 0xFE, 0x8E, 0x99, 0xBD, 0x54, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x8C, 0xB1, 0x3B, - 0xAB, 0xB9, 0xF5, 0xC9, 0xA4, 0xB1, 0xF5, 0xD5, 0xB0, 0xBD, - 0xFC, 0xD8, 0xB8, 0xC3, 0xFC, 0xF5, 0xBF, 0xCF, 0xFF, 0xFE, - 0xD5, 0xE5, 0xFE, 0xFF, 0xDA, 0xE7, 0xFD, 0xD2, 0x54, 0xAA, - 0xAA, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x65, 0x87, 0x05, - 0x67, 0x6B, 0x8D, 0x34, 0xC7, 0xD3, 0xFE, 0xA8, 0xA1, 0xAC, - 0xC6, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, - 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0xE1, 0x00, 0x00, -}; - -wxBitmap& properties_ico_to_wx_bitmap() -{ - static wxMemoryInputStream memIStream( properties_ico, sizeof( properties_ico ) ); - static wxImage image( memIStream, wxBITMAP_TYPE_ICO ); - static wxBitmap bmp( image ); - return bmp; -}; - - -#endif //PROPERTIES_ICO_H diff --git a/obs/forms/res/up.ico.h b/obs/forms/res/up.ico.h deleted file mode 100644 index e7aac062a..000000000 --- a/obs/forms/res/up.ico.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef UP_ICO_H -#define UP_ICO_H - -#include -#include -#include - -static const unsigned char up_ico[] = -{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x16, 0x00, - 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x81, - 0x32, 0x77, 0xB7, 0x7D, 0x2E, 0xFF, 0xB7, 0x7D, 0x2E, 0xFF, - 0xB7, 0x7D, 0x2E, 0xFF, 0xB7, 0x7D, 0x2E, 0xFF, 0xB7, 0x7D, - 0x2E, 0xFF, 0xC0, 0x87, 0x39, 0x77, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xB3, 0x78, 0x29, 0xFF, 0xE9, 0xC3, 0x85, 0xFF, - 0xE2, 0xB8, 0x78, 0xFF, 0xDF, 0xB5, 0x77, 0xFF, 0xDC, 0xB2, - 0x74, 0xFF, 0xD9, 0xAE, 0x73, 0xFD, 0xB7, 0x7D, 0x2E, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x78, 0x29, 0xFF, - 0xE0, 0xA1, 0x34, 0xFF, 0xD3, 0x8D, 0x17, 0xFF, 0xCE, 0x85, - 0x12, 0xFF, 0xC9, 0x7F, 0x10, 0xFF, 0xDD, 0xB3, 0x76, 0xFA, - 0xB7, 0x7D, 0x2E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xB3, 0x78, 0x29, 0xFF, 0xE8, 0xAC, 0x40, 0xFF, 0xDC, 0x98, - 0x22, 0xFF, 0xD5, 0x8E, 0x15, 0xFF, 0xD0, 0x88, 0x14, 0xFF, - 0xE1, 0xB8, 0x78, 0xFA, 0xB7, 0x7D, 0x2E, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xB3, 0x78, 0x29, 0xFF, 0xEC, 0xB3, - 0x46, 0xFF, 0xE2, 0xA2, 0x2E, 0xFF, 0xDB, 0x95, 0x1A, 0xFF, - 0xD6, 0x90, 0x18, 0xFF, 0xE4, 0xBC, 0x7B, 0xFA, 0xB7, 0x7D, - 0x2E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x78, - 0x29, 0xFF, 0xF1, 0xB9, 0x48, 0xFF, 0xE9, 0xAC, 0x3A, 0xFF, - 0xE2, 0x9D, 0x20, 0xFF, 0xDD, 0x97, 0x1C, 0xFF, 0xE8, 0xC1, - 0x7E, 0xFA, 0xB7, 0x7D, 0x2E, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xB3, 0x78, 0x29, 0xFF, 0xF4, 0xBD, 0x4A, 0xFF, - 0xEE, 0xB5, 0x45, 0xFF, 0xE8, 0xA7, 0x2A, 0xFF, 0xE3, 0x9E, - 0x1F, 0xFF, 0xEC, 0xC6, 0x80, 0xFA, 0xB7, 0x7D, 0x2E, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x78, 0x29, 0xFF, - 0xF4, 0xBE, 0x4B, 0xFF, 0xF1, 0xBA, 0x4B, 0xFF, 0xED, 0xB1, - 0x37, 0xFF, 0xE8, 0xA5, 0x23, 0xFF, 0xEF, 0xCA, 0x83, 0xF9, - 0xB7, 0x7D, 0x2E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xA5, 0x66, 0x16, 0xAA, 0xA9, 0x6A, - 0x1B, 0xE0, 0xAF, 0x72, 0x22, 0xFF, 0xAF, 0x72, 0x22, 0xFF, - 0xAF, 0x72, 0x22, 0xFF, 0xF2, 0xBC, 0x4A, 0xFF, 0xF2, 0xBC, - 0x4C, 0xFF, 0xF0, 0xB7, 0x44, 0xFF, 0xED, 0xAB, 0x2A, 0xFF, - 0xF2, 0xCD, 0x83, 0xFD, 0xB7, 0x7D, 0x2E, 0xFF, 0xB7, 0x7D, - 0x2E, 0xFF, 0xB7, 0x7D, 0x2E, 0xFF, 0xB4, 0x79, 0x2A, 0xEC, - 0xB1, 0x74, 0x25, 0xAA, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, - 0x22, 0x5C, 0xA5, 0x66, 0x16, 0xFF, 0xEF, 0xC8, 0x7A, 0xFF, - 0xED, 0xB7, 0x47, 0xFF, 0xEF, 0xB9, 0x48, 0xFF, 0xF2, 0xBB, - 0x4A, 0xFF, 0xF2, 0xBD, 0x4B, 0xFF, 0xF2, 0xBC, 0x4C, 0xFF, - 0xF0, 0xB3, 0x36, 0xFF, 0xF4, 0xCF, 0x83, 0xFF, 0xF2, 0xCA, - 0x7D, 0xFF, 0xF0, 0xC7, 0x7B, 0xFF, 0xED, 0xC5, 0x7A, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5C, - 0xA5, 0x66, 0x16, 0xFF, 0xED, 0xC6, 0x7A, 0xFF, 0xEB, 0xB4, - 0x45, 0xFF, 0xEE, 0xB8, 0x47, 0xFF, 0xF1, 0xBB, 0x49, 0xFF, - 0xF2, 0xBD, 0x4C, 0xFF, 0xF2, 0xBA, 0x44, 0xFF, 0xF0, 0xAF, - 0x2B, 0xFF, 0xED, 0xAB, 0x27, 0xFF, 0xF2, 0xCB, 0x7E, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5C, 0xA5, 0x66, - 0x16, 0xFF, 0xED, 0xC6, 0x79, 0xFF, 0xEA, 0xB3, 0x45, 0xFF, - 0xED, 0xB7, 0x47, 0xFF, 0xEF, 0xBA, 0x49, 0xFF, 0xF2, 0xBC, - 0x4C, 0xFF, 0xF2, 0xB4, 0x37, 0xFF, 0xF6, 0xCF, 0x7E, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5C, 0xA5, 0x66, 0x16, 0xFF, - 0xEC, 0xC4, 0x79, 0xFF, 0xE9, 0xB2, 0x45, 0xFF, 0xEC, 0xB6, - 0x46, 0xFF, 0xF0, 0xBA, 0x4A, 0xFF, 0xF7, 0xD6, 0x90, 0xFF, - 0xB8, 0x7E, 0x2F, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xB1, 0x71, 0x22, 0x5C, 0xA5, 0x66, 0x16, 0xFF, 0xEB, 0xC3, - 0x78, 0xFF, 0xE8, 0xB1, 0x44, 0xFF, 0xF4, 0xD3, 0x91, 0xFF, - 0xB2, 0x76, 0x26, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, - 0x22, 0x5C, 0xA5, 0x66, 0x16, 0xFF, 0xEA, 0xC3, 0x77, 0xFF, - 0xB2, 0x76, 0x26, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x71, 0x22, 0x5C, - 0xA5, 0x66, 0x16, 0xFF, 0xBE, 0x83, 0x34, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, - 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, - 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, - 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, - 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xF0, 0x1F, - 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x00, -}; - -wxBitmap& up_ico_to_wx_bitmap() -{ - static wxMemoryInputStream memIStream( up_ico, sizeof( up_ico ) ); - static wxImage image( memIStream, wxBITMAP_TYPE_ICO ); - static wxBitmap bmp( image ); - return bmp; -}; - - -#endif //UP_ICO_H diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index caf33e224..e40be0464 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -16,27 +16,20 @@ ******************************************************************************/ #include - #include #include #include - #include +#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "window-basic-main.hpp" -#include "wx-wrappers.hpp" #include "platform.hpp" +#include + using namespace std; -IMPLEMENT_APP(OBSApp); - -OBSAppBase::~OBSAppBase() -{ - blog(LOG_INFO, "Number of memory leaks: %llu", bnum_allocs()); -} - static void do_log(enum log_type type, const char *msg, va_list args) { #ifdef _WIN32 @@ -172,39 +165,31 @@ bool OBSApp::InitLocale() bool OBSApp::InitOBSBasic() { - OBSBasic *obsBasic = new OBSBasic(); - obsBasic->Show(); + try { + mainWindow = move(unique_ptr(new OBSBasic())); + mainWindow->show(); + return true; - mainWindow = obsBasic; - return obsBasic->Init(); + } catch (const char *error) { + blog(LOG_ERROR, "%s", error); + } + + return false; } -bool OBSApp::OnInit() +OBSApp::OBSApp(int &argc, char **argv) + : QApplication(argc, argv) { - base_set_log_handler(do_log); - if (!InitApplicationBundle()) - return false; - - if (!wxApp::OnInit()) - return false; - wxInitAllImageHandlers(); - + throw "Failed to initialize application bundle"; if (!MakeUserDirs()) - return false; + throw "Failed to created required user directories"; if (!InitGlobalConfig()) - return false; + throw "Failed to initialize global config"; if (!InitLocale()) - return false; + throw "Failed to load locale"; if (!InitOBSBasic()) - return false; - - return true; -} - -int OBSApp::OnExit() -{ - return wxApp::OnExit(); + throw "Failed to create main window"; } void OBSApp::GetFPSCommon(uint32_t &num, uint32_t &den) const @@ -280,3 +265,21 @@ const char *OBSApp::GetRenderModule() const else return "libobs-opengl"; } + +int main(int argc, char *argv[]) +{ + int ret = -1; + QCoreApplication::addLibraryPath("."); + base_set_log_handler(do_log); + + try { + OBSApp program(argc, argv); + ret = program.exec(); + + } catch (const char *error) { + blog(LOG_ERROR, "%s", error); + } + + blog(LOG_INFO, "Number of memory leaks: %llu", bnum_allocs()); + return ret; +} diff --git a/obs/obs-app.hpp b/obs/obs-app.hpp index b148b9c6f..8cd5d9d57 100644 --- a/obs/obs-app.hpp +++ b/obs/obs-app.hpp @@ -17,23 +17,20 @@ #pragma once -#include -#include - +#include +#include #include - #include +#include -class OBSAppBase : public wxApp { -public: - virtual ~OBSAppBase(); -}; +class OBSApp : public QApplication { + Q_OBJECT -class OBSApp : public OBSAppBase { - std::string locale; - ConfigFile globalConfig; - TextLookup textLookup; - wxWindow *mainWindow; +private: + std::string locale; + ConfigFile globalConfig; + TextLookup textLookup; + std::unique_ptr mainWindow; bool InitGlobalConfig(); bool InitGlobalConfigDefaults(); @@ -47,10 +44,9 @@ class OBSApp : public OBSAppBase { void GetFPSNanoseconds(uint32_t &num, uint32_t &den) const; public: - virtual bool OnInit(); - virtual int OnExit(); + OBSApp(int &argc, char **argv); - inline wxWindow *GetMainWindow() const {return mainWindow;} + inline QMainWindow *GetMainWindow() const {return mainWindow.get();} inline config_t GlobalConfig() const {return globalConfig;} @@ -68,9 +64,9 @@ public: const char *GetRenderModule() const; }; -wxDECLARE_APP(OBSApp); +inline OBSApp *App() {return static_cast(qApp);} -inline config_t GetGlobalConfig() {return wxGetApp().GlobalConfig();} +inline config_t GetGlobalConfig() {return App()->GlobalConfig();} -#define Str(lookupVal) wxGetApp().GetString(lookupVal) -#define WXStr(lookupVal) wxString(Str(lookupVal), wxConvUTF8) +inline const char *Str(const char *lookup) {return App()->GetString(lookup);} +#define QTStr(lookupVal) QString::fromUtf8(Str(lookupVal)) diff --git a/obs/qt-display.hpp b/obs/qt-display.hpp new file mode 100644 index 000000000..8cf7a45f9 --- /dev/null +++ b/obs/qt-display.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include + +class OBSQTDisplay : public QWidget { + Q_OBJECT + +public: + inline OBSQTDisplay(QWidget *parent = 0, Qt::WindowFlags f = 0) + : QWidget(parent, f) + { + setAutoFillBackground(false); + setAttribute(Qt::WA_OpaquePaintEvent); + setAttribute(Qt::WA_NativeWindow); + setAttribute(Qt::WA_PaintOnScreen); + setAttribute(Qt::WA_NoSystemBackground); + } + + virtual QPaintEngine *paintEngine() const {return nullptr;} +}; diff --git a/obs/qt-ptr-variant.hpp b/obs/qt-ptr-variant.hpp new file mode 100644 index 000000000..287caff2e --- /dev/null +++ b/obs/qt-ptr-variant.hpp @@ -0,0 +1,37 @@ +/****************************************************************************** + Copyright (C) 2013 by Hugh Bailey + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#include + +/* in case you're wondering, I made this code because qt static asserts would + * fail on forward pointers. so I was forced to make a hack */ + +struct PtrVariantDummy { + void *unused; +}; + +Q_DECLARE_METATYPE(PtrVariantDummy*); + +template static inline T VariantPtr(QVariant &v) +{ + return (T)v.value(); +} + +static inline QVariant PtrVariant(void* ptr) +{ + return QVariant::fromValue((PtrVariantDummy*)ptr); +} diff --git a/obs/qt-wrappers.cpp b/obs/qt-wrappers.cpp new file mode 100644 index 000000000..8400c32f7 --- /dev/null +++ b/obs/qt-wrappers.cpp @@ -0,0 +1,51 @@ +/****************************************************************************** + Copyright (C) 2013 by Hugh Bailey + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#include "qt-wrappers.hpp" +#include +#include +#include + +static inline void OBSErrorBoxva(QWidget *parent, const char *msg, va_list args) +{ + char full_message[4096]; + vsnprintf(full_message, 4095, msg, args); + + QMessageBox::information(parent, "Error", full_message); +} + +void OBSErrorBox(QWidget *parent, const char *msg, ...) +{ + va_list args; + va_start(args, msg); + OBSErrorBoxva(parent, msg, args); + va_end(args); +} + +void QTToGSWindow(QWidget *widget, gs_window &gswindow) +{ + if (!widget) + return; + +#ifdef _WIN32 + gswindow.hwnd = (HWND)widget->winId(); +#elif __APPLE__ + /* TODO: mac */ +#else + /* TODO: unix */ +#endif +} diff --git a/obs/qt-wrappers.hpp b/obs/qt-wrappers.hpp new file mode 100644 index 000000000..254a3129d --- /dev/null +++ b/obs/qt-wrappers.hpp @@ -0,0 +1,27 @@ +/****************************************************************************** + Copyright (C) 2013 by Hugh Bailey + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#pragma once + +#define QT_UTF8(str) QString::fromUtf8(str) + +class QWidget; +struct gs_window; + +void OBSErrorBox(QWidget *parent, const char *msg, ...); + +void QTToGSWindow(QWidget *widget, gs_window &gswindow); diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 8e167bfef..4f0f17e0f 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -17,39 +17,37 @@ ******************************************************************************/ #include - -#include +#include #include "obs-app.hpp" -#include "wx-wrappers.hpp" -#include "window-basic-settings.hpp" -#include "window-basic-main.hpp" +//#include "window-basic-settings.hpp" #include "window-namedialog.hpp" +#include "window-basic-main.hpp" +#include "qt-wrappers.hpp" +#include "qt-ptr-variant.hpp" -#ifdef __WXGTK__ - #include -#endif +#include "ui_OBSBasic.h" using namespace std; obs_scene_t OBSBasic::GetCurrentScene() { - int sel = scenes->GetSelection(); - if (sel == wxNOT_FOUND) - return NULL; - - return (obs_scene_t)scenes->GetClientData(sel); + QListWidgetItem *item = ui->scenes->currentItem(); + return item ? VariantPtr(item->data(Qt::UserRole)) : + nullptr; } void OBSBasic::AddScene(obs_source_t source) { const char *name = obs_source_getname(source); obs_scene_t scene = obs_scene_fromsource(source); - scenes->Append(WX_UTF8(name), scene); + + QListWidgetItem *item = new QListWidgetItem(QT_UTF8(name)); + item->setData(Qt::UserRole, PtrVariant(scene)); + ui->scenes->addItem(item); signal_handler_t handler = obs_source_signalhandler(source); - signal_handler_connect(handler, "add", OBSBasic::SceneItemAdded, - this); + signal_handler_connect(handler, "add", OBSBasic::SceneItemAdded, this); signal_handler_connect(handler, "remove", OBSBasic::SceneItemRemoved, this); } @@ -58,14 +56,14 @@ void OBSBasic::RemoveScene(obs_source_t source) { const char *name = obs_source_getname(source); - int idx = scenes->FindString(name); - int sel = scenes->GetSelection(); + QListWidgetItem *sel = ui->scenes->currentItem(); + QList items = ui->scenes->findItems(QT_UTF8(name), + Qt::MatchExactly); - if (idx != wxNOT_FOUND) { - if (sel == idx) - sources->Clear(); - - scenes->Delete(idx); + if (sel != nullptr) { + if (items.contains(sel)) + ui->sources->clear(); + delete sel; } } @@ -75,8 +73,12 @@ void OBSBasic::AddSceneItem(obs_sceneitem_t item) obs_source_t source = obs_sceneitem_getsource(item); const char *name = obs_source_getname(source); - if (GetCurrentScene() == scene) - sources->Insert(WX_UTF8(name), 0, item); + if (GetCurrentScene() == scene) { + QListWidgetItem *listItem = new QListWidgetItem(QT_UTF8(name)); + listItem->setData(Qt::UserRole, PtrVariant(item)); + + ui->sources->insertItem(0, listItem); + } sourceSceneRefs[source] = sourceSceneRefs[source] + 1; } @@ -86,12 +88,12 @@ void OBSBasic::RemoveSceneItem(obs_sceneitem_t item) obs_scene_t scene = obs_sceneitem_getscene(item); if (GetCurrentScene() == scene) { - for (unsigned int idx = 0; idx < sources->GetCount(); idx++) { - obs_sceneitem_t curItem; - curItem = (obs_sceneitem_t)sources->GetClientData(idx); + for (unsigned int i = 0; i < ui->sources->count(); i++) { + QListWidgetItem *listItem = ui->sources->item(i); + QVariant userData = listItem->data(Qt::UserRole); - if (item == curItem) { - sources->Delete(idx); + if (item == VariantPtr(userData)) { + delete listItem; break; } } @@ -110,7 +112,7 @@ void OBSBasic::RemoveSceneItem(obs_sceneitem_t item) void OBSBasic::UpdateSources(obs_scene_t scene) { - sources->Clear(); + ui->sources->clear(); obs_scene_enum_items(scene, [] (obs_scene_t scene, obs_sceneitem_t item, void *p) @@ -127,19 +129,20 @@ void OBSBasic::UpdateSceneSelection(obs_source_t source) obs_source_type type; obs_source_gettype(source, &type, NULL); - if (type == SOURCE_SCENE) { - obs_scene_t scene = obs_scene_fromsource(source); - const char *name = obs_source_getname(source); - int idx = scenes->FindString(WX_UTF8(name)); - int sel = scenes->GetSelection(); + if (type != SOURCE_SCENE) + return; - if (idx != sel) { - scenes->SetSelection(idx); - UpdateSources(scene); - } + obs_scene_t scene = obs_scene_fromsource(source); + const char *name = obs_source_getname(source); + + QListWidgetItem *sel = ui->scenes->currentItem(); + QList items = + ui->scenes->findItems(QT_UTF8(name), Qt::MatchExactly); + + if (items.contains(sel)) { + ui->scenes->setCurrentItem(sel); + UpdateSources(scene); } - } else { - scenes->SetSelection(wxNOT_FOUND); } } @@ -198,14 +201,18 @@ void OBSBasic::ChannelChanged(void *data, calldata_t params) /* Main class functions */ -bool OBSBasic::Init() +OBSBasic::OBSBasic(QWidget *parent) + : QMainWindow (parent), + ui (new Ui::OBSBasic) { + ui->setupUi(this); + if (!obs_startup()) - return false; + throw "Failed to initialize libobs"; if (!InitGraphics()) - return false; + throw "Failed to initialize graphics"; if (!InitAudio()) - return false; + throw "Failed to initialize audio"; signal_handler_connect(obs_signalhandler(), "source-add", OBSBasic::SourceAdded, this); @@ -216,8 +223,6 @@ bool OBSBasic::Init() /* TODO: this is a test */ obs_load_module("test-input"); - - return true; } OBSBasic::~OBSBasic() @@ -228,8 +233,10 @@ OBSBasic::~OBSBasic() bool OBSBasic::InitGraphics() { struct obs_video_info ovi; - wxGetApp().GetConfigFPS(ovi.fps_num, ovi.fps_den); - ovi.graphics_module = wxGetApp().GetRenderModule(); + + App()->GetConfigFPS(ovi.fps_num, ovi.fps_den); + + ovi.graphics_module = App()->GetRenderModule(); ovi.base_width = (uint32_t)config_get_uint(GetGlobalConfig(), "Video", "BaseCX"); ovi.base_height = (uint32_t)config_get_uint(GetGlobalConfig(), @@ -241,20 +248,19 @@ bool OBSBasic::InitGraphics() ovi.output_format = VIDEO_FORMAT_RGBA; ovi.adapter = 0; -#ifdef __WXGTK__ +//#ifdef __WXGTK__ /* Ugly hack for GTK, I'm hoping this can be avoided eventually... */ - gtk_widget_realize(previewPanel->GetHandle()); -#endif +// gtk_widget_realize(previewPanel->GetHandle()); +//#endif - ovi.window = WxToGSWindow(previewPanel); + QTToGSWindow(ui->preview, ovi.window); //required to make opengl display stuff on osx(?) ResizePreview(ovi.base_width, ovi.base_height); - SendSizeEvent(); - wxSize size = previewPanel->GetClientSize(); - ovi.window_width = size.x; - ovi.window_height = size.y; + QSize size = ui->preview->size(); + ovi.window_width = size.width(); + ovi.window_height = size.height(); return obs_reset_video(&ovi); } @@ -272,83 +278,69 @@ bool OBSBasic::InitAudio() return obs_reset_audio(&ai); } -void OBSBasic::OnClose(wxCloseEvent &event) -{ - wxGetApp().ExitMainLoop(); - event.Skip(); -} - -void OBSBasic::OnMinimize(wxIconizeEvent &event) -{ - event.Skip(); -} - void OBSBasic::ResizePreview(uint32_t cx, uint32_t cy) { + double targetAspect, baseAspect; + QSize targetSize, newSize; + /* resize preview panel to fix to the top section of the window */ - wxSize targetSize = GetPreviewContainer()->GetSize(); - double targetAspect = double(targetSize.x) / double(targetSize.y); - double baseAspect = double(cx) / double(cy); - wxSize newSize; + targetSize = ui->previewContainer->size(); + targetAspect = double(targetSize.width()) / double(targetSize.height()); + baseAspect = double(cx) / double(cy); if (targetAspect > baseAspect) - newSize = wxSize(targetSize.y * baseAspect, targetSize.y); + newSize = QSize(targetSize.height() * baseAspect, + targetSize.height()); else - newSize = wxSize(targetSize.x, targetSize.x / baseAspect); + newSize = QSize(targetSize.width(), + targetSize.width() / baseAspect); - GetPreviewPanel()->SetMinSize(newSize); + //ui->preview->resize(newSize); + + graphics_t graphics = obs_graphics(); + /*if (graphics) { + gs_entercontext(graphics); + gs_resize(newSize.width(), newSize.height()); + gs_leavecontext(); + }*/ } -void OBSBasic::OnSize(wxSizeEvent &event) +void OBSBasic::closeEvent(QCloseEvent *event) +{ +} + +void OBSBasic::changeEvent(QEvent *event) +{ +} + +void OBSBasic::resizeEvent(QResizeEvent *event) { struct obs_video_info ovi; - event.Skip(); - - if (!obs_get_video_info(&ovi)) - return; - - ResizePreview(ovi.base_width, ovi.base_height); + if (obs_get_video_info(&ovi)) + ResizePreview(ovi.base_width, ovi.base_height); } -void OBSBasic::OnResizePreview(wxSizeEvent &event) -{ - event.Skip(); - - wxSize newSize = previewPanel->GetClientSize(); - - graphics_t graphics = obs_graphics(); - if (graphics) { - gs_entercontext(graphics); - gs_resize(newSize.x, newSize.y); - gs_leavecontext(); - } -} - -void OBSBasic::fileNewClicked(wxCommandEvent &event) +void OBSBasic::on_action_New_triggered() { } -void OBSBasic::fileOpenClicked(wxCommandEvent &event) +void OBSBasic::on_action_Open_triggered() { } -void OBSBasic::fileSaveClicked(wxCommandEvent &event) +void OBSBasic::on_action_Save_triggered() { } -void OBSBasic::fileExitClicked(wxCommandEvent &event) +void OBSBasic::on_scenes_itemChanged(QListWidgetItem *item) { - wxGetApp().ExitMainLoop(); -} - -void OBSBasic::scenesClicked(wxCommandEvent &event) -{ - int sel = scenes->GetSelection(); - obs_source_t source = NULL; - if (sel != wxNOT_FOUND) { - obs_scene_t scene = (obs_scene_t)scenes->GetClientData(sel); + + if (item) { + obs_scene_t scene; + + scene = VariantPtr(item->data(Qt::UserRole)); source = obs_scene_getsource(scene); UpdateSources(scene); } @@ -357,27 +349,27 @@ void OBSBasic::scenesClicked(wxCommandEvent &event) obs_set_output_source(0, source); } -void OBSBasic::scenesRDown(wxMouseEvent &event) +void OBSBasic::on_scenes_customContextMenuRequested(const QPoint &pos) { } -void OBSBasic::sceneAddClicked(wxCommandEvent &event) +void OBSBasic::on_actionAddScene_triggered() { string name; - int ret = NameDialog::AskForName(this, - Str("MainWindow.AddSceneDlg.Title"), - Str("MainWindow.AddSceneDlg.Text"), + bool accepted = NameDialog::AskForName(this, + QTStr("MainWindow.AddSceneDlg.Title"), + QTStr("MainWindow.AddSceneDlg.Text"), name); - if (ret == wxID_OK) { + if (accepted) { obs_source_t source = obs_get_source_by_name(name.c_str()); if (source) { - wxMessageBox(WXStr("MainWindow.NameExists.Text"), - WXStr("MainWindow.NameExists.Title"), - wxOK|wxCENTRE, this); + QMessageBox::information(this, + QTStr("MainWindow.NameExists.Title"), + QTStr("MainWindow.NameExists.Text")); obs_source_release(source); - sceneAddClicked(event); + on_actionAddScene_triggered(); return; } @@ -390,38 +382,35 @@ void OBSBasic::sceneAddClicked(wxCommandEvent &event) } } -void OBSBasic::sceneRemoveClicked(wxCommandEvent &event) +void OBSBasic::on_actionRemoveScene_triggered() { - int sel = scenes->GetSelection(); - if (sel == wxNOT_FOUND) + QListWidgetItem *item = ui->scenes->currentItem(); + if (!item) return; - obs_scene_t scene = (obs_scene_t)scenes->GetClientData(sel); + QVariant userData = item->data(Qt::UserRole); + obs_scene_t scene = VariantPtr(userData); obs_source_t source = obs_scene_getsource(scene); obs_source_remove(source); } -void OBSBasic::scenePropertiesClicked(wxCommandEvent &event) +void OBSBasic::on_actionSceneProperties_triggered() { } -void OBSBasic::sceneUpClicked(wxCommandEvent &event) +void OBSBasic::on_actionSceneUp_triggered() { } -void OBSBasic::sceneDownClicked(wxCommandEvent &event) +void OBSBasic::on_actionSceneDown_triggered() { } -void OBSBasic::sourcesClicked(wxCommandEvent &event) +void OBSBasic::on_sources_itemChanged(QListWidgetItem *item) { } -void OBSBasic::sourcesToggled(wxCommandEvent &event) -{ -} - -void OBSBasic::sourcesRDown(wxMouseEvent &event) +void OBSBasic::on_sources_customContextMenuRequested(const QPoint &pos) { } @@ -431,22 +420,21 @@ void OBSBasic::AddSource(obs_scene_t scene, const char *id) bool success = false; while (!success) { - int ret = NameDialog::AskForName(this, + bool accepted = NameDialog::AskForName(this, Str("MainWindow.AddSourceDlg.Title"), Str("MainWindow.AddSourceDlg.Text"), name); - if (ret == wxID_CANCEL) + if (!accepted) break; - obs_source_t source = obs_get_source_by_name( - name.c_str()); + obs_source_t source = obs_get_source_by_name(name.c_str()); if (!source) { success = true; } else { - wxMessageBox(WXStr("MainWindow.NameExists.Text"), - WXStr("MainWindow.NameExists.Title"), - wxOK|wxCENTRE, this); + QMessageBox::information(this, + QTStr("MainWindow.NameExists.Title"), + QTStr("MainWindow.NameExists.Text")); obs_source_release(source); } } @@ -463,74 +451,69 @@ void OBSBasic::AddSource(obs_scene_t scene, const char *id) } } -void OBSBasic::AddSourcePopupMenu() +void OBSBasic::AddSourcePopupMenu(const QPoint &pos) { - int sceneSel = scenes->GetSelection(); - size_t idx = 0; + QListWidgetItem *sel = ui->scenes->currentItem(); const char *type; - vector types; + bool foundValues = false; + size_t idx = 0; - if (sceneSel == wxNOT_FOUND) + if (!sel) return; - obs_scene_t scene = (obs_scene_t)scenes->GetClientData(sceneSel); + obs_scene_t scene = VariantPtr(sel->data(Qt::UserRole)); obs_scene_addref(scene); - unique_ptr popup(new wxMenu()); - while (obs_enum_input_types(idx, &type)) { + QMenu popup; + while (obs_enum_input_types(idx++, &type)) { const char *name = obs_source_getdisplayname(SOURCE_INPUT, - type, wxGetApp().GetLocale()); + type, App()->GetLocale()); - types.push_back(type); - popup->Append((int)idx+1, wxString(name, wxConvUTF8)); + QAction *popupItem = new QAction(QT_UTF8(name), this); + popupItem->setData(QT_UTF8(type)); + popup.addAction(popupItem); - idx++; + foundValues = true; } - if (idx) { - int id = WXDoPopupMenu(this, popup.get()); - if (id != -1) - AddSource(scene, types[id-1]); + if (foundValues) { + QAction *ret = popup.exec(pos); + if (ret) + AddSource(scene, ret->data().toString().toUtf8()); } obs_scene_release(scene); } -void OBSBasic::sourceAddClicked(wxCommandEvent &event) +void OBSBasic::on_actionAddSource_triggered() { - AddSourcePopupMenu(); + AddSourcePopupMenu(QCursor::pos()); } -void OBSBasic::sourceRemoveClicked(wxCommandEvent &event) +void OBSBasic::on_actionRemoveSource_triggered() { - int sel = sources->GetSelection(); - if (sel == wxNOT_FOUND) + QListWidgetItem *sel = ui->sources->currentItem(); + if (!sel) return; - obs_sceneitem_t item = (obs_sceneitem_t)sources->GetClientData(sel); + QVariant userData = sel->data(Qt::UserRole); + obs_sceneitem_t item = VariantPtr(userData); obs_source_t source = obs_sceneitem_getsource(item); obs_sceneitem_destroy(item); } -void OBSBasic::sourcePropertiesClicked(wxCommandEvent &event) +void OBSBasic::on_actionSourceProperties_triggered() { } -void OBSBasic::sourceUpClicked(wxCommandEvent &event) +void OBSBasic::on_actionSourceUp_triggered() { } -void OBSBasic::sourceDownClicked(wxCommandEvent &event) +void OBSBasic::on_actionSourceDown_triggered() { } -void OBSBasic::settingsClicked(wxCommandEvent &event) +void OBSBasic::on_settingsButton_clicked() { - OBSBasicSettings test(this); - test.ShowModal(); -} - -void OBSBasic::exitClicked(wxCommandEvent &event) -{ - wxGetApp().ExitMainLoop(); } diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index 8afb07db4..0bc8e429c 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -17,13 +17,21 @@ #pragma once -#include "forms/OBSWindows.h" - #include - #include +#include +#include -class OBSBasic : public OBSBasicBase { +class QListWidgetItem; + +namespace Ui { + class OBSBasic; +}; + +class OBSBasic : public QMainWindow { + Q_OBJECT + +private: std::unordered_map sourceSceneRefs; obs_scene_t GetCurrentScene(); @@ -44,7 +52,7 @@ class OBSBasic : public OBSBasicBase { void ResizePreview(uint32_t cx, uint32_t cy); void AddSource(obs_scene_t scene, const char *id); - void AddSourcePopupMenu(); + void AddSourcePopupMenu(const QPoint &pos); bool InitGraphics(); bool InitAudio(); @@ -54,39 +62,34 @@ class OBSBasic : public OBSBasicBase { void LoadProject(); protected: - /* wxWidgets callbacks */ - virtual void OnClose(wxCloseEvent &event); - virtual void OnMinimize(wxIconizeEvent &event); - virtual void OnSize(wxSizeEvent &event); - virtual void OnResizePreview(wxSizeEvent &event); - virtual void fileNewClicked(wxCommandEvent &event); - virtual void fileOpenClicked(wxCommandEvent &event); - virtual void fileSaveClicked(wxCommandEvent &event); - virtual void fileExitClicked(wxCommandEvent &event); - virtual void scenesClicked(wxCommandEvent &event); - virtual void scenesRDown(wxMouseEvent &event); - virtual void sceneAddClicked(wxCommandEvent &event); - virtual void sceneRemoveClicked(wxCommandEvent &event); - virtual void scenePropertiesClicked(wxCommandEvent &event); - virtual void sceneUpClicked(wxCommandEvent &event); - virtual void sceneDownClicked(wxCommandEvent &event); - virtual void sourcesClicked(wxCommandEvent &event); - virtual void sourcesToggled(wxCommandEvent &event); - virtual void sourcesRDown(wxMouseEvent &event); - virtual void sourceAddClicked(wxCommandEvent &event); - virtual void sourceRemoveClicked(wxCommandEvent &event); - virtual void sourcePropertiesClicked(wxCommandEvent &event); - virtual void sourceUpClicked(wxCommandEvent &event); - virtual void sourceDownClicked(wxCommandEvent &event); - virtual void settingsClicked(wxCommandEvent &event); - virtual void exitClicked(wxCommandEvent &event); + virtual void closeEvent(QCloseEvent *event); + virtual void changeEvent(QEvent *event); + virtual void resizeEvent(QResizeEvent *event); + +private slots: + void on_action_New_triggered(); + void on_action_Open_triggered(); + void on_action_Save_triggered(); + void on_scenes_itemChanged(QListWidgetItem *item); + void on_scenes_customContextMenuRequested(const QPoint &pos); + void on_actionAddScene_triggered(); + void on_actionRemoveScene_triggered(); + void on_actionSceneProperties_triggered(); + void on_actionSceneUp_triggered(); + void on_actionSceneDown_triggered(); + void on_sources_itemChanged(QListWidgetItem *item); + void on_sources_customContextMenuRequested(const QPoint &pos); + void on_actionAddSource_triggered(); + void on_actionRemoveSource_triggered(); + void on_actionSourceProperties_triggered(); + void on_actionSourceUp_triggered(); + void on_actionSourceDown_triggered(); + void on_settingsButton_clicked(); public: - inline OBSBasic() : OBSBasicBase(NULL) {} - virtual ~OBSBasic(); + explicit OBSBasic(QWidget *parent = 0); + ~OBSBasic(); - bool Init(); - - inline wxPanel *GetPreviewPanel() {return previewPanel;} - inline wxSizer *GetPreviewContainer() {return previewContainer;} +private: + std::unique_ptr ui; }; diff --git a/obs/window-namedialog.cpp b/obs/window-namedialog.cpp index 8e7076a1f..bf29cbf30 100644 --- a/obs/window-namedialog.cpp +++ b/obs/window-namedialog.cpp @@ -16,31 +16,27 @@ ******************************************************************************/ #include "window-namedialog.hpp" +#include "ui_NameDialog.h" + using namespace std; -void NameDialog::OnClose(wxCloseEvent &event) +NameDialog::NameDialog(QWidget *parent) + : QDialog (parent), + ui (new Ui::NameDialog) { - EndModal(wxID_CANCEL); + ui->setupUi(this); } -void NameDialog::OKPressed(wxCommandEvent &event) +bool NameDialog::AskForName(QWidget *parent, const QString &title, + const QString &text, string &str) { - EndModal(wxID_OK); -} + NameDialog dialog(parent); + dialog.setWindowTitle(title); + dialog.ui->label->setText(text); -void NameDialog::CancelPressed(wxCommandEvent &event) -{ - EndModal(wxID_CANCEL); -} + bool accepted = (dialog.exec() == DialogCode::Accepted); + if (accepted) + str = dialog.ui->userText->text().toUtf8(); -int NameDialog::AskForName(wxWindow *parent, const char *title, - const char *text, string &str) -{ - NameDialog *dialog = new NameDialog(parent); - dialog->SetTitle(wxString(title, wxConvUTF8)); - dialog->questionText->SetLabel(wxString(text, wxConvUTF8)); - - int ret = dialog->ShowModal(); - str = dialog->nameEdit->GetValue().ToUTF8().data(); - return ret; + return accepted; } diff --git a/obs/window-namedialog.hpp b/obs/window-namedialog.hpp index 152e42131..04dfd8478 100644 --- a/obs/window-namedialog.hpp +++ b/obs/window-namedialog.hpp @@ -17,22 +17,23 @@ #pragma once -#include "forms/OBSWindows.h" - +#include #include +#include -class NameDialog : public NameDialogBase { -protected: - virtual void OnClose(wxCloseEvent &event) override; - virtual void OKPressed(wxCommandEvent &event) override; - virtual void CancelPressed(wxCommandEvent &event) override; +namespace Ui { + class NameDialog; +}; + +class NameDialog : public QDialog { + Q_OBJECT + +private: + std::unique_ptr ui; public: - inline NameDialog(wxWindow *parent) - : NameDialogBase(parent) - { - } + NameDialog(QWidget *parent); - static int AskForName(wxWindow *parent, const char *title, - const char *text, std::string &str); + static bool AskForName(QWidget *parent, const QString &title, + const QString &text, std::string &str); }; diff --git a/obs/wx-subclass.cpp b/obs/wx-subclass.cpp deleted file mode 100644 index 8d8d85f50..000000000 --- a/obs/wx-subclass.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/****************************************************************************** - Copyright (C) 2013 by Hugh Bailey - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -******************************************************************************/ - -#include "wx-subclass.hpp" - -#ifndef WX_PRECOMP - #include -#endif - -#ifdef _WIN32 -#include - -#define WIN32_MEAN_AND_LEAN -#include - -/* copied from the wx windows-specific stuff */ -wxFont wxCreateFontFromStockObject2(int index) -{ - wxFont font; - - HFONT hFont = (HFONT)::GetStockObject(index); - if (hFont) { - LOGFONT lf; - if (::GetObject(hFont, sizeof(LOGFONT), &lf) != 0) { - wxNativeFontInfo info; - info.lf = lf; -#ifdef __WXMICROWIN__ - font.Create(info, (WXHFONT)hFont); -#else - font.Create(info); -#endif - } else { - wxFAIL_MSG(wxT("failed to get LOGFONT")); - } - } else { - wxFAIL_MSG(wxT("stock font not found")); - } - - return font; -} -#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) - : wxFrame(parent, id, title, pos, size, style) -{ -#ifdef _WIN32 - this->SetFont(wxFont(wxCreateFontFromStockObject2(DEFAULT_GUI_FONT))); -#endif -} - -ListCtrlFixed::ListCtrlFixed(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) - : wxListCtrl(parent, id, pos, size, style, validator, name) -{ - m_bestSizeCache.Set(wxDefaultCoord, wxDefaultCoord); - SetInitialSize(size); -} - -wxSize ListCtrlFixed::DoGetBestClientSize() const -{ - if (!InReportView()) - return wxControl::DoGetBestClientSize(); - - int totalWidth; - wxClientDC dc(const_cast(this)); - - const int columns = GetColumnCount(); - if (HasFlag(wxLC_NO_HEADER) || !columns) { - totalWidth = 50*dc.GetCharWidth(); - } else { - totalWidth = 0; - for ( int col = 0; col < columns; col++ ) - totalWidth += GetColumnWidth(col); - } - - /* - * This is what we're fixing. Some.. very foolish person decided, - * "Oh, let's give this an 'arbitrary' height! How about, let's see, - * 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 constraints you originally have set with sizers. - * brilliant job, whoever you are. 10 * character height.. just.. - * unbeleivably wow. I am ASTOUNDED. - */ - return wxSize(totalWidth, 3*dc.GetCharHeight()); -} diff --git a/obs/wx-subclass.hpp b/obs/wx-subclass.hpp deleted file mode 100644 index 67a907285..000000000 --- a/obs/wx-subclass.hpp +++ /dev/null @@ -1,66 +0,0 @@ -/****************************************************************************** - Copyright (C) 2013 by Hugh Bailey - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -******************************************************************************/ - -#pragma once -#include -#include -#include - -#include "obs-app.hpp" - -/* - * Fixes windows fonts to be default dialog fonts (the fonts they recommend - * look like garbage) - */ - -#ifdef _ -#undef _ -#define _(str) wxString(Str(str), wxConvUTF8) -#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, - const wxPoint& pos, const wxSize& size, long style); -}; - -/* - * To fix report view default sizing because it defaults to 10 * fontheight in - * report view. Why? Who knows. - */ -class ListCtrlFixed : public wxListCtrl { -public: - ListCtrlFixed(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr); - - virtual wxSize DoGetBestClientSize() const; -}; diff --git a/obs/wx-wrappers.cpp b/obs/wx-wrappers.cpp deleted file mode 100644 index f2211cd74..000000000 --- a/obs/wx-wrappers.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/****************************************************************************** - Copyright (C) 2013 by Hugh Bailey - Copyright (C) 2014 by Zachary Lund - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -******************************************************************************/ - -#include -#include -#include -#include "wx-wrappers.hpp" -#include - -#ifdef __WXGTK__ -#include -#include -#endif - -#include -using namespace std; - -gs_window WxToGSWindow(const wxWindow *wxwin) -{ - gs_window window; - -#ifdef __APPLE__ - window.view = (id)wxwin->GetHandle(); -#elif _WIN32 - window.hwnd = wxwin->GetHandle(); -#else - GdkWindow* gdkwin = gtk_widget_get_window(wxwin->GetHandle()); - window.id = GDK_DRAWABLE_XID(gdkwin); - window.display = GDK_DRAWABLE_XDISPLAY(gdkwin); -#endif - - return window; -} - -void OBSErrorBox(wxWindow *parent, const char *message, ...) -{ - va_list args; - char output[4096]; - - va_start(args, message); - vsnprintf(output, 4095, message, args); - va_end(args); - - wxMessageBox(message, "Error", wxOK|wxCENTRE, parent); - blog(LOG_ERROR, "%s", output); -} - -class MenuWrapper : public wxEvtHandler { -public: - int retId; - - inline MenuWrapper() : retId(-1) {} - - void GetItem(wxCommandEvent &event) - { - retId = event.GetId(); - } -}; - -int WXDoPopupMenu(wxWindow *parent, wxMenu *menu) -{ - unique_ptr wrapper(new MenuWrapper); - - menu->Connect(wxEVT_MENU, - wxCommandEventHandler(MenuWrapper::GetItem), - NULL, wrapper.get()); - - bool success = parent->PopupMenu(menu); - - menu->Disconnect(wxEVT_MENU, - wxCommandEventHandler(MenuWrapper::GetItem), - NULL, wrapper.get()); - - return (success) ? wrapper->retId : -1; -} diff --git a/obs/wx-wrappers.hpp b/obs/wx-wrappers.hpp deleted file mode 100644 index c952d1d96..000000000 --- a/obs/wx-wrappers.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/****************************************************************************** - Copyright (C) 2013 by Hugh Bailey - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -******************************************************************************/ - -#pragma once - -#include -#include -#include - -#include - -#define WX_UTF8(str) wxString(str, wxConvUTF8) - -struct gs_window; - -gs_window WxToGSWindow(const wxWindow *window); -void OBSErrorBox(wxWindow *parent, const char *message, ...); - -/* returns actual ID of menu item clicked rather than be forced to use - * all the BS handler crap */ -int WXDoPopupMenu(wxWindow *parent, wxMenu *menu); - -/* - * RAII wx connection wrapper - * - * Automatically disconnects events on destruction rather than having to - * manually call Disconnect for every Connect. - */ - -class WXConnector { - wxEvtHandler *obj; - wxEventType eventType; - wxObjectEventFunction func; - wxObject *userData; - wxEvtHandler *eventSink; - - WXConnector(WXConnector const&) = delete; - - WXConnector &operator=(WXConnector const&) = delete; - -public: - inline WXConnector() - : obj (NULL), - eventType (0), - func (NULL), - userData (NULL), - eventSink (NULL) - { - } - - inline WXConnector(wxEvtHandler *obj, wxEventType eventType, - wxObjectEventFunction func, wxObject *userData, - wxEvtHandler *eventSink) - : obj (obj), - eventType (eventType), - func (func), - userData (userData), - eventSink (eventSink) - { - obj->Connect(eventType, func, userData, eventSink); - } - - inline WXConnector(WXConnector &&c) - : obj (c.obj), - eventType (c.eventType), - func (c.func), - userData (c.userData), - eventSink (c.eventSink) - { - c.obj = NULL; - } - - inline ~WXConnector() - { - Disconnect(); - } - - inline void Connect(wxEvtHandler *obj, wxEventType eventType, - wxObjectEventFunction func, wxObject *userData, - wxEvtHandler *eventSink) - { - Disconnect(); - - this->obj = obj; - this->eventType = eventType; - this->func = func; - this->userData = userData; - this->eventSink = eventSink; - - obj->Connect(eventType, func, userData, eventSink); - } - - inline void Disconnect() - { - if (obj) { - obj->Disconnect(eventType, func, userData, eventSink); - obj = NULL; - } - } -}; - -class ConnectorList { - std::vector connectors; - -public: - inline void Add(wxEvtHandler *obj, wxEventType type, - wxObjectEventFunction func, wxObject *userData, - wxEvtHandler *eventSink) - { - connectors.emplace_back(obj, type, func, userData, eventSink); - } -}; diff --git a/vs/2013/OBS.sln b/vs/2013/OBS.sln index a936c0a8b..9eaefac8c 100644 --- a/vs/2013/OBS.sln +++ b/vs/2013/OBS.sln @@ -33,11 +33,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libobs-opengl", "libobs-ope EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_static", "..\..\libobs-opengl\glew\build\vc10\glew_static.vcxproj", "{664E6F0D-6784-4760-9565-D54F8EB1EDF4}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OBS", "OBS\OBS.vcxproj", "{C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}" - ProjectSection(ProjectDependencies) = postProject - {6F1AC2AE-6424-401A-AF9F-A771E6BEE026} = {6F1AC2AE-6424-401A-AF9F-A771E6BEE026} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jansson", "..\..\deps\jansson\win32\vs2010\jansson.vcxproj", "{76226D20-1972-4789-A595-EDACC7A76DC3}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obs-ffmpeg", "obs-ffmpeg\obs-ffmpeg.vcxproj", "{36970254-B1E5-4BE6-A561-301B6E7CDCE3}" @@ -45,6 +40,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obs-ffmpeg", "obs-ffmpeg\ob {6F1AC2AE-6424-401A-AF9F-A771E6BEE026} = {6F1AC2AE-6424-401A-AF9F-A771E6BEE026} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obs-studio", "obs-studio\obs-studio.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -109,22 +106,13 @@ Global {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.Build.0 = Release|Win32 {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.ActiveCfg = Release|x64 {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.Build.0 = Release|x64 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Debug|Win32.ActiveCfg = Debug|Win32 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Debug|Win32.Build.0 = Debug|Win32 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Debug|x64.ActiveCfg = Debug|x64 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Debug|x64.Build.0 = Debug|x64 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Release|Win32.ActiveCfg = Release|Win32 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Release|Win32.Build.0 = Release|Win32 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Release|x64.ActiveCfg = Release|x64 - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}.Release|x64.Build.0 = Release|x64 {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|Win32.ActiveCfg = Debug|Win32 {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|Win32.Build.0 = Debug|Win32 - {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|x64.ActiveCfg = Debug|x64 - {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|x64.Build.0 = Debug|x64 + {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|x64.ActiveCfg = Debug|Win32 + {76226D20-1972-4789-A595-EDACC7A76DC3}.Debug|x64.Build.0 = Debug|Win32 {76226D20-1972-4789-A595-EDACC7A76DC3}.Release|Win32.ActiveCfg = Release|Win32 {76226D20-1972-4789-A595-EDACC7A76DC3}.Release|Win32.Build.0 = Release|Win32 - {76226D20-1972-4789-A595-EDACC7A76DC3}.Release|x64.ActiveCfg = Release|x64 - {76226D20-1972-4789-A595-EDACC7A76DC3}.Release|x64.Build.0 = Release|x64 + {76226D20-1972-4789-A595-EDACC7A76DC3}.Release|x64.ActiveCfg = Release|Win32 {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Debug|Win32.ActiveCfg = Debug|Win32 {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Debug|Win32.Build.0 = Debug|Win32 {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Debug|x64.ActiveCfg = Debug|x64 @@ -133,6 +121,14 @@ Global {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Release|Win32.Build.0 = Release|Win32 {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Release|x64.ActiveCfg = Release|x64 {36970254-B1E5-4BE6-A561-301B6E7CDCE3}.Release|x64.Build.0 = Release|x64 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|Win32.Build.0 = Debug|Win32 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|Win32.ActiveCfg = Release|Win32 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|Win32.Build.0 = Release|Win32 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 + {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/vs/2013/OBS/OBS.vcxproj b/vs/2013/OBS/OBS.vcxproj deleted file mode 100644 index 80c0219e0..000000000 --- a/vs/2013/OBS/OBS.vcxproj +++ /dev/null @@ -1,201 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {C6CD0240-5A92-43F6-B0EE-FF3ACE10742F} - Win32Proj - OBS - - - - Application - true - Unicode - v120 - - - Application - true - Unicode - v120 - - - Application - false - true - Unicode - v120 - - - Application - false - true - Unicode - v120 - - - - - - - - - - - - - - - - - - - true - $(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath) - $(wxWidgetsPath)\lib\vc_lib;$(LibraryPath) - - - true - $(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath) - $(wxWidgetsPath)\lib\vc_x64_lib;$(LibraryPath) - - - false - $(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath) - $(wxWidgetsPath)\lib\vc_lib;$(LibraryPath) - - - false - $(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath) - $(wxWidgetsPath)\lib\vc_x64_lib;$(LibraryPath) - - - - - - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - ../../../libobs - - - Windows - true - libobs.lib;%(AdditionalDependencies) - $(OutDir);%(AdditionalLibraryDirectories) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)" - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - ../../../libobs - - - Windows - true - libobs.lib;%(AdditionalDependencies) - $(OutDir);%(AdditionalLibraryDirectories) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - ../../../libobs - - - Windows - true - true - true - libobs.lib;%(AdditionalDependencies) - $(OutDir);%(AdditionalLibraryDirectories) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)" - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - ../../../libobs - - - Windows - true - true - true - libobs.lib;%(AdditionalDependencies) - $(OutDir);%(AdditionalLibraryDirectories) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vs/2013/OBS/OBS.vcxproj.filters b/vs/2013/OBS/OBS.vcxproj.filters deleted file mode 100644 index 970e90843..000000000 --- a/vs/2013/OBS/OBS.vcxproj.filters +++ /dev/null @@ -1,87 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {f75b760c-c01b-4e94-a989-ec8158e234c5} - - - - - Source Files - - - Source Files - - - wx forms - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - wx forms - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/vs/2013/obs-studio/obs-studio.vcxproj b/vs/2013/obs-studio/obs-studio.vcxproj new file mode 100644 index 000000000..7cff35445 --- /dev/null +++ b/vs/2013/obs-studio/obs-studio.vcxproj @@ -0,0 +1,442 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing qt-display.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing qt-display.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing qt-display.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing qt-display.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-namedialog.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-namedialog.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-namedialog.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-namedialog.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + + + + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-basic-main.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-basic-main.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-basic-main.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing window-basic-main.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing obs-app.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing obs-app.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing obs-app.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing obs-app.hpp... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\..\..\..\libobs" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I.\..\..\..\obs" + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + + + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + + + + + %(FullPath);..\..\..\obs\forms\images\add.ico;..\..\..\obs\forms\images\delete.ico;..\..\..\obs\forms\images\document-properties-2.png;..\..\..\obs\forms\images\down.ico;..\..\..\obs\forms\images\editscene.ico;..\..\..\obs\forms\images\list_add.png;..\..\..\obs\forms\images\list_remove.png;..\..\..\obs\forms\images\live.ico;..\..\..\obs\forms\images\properties.ico;..\..\..\obs\forms\images\sound.ico;..\..\..\obs\forms\images\sound_muted.ico;..\..\..\obs\forms\images\up.ico;%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);..\..\..\obs\forms\images\add.ico;..\..\..\obs\forms\images\delete.ico;..\..\..\obs\forms\images\document-properties-2.png;..\..\..\obs\forms\images\down.ico;..\..\..\obs\forms\images\editscene.ico;..\..\..\obs\forms\images\list_add.png;..\..\..\obs\forms\images\list_remove.png;..\..\..\obs\forms\images\live.ico;..\..\..\obs\forms\images\properties.ico;..\..\..\obs\forms\images\sound.ico;..\..\..\obs\forms\images\sound_muted.ico;..\..\..\obs\forms\images\up.ico;%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);..\..\..\obs\forms\images\add.ico;..\..\..\obs\forms\images\delete.ico;..\..\..\obs\forms\images\document-properties-2.png;..\..\..\obs\forms\images\down.ico;..\..\..\obs\forms\images\editscene.ico;..\..\..\obs\forms\images\list_add.png;..\..\..\obs\forms\images\list_remove.png;..\..\..\obs\forms\images\live.ico;..\..\..\obs\forms\images\properties.ico;..\..\..\obs\forms\images\sound.ico;..\..\..\obs\forms\images\sound_muted.ico;..\..\..\obs\forms\images\up.ico;%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);..\..\..\obs\forms\images\add.ico;..\..\..\obs\forms\images\delete.ico;..\..\..\obs\forms\images\document-properties-2.png;..\..\..\obs\forms\images\down.ico;..\..\..\obs\forms\images\editscene.ico;..\..\..\obs\forms\images\list_add.png;..\..\..\obs\forms\images\list_remove.png;..\..\..\obs\forms\images\live.ico;..\..\..\obs\forms\images\properties.ico;..\..\..\obs\forms\images\sound.ico;..\..\..\obs\forms\images\sound_muted.ico;..\..\..\obs\forms\images\up.ico;%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + + + + + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + + + + {B12702AD-ABFB-343A-A199-8E24837244A3} + Qt4VSv1.0 + obs-studio + + + + Application + v120 + + + Application + v120 + + + Application + v120 + + + Application + v120 + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.21005.1 + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) + ../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories) + Disabled + ProgramDatabase + MultiThreadedDebugDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories) + true + libobs.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies) + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) + ../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories) + Disabled + ProgramDatabase + MultiThreadedDebugDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories) + true + libobs.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies) + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) + ../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories) + + MultiThreadedDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories) + false + libobs.lib;qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies) + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) + ../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories) + + MultiThreadedDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories) + false + libobs.lib;qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies) + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" + + + + + + + + + + + \ No newline at end of file diff --git a/vs/2013/obs-studio/obs-studio.vcxproj.filters b/vs/2013/obs-studio/obs-studio.vcxproj.filters new file mode 100644 index 000000000..4498dee1d --- /dev/null +++ b/vs/2013/obs-studio/obs-studio.vcxproj.filters @@ -0,0 +1,162 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;cxx;c;def + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + moc;h;cpp + False + + + {149188c7-e594-4827-9428-37ad0e0dc3eb} + cpp;moc + False + + + {46c1acc8-e7cc-426f-b54d-60ed04803613} + cpp;moc + False + + + + + Header Files + + + Header Files + + + Form Files + + + Resource Files + + + Form Files + + + Form Files + + + Header Files + + + Header Files + + + + + Header Files + + + Header Files + + + Generated Files + + + Generated Files + + + Generated Files + + + + + Source Files + + + Generated Files\Debug + + + Generated Files\Release + + + Source Files + + + Source Files + + + Generated Files\Debug + + + Generated Files\Release + + + Source Files + + + Generated Files + + + Generated Files\Debug + + + Generated Files\Release + + + Source Files + + + Generated Files\Debug + + + Generated Files\Release + + + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/vs/2013/pthreads/pthreads.vcxproj b/vs/2013/pthreads/pthreads.vcxproj index fed2b7cf9..becb05069 100644 --- a/vs/2013/pthreads/pthreads.vcxproj +++ b/vs/2013/pthreads/pthreads.vcxproj @@ -25,26 +25,26 @@ - StaticLibrary + DynamicLibrary true MultiByte v120 - StaticLibrary + DynamicLibrary true MultiByte v120 - StaticLibrary + DynamicLibrary false true MultiByte v120 - StaticLibrary + DynamicLibrary false true MultiByte @@ -73,7 +73,7 @@ Level3 Disabled - __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) false MultiThreadedDebug @@ -81,6 +81,9 @@ Windows true + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)" + @@ -88,7 +91,7 @@ Level3 Disabled - __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions) false MultiThreadedDebug @@ -96,6 +99,9 @@ Windows true + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" + @@ -105,7 +111,7 @@ MaxSpeed true true - __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions) false MultiThreaded @@ -115,6 +121,9 @@ true true + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)" + @@ -124,7 +133,7 @@ MaxSpeed true true - __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions) false MultiThreaded @@ -134,6 +143,9 @@ true true + + copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)" +