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)
master
jp9000 2014-01-23 11:53:55 -07:00
parent a3867aecde
commit afeed34b7a
39 changed files with 2170 additions and 10967 deletions

8
.gitignore vendored
View File

@ -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

105
obs/forms/NameDialog.ui Normal file
View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>NameDialog</class>
<widget class="QDialog" name="NameDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>555</width>
<height>104</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string notr="true">Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignBottom">
<widget class="QWidget" name="widget" native="true">
<layout class="QFormLayout" name="formLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="userText">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>NameDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>257</x>
<y>94</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>NameDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>325</x>
<y>94</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

533
obs/forms/OBSBasic.ui Normal file
View File

@ -0,0 +1,533 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Jim</author>
<class>OBSBasic</class>
<widget class="QMainWindow" name="OBSBasic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>927</width>
<height>703</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="previewContainer" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="OBSQTDisplay" name="preview" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>620</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>154</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Scenes</string>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="scenes">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolBar" name="toolBar">
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="floatable">
<bool>false</bool>
</property>
<addaction name="actionAddScene"/>
<addaction name="actionRemoveScene"/>
<addaction name="actionSceneProperties"/>
<addaction name="separator"/>
<addaction name="actionSceneMoveUp"/>
<addaction name="actionSceneMoveDown"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Sources</string>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="sources">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolBar" name="toolBar_2">
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="floatable">
<bool>false</bool>
</property>
<addaction name="actionAddSource"/>
<addaction name="actionRemoveSource"/>
<addaction name="actionSourceProperties"/>
<addaction name="separator"/>
<addaction name="actionSourceMoveUp"/>
<addaction name="actionSourceMoveDown"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Volume</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="volumeWidgets">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>147</width>
<height>131</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
<item alignment="Qt::AlignTop">
<widget class="QWidget" name="widget_2" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="streamButton">
<property name="text">
<string>Start Streaming</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="recordButton">
<property name="text">
<string>Start Recording</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="settingsButton">
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="exitButton">
<property name="text">
<string>Exit</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>927</width>
<height>24</height>
</rect>
</property>
<widget class="QMenu" name="menu_File">
<property name="title">
<string>&amp;File</string>
</property>
<addaction name="action_New"/>
<addaction name="action_Open"/>
<addaction name="action_Save"/>
<addaction name="separator"/>
<addaction name="actionE_xit"/>
</widget>
<addaction name="menu_File"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionAddScene">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/add.ico</normaloff>:/res/images/add.ico</iconset>
</property>
<property name="text">
<string>AddScene</string>
</property>
</action>
<action name="actionAddSource">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/add.ico</normaloff>:/res/images/add.ico</iconset>
</property>
<property name="text">
<string>AddSource</string>
</property>
</action>
<action name="actionRemoveScene">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/list_remove.png</normaloff>:/res/images/list_remove.png</iconset>
</property>
<property name="text">
<string>RemoveScene</string>
</property>
</action>
<action name="actionRemoveSource">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/list_remove.png</normaloff>:/res/images/list_remove.png</iconset>
</property>
<property name="text">
<string>RemoveSource</string>
</property>
</action>
<action name="actionSceneProperties">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/properties.ico</normaloff>:/res/images/properties.ico</iconset>
</property>
<property name="text">
<string>SceneProperties</string>
</property>
</action>
<action name="actionSourceProperties">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/properties.ico</normaloff>:/res/images/properties.ico</iconset>
</property>
<property name="text">
<string>SourceProperties</string>
</property>
</action>
<action name="actionSceneMoveUp">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/up.ico</normaloff>:/res/images/up.ico</iconset>
</property>
<property name="text">
<string>SceneMoveUp</string>
</property>
</action>
<action name="actionSourceMoveUp">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/up.ico</normaloff>:/res/images/up.ico</iconset>
</property>
<property name="text">
<string>SourceMoveUp</string>
</property>
</action>
<action name="actionSceneMoveDown">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/down.ico</normaloff>:/res/images/down.ico</iconset>
</property>
<property name="text">
<string>SceneMoveDown</string>
</property>
</action>
<action name="actionSourceMoveDown">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/down.ico</normaloff>:/res/images/down.ico</iconset>
</property>
<property name="text">
<string>SourceMoveDown</string>
</property>
</action>
<action name="action_New">
<property name="text">
<string>&amp;New</string>
</property>
</action>
<action name="action_Open">
<property name="text">
<string>&amp;Open</string>
</property>
</action>
<action name="action_Save">
<property name="text">
<string>&amp;Save</string>
</property>
</action>
<action name="actionE_xit">
<property name="text">
<string>E&amp;xit</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
<class>OBSQTDisplay</class>
<extends>QWidget</extends>
<header>qt-display.hpp</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="obs.qrc"/>
</resources>
<connections>
<connection>
<sender>actionE_xit</sender>
<signal>triggered()</signal>
<receiver>OBSBasic</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>463</x>
<y>351</y>
</hint>
</hints>
</connection>
<connection>
<sender>exitButton</sender>
<signal>clicked()</signal>
<receiver>OBSBasic</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>697</x>
<y>615</y>
</hint>
<hint type="destinationlabel">
<x>463</x>
<y>351</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,451 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OBSBasicSettings</class>
<widget class="QDialog" name="OBSBasicSettings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>752</width>
<height>602</height>
</rect>
</property>
<property name="windowTitle">
<string>Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item alignment="Qt::AlignLeft">
<widget class="QListWidget" name="listWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>135</width>
<height>16777215</height>
</size>
</property>
<property name="iconSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<item>
<property name="text">
<string>General</string>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/settings/images/settings/system-settings-3.png</normaloff>:/settings/images/settings/system-settings-3.png</iconset>
</property>
</item>
<item>
<property name="text">
<string>Outputs</string>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/settings/images/settings/network-bluetooth.png</normaloff>:/settings/images/settings/network-bluetooth.png</iconset>
</property>
</item>
<item>
<property name="text">
<string>Audio</string>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/settings/images/settings/decibel_audio_player.png</normaloff>:/settings/images/settings/decibel_audio_player.png</iconset>
</property>
</item>
<item>
<property name="text">
<string>Video</string>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/settings/images/settings/video-display-3.png</normaloff>:/settings/images/settings/video-display-3.png</iconset>
</property>
</item>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="settingsPages">
<property name="currentIndex">
<number>3</number>
</property>
<widget class="QWidget" name="generalPage">
<layout class="QFormLayout" name="formLayout_2">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="language"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Language:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="outputsPage"/>
<widget class="QWidget" name="audioPage">
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="1">
<widget class="QComboBox" name="desktopAudioDevice1">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>170</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Desktop Audio Device 1:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Desktop Audio Device 2:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="desktopAudioDevice2">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Aux Audio Device 1:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="auxAudioDevice1">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Aux Audio Device 2:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="auxAudioDevice2">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Aux Audio Device 3:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="auxAudioDevice3">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="videoPage">
<layout class="QFormLayout" name="formLayout_3">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Renderer:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_2">
<property name="currentText">
<string notr="true"/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="minimumSize">
<size>
<width>170</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Video Adapter:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox">
<property name="currentText">
<string notr="true"/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Base Resolution:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox_3">
<property name="editable">
<bool>true</bool>
</property>
<property name="currentText">
<string notr="true"/>
</property>
<property name="duplicatesEnabled">
<bool>false</bool>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Output Resolution:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBox_4">
<property name="editable">
<bool>true</bool>
</property>
<property name="currentText">
<string notr="true"/>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="comboBox_5"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Downscale Filter:</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QComboBox" name="comboBox_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentText">
<string>Common FPS</string>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>Common FPS</string>
</property>
</item>
<item>
<property name="text">
<string>Fractional FPS (Advanced)</string>
</property>
</item>
</widget>
</item>
<item row="5" column="1">
<widget class="QStackedWidget" name="stackedWidget">
<widget class="QWidget" name="page">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item alignment="Qt::AlignTop">
<widget class="QComboBox" name="comboBox_7"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QFormLayout" name="formLayout_4">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox_2"/>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Numerator:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Denomniator:</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>listWidget</tabstop>
<tabstop>buttonBox</tabstop>
<tabstop>language</tabstop>
</tabstops>
<resources>
<include location="obs.qrc"/>
</resources>
<connections>
<connection>
<sender>listWidget</sender>
<signal>currentRowChanged(int)</signal>
<receiver>settingsPages</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>75</x>
<y>35</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>50</y>
</hint>
</hints>
</connection>
<connection>
<sender>comboBox_6</sender>
<signal>currentIndexChanged(int)</signal>
<receiver>stackedWidget</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>286</x>
<y>155</y>
</hint>
<hint type="destinationlabel">
<x>340</x>
<y>154</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -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 );
}

File diff suppressed because it is too large Load Diff

View File

@ -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 <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DialogSubclass;
class WindowSubclass;
#include "../wx-subclass.hpp"
#include <wx/string.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/menu.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/panel.h>
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/listbox.h>
#include <wx/toolbar.h>
#include <wx/checklst.h>
#include <wx/scrolwin.h>
#include <wx/button.h>
#include <wx/statusbr.h>
#include <wx/frame.h>
#include <wx/combobox.h>
#include <wx/checkbox.h>
#include <wx/statline.h>
#include <wx/spinctrl.h>
#include <wx/choicebk.h>
#include <wx/listbook.h>
#include <wx/listctrl.h>
#include <wx/dialog.h>
#include <wx/textctrl.h>
///////////////////////////////////////////////////////////////////////////
#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__

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

23
obs/forms/obs.qrc Normal file
View File

@ -0,0 +1,23 @@
<RCC>
<qresource prefix="res">
<file>images/add.ico</file>
<file>images/delete.ico</file>
<file>images/document-properties-2.png</file>
<file>images/down.ico</file>
<file>images/editscene.ico</file>
<file>images/list_add.png</file>
<file>images/list_remove.png</file>
<file>images/live.ico</file>
<file>images/properties.ico</file>
<file>images/sound.ico</file>
<file>images/sound_muted.ico</file>
<file>images/up.ico</file>
</qresource>
<qresource prefix="settings">
<file>images/settings/video-display-3.png</file>
<file>images/settings/decibel_audio_player.png</file>
<file>images/settings/applications-system-2.png</file>
<file>images/settings/system-settings-3.png</file>
<file>images/settings/network-bluetooth.png</file>
</qresource>
</RCC>

View File

@ -1,136 +0,0 @@
#ifndef DELETE_ICO_H
#define DELETE_ICO_H
#include <wx/mstream.h>
#include <wx/image.h>
#include <wx/bitmap.h>
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

View File

@ -1,136 +0,0 @@
#ifndef DOWN_ICO_H
#define DOWN_ICO_H
#include <wx/mstream.h>
#include <wx/image.h>
#include <wx/bitmap.h>
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

View File

@ -1,139 +0,0 @@
#ifndef LIST_ADD_PNG_H
#define LIST_ADD_PNG_H
#include <wx/mstream.h>
#include <wx/image.h>
#include <wx/bitmap.h>
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

View File

@ -1,136 +0,0 @@
#ifndef PROPERTIES_ICO_H
#define PROPERTIES_ICO_H
#include <wx/mstream.h>
#include <wx/image.h>
#include <wx/bitmap.h>
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

View File

@ -1,136 +0,0 @@
#ifndef UP_ICO_H
#define UP_ICO_H
#include <wx/mstream.h>
#include <wx/image.h>
#include <wx/bitmap.h>
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

View File

@ -16,27 +16,20 @@
******************************************************************************/
#include <sstream>
#include <util/bmem.h>
#include <util/dstr.h>
#include <util/platform.h>
#include <obs.hpp>
#include "qt-wrappers.hpp"
#include "obs-app.hpp"
#include "window-basic-main.hpp"
#include "wx-wrappers.hpp"
#include "platform.hpp"
#include <windows.h>
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<OBSBasic>(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;
}

View File

@ -17,23 +17,20 @@
#pragma once
#include <wx/app.h>
#include <wx/window.h>
#include <QApplication>
#include <QMainWindow>
#include <util/util.hpp>
#include <string>
#include <memory>
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<QMainWindow> 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<OBSApp*>(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))

20
obs/qt-display.hpp Normal file
View File

@ -0,0 +1,20 @@
#pragma once
#include <QWidget>
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;}
};

37
obs/qt-ptr-variant.hpp Normal file
View File

@ -0,0 +1,37 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#include <QVariant>
/* 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<typename T> static inline T VariantPtr(QVariant &v)
{
return (T)v.value<PtrVariantDummy*>();
}
static inline QVariant PtrVariant(void* ptr)
{
return QVariant::fromValue<PtrVariantDummy*>((PtrVariantDummy*)ptr);
}

51
obs/qt-wrappers.cpp Normal file
View File

@ -0,0 +1,51 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#include "qt-wrappers.hpp"
#include <graphics/graphics.h>
#include <QWidget>
#include <QMessageBox>
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
}

27
obs/qt-wrappers.hpp Normal file
View File

@ -0,0 +1,27 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#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);

View File

@ -17,39 +17,37 @@
******************************************************************************/
#include <obs.hpp>
#include <wx/msgdlg.h>
#include <QMessageBox>
#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 <gtk/gtk.h>
#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<obs_scene_t>(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<QListWidgetItem*> 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<obs_sceneitem_t>(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<QListWidgetItem*> 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<obs_scene_t>(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<obs_scene_t>(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<const char *> 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<obs_scene_t>(sel->data(Qt::UserRole));
obs_scene_addref(scene);
unique_ptr<wxMenu> 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<obs_sceneitem_t>(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();
}

View File

@ -17,13 +17,21 @@
#pragma once
#include "forms/OBSWindows.h"
#include <obs.hpp>
#include <unordered_map>
#include <memory>
#include <QMainWindow>
class OBSBasic : public OBSBasicBase {
class QListWidgetItem;
namespace Ui {
class OBSBasic;
};
class OBSBasic : public QMainWindow {
Q_OBJECT
private:
std::unordered_map<obs_source_t, int> 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::OBSBasic> ui;
};

View File

@ -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;
}

View File

@ -17,22 +17,23 @@
#pragma once
#include "forms/OBSWindows.h"
#include <QDialog>
#include <string>
#include <memory>
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::NameDialog> 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);
};

View File

@ -1,118 +0,0 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#include "wx-subclass.hpp"
#ifndef WX_PRECOMP
#include <wx/dcclient.h>
#endif
#ifdef _WIN32
#include <wx/fontutil.h>
#define WIN32_MEAN_AND_LEAN
#include <windows.h>
/* 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<ListCtrlFixed*>(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());
}

View File

@ -1,66 +0,0 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#pragma once
#include <wx/dialog.h>
#include <wx/frame.h>
#include <wx/listctrl.h>
#include "obs-app.hpp"
/*
* Fixes windows fonts to be default dialog fonts (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;
};

View File

@ -1,90 +0,0 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
Copyright (C) 2014 by Zachary Lund <admin@computerquip.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#include <wx/window.h>
#include <wx/msgdlg.h>
#include <obs.h>
#include "wx-wrappers.hpp"
#include <wx/utils.h>
#ifdef __WXGTK__
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#endif
#include <memory>
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<MenuWrapper> 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;
}

View File

@ -1,126 +0,0 @@
/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#pragma once
#include <wx/window.h>
#include <wx/event.h>
#include <wx/menu.h>
#include <vector>
#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<WXConnector> connectors;
public:
inline void Add(wxEvtHandler *obj, wxEventType type,
wxObjectEventFunction func, wxObject *userData,
wxEvtHandler *eventSink)
{
connectors.emplace_back(obj, type, func, userData, eventSink);
}
};

View File

@ -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

View File

@ -1,201 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C6CD0240-5A92-43F6-B0EE-FF3ACE10742F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>OBS</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath)</IncludePath>
<LibraryPath>$(wxWidgetsPath)\lib\vc_lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath)</IncludePath>
<LibraryPath>$(wxWidgetsPath)\lib\vc_x64_lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath)</IncludePath>
<LibraryPath>$(wxWidgetsPath)\lib\vc_lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(wxWidgetsPath)\include;$(wxWidgetsPath)\include\msvc;$(IncludePath)</IncludePath>
<LibraryPath>$(wxWidgetsPath)\lib\vc_x64_lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libobs.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libobs.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\obs\forms\OBSWindows.cpp" />
<ClCompile Include="..\..\..\obs\obs-app.cpp" />
<ClCompile Include="..\..\..\obs\platform-windows.cpp" />
<ClCompile Include="..\..\..\obs\settings-basic-general.cpp" />
<ClCompile Include="..\..\..\obs\settings-basic-video.cpp" />
<ClCompile Include="..\..\..\obs\settings-basic.cpp" />
<ClCompile Include="..\..\..\obs\window-basic-main.cpp" />
<ClCompile Include="..\..\..\obs\window-basic-settings.cpp" />
<ClCompile Include="..\..\..\obs\window-namedialog.cpp" />
<ClCompile Include="..\..\..\obs\wx-subclass.cpp" />
<ClCompile Include="..\..\..\obs\wx-wrappers.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\obs\forms\OBSWindows.h" />
<ClInclude Include="..\..\..\obs\obs-app.hpp" />
<ClInclude Include="..\..\..\obs\platform.hpp" />
<ClInclude Include="..\..\..\obs\settings-basic.hpp" />
<ClInclude Include="..\..\..\obs\settings.hpp" />
<ClInclude Include="..\..\..\obs\window-basic-main.hpp" />
<ClInclude Include="..\..\..\obs\window-basic-settings.hpp" />
<ClInclude Include="..\..\..\obs\window-namedialog.hpp" />
<ClInclude Include="..\..\..\obs\wx-subclass.hpp" />
<ClInclude Include="..\..\..\obs\wx-wrappers.hpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="wx forms">
<UniqueIdentifier>{f75b760c-c01b-4e94-a989-ec8158e234c5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\obs\obs-app.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\wx-wrappers.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\forms\OBSWindows.cpp">
<Filter>wx forms</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\wx-subclass.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\platform-windows.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\settings-basic-general.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\settings-basic-video.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\settings-basic.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\window-basic-main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\window-basic-settings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\window-namedialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\obs\obs-app.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\wx-wrappers.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\forms\OBSWindows.h">
<Filter>wx forms</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\wx-subclass.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\platform.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\settings-basic.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\settings.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\window-basic-main.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\window-basic-settings.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\window-namedialog.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -0,0 +1,442 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\obs\platform.hpp" />
<CustomBuild Include="..\..\..\obs\qt-display.hpp">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing qt-display.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing qt-display.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing qt-display.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing qt-display.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(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"</Command>
</CustomBuild>
<ClInclude Include="..\..\..\obs\qt-wrappers.hpp" />
<CustomBuild Include="..\..\..\obs\window-namedialog.hpp">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing window-namedialog.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing window-namedialog.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing window-namedialog.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing window-namedialog.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(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"</Command>
</CustomBuild>
<ClInclude Include="GeneratedFiles\ui_NameDialog.h" />
<ClInclude Include="GeneratedFiles\ui_OBSBasic.h" />
<ClInclude Include="GeneratedFiles\ui_OBSBasicSettings.h" />
<CustomBuild Include="..\..\..\obs\window-basic-main.hpp">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing window-basic-main.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing window-basic-main.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing window-basic-main.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing window-basic-main.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(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"</Command>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\obs-app.hpp">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing obs-app.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing obs-app.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing obs-app.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(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"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing obs-app.hpp...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(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"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\obs\obs-app.cpp" />
<ClCompile Include="..\..\..\obs\platform-windows.cpp" />
<ClCompile Include="..\..\..\obs\qt-wrappers.cpp" />
<ClCompile Include="..\..\..\obs\window-basic-main.cpp" />
<ClCompile Include="..\..\..\obs\window-namedialog.cpp" />
<ClCompile Include="GeneratedFiles\Debug\moc_obs-app.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_qt-display.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_window-basic-main.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_window-namedialog.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\qrc_obs.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_obs-app.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_qt-display.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_window-basic-main.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_window-namedialog.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\obs\forms\OBSBasic.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\obs\forms\obs.qrc">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(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)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(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)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(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)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(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)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\obs\forms\images\add.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\delete.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\document-properties-2.png">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\down.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\editscene.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\list_add.png">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\list_remove.png">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\live.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\properties.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\sound.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\sound_muted.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
<Image Include="..\..\..\obs\forms\images\up.ico">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</Image>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\obs\forms\OBSBasicSettings.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\obs\forms\NameDialog.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B12702AD-ABFB-343A-A199-8E24837244A3}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword>
<ProjectName>obs-studio</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../libobs;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;..\..\..\obs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(OutDir);$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>libobs.lib;qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_Win32="msvc2013" Qt5Version_x0020_x64="msvc2013_64" MocOptions="" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;cxx;c;def</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h</Extensions>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>moc;h;cpp</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
<Filter Include="Generated Files\Debug">
<UniqueIdentifier>{149188c7-e594-4827-9428-37ad0e0dc3eb}</UniqueIdentifier>
<Extensions>cpp;moc</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
<Filter Include="Generated Files\Release">
<UniqueIdentifier>{46c1acc8-e7cc-426f-b54d-60ed04803613}</UniqueIdentifier>
<Extensions>cpp;moc</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\obs\obs-app.hpp">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\window-basic-main.hpp">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\forms\OBSBasic.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\forms\obs.qrc">
<Filter>Resource Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\forms\OBSBasicSettings.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\forms\NameDialog.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\window-namedialog.hpp">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\..\obs\qt-display.hpp">
<Filter>Header Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\obs\platform.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\obs\qt-wrappers.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="GeneratedFiles\ui_OBSBasic.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="GeneratedFiles\ui_OBSBasicSettings.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="GeneratedFiles\ui_NameDialog.h">
<Filter>Generated Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\obs\obs-app.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_obs-app.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_obs-app.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\platform-windows.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\qt-wrappers.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_window-basic-main.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_window-basic-main.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\window-basic-main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\qrc_obs.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_window-namedialog.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_window-namedialog.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
<ClCompile Include="..\..\..\obs\window-namedialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_qt-display.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_qt-display.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\obs\forms\images\add.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\delete.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\document-properties-2.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\down.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\editscene.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\list_add.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\list_remove.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\live.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\properties.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\sound.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\sound_muted.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\obs\forms\images\up.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
</Project>

View File

@ -25,26 +25,26 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@ -73,7 +73,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
@ -81,6 +81,9 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
@ -88,7 +91,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
@ -96,6 +99,9 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@ -105,7 +111,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
@ -115,6 +121,9 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/32bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@ -124,7 +133,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;PTW32_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>__CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_LIB;PTW32_BUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
@ -134,6 +143,9 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<PostBuildEvent>
<Command>copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../build/bin/64bit/$(TargetName)$(TargetExt)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\deps\w32-pthreads\pthread.c" />