├── .gitattributes ├── vstgui ├── tests │ ├── gfxtest │ │ ├── resource │ │ │ ├── PkgInfo │ │ │ ├── gfxtest.rc │ │ │ └── Info.plist │ │ ├── source │ │ │ └── drawdevicetests.h │ │ └── CMakeLists.txt │ ├── gridlayouttestapp │ │ ├── resource │ │ │ ├── PkgInfo │ │ │ ├── windows.rc │ │ │ └── Info.plist │ │ └── CMakeLists.txt │ ├── uidescriptioneditorapp │ │ ├── resource │ │ │ ├── PkgInfo │ │ │ ├── winresources.rc │ │ │ └── Info.plist │ │ └── CMakeLists.txt │ ├── CMakeLists.txt │ ├── ios standalone │ │ └── iOS Standalone │ │ │ ├── ViewController.h │ │ │ ├── AppDelegate.h │ │ │ └── main.m │ ├── unittest │ │ ├── lib │ │ │ ├── platform_helper.h │ │ │ ├── platform_helper_linux.cpp │ │ │ ├── cbuttonstate_test.cpp │ │ │ ├── cclipboard_test.cpp │ │ │ └── cfont_test.cpp │ │ └── uidescription │ │ │ └── uiviewcreator │ │ │ ├── clayeredviewcontainercreator_test.cpp │ │ │ ├── csearchtexteditcreator_test.cpp │ │ │ ├── conoffbuttoncreator_test.cpp │ │ │ ├── cxypadcreator_test.cpp │ │ │ └── coptionmenucreator_test.cpp │ └── base64codecspeed │ │ ├── CMakeLists.txt │ │ └── main.cpp ├── standalone │ ├── cmake │ │ └── resources │ │ │ └── PkgInfo │ ├── examples │ │ ├── mandelbrot │ │ │ ├── resource │ │ │ │ ├── PkgInfo │ │ │ │ ├── mandelbrot.rc │ │ │ │ ├── progress.png │ │ │ │ ├── progress │ │ │ │ │ ├── 00.png │ │ │ │ │ ├── 01.png │ │ │ │ │ ├── 02.png │ │ │ │ │ ├── 03.png │ │ │ │ │ ├── 04.png │ │ │ │ │ ├── 05.png │ │ │ │ │ ├── 06.png │ │ │ │ │ ├── 07.png │ │ │ │ │ ├── 08.png │ │ │ │ │ ├── 09.png │ │ │ │ │ ├── 10.png │ │ │ │ │ ├── 11.png │ │ │ │ │ ├── 12.png │ │ │ │ │ ├── 13.png │ │ │ │ │ ├── 14.png │ │ │ │ │ ├── 15.png │ │ │ │ │ ├── 16.png │ │ │ │ │ ├── 17.png │ │ │ │ │ ├── 18.png │ │ │ │ │ ├── 19.png │ │ │ │ │ ├── 20.png │ │ │ │ │ ├── 21.png │ │ │ │ │ ├── 22.png │ │ │ │ │ ├── 23.png │ │ │ │ │ ├── 24.png │ │ │ │ │ ├── 25.png │ │ │ │ │ ├── 26.png │ │ │ │ │ ├── 27.png │ │ │ │ │ ├── 28.png │ │ │ │ │ ├── 29.png │ │ │ │ │ ├── 30.png │ │ │ │ │ ├── 31.png │ │ │ │ │ ├── 32.png │ │ │ │ │ ├── 33.png │ │ │ │ │ ├── 34.png │ │ │ │ │ ├── 35.png │ │ │ │ │ ├── @2x00.png │ │ │ │ │ ├── @2x01.png │ │ │ │ │ ├── @2x02.png │ │ │ │ │ ├── @2x03.png │ │ │ │ │ ├── @2x04.png │ │ │ │ │ ├── @2x05.png │ │ │ │ │ ├── @2x06.png │ │ │ │ │ ├── @2x07.png │ │ │ │ │ ├── @2x08.png │ │ │ │ │ ├── @2x09.png │ │ │ │ │ ├── @2x10.png │ │ │ │ │ ├── @2x11.png │ │ │ │ │ ├── @2x12.png │ │ │ │ │ ├── @2x13.png │ │ │ │ │ ├── @2x14.png │ │ │ │ │ ├── @2x15.png │ │ │ │ │ ├── @2x16.png │ │ │ │ │ ├── @2x17.png │ │ │ │ │ ├── @2x18.png │ │ │ │ │ ├── @2x19.png │ │ │ │ │ ├── @2x20.png │ │ │ │ │ ├── @2x21.png │ │ │ │ │ ├── @2x22.png │ │ │ │ │ ├── @2x23.png │ │ │ │ │ ├── @2x24.png │ │ │ │ │ ├── @2x25.png │ │ │ │ │ ├── @2x26.png │ │ │ │ │ ├── @2x27.png │ │ │ │ │ ├── @2x28.png │ │ │ │ │ ├── @2x29.png │ │ │ │ │ ├── @2x30.png │ │ │ │ │ ├── @2x31.png │ │ │ │ │ ├── @2x32.png │ │ │ │ │ ├── @2x33.png │ │ │ │ │ ├── @2x34.png │ │ │ │ │ ├── @2x35.png │ │ │ │ │ ├── progress.afdesign │ │ │ │ │ ├── progress.imagestitch │ │ │ │ │ └── progress_2.00x.imagestitch │ │ │ │ ├── progress_2.0x.png │ │ │ │ └── Info.plist │ │ │ └── source │ │ │ │ ├── mandelbrotwindow.h │ │ │ │ └── touchbarsupport.h │ │ ├── minesweeper │ │ │ ├── resource │ │ │ │ ├── PkgInfo │ │ │ │ ├── Bomb.png │ │ │ │ ├── Minesweeper.rc │ │ │ │ ├── font │ │ │ │ │ ├── LCD14.otf │ │ │ │ │ └── NotoEmoji-Regular.ttf │ │ │ │ ├── Minesweeper.icns │ │ │ │ └── Info.plist │ │ │ └── source │ │ │ │ └── highscores.h │ │ ├── standalone │ │ │ ├── resource │ │ │ │ ├── PkgInfo │ │ │ │ ├── box.png │ │ │ │ ├── knob.png │ │ │ │ ├── box_2.0x.png │ │ │ │ ├── standalone.rc │ │ │ │ ├── autoanimation.png │ │ │ │ ├── font │ │ │ │ │ └── EffectsEighty.ttf │ │ │ │ ├── scripts │ │ │ │ │ ├── viewcontainertest.js │ │ │ │ │ ├── test.js │ │ │ │ │ └── changecoloronfocus.js │ │ │ │ └── Info.plist │ │ │ └── source │ │ │ │ ├── testappdelegate.h │ │ │ │ ├── AlertBoxDesign.h │ │ │ │ ├── metalwindow.h │ │ │ │ ├── direct3dwindow.h │ │ │ │ ├── metaltypes.h │ │ │ │ ├── direct3dshader.h │ │ │ │ └── testabout.h │ │ ├── simple_standalone │ │ │ ├── resource │ │ │ │ ├── PkgInfo │ │ │ │ ├── simple_standalone.rc │ │ │ │ └── Info.plist │ │ │ └── CMakeLists.txt │ │ └── CMakeLists.txt │ ├── source │ │ ├── platform │ │ │ ├── mac │ │ │ │ ├── VSTGUICommand.mm │ │ │ │ ├── VSTGUICommand.h │ │ │ │ ├── macutilities.h │ │ │ │ ├── macwindow.h │ │ │ │ ├── macpreference.h │ │ │ │ └── maccommondirectories.h │ │ │ ├── gdk │ │ │ │ ├── gdkapplication.h │ │ │ │ ├── gdkwindow.h │ │ │ │ ├── gdkcommondirectories.h │ │ │ │ └── gdkpreference.h │ │ │ └── win32 │ │ │ │ ├── win32window.h │ │ │ │ └── win32preference.h │ │ ├── genericalertbox.h │ │ └── window.h │ └── include │ │ ├── ipreference.h │ │ ├── ivaluelistener.h │ │ └── ishareduiresources.h ├── tools │ ├── imagestitcher │ │ ├── resource │ │ │ ├── PkgInfo │ │ │ ├── Window.uidesc │ │ │ ├── Slider.afdesign │ │ │ ├── SliderHandle.png │ │ │ ├── imagestitcher.rc │ │ │ ├── SliderBackground.png │ │ │ ├── SliderHandle_2.0x.png │ │ │ ├── StartupWindow.uidesc │ │ │ └── SliderBackground_2.0x.png │ │ ├── Readme.md │ │ ├── source │ │ │ └── startupcontroller.h │ │ └── CMakeLists.txt │ ├── CMakeLists.txt │ └── uidesccompressor │ │ └── CMakeLists.txt ├── uidescription-scripting │ ├── tiny-js │ │ ├── .gitignore │ │ ├── tests │ │ │ ├── test002.js │ │ │ ├── test004.js │ │ │ ├── test001.js │ │ │ ├── test034.js │ │ │ ├── test006.js │ │ │ ├── test012.js │ │ │ ├── test027.js │ │ │ ├── test030.js │ │ │ ├── test026.js │ │ │ ├── test003.js │ │ │ ├── test021.js │ │ │ ├── test008.js │ │ │ ├── test033.js │ │ │ ├── test005.js │ │ │ ├── test013.js │ │ │ ├── test010.js │ │ │ ├── test011.js │ │ │ ├── test031.js │ │ │ ├── test009.js │ │ │ ├── test007.js │ │ │ ├── test029.js │ │ │ ├── test025.js │ │ │ ├── test017.js │ │ │ ├── test028.js │ │ │ ├── test035.js │ │ │ ├── test036.js │ │ │ ├── test023.js │ │ │ ├── test018.js │ │ │ ├── test032.js │ │ │ ├── 42tests │ │ │ │ ├── test002.js │ │ │ │ ├── test003.js │ │ │ │ └── test004.js │ │ │ ├── test022.js │ │ │ ├── test021.42.js │ │ │ ├── test032.42.js │ │ │ ├── test015.js │ │ │ ├── test014.js │ │ │ ├── test022.42.js │ │ │ ├── test019.js │ │ │ ├── test020.js │ │ │ ├── test016.js │ │ │ └── test019.42.js │ │ ├── TinyJS_MathFunctions.h │ │ ├── Makefile │ │ └── LICENSE │ └── detail │ │ └── iscriptcontextinternal.h ├── doxygen │ ├── screenshots │ │ ├── editVST3.png │ │ ├── ui_editor.png │ │ ├── contextmenu.png │ │ ├── newuicompname.png │ │ ├── inspector_overview.png │ │ ├── ui_editor_tags_browser.png │ │ ├── ui_editor_colors_browser.png │ │ ├── ui_editor_fonts_browser.png │ │ ├── ui_editor_views_browser.png │ │ └── ui_editor_bitmaps_browser.png │ ├── page_misc.h │ ├── page_changelog.h │ └── page_keyeventflow.h ├── uidescription │ ├── editing │ │ ├── resources │ │ │ ├── attach-top.png │ │ │ ├── attach-left.png │ │ │ ├── attach-right.png │ │ │ ├── segment-tags.png │ │ │ ├── attach-bottom.png │ │ │ ├── attach-left-non.png │ │ │ ├── attach-top#2.0x.png │ │ │ ├── attach-top-non.png │ │ │ ├── segment-bitmaps.png │ │ │ ├── segment-colors.png │ │ │ ├── segment-fonts.png │ │ │ ├── segment-views.png │ │ │ ├── text-align-left.png │ │ │ ├── attach-bottom-non.png │ │ │ ├── attach-left#2.0x.png │ │ │ ├── attach-right#2.0x.png │ │ │ ├── attach-right-non.png │ │ │ ├── segment-gradients.png │ │ │ ├── segment-tags#2.0x.png │ │ │ ├── text-align-center.png │ │ │ ├── text-align-right.png │ │ │ ├── attach-bottom#2.0x.png │ │ │ ├── attach-left-non#2.0x.png │ │ │ ├── attach-top-non#2.0x.png │ │ │ ├── darkmode-attach-left.png │ │ │ ├── darkmode-attach-top.png │ │ │ ├── segment-bitmaps#2.0x.png │ │ │ ├── segment-colors#2.0x.png │ │ │ ├── segment-fonts#2.0x.png │ │ │ ├── segment-views#2.0x.png │ │ │ ├── attach-bottom-non#2.0x.png │ │ │ ├── attach-right-non#2.0x.png │ │ │ ├── darkmode-attach-bottom.png │ │ │ ├── darkmode-attach-right.png │ │ │ ├── darkmode-segment-fonts.png │ │ │ ├── darkmode-segment-tags.png │ │ │ ├── darkmode-segment-views.png │ │ │ ├── segment-gradients#2.0x.png │ │ │ ├── text-align-left-white.png │ │ │ ├── text-align-right-white.png │ │ │ ├── darkmode-attach-left#2.0x.png │ │ │ ├── darkmode-attach-left-non.png │ │ │ ├── darkmode-attach-right-non.png │ │ │ ├── darkmode-attach-top#2.0x.png │ │ │ ├── darkmode-attach-top-non.png │ │ │ ├── text-align-center-white.png │ │ │ ├── darkmode-attach-bottom#2.0x.png │ │ │ ├── darkmode-attach-bottom-non.png │ │ │ ├── darkmode-attach-right#2.0x.png │ │ │ ├── darkmode-segment-fonts#2.0x.png │ │ │ ├── darkmode-segment-tags#2.0x.png │ │ │ ├── darkmode-segment-views#2.0x.png │ │ │ ├── darkmode-attach-left-non#2.0x.png │ │ │ ├── darkmode-attach-right-non#2.0x.png │ │ │ ├── darkmode-attach-top-non#2.0x.png │ │ │ └── darkmode-attach-bottom-non#2.0x.png │ │ ├── igridprocessor.h │ │ ├── createuidescdata.sh │ │ ├── uigrid.h │ │ └── uioverlayview.h │ ├── uidescriptionfwd.h │ ├── detail │ │ └── locale.h │ ├── icontentprovider.h │ ├── doc.h │ └── viewcreator │ │ ├── onoffbuttoncreator.h │ │ ├── kickbuttoncreator.h │ │ ├── moviebitmapcreator.h │ │ ├── moviebuttoncreator.h │ │ └── rockerswitchcreator.h ├── vstgui_uidescription_ios.mm ├── vstgui_uidescription_mac.mm ├── lib │ ├── platform │ │ ├── linux │ │ │ ├── irunloop.h │ │ │ ├── x11fileselector.h │ │ │ ├── linuxstring.cpp │ │ │ ├── linuxstring.h │ │ │ └── x11timer.h │ │ ├── std_unorderedmap.h │ │ ├── win32 │ │ │ ├── winfileselector.h │ │ │ ├── direct2d │ │ │ │ ├── d2dgradient.h │ │ │ │ ├── d2dbitmapcache.h │ │ │ │ └── d2dgradient.cpp │ │ │ ├── win32bitmapbase.h │ │ │ ├── win32optionmenu.h │ │ │ ├── winstring.h │ │ │ └── wintimer.h │ │ ├── iplatformstring.h │ │ ├── mac │ │ │ ├── macfileselector.h │ │ │ ├── cocoa │ │ │ │ ├── nsviewoptionmenu.h │ │ │ │ ├── autoreleasepool.mm │ │ │ │ └── autoreleasepool.h │ │ │ ├── macclipboard.h │ │ │ ├── ios │ │ │ │ ├── uitouchevent.h │ │ │ │ └── uitextedit.h │ │ │ └── mactimer.h │ │ ├── iplatformgradient.h │ │ ├── iplatformtimer.h │ │ ├── iplatformoptionmenu.h │ │ ├── platform_x11.h │ │ ├── iplatformresourceinputstream.h │ │ ├── platform_win32.h │ │ ├── common │ │ │ ├── gradientbase.h │ │ │ ├── generictextedit.h │ │ │ └── fileresourceinputstream.h │ │ ├── platformfwd.h │ │ └── iplatformviewlayer.h │ ├── cpoint.cpp │ ├── crect.cpp │ ├── private │ │ ├── enabledeprecatedmessage.h │ │ └── disabledeprecatedmessage.h │ ├── iscalefactorchangedlistener.h │ ├── vstguiinit.cpp │ ├── animation │ │ ├── itimingfunction.h │ │ └── ianimationtarget.h │ ├── controls │ │ ├── itextlabellistener.h │ │ ├── icontrollistener.h │ │ ├── cspecialdigit.h │ │ ├── icommandmenuitemtarget.h │ │ └── itexteditlistener.h │ ├── vstguiinit.h │ ├── viewlayouter │ │ └── noviewlayouter.h │ ├── cclipboard.h │ ├── ifocusdrawing.h │ ├── pixelbuffer.h │ └── cresourcedescription.h ├── Documentation │ ├── README.md │ └── index.html ├── vstgui_uidescription_win32.cpp ├── vstgui_standalone_mac.mm ├── vstgui_standalone.cpp ├── vstgui_standalone_win32.cpp ├── vstgui_uidescription.h ├── vstgui_linux.cpp ├── thirdparty │ ├── expat │ │ ├── winconfig.h │ │ └── xmltok_impl.h │ └── miniz │ │ └── LICENSE ├── vstgui_ios.mm ├── contrib │ └── ciboxblurfilter.h └── vstgui_mac.mm ├── CMakeLists.txt ├── .editorconfig └── .github └── workflows ├── cmake_macos.yml ├── cmake_windows.yml └── cmake_linux.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.sh eol=lf 3 | -------------------------------------------------------------------------------- /vstgui/tests/gfxtest/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/standalone/cmake/resources/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/tests/gridlayouttestapp/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/tests/uidescriptioneditorapp/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/standalone/examples/simple_standalone/resource/PkgInfo: -------------------------------------------------------------------------------- 1 | BNDL???? -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | build/ 3 | build.*/ -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test002.js: -------------------------------------------------------------------------------- 1 | // comparison 2 | var a = 42; 3 | result = a == 42; 4 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test004.js: -------------------------------------------------------------------------------- 1 | // simple if 2 | var a = 42; 3 | if (a < 43) 4 | result = 1; 5 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test001.js: -------------------------------------------------------------------------------- 1 | // simply testing we can return the correct value 2 | result = 1; 3 | -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/editVST3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/editVST3.png -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor.png -------------------------------------------------------------------------------- /vstgui/tests/gfxtest/resource/gfxtest.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tests/gfxtest/resource/gfxtest.rc -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/contextmenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/contextmenu.png -------------------------------------------------------------------------------- /vstgui/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(unittest) 2 | add_subdirectory(uidescriptioneditorapp) 3 | add_subdirectory(gridlayouttestapp) 4 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test034.js: -------------------------------------------------------------------------------- 1 | // test for ternary 2 | 3 | result = (true ? 3 : 4) == 3 && (false ? 5 : 6) == 6; 4 | -------------------------------------------------------------------------------- /vstgui/doxygen/page_misc.h: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | @page page_misc Miscellaneous 4 | 5 | - @subpage page_animation 6 | - @subpage key_event_flow 7 | 8 | */ -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/newuicompname.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/newuicompname.png -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test006.js: -------------------------------------------------------------------------------- 1 | // simple function 2 | function add (x, y) { return x + y; } 3 | result = add (3, 6) == 9; 4 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test012.js: -------------------------------------------------------------------------------- 1 | // if .. else 2 | var a = 42; 3 | if (a != 42) 4 | result = 0; 5 | else 6 | result = 1; 7 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test027.js: -------------------------------------------------------------------------------- 1 | // test for postincrement working as expected 2 | var foo = 5; 3 | result = (foo++) == 5; 4 | -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/inspector_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/inspector_overview.png -------------------------------------------------------------------------------- /vstgui/tests/gridlayouttestapp/resource/windows.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tests/gridlayouttestapp/resource/windows.rc -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/Window.uidesc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/Window.uidesc -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test030.js: -------------------------------------------------------------------------------- 1 | // test for array join 2 | var a = [1, 2, 4, 5, 7]; 3 | 4 | result = a.join(",") == "1,2,4,5,7"; 5 | -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor_tags_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor_tags_browser.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/Slider.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/Slider.afdesign -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/SliderHandle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/SliderHandle.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/imagestitcher.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/imagestitcher.rc -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-top.png -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor_colors_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor_colors_browser.png -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor_fonts_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor_fonts_browser.png -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor_views_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor_views_browser.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/box.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/knob.png -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test026.js: -------------------------------------------------------------------------------- 1 | // check for undefined-ness 2 | a = undefined; 3 | b = "foo"; 4 | result = a == undefined && b != undefined; 5 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-left.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-right.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-tags.png -------------------------------------------------------------------------------- /vstgui/doxygen/screenshots/ui_editor_bitmaps_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/doxygen/screenshots/ui_editor_bitmaps_browser.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/Bomb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/minesweeper/resource/Bomb.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/SliderBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/SliderBackground.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/SliderHandle_2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/SliderHandle_2.0x.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/StartupWindow.uidesc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/StartupWindow.uidesc -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test003.js: -------------------------------------------------------------------------------- 1 | // simple for loop 2 | var a = 0; 3 | var i; 4 | for (i = 1; i < 10; i++) 5 | a = a + i; 6 | result = a == 45; 7 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-bottom.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-left-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-left-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-top#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-top#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-top-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-top-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-bitmaps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-bitmaps.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-colors.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-fonts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-fonts.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-views.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-views.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-left.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/mandelbrot.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/mandelbrot.rc -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/box_2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/box_2.0x.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/standalone.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/standalone.rc -------------------------------------------------------------------------------- /vstgui/tests/uidescriptioneditorapp/resource/winresources.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tests/uidescriptioneditorapp/resource/winresources.rc -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-bottom-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-bottom-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-left#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-left#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-right#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-right#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-right-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-right-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-gradients.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-gradients.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-tags#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-tags#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-center.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-right.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/00.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/01.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/02.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/03.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/04.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/05.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/06.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/07.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/08.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/09.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/10.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/11.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/12.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/13.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/14.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/15.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/16.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/17.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/18.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/19.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/20.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/21.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/22.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/23.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/24.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/25.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/26.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/27.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/28.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/29.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/30.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/31.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/32.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/33.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/34.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/35.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/Minesweeper.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/minesweeper/resource/Minesweeper.rc -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/font/LCD14.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/minesweeper/resource/font/LCD14.otf -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/resource/SliderBackground_2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/tools/imagestitcher/resource/SliderBackground_2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test021.js: -------------------------------------------------------------------------------- 1 | /* Javascript eval */ 2 | 3 | myfoo = eval ("{ foo: 42 }"); 4 | 5 | result = eval ("4*10+2") == 42 && myfoo.foo == 42; 6 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-bottom#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-bottom#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-left-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-left-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-top-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-top-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-left.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-top.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-bitmaps#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-bitmaps#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-colors#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-colors#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-fonts#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-fonts#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-views#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-views#2.0x.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x00.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x01.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x02.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x03.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x04.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x05.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x06.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x07.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x08.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x09.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x10.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x11.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x12.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x13.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x14.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x15.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x16.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x17.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x18.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x19.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x20.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x21.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x22.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x23.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x24.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x25.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x26.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x27.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x28.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x29.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x30.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x31.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x32.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x33.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x34.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/@2x35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/@2x35.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress_2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress_2.0x.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/Minesweeper.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/minesweeper/resource/Minesweeper.icns -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/autoanimation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/autoanimation.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-bottom-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-bottom-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/attach-right-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/attach-right-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-bottom.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-right.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-fonts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-fonts.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-tags.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-views.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-views.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/segment-gradients#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/segment-gradients#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-left-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-left-white.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-right-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-right-white.png -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test008.js: -------------------------------------------------------------------------------- 1 | // functions in variables 2 | var bob = {}; 3 | bob.add = function (x, y) { return x + y; }; 4 | 5 | result = bob.add(3, 6) == 9; 6 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test033.js: -------------------------------------------------------------------------------- 1 | // test for shift 2 | var a = (2 << 2); 3 | var b = (16 >> 3); 4 | var c = (-1 >>> 16); 5 | result = a == 8 && b == 2 && c == 0xFFFF; 6 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-left#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-left#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-left-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-left-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-right-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-right-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-top#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-top#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-top-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-top-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/text-align-center-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/text-align-center-white.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/font/EffectsEighty.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/standalone/resource/font/EffectsEighty.ttf -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test005.js: -------------------------------------------------------------------------------- 1 | // simple for loop containing initialisation, using += 2 | var a = 0; 3 | for (var i = 1; i < 10; i++) 4 | a += i; 5 | result = a == 45; 6 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test013.js: -------------------------------------------------------------------------------- 1 | // if .. else with blocks 2 | var a = 42; 3 | if (a != 42) 4 | { 5 | result = 0; 6 | } 7 | else 8 | { 9 | result = 1; 10 | } 11 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-bottom#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-bottom#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-bottom-non.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-bottom-non.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-right#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-right#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-fonts#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-fonts#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-tags#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-tags#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-segment-views#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-segment-views#2.0x.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/progress.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/mandelbrot/resource/progress/progress.afdesign -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test010.js: -------------------------------------------------------------------------------- 1 | // double function calls 2 | function a (x) { return x + 2; } 3 | function b (x) { return a (x) + 1; } 4 | result = a (3) == 5 && b (3) == 6; 5 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test011.js: -------------------------------------------------------------------------------- 1 | // recursion 2 | function a (x) 3 | { 4 | if (x > 1) 5 | return x * a (x - 1); 6 | return 1; 7 | } 8 | result = a (5) == 1 * 2 * 3 * 4 * 5; 9 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test031.js: -------------------------------------------------------------------------------- 1 | // test for string split 2 | var b = "1,4,7"; 3 | var a = b.split(","); 4 | 5 | result = a.length == 3 && a[0] == 1 && a[1] == 4 && a[2] == 7; 6 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-left-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-left-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-right-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-right-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-top-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-top-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/font/NotoEmoji-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/minesweeper/resource/font/NotoEmoji-Regular.ttf -------------------------------------------------------------------------------- /vstgui/standalone/examples/simple_standalone/resource/simple_standalone.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/standalone/examples/simple_standalone/resource/simple_standalone.rc -------------------------------------------------------------------------------- /vstgui/uidescription/editing/resources/darkmode-attach-bottom-non#2.0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steinbergmedia/vstgui/HEAD/vstgui/uidescription/editing/resources/darkmode-attach-bottom-non#2.0x.png -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test009.js: -------------------------------------------------------------------------------- 1 | // functions in variables using JSON-style initialisation 2 | var bob = {add: function (x, y) { return x + y; }}; 3 | 4 | result = bob.add(3, 6) == 9; 5 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test007.js: -------------------------------------------------------------------------------- 1 | // simple function scoping test 2 | var a = 7; 3 | function add (x, y) 4 | { 5 | var a = x + y; 6 | return a; 7 | } 8 | result = add (3, 6) == 9 && a == 7; 9 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test029.js: -------------------------------------------------------------------------------- 1 | // test for array remove 2 | var a = [1, 2, 4, 5, 7]; 3 | 4 | a.remove(2); 5 | a.remove(5); 6 | 7 | result = a.length == 3 && a[0] == 1 && a[1] == 4 && a[2] == 7; 8 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test025.js: -------------------------------------------------------------------------------- 1 | // Array length test 2 | 3 | myArray = [1, 2, 3, 4, 5]; 4 | myArray2 = [1, 2, 3, 4, 5]; 5 | myArray2[8] = 42; 6 | 7 | result = myArray.length == 5 && myArray2.length == 9; 8 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test017.js: -------------------------------------------------------------------------------- 1 | // references for arrays 2 | 3 | var a = []; 4 | a[0] = 10; 5 | a[1] = 22; 6 | 7 | b = a; 8 | 9 | b[0] = 5; 10 | 11 | result = a[0] == 5 && a[1] == 22 && b[1] == 22; 12 | -------------------------------------------------------------------------------- /vstgui/tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(VSTGUI_TOOLS_FOLDER FOLDER "VSTGUI Tools") 2 | 3 | if(VSTGUI_STANDALONE AND NOT (WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)) 4 | add_subdirectory(imagestitcher) 5 | endif() 6 | add_subdirectory(uidesccompressor) 7 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test028.js: -------------------------------------------------------------------------------- 1 | // test for array contains 2 | var a = [1, 2, 4, 5, 7]; 3 | var b = ["bread", "cheese", "sandwich"]; 4 | 5 | result = a.contains(1) && !a.contains(42) && b.contains("cheese") && !b.contains("eggs"); 6 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test035.js: -------------------------------------------------------------------------------- 1 | function Person (name) 2 | { 3 | this.name = name; 4 | this.kill = function () { this.name += " is dead"; }; 5 | } 6 | 7 | var a = new Person ("Kenny"); 8 | a.kill(); 9 | result = a.name == "Kenny is dead"; 10 | -------------------------------------------------------------------------------- /vstgui/vstgui_uidescription_ios.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "vstgui_uidescription.cpp" 6 | -------------------------------------------------------------------------------- /vstgui/vstgui_uidescription_mac.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "vstgui_uidescription.cpp" 6 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/testappdelegate.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test036.js: -------------------------------------------------------------------------------- 1 | // the 'lf' in the printf caused issues writing doubles on some compilers 2 | var a = 5.0 / 10.0 * 100.0; 3 | var b = 5.0 * 110.0; 4 | var c = 50.0 / 10.0; 5 | a.dump(); 6 | b.dump(); 7 | c.dump(); 8 | result = a == 50 && b == 550 && c == 5; 9 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test023.js: -------------------------------------------------------------------------------- 1 | // mikael.kindborg@mobilesorcery.com - Function symbol is evaluated in bracket-less body of false 2 | // if-statement 3 | var foo; // a var is only created automated by assignment 4 | 5 | if (foo !== undefined) 6 | foo (); 7 | 8 | result = 1; 9 | -------------------------------------------------------------------------------- /vstgui/lib/platform/linux/irunloop.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../platform_x11.h" 8 | -------------------------------------------------------------------------------- /vstgui/lib/platform/std_unorderedmap.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include 8 | -------------------------------------------------------------------------------- /vstgui/Documentation/README.md: -------------------------------------------------------------------------------- 1 | After checking out the sources, you need to run doxygen for the actual documentation. 2 | 3 | - Please download doxygen here: http://www.doxygen.nl 4 | - Run the doxygen app 5 | - Load the config file from vstgui/doxygen/Doxyfile 6 | - Switch to the run tab and execute "Run doxygen" 7 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/scripts/viewcontainertest.js: -------------------------------------------------------------------------------- 1 | //---------------------------- 2 | view.onViewAdded = function (view, child) { 3 | log ("onViewAdded"); 4 | log (child); 5 | }; 6 | view.onViewRemoved = function (view, child) { 7 | log ("onViewRemoved"); 8 | log (child); 9 | }; 10 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test018.js: -------------------------------------------------------------------------------- 1 | // references with functions 2 | 3 | var a = 42; 4 | var b = []; 5 | b[0] = 43; 6 | 7 | function foo (myarray) { myarray[0]++; } 8 | 9 | function bar (myvalue) { myvalue++; } 10 | 11 | foo (b); 12 | bar (a); 13 | 14 | result = a == 42 && b[0] == 44; 15 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test032.js: -------------------------------------------------------------------------------- 1 | var Foo = {value: function () { return this.x + this.y; }}; 2 | 3 | var a = {prototype: Foo, x: 1, y: 2}; 4 | var b = new Foo (); 5 | b.x = 2; 6 | b.y = 3; 7 | 8 | var result1 = a.value(); 9 | var result2 = b.value(); 10 | result = result1 == 3 && result2 == 5; 11 | -------------------------------------------------------------------------------- /vstgui/lib/cpoint.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "cpoint.h" 6 | #include "crect.h" 7 | 8 | namespace VSTGUI { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /vstgui/vstgui_uidescription_win32.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #define _CRT_SECURE_NO_WARNINGS 6 | 7 | #include "vstgui_uidescription.cpp" 8 | 9 | -------------------------------------------------------------------------------- /vstgui/lib/crect.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "crect.h" 6 | #include "cpoint.h" 7 | 8 | namespace VSTGUI { 9 | 10 | } // VSTGUI 11 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/progress.imagestitch: -------------------------------------------------------------------------------- 1 | tsmi$00.png01.png02.png03.png04.png05.png06.png07.png08.png09.png10.png11.png12.png13.png14.png15.png16.png17.png18.png19.png20.png21.png22.png23.png24.png25.png26.png27.png28.png29.png30.png31.png32.png33.png34.png35.png -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/Readme.md: -------------------------------------------------------------------------------- 1 | # Tool: ImageStitcher 2 | 3 | Many controls in VSTGUI uses stacked bitmaps. Per example the COnOffButton has two states and depending on the state the upper half of the bitmap is shown, or the lower half. 4 | This tool helps in creating these bitmaps by generating one stitched PNG out of many PNG's. 5 | 6 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(VSTGUI_STANDALONE_EXAMPLES_FOLDER FOLDER "VSTGUI Standalone Examples") 2 | 3 | if(NOT MSVC_TOOLSET_VERSION OR MSVC_TOOLSET_VERSION VERSION_GREATER 140) 4 | add_subdirectory(mandelbrot) 5 | add_subdirectory(minesweeper) 6 | endif() 7 | add_subdirectory(simple_standalone) 8 | add_subdirectory(standalone) 9 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/42tests/test002.js: -------------------------------------------------------------------------------- 1 | // function-closure 2 | 3 | var a = 40; // a global var 4 | 5 | function closure () 6 | { 7 | var a = 39; // a local var; 8 | return function () { return a; }; 9 | } 10 | 11 | var b = closure (); // the local var a is now hidden 12 | 13 | result = b () + 3 == 42 && a + 2 == 42; 14 | -------------------------------------------------------------------------------- /vstgui/Documentation/index.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | VSTGUI 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/42tests/test003.js: -------------------------------------------------------------------------------- 1 | // with-test 2 | 3 | var a; 4 | 5 | with (Math) a = PI; 6 | 7 | var b = {get_member: function () { return this.member; }, member: 41}; 8 | 9 | with (b) 10 | { 11 | let a = get_member (); //<--- a is local for this block 12 | var c = a + 1; 13 | } 14 | 15 | result = a == Math.PI && c == 42; 16 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test022.js: -------------------------------------------------------------------------------- 1 | /* Javascript eval */ 2 | 3 | mystructure = { 4 | a: 39, 5 | b: 3, 6 | addStuff: function (c, d) { return c + d; } 7 | }; 8 | 9 | mystring = JSON.stringify(mystructure, undefined); 10 | 11 | mynewstructure = eval (mystring); 12 | 13 | result = mynewstructure.addStuff(mynewstructure.a, mynewstructure.b); 14 | -------------------------------------------------------------------------------- /vstgui/tests/ios standalone/iOS Standalone/ViewController.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import 6 | 7 | @interface ViewController : UIViewController 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /vstgui/doxygen/page_changelog.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | /** 6 | @page page_changelog Changelog 7 | 8 | For newer changes please see the git log. 9 | 10 | @include Changelog 11 | 12 | */ 13 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test021.42.js: -------------------------------------------------------------------------------- 1 | /* Javascript eval */ 2 | 3 | // 42-tiny-js change begin ---> 4 | // in JavaScript eval is not JSON.parse 5 | // use parentheses or JSON.parse instead 6 | // myfoo = eval("{ foo: 42 }"); 7 | myfoo = eval ("(" + 8 | "{ foo: 42 }" + 9 | ")"); 10 | //<--- 42-tiny-js change end 11 | 12 | result = eval ("4*10+2") == 42 && myfoo.foo == 42; 13 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test032.42.js: -------------------------------------------------------------------------------- 1 | function Foo () { this.__proto__ = Foo.prototype; } 2 | Foo.prototype = { 3 | value: function () { return this.x + this.y; } 4 | }; 5 | 6 | var a = {__proto__: Foo.prototype, x: 1, y: 2}; 7 | var b = new Foo (); 8 | b.x = 2; 9 | b.y = 3; 10 | 11 | var result1 = a.value(); 12 | var result2 = b.value(); 13 | result = result1 == 3 && result2 == 5; 14 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/TinyJS_MathFunctions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TinyJS.h" 4 | 5 | //------------------------------------------------------------------------ 6 | namespace TJS { 7 | 8 | /// Register useful math. functions with the TinyJS interpreter 9 | void registerMathFunctions (CTinyJS* tinyJS); 10 | 11 | //------------------------------------------------------------------------ 12 | } // TJS 13 | -------------------------------------------------------------------------------- /vstgui/lib/private/enabledeprecatedmessage.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #ifdef __clang__ 6 | #pragma clang diagnostic pop 7 | #elif defined __GNUC__ 8 | #pragma GCC diagnostic pop 9 | #elif _MSC_VER 10 | #pragma warning(pop) 11 | #else 12 | #endif 13 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/progress/progress_2.00x.imagestitch: -------------------------------------------------------------------------------- 1 | tsmi(($@2x00.png@2x01.png@2x02.png@2x03.png@2x04.png@2x05.png@2x06.png@2x07.png@2x08.png@2x09.png@2x10.png@2x11.png@2x12.png@2x13.png@2x14.png@2x15.png@2x16.png@2x17.png@2x18.png@2x19.png@2x20.png@2x21.png@2x22.png@2x23.png@2x24.png@2x25.png@2x26.png@2x27.png@2x28.png@2x29.png@2x30.png@2x31.png@2x32.png@2x33.png@2x34.png@2x35.png -------------------------------------------------------------------------------- /vstgui/tests/ios standalone/iOS Standalone/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import 6 | 7 | @interface AppDelegate : UIResponder 8 | 9 | @property (strong, nonatomic) UIWindow *window; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | cmake_minimum_required(VERSION 3.25.0) 3 | 4 | if(NOT PROJECT_NAME) 5 | set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15 CACHE STRING "") 6 | 7 | project(vstgui) 8 | set(VSTGUI_MAIN_PROJECT_BUILD 1) 9 | if(CMAKE_CONFIGURATION_TYPES) 10 | set(CMAKE_CONFIGURATION_TYPES Debug Release ReleaseLTO) 11 | endif() 12 | endif() 13 | 14 | add_subdirectory(vstgui) 15 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/scripts/test.js: -------------------------------------------------------------------------------- 1 | log (uiDesc.colorNames()); 2 | log (uiDesc.fontNames()); 3 | log (uiDesc.bitmapNames()); 4 | log (uiDesc.gradientNames()); 5 | log (uiDesc.controlTagNames()); 6 | 7 | //---------------------------- 8 | // iterate all subviews 9 | view.iterateFunc = function (child, context) { 10 | log (child.type); 11 | iterateSubViews (child, context, context.iterateFunc); 12 | }; 13 | 14 | iterateSubViews (view, view, view.iterateFunc); 15 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/AlertBoxDesign.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/standalone/include/fwd.h" 8 | 9 | namespace VSTGUI { 10 | namespace Standalone { 11 | 12 | WindowPtr makeAlertBoxDesignWindow (); 13 | 14 | } // Standalone 15 | } // VSTGUI 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = 6 | insert_final_newline = true 7 | vc_generate_documentation_comments = doxygen_slash_star 8 | 9 | [*.{c,h,cpp,hpp,m,mm,js}] 10 | indent_style = tab 11 | indent_size = 4 12 | trim_trailing_whitespace = true 13 | 14 | [CMakeLists.txt] 15 | indent_style = space 16 | indent_size = 4 17 | trim_trailing_whitespace = true 18 | 19 | [*.cmake] 20 | indent_style = space 21 | indent_size = 4 22 | trim_trailing_whitespace = true 23 | -------------------------------------------------------------------------------- /vstgui/tests/ios standalone/iOS Standalone/main.m: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import 6 | 7 | #import "AppDelegate.h" 8 | 9 | int main(int argc, char * argv[]) 10 | { 11 | @autoreleasepool { 12 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/VSTGUICommand.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "VSTGUICommand.h" 6 | 7 | //------------------------------------------------------------------------ 8 | @implementation VSTGUICommand 9 | 10 | - (const VSTGUI::Standalone::Detail::CommandWithKey&)command 11 | { 12 | return self->_cmd; 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test015.js: -------------------------------------------------------------------------------- 1 | // Number definition from http://en.wikipedia.org/wiki/JavaScript_syntax 2 | a = 345; // an "integer", although there is only one numeric type in JavaScript 3 | b = 34.5; // a floating-point number 4 | c = 3.45e2; // another floating-point, equivalent to 345 5 | d = 0377; // an octal integer equal to 255 6 | e = 0xFF; // a hexadecimal integer equal to 255, digits represented by the letters A-F may be upper 7 | // or lowercase 8 | 9 | result = a == 345 && b * 10 == 345 && c == 345 && d == 255 && e == 255; 10 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/scripts/changecoloronfocus.js: -------------------------------------------------------------------------------- 1 | colors = []; 2 | colors["black"] = "black"; 3 | colors["white"] = "white"; 4 | 5 | view.onLostFocus = function (view) { 6 | view.setAttribute("font-color", colors["white"]); 7 | view.setAttribute("back-color", colors["black"]); 8 | view.setAttribute("frame-color", colors["white"]); 9 | }; 10 | 11 | view.onTookFocus = function (view) { 12 | view.setAttribute("font-color", "navy"); 13 | view.setAttribute("back-color", "teal"); 14 | view.setAttribute("frame-color", "midnightblue"); 15 | }; 16 | -------------------------------------------------------------------------------- /vstgui/tests/gfxtest/source/drawdevicetests.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | //------------------------------------------------------------------------ 8 | namespace VSTGUI { 9 | namespace Standalone { 10 | 11 | void makeDrawDeviceTestsWindow (); 12 | 13 | //------------------------------------------------------------------------ 14 | } // Standalone 15 | } // VSTGUI 16 | -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/source/startupcontroller.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | //------------------------------------------------------------------------ 8 | namespace VSTGUI { 9 | namespace ImageStitcher { 10 | 11 | void showStartupController (); 12 | 13 | //------------------------------------------------------------------------ 14 | } // ImageStitcher 15 | } // VSTGUI 16 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/Makefile: -------------------------------------------------------------------------------- 1 | CC=g++ 2 | CFLAGS=-c -g -Wall -rdynamic -D_DEBUG 3 | LDFLAGS=-g -rdynamic 4 | 5 | SOURCES= \ 6 | TinyJS.cpp \ 7 | TinyJS_Functions.cpp \ 8 | TinyJS_MathFunctions.cpp 9 | 10 | OBJECTS=$(SOURCES:.cpp=.o) 11 | 12 | all: run_tests Script 13 | 14 | run_tests: run_tests.o $(OBJECTS) 15 | $(CC) $(LDFLAGS) run_tests.o $(OBJECTS) -o $@ 16 | 17 | Script: Script.o $(OBJECTS) 18 | $(CC) $(LDFLAGS) Script.o $(OBJECTS) -o $@ 19 | 20 | .cpp.o: 21 | $(CC) $(CFLAGS) $< -o $@ 22 | 23 | clean: 24 | rm -f run_tests Script run_tests.o Script.o $(OBJECTS) 25 | -------------------------------------------------------------------------------- /vstgui/vstgui_standalone_mac.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "vstgui_standalone.cpp" 6 | #import "standalone/source/platform/mac/macapplication.mm" 7 | #import "standalone/source/platform/mac/maccommondirectories.mm" 8 | #import "standalone/source/platform/mac/macpreference.mm" 9 | #import "standalone/source/platform/mac/macwindow.mm" 10 | #import "standalone/source/platform/mac/VSTGUICommand.mm" 11 | -------------------------------------------------------------------------------- /vstgui/vstgui_standalone.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "standalone/source/application.cpp" 6 | #include "standalone/source/async.cpp" 7 | #include "standalone/source/uidescriptionwindowcontroller.cpp" 8 | #include "standalone/source/window.cpp" 9 | #include "standalone/source/genericalertbox.cpp" 10 | #include "standalone/source/shareduiresources.cpp" 11 | #include "standalone/source/helpers/value.cpp" 12 | -------------------------------------------------------------------------------- /vstgui/lib/private/disabledeprecatedmessage.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #ifdef __clang__ 6 | #pragma clang diagnostic push 7 | #pragma clang diagnostic ignored "-Wdeprecated" 8 | #elif defined __GNUC__ 9 | #pragma GCC diagnostic push 10 | #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 11 | #elif _MSC_VER 12 | #pragma warning(push) 13 | #pragma warning(disable : 4996) // deprecated 14 | #else 15 | #endif 16 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test014.js: -------------------------------------------------------------------------------- 1 | // Variable creation and scope from http://en.wikipedia.org/wiki/JavaScript_syntax 2 | x = 0; // A global variable 3 | var y = 'Hello!'; // Another global variable 4 | z = 0; // yet another global variable 5 | 6 | function f () 7 | { 8 | var z = 'foxes'; // A local variable 9 | twenty = 20; // Global because keyword var is not used 10 | return x; // We can use x here because it is global 11 | } 12 | // The value of z is no longer available 13 | 14 | // testing 15 | blah = f (); 16 | result = blah == 0 && z != 'foxes' && twenty == 20; 17 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/42tests/test004.js: -------------------------------------------------------------------------------- 1 | // generator-test 2 | 3 | function fibonacci () 4 | { 5 | var fn1 = 1; 6 | var fn2 = 1; 7 | while (1) 8 | { 9 | var current = fn2; 10 | fn2 = fn1; 11 | fn1 = fn1 + current; 12 | var reset = yield current; 13 | if (reset) 14 | { 15 | fn1 = 1; 16 | fn2 = 1; 17 | } 18 | } 19 | } 20 | 21 | var generator = fibonacci (); 22 | 23 | generator.next(); // 1 24 | generator.next(); // 1 25 | generator.next(); // 2 26 | generator.next(); // 3 27 | generator.next(); // 5 28 | 29 | result = generator.next() == 8 && generator.send(true) == 1; 30 | -------------------------------------------------------------------------------- /vstgui/vstgui_standalone_win32.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "vstgui_standalone.cpp" 6 | #include "standalone/source/platform/win32/win32application.cpp" 7 | #include "standalone/source/platform/win32/win32commondirectories.cpp" 8 | #include "standalone/source/platform/win32/win32menu.cpp" 9 | #include "standalone/source/platform/win32/win32preference.cpp" 10 | #include "standalone/source/platform/win32/win32window.cpp" 11 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/source/mandelbrotwindow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/standalone/include/fwd.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace Mandelbrot { 11 | 12 | VSTGUI::Standalone::WindowPtr makeMandelbrotWindow (); 13 | 14 | //------------------------------------------------------------------------ 15 | } // Mandelbrot 16 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/winfileselector.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformfileselector.h" 8 | 9 | #if WINDOWS 10 | 11 | #include "win32frame.h" 12 | 13 | namespace VSTGUI { 14 | 15 | //----------------------------------------------------------------------------- 16 | PlatformFileSelectorPtr createWinFileSelector (PlatformFileSelectorStyle style, HWND parent); 17 | 18 | } // VSTGUI 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/VSTGUICommand.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #import "../../application.h" 8 | #import 9 | 10 | //------------------------------------------------------------------------ 11 | @interface VSTGUICommand : NSObject 12 | @property VSTGUI::Standalone::Detail::CommandWithKey cmd; 13 | 14 | - (const VSTGUI::Standalone::Detail::CommandWithKey&)command; 15 | @end 16 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformstring.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguibase.h" 8 | 9 | /// @cond ignore 10 | 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | class IPlatformString : public AtomicReferenceCounted 15 | { 16 | public: 17 | virtual void setUTF8String (UTF8StringPtr utf8String) = 0; 18 | }; 19 | 20 | } // VSTGUI 21 | 22 | /// @endcond 23 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/metalwindow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/standalone/include/fwd.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | 13 | WindowPtr makeNewMetalExampleWindow (); 14 | 15 | //------------------------------------------------------------------------ 16 | } // Standalone 17 | } // VSTGUI 18 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/direct3dwindow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/standalone/include/fwd.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | 13 | WindowPtr makeNewDirect3DExampleWindow (); 14 | 15 | //------------------------------------------------------------------------ 16 | } // Standalone 17 | } // VSTGUI 18 | -------------------------------------------------------------------------------- /vstgui/vstgui_uidescription.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #ifndef __vstgui_uidescription__ 6 | #define __vstgui_uidescription__ 7 | 8 | #include "lib/vstguibase.h" 9 | #include "uidescription/uidescription.h" 10 | #include "uidescription/uidescriptionaddonregistry.h" 11 | #include "uidescription/uiviewcreator.h" 12 | #include "uidescription/uiviewfactory.h" 13 | #include "uidescription/uiattributes.h" 14 | #include "uidescription/delegationcontroller.h" 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /vstgui/lib/iscalefactorchangedlistener.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | class IScaleFactorChangedListener 13 | { 14 | public: 15 | virtual ~IScaleFactorChangedListener () noexcept = default; 16 | 17 | virtual void onScaleFactorChanged (CFrame* frame, double newScaleFactor) = 0; 18 | }; 19 | 20 | } // VSTGUI 21 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/macfileselector.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #if !TARGET_OS_IPHONE 8 | 9 | #include "../iplatformfileselector.h" 10 | #include "cocoa/nsviewframe.h" 11 | 12 | namespace VSTGUI { 13 | 14 | //----------------------------------------------------------------------------- 15 | PlatformFileSelectorPtr createCocoaFileSelector (PlatformFileSelectorStyle style, 16 | NSViewFrame* frame); 17 | 18 | } // VSTGUI 19 | 20 | #endif 21 | 22 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/igridprocessor.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../lib/vstguibase.h" 8 | 9 | #if VSTGUI_LIVE_EDITING 10 | 11 | namespace VSTGUI { 12 | 13 | //---------------------------------------------------------------------------------------------------- 14 | class IGridProcessor : virtual public IReference 15 | { 16 | public: 17 | virtual void process (CPoint& p) = 0; 18 | }; 19 | 20 | } // VSTGUI 21 | 22 | #endif // VSTGUI_LIVE_EDITING 23 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/cocoa/nsviewoptionmenu.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../iplatformoptionmenu.h" 8 | 9 | #if MAC_COCOA 10 | 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | class NSViewOptionMenu : public IPlatformOptionMenu 15 | { 16 | public: 17 | void popup (COptionMenu* optionMenu, const Callback& callback) override; 18 | }; 19 | 20 | } // VSTGUI 21 | 22 | #endif // MAC_COCOA 23 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/gdk/gdkapplication.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | namespace Platform { 13 | namespace GDK { 14 | 15 | Glib::RefPtr gtkApp (); 16 | 17 | //------------------------------------------------------------------------ 18 | } // GDK 19 | } // Platform 20 | } // Standalone 21 | } // VSTGUI 22 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/createuidescdata.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo `pwd` 3 | mkdir -p "$1" 4 | 5 | rm -f "$1/editoruidesc.h" 6 | echo -n "constexpr auto editorUIDesc = R\"====(" >> "$1/editoruidesc.h" 7 | cat uidescriptioneditor.uidesc >> "$1/editoruidesc.h" 8 | echo ")====\";" >> "$1/editoruidesc.h" 9 | 10 | echo -n "constexpr auto editorUILightDesc = R\"====(" >> "$1/editoruidesc.h" 11 | cat uidescriptioneditor_res_light.uidesc >> "$1/editoruidesc.h" 12 | echo ")====\";" >> "$1/editoruidesc.h" 13 | 14 | echo -n "constexpr auto editorUIDarkDesc = R\"====(" >> "$1/editoruidesc.h" 15 | cat uidescriptioneditor_res_dark.uidesc >> "$1/editoruidesc.h" 16 | echo ")====\";" >> "$1/editoruidesc.h" 17 | 18 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test022.42.js: -------------------------------------------------------------------------------- 1 | /* Javascript eval */ 2 | 3 | mystructure = { 4 | a: 39, 5 | b: 3, 6 | addStuff: function (c, d) { return c + d; } 7 | }; 8 | 9 | mystring = JSON.stringify(mystructure, undefined); 10 | 11 | // 42-tiny-js change begin ---> 12 | // in JavaScript eval is not JSON.parse 13 | // use parentheses or JSON.parse instead 14 | // mynewstructure = eval(mystring); 15 | mynewstructure = eval ("(" + mystring + ")"); 16 | mynewstructure2 = JSON.parse(mystring); 17 | //<--- 42-tiny-js change end 18 | 19 | result = mynewstructure.addStuff(mynewstructure.a, mynewstructure.b) == 42 && 20 | mynewstructure2.addStuff(mynewstructure2.a, mynewstructure2.b) == 42; 21 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/lib/platform_helper.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../lib/vstguibase.h" 6 | #include "../../../lib/platform/iplatformframe.h" 7 | 8 | namespace VSTGUI { 9 | namespace UnitTest { 10 | 11 | struct PlatformParentHandle : public CBaseObject 12 | { 13 | static SharedPointer create (); 14 | 15 | virtual PlatformType getType () const = 0; 16 | virtual void* getHandle () const = 0; 17 | virtual void forceRedraw () = 0; 18 | }; 19 | 20 | } // UnitTest 21 | } // VSTGUI 22 | 23 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/direct2d/d2dgradient.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../common/gradientbase.h" 8 | 9 | #if WINDOWS 10 | 11 | #include 12 | 13 | namespace VSTGUI { 14 | 15 | //----------------------------------------------------------------------------- 16 | class D2DGradient : public PlatformGradientBase 17 | { 18 | public: 19 | ID2D1GradientStopCollection* create (ID2D1RenderTarget* renderTarget, float globalAlpha) const; 20 | }; 21 | 22 | } // VSTGUI 23 | 24 | #endif // WINDOWS 25 | -------------------------------------------------------------------------------- /vstgui/uidescription/uidescriptionfwd.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | namespace VSTGUI { 8 | 9 | class UIAttributes; 10 | class IController; 11 | class IUIDescription; 12 | class UIDescription; 13 | class UIDescriptionListener; 14 | class UIDescriptionListenerAdapter; 15 | class IViewFactory; 16 | class InputStream; 17 | class OutputStream; 18 | class IBitmapCreator; 19 | class IBitmapCreator2; 20 | class IContentProvider; 21 | class MemoryContentProvider; 22 | class InputStreamContentProvider; 23 | class UIScripting; 24 | 25 | } // VSTGUI 26 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/win32bitmapbase.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformbitmap.h" 8 | #include "../platformfwd.h" 9 | 10 | #if WINDOWS 11 | 12 | #include 13 | struct IStream; 14 | 15 | namespace VSTGUI { 16 | 17 | class Win32BitmapBase : public IPlatformBitmap 18 | { 19 | public: 20 | virtual HBITMAP createHBitmap () = 0; 21 | virtual bool loadFromStream (IStream* stream) = 0; 22 | virtual PNGBitmapBuffer createMemoryPNGRepresentation () = 0; 23 | }; 24 | 25 | } // VSTGUI 26 | 27 | #endif // WINDOWS 28 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test019.js: -------------------------------------------------------------------------------- 1 | // built-in functions 2 | 3 | foo = "foo bar stuff"; 4 | r = Math.rand(); 5 | 6 | parsed = Integer.parseInt("42"); 7 | parsedHex = Integer.parseInt("0xFF"); 8 | parsedOct = Integer.parseInt("011"); 9 | parsedBig = Integer.parseInt("4294967296"); 10 | 11 | aStr = "ABCD"; 12 | aChar = aStr.charAt(0); 13 | 14 | obj1 = new Object (); 15 | obj1.food = "cake"; 16 | obj1.desert = "pie"; 17 | 18 | obj2 = obj1.clone(); 19 | obj2.food = "kittens"; 20 | 21 | result = foo.length == 13 && foo.indexOf("bar") == 4 && foo.substring(8, 13) == "stuff" && 22 | parsed == 42 && Integer.valueOf(aChar) == 65 && obj1.food == "cake" && 23 | obj2.desert == "pie" && parsedHex == 255 && parsedOct == 9 && parsedBig == 4294967296; 24 | -------------------------------------------------------------------------------- /vstgui/vstgui_linux.cpp: -------------------------------------------------------------------------------- 1 | #include "vstgui.cpp" 2 | 3 | #include "lib/platform/linux/linuxstring.cpp" 4 | 5 | #include "lib/platform/linux/x11dragging.cpp" 6 | #include "lib/platform/linux/x11fileselector.cpp" 7 | #include "lib/platform/linux/x11frame.cpp" 8 | #include "lib/platform/linux/x11platform.cpp" 9 | #include "lib/platform/linux/x11timer.cpp" 10 | #include "lib/platform/linux/x11utils.cpp" 11 | 12 | #include "lib/platform/linux/cairobitmap.cpp" 13 | #include "lib/platform/linux/cairographicscontext.cpp" 14 | #include "lib/platform/linux/cairofont.cpp" 15 | #include "lib/platform/linux/cairogradient.cpp" 16 | #include "lib/platform/linux/cairopath.cpp" 17 | 18 | #include "lib/platform/linux/linuxfactory.cpp" 19 | #include "lib/platform/linux/linuxtaskexecutor.cpp" 20 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformgradient.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../ccolor.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | class IPlatformGradient 13 | { 14 | public: 15 | virtual void setColorStops (const GradientColorStopMap& colorStops) = 0; 16 | virtual void addColorStop (const GradientColorStop& colorStop) = 0; 17 | virtual const GradientColorStopMap& getColorStops () const = 0; 18 | 19 | virtual ~IPlatformGradient () noexcept = default; 20 | }; 21 | 22 | } // VSTGUI 23 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/source/touchbarsupport.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/lib/platform/iplatformframe.h" 8 | #include "vstgui/standalone/include/fwd.h" 9 | 10 | namespace Mandelbrot { 11 | 12 | #if MAC && defined (MAC_OS_X_VERSION_10_12) 13 | void installTouchbarSupport (VSTGUI::IPlatformFrameTouchBarExtension*, const VSTGUI::Standalone::ValuePtr&); 14 | #else 15 | inline void installTouchbarSupport (VSTGUI::IPlatformFrameTouchBarExtension*, const VSTGUI::Standalone::ValuePtr&) {} 16 | #endif // MAC 17 | 18 | } // Mandelbrot 19 | 20 | -------------------------------------------------------------------------------- /vstgui/lib/platform/linux/x11fileselector.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformfileselector.h" 8 | #include "x11frame.h" 9 | 10 | //----------------------------------------------------------------------------- 11 | namespace VSTGUI { 12 | namespace X11 { 13 | 14 | //----------------------------------------------------------------------------- 15 | PlatformFileSelectorPtr createFileSelector (PlatformFileSelectorStyle style, Frame* frame); 16 | 17 | //----------------------------------------------------------------------------- 18 | } // X11 19 | } // VSTGUI 20 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformtimer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguibase.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | class IPlatformTimerCallback 13 | { 14 | public: 15 | virtual void fire () = 0; 16 | }; 17 | 18 | //----------------------------------------------------------------------------- 19 | class IPlatformTimer : public AtomicReferenceCounted 20 | { 21 | public: 22 | virtual bool start (uint32_t fireTime) = 0; 23 | virtual bool stop () = 0; 24 | }; 25 | 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/cocoa/autoreleasepool.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "autoreleasepool.h" 6 | 7 | #if MAC 8 | 9 | #import 10 | 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | AutoreleasePool::AutoreleasePool () 15 | { 16 | pool = [[NSAutoreleasePool alloc] init]; 17 | } 18 | 19 | //----------------------------------------------------------------------------- 20 | AutoreleasePool::~AutoreleasePool () noexcept 21 | { 22 | [pool drain]; 23 | } 24 | 25 | } // VSTGUI 26 | 27 | #endif // MAC 28 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/lib/platform_helper_linux.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "platform_helper.h" 6 | 7 | namespace VSTGUI { 8 | namespace UnitTest { 9 | 10 | SharedPointer PlatformParentHandle::create () 11 | { 12 | return nullptr; 13 | } 14 | 15 | PlatformType PlatformParentHandle::getType () const 16 | { 17 | return PlatformType::kX11EmbedWindowID; 18 | } 19 | 20 | void* PlatformParentHandle::getHandle () const 21 | { 22 | return nullptr; 23 | } 24 | 25 | void PlatformParentHandle::forceRedraw () 26 | { 27 | 28 | } 29 | 30 | } // UnitTest 31 | } // VSTGUI 32 | 33 | -------------------------------------------------------------------------------- /vstgui/uidescription/detail/locale.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | namespace VSTGUI { 8 | namespace Detail { 9 | 10 | //----------------------------------------------------------------------------- 11 | struct Locale 12 | { 13 | Locale () 14 | { 15 | origLocal = std::locale (); 16 | std::locale::global (std::locale::classic ()); 17 | } 18 | 19 | ~Locale () noexcept 20 | { 21 | std::locale::global (origLocal); 22 | } 23 | 24 | std::locale origLocal; 25 | }; 26 | 27 | //------------------------------------------------------------------------ 28 | } // Detail 29 | } // VSTGUI 30 | -------------------------------------------------------------------------------- /.github/workflows/cmake_macos.yml: -------------------------------------------------------------------------------- 1 | name: macOS Build 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ${{ matrix.os }} 8 | 9 | strategy: 10 | matrix: 11 | os: [macos-14, macos-15, macos-26] 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - uses: ./.github/actions/cmake 17 | with: 18 | source-dir: '${{github.workspace}}' 19 | build-dir: '${{github.workspace}}/build' 20 | build-type: 'Debug' 21 | build-vstgui-standalone: ON 22 | 23 | - uses: ./.github/actions/cmake 24 | with: 25 | source-dir: '${{github.workspace}}' 26 | build-dir: '${{github.workspace}}/build-non-deprecated' 27 | build-type: 'Debug' 28 | build-vstgui-standalone: ON 29 | enable-deprecated-methods: OFF 30 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/macclipboard.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../vstguibase.h" 8 | 9 | #ifdef __OBJC__ 10 | @class NSPasteboard; 11 | #else 12 | struct NSPasteboard; 13 | #endif 14 | 15 | namespace VSTGUI { 16 | class IDataPackage; 17 | 18 | namespace MacClipboard { 19 | 20 | extern SharedPointer createClipboardDataPackage (); 21 | extern SharedPointer createDragDataPackage (NSPasteboard* pasteboard); 22 | extern void setClipboard (const SharedPointer& data); 23 | extern const char* getPasteboardBinaryType (); 24 | 25 | }} // namespaces 26 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/macutilities.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #import "../../../../lib/platform/mac/macstring.h" 8 | 9 | #import 10 | 11 | //------------------------------------------------------------------------ 12 | inline NSString* stringFromUTF8String (const VSTGUI::UTF8String& str) 13 | { 14 | auto macStr = dynamic_cast (str.getPlatformString ()); 15 | if (macStr && macStr->getCFString ()) 16 | { 17 | return (__bridge NSString*)macStr->getCFString (); 18 | } 19 | return [NSString stringWithUTF8String:str.data ()]; 20 | } 21 | -------------------------------------------------------------------------------- /.github/workflows/cmake_windows.yml: -------------------------------------------------------------------------------- 1 | name: Windows build 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ${{ matrix.os }} 8 | 9 | strategy: 10 | matrix: 11 | os: [windows-2022, windows-2025] 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - uses: ./.github/actions/cmake 17 | with: 18 | source-dir: '${{github.workspace}}' 19 | build-dir: '${{github.workspace}}/build' 20 | build-type: 'Debug' 21 | build-vstgui-standalone: ON 22 | 23 | - uses: ./.github/actions/cmake 24 | with: 25 | source-dir: '${{github.workspace}}' 26 | build-dir: '${{github.workspace}}/build-non-deprecated' 27 | build-type: 'Debug' 28 | build-vstgui-standalone: ON 29 | enable-deprecated-methods: OFF 30 | -------------------------------------------------------------------------------- /vstgui/standalone/source/genericalertbox.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../include/ialertbox.h" 8 | #include "../include/iuidescwindow.h" 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace Standalone { 13 | namespace Detail { 14 | 15 | using AlertBoxCallback = std::function; 16 | WindowPtr createAlertBox (const AlertBoxConfig& config, const AlertBoxCallback& callback); 17 | 18 | //------------------------------------------------------------------------ 19 | } // Detail 20 | } // Standalone 21 | } // VSTGUI 22 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/metaltypes.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include 5 | 6 | // Buffer index values shared between shader and C code to ensure Metal shader buffer inputs 7 | // match Metal API buffer set calls. 8 | typedef enum AAPLVertexInputIndex 9 | { 10 | AAPLVertexInputIndexVertices = 0, 11 | AAPLVertexInputIndexViewportSize = 1, 12 | } AAPLVertexInputIndex; 13 | 14 | // This structure defines the layout of vertices sent to the vertex 15 | // shader. This header is shared between the .metal shader and C code, to guarantee that 16 | // the layout of the vertex array in the C code matches the layout that the .metal 17 | // vertex shader expects. 18 | typedef struct 19 | { 20 | vector_float2 position; 21 | vector_float4 color; 22 | } AAPLVertex; 23 | 24 | 25 | -------------------------------------------------------------------------------- /vstgui/uidescription/icontentprovider.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../lib/vstguibase.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | 12 | //----------------------------------------------------------------------------- 13 | class IContentProvider 14 | { 15 | public: 16 | virtual uint32_t readRawData (int8_t* buffer, uint32_t size) = 0; 17 | virtual void rewind () = 0; 18 | 19 | virtual ~IContentProvider () noexcept = default; 20 | }; 21 | 22 | //------------------------------------------------------------------------ 23 | } // VSTGUI 24 | -------------------------------------------------------------------------------- /vstgui/lib/vstguiinit.cpp: -------------------------------------------------------------------------------- 1 | // in the LICENSE file found in the top-level directory of this 2 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 3 | 4 | #include "platform/platformfactory.h" 5 | #include "cfont.h" 6 | 7 | //----------------------------------------------------------------------------- 8 | namespace VSTGUI { 9 | 10 | //----------------------------------------------------------------------------- 11 | void init (PlatformInstanceHandle instance) 12 | { 13 | initPlatform (instance); 14 | CFontDesc::init (); 15 | } 16 | 17 | //----------------------------------------------------------------------------- 18 | void exit () 19 | { 20 | CFontDesc::cleanup (); 21 | exitPlatform (); 22 | } 23 | 24 | //----------------------------------------------------------------------------- 25 | } // VSTGUI 26 | 27 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test020.js: -------------------------------------------------------------------------------- 1 | // Test reported by sterowang, Variable attribute defines conflict with function. 2 | /* 3 | What steps will reproduce the problem? 4 | 1. function a (){}; 5 | 2. b = {}; 6 | 3. b.a = {}; 7 | 4. a(); 8 | 9 | What is the expected output? What do you see instead? 10 | Function "a" should be called. But the error message "Error Expecting 'a' 11 | to be a function at (line: 1, col: 1)" received. 12 | 13 | What version of the product are you using? On what operating system? 14 | Version 1.6 is used on Cent OS 5.4 15 | 16 | 17 | Please provide any additional information below. 18 | When using dump() to show symbols, found the function "a" is reassigned to 19 | "{}" by "b.a = {};" call. 20 | */ 21 | 22 | function a () {}; 23 | b = {}; 24 | b.a = {}; 25 | a (); 26 | 27 | result = 1; 28 | -------------------------------------------------------------------------------- /vstgui/lib/platform/linux/linuxstring.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "linuxstring.h" 6 | 7 | //------------------------------------------------------------------------ 8 | namespace VSTGUI { 9 | 10 | //------------------------------------------------------------------------ 11 | LinuxString::LinuxString (UTF8StringPtr utf8String) : str (utf8String) {} 12 | 13 | //------------------------------------------------------------------------ 14 | void LinuxString::setUTF8String (UTF8StringPtr utf8String) 15 | { 16 | str = utf8String ? utf8String : ""; 17 | } 18 | 19 | //------------------------------------------------------------------------ 20 | } 21 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/direct2d/d2dbitmapcache.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "d2dbitmap.h" 8 | 9 | #if WINDOWS 10 | 11 | struct ID2D1Device; 12 | 13 | namespace VSTGUI { 14 | namespace D2DBitmapCache { 15 | 16 | void init (); 17 | void terminate (); 18 | 19 | ID2D1Bitmap* getBitmap (D2DBitmap* bitmap, ID2D1RenderTarget* renderTarget, 20 | ID2D1Device* device = nullptr); 21 | 22 | void removeBitmap (D2DBitmap* bitmap); 23 | void removeRenderTarget (ID2D1RenderTarget* renderTarget); 24 | void removeDevice (ID2D1Device* device); 25 | 26 | } // D2DBitmapCache 27 | } // namespace VSTGUI 28 | 29 | #endif // WINDOWS 30 | -------------------------------------------------------------------------------- /vstgui/tests/base64codecspeed/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # VSTGUI base64codecspeed 3 | ########################################################################################## 4 | set(target base64codecspeed) 5 | 6 | set(${target}_sources 7 | "main.cpp" 8 | "../../lib/vstguidebug.cpp" 9 | ) 10 | 11 | ########################################################################################## 12 | include_directories(../../../) 13 | add_executable(${target} 14 | ${${target}_sources} 15 | ) 16 | target_link_libraries(${target} 17 | ${${target}_PLATFORM_LIBS} 18 | ) 19 | 20 | vstgui_set_cxx_version(${target} ${VSTGUI_CXX_VERSION}) 21 | set_target_properties(${target} PROPERTIES ${APP_PROPERTIES} FOLDER Tests) 22 | target_compile_definitions(${target} ${VSTGUI_COMPILE_DEFINITIONS}) 23 | -------------------------------------------------------------------------------- /vstgui/thirdparty/expat/winconfig.h: -------------------------------------------------------------------------------- 1 | /*================================================================ 2 | ** Copyright 2000, Clark Cooper 3 | ** All rights reserved. 4 | ** 5 | ** This is free software. You are permitted to copy, distribute, or modify 6 | ** it under the terms of the MIT/X license (contained in the COPYING file 7 | ** with this distribution.) 8 | */ 9 | 10 | #ifndef WINCONFIG_H 11 | #define WINCONFIG_H 12 | 13 | #define WIN32_LEAN_AND_MEAN 14 | #include 15 | #undef WIN32_LEAN_AND_MEAN 16 | 17 | #include 18 | #include 19 | 20 | #define XML_NS 1 21 | #define XML_DTD 1 22 | #define XML_CONTEXT_BYTES 1024 23 | 24 | /* we will assume all Windows platforms are little endian */ 25 | #define BYTEORDER 1234 26 | 27 | /* Windows has memmove() available. */ 28 | #define HAVE_MEMMOVE 29 | 30 | #endif /* ndef WINCONFIG_H */ 31 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test016.js: -------------------------------------------------------------------------------- 1 | // Undefined/null from http://en.wikipedia.org/wiki/JavaScript_syntax 2 | var testUndefined; // variable declared but not defined, set to value of undefined 3 | var testObj = {}; 4 | 5 | result = 1; 6 | if (("" + testUndefined) != "undefined") 7 | result = 0; // test variable exists but value not defined, displays undefined 8 | if (("" + testObj.myProp) != "undefined") 9 | result = 0; // testObj exists, property does not, displays undefined 10 | if (!(undefined == null)) 11 | result = 0; // unenforced type during check, displays true 12 | if (undefined === null) 13 | result = 0; // enforce type during check, displays false 14 | 15 | if (null != undefined) 16 | result = 0; // unenforced type during check, displays true 17 | if (null === undefined) 18 | result = 0; // enforce type during check, displays false 19 | -------------------------------------------------------------------------------- /vstgui/lib/animation/itimingfunction.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguibase.h" 8 | 9 | namespace VSTGUI { 10 | namespace Animation { 11 | 12 | //----------------------------------------------------------------------------- 13 | /// @brief Animation timing function interface 14 | /// @ingroup new_in_4_0 15 | //----------------------------------------------------------------------------- 16 | class ITimingFunction 17 | { 18 | public: 19 | virtual ~ITimingFunction () noexcept = default; 20 | 21 | virtual float getPosition (uint32_t milliseconds) = 0; 22 | virtual bool isDone (uint32_t milliseconds) = 0; 23 | }; 24 | 25 | } // Animation 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/cocoa/autoreleasepool.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../vstguibase.h" 8 | 9 | #if MAC 10 | 11 | #ifdef __OBJC__ 12 | @class NSAutoreleasePool; 13 | #else 14 | struct NSAutoreleasePool; 15 | #endif // __OBJC__ 16 | 17 | namespace VSTGUI { 18 | 19 | //------------------------------------------------------------------------------------ 20 | class AutoreleasePool 21 | { 22 | public: 23 | AutoreleasePool (); 24 | ~AutoreleasePool () noexcept; 25 | 26 | //------------------------------------------------------------------------------------ 27 | protected: 28 | NSAutoreleasePool* pool; 29 | }; 30 | 31 | } // VSTGUI 32 | 33 | #endif // MAC 34 | -------------------------------------------------------------------------------- /vstgui/vstgui_ios.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "vstgui.cpp" 6 | 7 | #import "lib/platform/mac/coregraphicsdevicecontext.mm" 8 | #import "lib/platform/mac/macglobals.cpp" 9 | #import "lib/platform/mac/cgbitmap.cpp" 10 | #import "lib/platform/mac/quartzgraphicspath.cpp" 11 | #import "lib/platform/mac/macstring.mm" 12 | #import "lib/platform/mac/mactaskexecutor.mm" 13 | #import "lib/platform/mac/mactimer.cpp" 14 | #import "lib/platform/mac/macfactory.mm" 15 | #import "lib/platform/mac/cfontmac.mm" 16 | #import "lib/platform/mac/caviewlayer.mm" 17 | #import "lib/platform/mac/ios/uiviewframe.mm" 18 | #import "lib/platform/mac/ios/uitextedit.mm" 19 | #import "lib/platform/mac/ios/uiopenglview.mm" 20 | -------------------------------------------------------------------------------- /vstgui/lib/platform/linux/linuxstring.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformstring.h" 8 | #include 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | 13 | //------------------------------------------------------------------------ 14 | class LinuxString : public IPlatformString 15 | { 16 | public: 17 | LinuxString (UTF8StringPtr utf8String); 18 | virtual void setUTF8String (UTF8StringPtr utf8String) override; 19 | 20 | const std::string& get () const { return str; } 21 | private: 22 | std::string str; 23 | }; 24 | 25 | //------------------------------------------------------------------------ 26 | } 27 | -------------------------------------------------------------------------------- /vstgui/uidescription/doc.h: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | @page uidescription Creating user interfaces 4 | 5 | You can create user interfaces in VSTGUI via an uidescription file instead of using c++ code to create views and controls, just controller code needs to be coded in c++. 6 | 7 | > The format has changed from XML to JSON in version 4.10, due to security and performance characteristics of XML and JSON. 8 | 9 | It's preferred to not write the JSON file by hand, but use the included WYSIWYG editor. 10 | You can use the editor when targeting a standalone application or an editor for a VST3 plug-in. If you need this for something else you can write the glue code yourself. 11 | 12 | - @subpage page_uidescription_editor 13 | - @subpage the_view_system 14 | - @subpage create_your_own_view 15 | - @ref standalone_library 16 | 17 |
18 | 19 | > For the old documentation see @subpage uidescriptionXML 20 | 21 | */ -------------------------------------------------------------------------------- /vstgui/contrib/ciboxblurfilter.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../lib/cbitmapfilter.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace BitmapFilter { 12 | 13 | //------------------------------------------------------------------------ 14 | class CIBoxBlurFilter : public BitmapFilter::FilterBase 15 | { 16 | public: 17 | CIBoxBlurFilter (); 18 | 19 | bool run (bool replace) override; 20 | 21 | static IFilter* CreateFunction (IdStringPtr _name) { return new CIBoxBlurFilter (); } 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // BitmapFilter 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/thirdparty/expat/xmltok_impl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd 3 | See the file COPYING for copying permission. 4 | */ 5 | 6 | enum { 7 | BT_NONXML, 8 | BT_MALFORM, 9 | BT_LT, 10 | BT_AMP, 11 | BT_RSQB, 12 | BT_LEAD2, 13 | BT_LEAD3, 14 | BT_LEAD4, 15 | BT_TRAIL, 16 | BT_CR, 17 | BT_LF, 18 | BT_GT, 19 | BT_QUOT, 20 | BT_APOS, 21 | BT_EQUALS, 22 | BT_QUEST, 23 | BT_EXCL, 24 | BT_SOL, 25 | BT_SEMI, 26 | BT_NUM, 27 | BT_LSQB, 28 | BT_S, 29 | BT_NMSTRT, 30 | BT_COLON, 31 | BT_HEX, 32 | BT_DIGIT, 33 | BT_NAME, 34 | BT_MINUS, 35 | BT_OTHER, /* known not to be a name or name start character */ 36 | BT_NONASCII, /* might be a name or name start character */ 37 | BT_PERCNT, 38 | BT_LPAR, 39 | BT_RPAR, 40 | BT_AST, 41 | BT_PLUS, 42 | BT_COMMA, 43 | BT_VERBAR 44 | }; 45 | 46 | #include 47 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/detail/iscriptcontextinternal.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../uiscripting.h" 8 | #include 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace ScriptingInternal { 13 | 14 | static const std::string kAttrScript = "script"; 15 | 16 | //------------------------------------------------------------------------ 17 | struct IScriptContextInternal : public IScriptContext 18 | { 19 | virtual void onViewCreated (CView* view, const std::string& script) = 0; 20 | }; 21 | 22 | //------------------------------------------------------------------------ 23 | } // ScriptingInternal 24 | } // VSTGUI 25 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/macwindow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #import "../iplatformwindow.h" 8 | 9 | @class NSWindow; 10 | 11 | //------------------------------------------------------------------------ 12 | namespace VSTGUI { 13 | namespace Standalone { 14 | namespace Platform { 15 | namespace Mac { 16 | 17 | //------------------------------------------------------------------------ 18 | class IMacWindow : public IWindow 19 | { 20 | public: 21 | virtual NSWindow* getNSWindow () const = 0; 22 | virtual bool isPopup () const = 0; 23 | }; 24 | 25 | //------------------------------------------------------------------------ 26 | } // Mac 27 | } // Platform 28 | } // Standalone 29 | } // VSTGUI 30 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/gdk/gdkwindow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformwindow.h" 8 | 9 | extern "C" 10 | { 11 | typedef union _GdkEvent GdkEvent; 12 | typedef struct _GdkWindow GdkWindow; 13 | }; 14 | 15 | //------------------------------------------------------------------------ 16 | namespace VSTGUI { 17 | namespace Standalone { 18 | namespace Platform { 19 | namespace GDK { 20 | 21 | //------------------------------------------------------------------------ 22 | class IGdkWindow : public Interface 23 | { 24 | public: 25 | }; 26 | 27 | //------------------------------------------------------------------------ 28 | } // GDK 29 | } // Platform 30 | } // Standalone 31 | } // VSTGUI 32 | -------------------------------------------------------------------------------- /vstgui/tools/uidesccompressor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TargetName uidesccompressor) 2 | 3 | set(${TargetName}_sources 4 | main.cpp 5 | ) 6 | 7 | set(${TargetName}_PLATFORM_LIBS "") 8 | 9 | if(CMAKE_HOST_APPLE) 10 | set(${TargetName}_PLATFORM_LIBS 11 | "-framework Cocoa" 12 | "-framework OpenGL" 13 | "-framework QuartzCore" 14 | "-framework Accelerate" 15 | "-framework CoreAudio" 16 | ) 17 | endif() 18 | 19 | add_executable(${TargetName} 20 | ${${TargetName}_sources} 21 | ) 22 | target_link_libraries(${TargetName} 23 | vstgui 24 | vstgui_uidescription 25 | ${${TargetName}_PLATFORM_LIBS} 26 | ) 27 | target_include_directories(${TargetName} PRIVATE ../../../) 28 | 29 | vstgui_set_cxx_version(${TargetName} ${VSTGUI_CXX_VERSION}) 30 | set_target_properties(${TargetName} PROPERTIES ${APP_PROPERTIES} ${VSTGUI_TOOLS_FOLDER}) 31 | target_compile_definitions(${TargetName} ${VSTGUI_COMPILE_DEFINITIONS}) 32 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/win32optionmenu.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformoptionmenu.h" 8 | 9 | #if WINDOWS 10 | 11 | #include 12 | #include 13 | 14 | namespace VSTGUI { 15 | 16 | //----------------------------------------------------------------------------- 17 | class Win32OptionMenu final : public IPlatformOptionMenu 18 | { 19 | public: 20 | Win32OptionMenu (HWND windowHandle); 21 | 22 | void popup (COptionMenu* optionMenu, const Callback& callback) override; 23 | 24 | protected: 25 | HMENU createMenu (COptionMenu* menu, int32_t& offsetIdx); 26 | 27 | HWND windowHandle; 28 | 29 | std::list bitmaps; 30 | }; 31 | 32 | } // VSTGUI 33 | 34 | #endif // WINDOWS 35 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/ios/uitouchevent.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../itouchevent.h" 8 | 9 | #if VSTGUI_TOUCH_EVENT_HANDLING 10 | 11 | #ifdef __OBJC__ 12 | @class UITouch; 13 | #else 14 | struct UITouch; 15 | #endif 16 | 17 | namespace VSTGUI { 18 | 19 | class UITouchEvent : public ITouchEvent 20 | { 21 | public: 22 | typedef std::map NativeTouches; 23 | 24 | int32_t touchCounter; 25 | double currentTime; 26 | NativeTouches nativeTouches; 27 | 28 | UITouchEvent () : touchCounter (0) {} 29 | 30 | TouchMap& getTouchMap () { return touches; } 31 | double getTimeStamp () const override { return currentTime; } 32 | }; 33 | 34 | } // VSTGUI 35 | 36 | #endif // VSTGUI_TOUCH_EVENT_HANDLING 37 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformoptionmenu.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | /// @cond ignore 8 | 9 | #include "../vstguifwd.h" 10 | 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | struct PlatformOptionMenuResult 15 | { 16 | COptionMenu* menu; 17 | int32_t index; 18 | }; 19 | 20 | //----------------------------------------------------------------------------- 21 | class IPlatformOptionMenu : public AtomicReferenceCounted 22 | { 23 | public: 24 | using Callback = std::function; 25 | virtual void popup (COptionMenu* optionMenu, const Callback& callback) = 0; 26 | }; 27 | 28 | } // VSTGUI 29 | 30 | /// @endcond 31 | -------------------------------------------------------------------------------- /vstgui/lib/platform/platform_x11.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "iplatformframe.h" 8 | #include "platform_linux.h" 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | 13 | //------------------------------------------------------------------------ 14 | namespace X11 { 15 | class FrameConfig : public IPlatformFrameConfig 16 | { 17 | public: 18 | SharedPointer runLoop; 19 | }; 20 | 21 | //------------------------------------------------------------------------ 22 | class IX11Frame 23 | { 24 | public: 25 | virtual uint32_t getX11WindowID () const = 0; 26 | }; 27 | 28 | //------------------------------------------------------------------------ 29 | } // X11 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/macpreference.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #import "../../../include/ipreference.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | namespace Platform { 13 | namespace Mac { 14 | 15 | //------------------------------------------------------------------------ 16 | class MacPreference : public IPreference 17 | { 18 | public: 19 | bool set (const UTF8String& key, const UTF8String& value) override; 20 | Optional get (const UTF8String& key) override; 21 | }; 22 | 23 | //------------------------------------------------------------------------ 24 | } // Mac 25 | } // Platform 26 | } // Standalone 27 | } // VSTGUI 28 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformresourceinputstream.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | #include 9 | #include 10 | 11 | //----------------------------------------------------------------------------- 12 | namespace VSTGUI { 13 | 14 | //----------------------------------------------------------------------------- 15 | class IPlatformResourceInputStream 16 | { 17 | public: 18 | virtual ~IPlatformResourceInputStream () noexcept = default; 19 | 20 | virtual uint32_t readRaw (void* buffer, uint32_t size) = 0; 21 | virtual int64_t seek (int64_t pos, SeekMode mode) = 0; 22 | virtual int64_t tell () = 0; 23 | }; 24 | 25 | //----------------------------------------------------------------------------- 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/winstring.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformstring.h" 8 | 9 | #if WINDOWS 10 | 11 | #include 12 | 13 | namespace VSTGUI { 14 | 15 | //----------------------------------------------------------------------------- 16 | class WinString final : public IPlatformString 17 | { 18 | public: 19 | WinString (UTF8StringPtr utf8String); 20 | ~WinString () noexcept; 21 | 22 | void setUTF8String (UTF8StringPtr utf8String) override; 23 | 24 | const WCHAR* getWideString () const { return wideString; } 25 | //----------------------------------------------------------------------------- 26 | protected: 27 | WCHAR* wideString; 28 | int wideStringBufferSize; 29 | }; 30 | 31 | } // VSTGUI 32 | 33 | #endif // WINDOWS 34 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/lib/cbuttonstate_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../unittests.h" 6 | #include "../../../lib/cbuttonstate.h" 7 | 8 | namespace VSTGUI { 9 | 10 | TEST_CASE (CButtonStateTests, Test) 11 | { 12 | CButtonState s; 13 | EXPECT_EQ (s.getButtonState (), 0); 14 | EXPECT_EQ (s.getModifierState (), 0); 15 | s = kLButton; 16 | EXPECT_TRUE (s.isLeftButton ()); 17 | s |= kShift; 18 | EXPECT_TRUE (s.isLeftButton ()); 19 | EXPECT_EQ (s.getModifierState (), kShift); 20 | s = kRButton; 21 | EXPECT_TRUE (s.isRightButton ()); 22 | s |= kDoubleClick; 23 | EXPECT_TRUE (s.isDoubleClick ()); 24 | EXPECT (s & CButtonState (kDoubleClick)); 25 | CButtonState s2 (s); 26 | EXPECT_EQ (s, s2); 27 | s2 = ~s; 28 | EXPECT_NE (s, s2); 29 | } 30 | 31 | } // VSTGUI 32 | -------------------------------------------------------------------------------- /vstgui/tests/gfxtest/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | GFXTest 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | GFXTest 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2016 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/uidescription/uiviewcreator/clayeredviewcontainercreator_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../../lib/clayeredviewcontainer.h" 6 | #include "../../../../lib/cstring.h" 7 | #include "../../../../uidescription/detail/uiviewcreatorattributes.h" 8 | #include "../../../../uidescription/uiattributes.h" 9 | #include "../../../../uidescription/uiviewfactory.h" 10 | #include "../../unittests.h" 11 | #include "helpers.h" 12 | 13 | namespace VSTGUI { 14 | using namespace UIViewCreator; 15 | 16 | TEST_CASE (CLayeredViewContainerCreatorTest, ZIndex) 17 | { 18 | testAttribute ( 19 | kCLayeredViewContainer, kAttrZIndex, 1, nullptr, 20 | [] (CLayeredViewContainer* v) { return v->getZIndex () == 1; }); 21 | } 22 | 23 | } // VSTGUI 24 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/wintimer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformtimer.h" 8 | 9 | #if WINDOWS 10 | 11 | //------------------------------------------------------------------------ 12 | namespace VSTGUI { 13 | 14 | //----------------------------------------------------------------------------- 15 | class WinTimer final : public IPlatformTimer 16 | { 17 | public: 18 | WinTimer (IPlatformTimerCallback* callback); 19 | ~WinTimer () noexcept; 20 | 21 | bool start (uint32_t fireTime) override; 22 | bool stop () override; 23 | private: 24 | 25 | unsigned long long timer; 26 | IPlatformTimerCallback* callback; 27 | }; 28 | 29 | //------------------------------------------------------------------------ 30 | } // VSTGUI 31 | 32 | #endif // WINDOWS 33 | -------------------------------------------------------------------------------- /vstgui/lib/platform/platform_win32.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "iplatformframe.h" 8 | 9 | #if WINDOWS 10 | 11 | #include "iplatformviewlayer.h" 12 | 13 | #include 14 | 15 | //----------------------------------------------------------------------------- 16 | namespace VSTGUI { 17 | 18 | struct IIMETextInputClient; 19 | 20 | //----------------------------------------------------------------------------- 21 | // extens IPlatformFrame on Microsoft Windows 22 | class IWin32PlatformFrame 23 | { 24 | public: 25 | virtual HWND getHWND () const = 0; 26 | virtual void setTextInputClient (IIMETextInputClient* client) = 0; 27 | }; 28 | 29 | //----------------------------------------------------------------------------- 30 | } // VSTGUI 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /vstgui/lib/platform/common/gradientbase.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformgradient.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | class PlatformGradientBase : public IPlatformGradient 13 | { 14 | public: 15 | void setColorStops (const GradientColorStopMap& colorStops) override 16 | { 17 | map = colorStops; 18 | changed (); 19 | } 20 | void addColorStop (const GradientColorStop& colorStop) override 21 | { 22 | map.emplace (colorStop); 23 | changed (); 24 | } 25 | const GradientColorStopMap& getColorStops () const override 26 | { 27 | return map; 28 | } 29 | 30 | virtual void changed () {} 31 | private: 32 | GradientColorStopMap map; 33 | }; 34 | 35 | } // VSTGUI 36 | 37 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/mandelbrot/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | mandelbrot 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | mandelbrot 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2016 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/gdk/gdkcommondirectories.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../include/icommondirectories.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | namespace Platform { 13 | namespace GDK { 14 | 15 | //------------------------------------------------------------------------ 16 | class CommonDirectories : public ICommonDirectories 17 | { 18 | public: 19 | Optional get (CommonDirectoryLocation location, 20 | const UTF8String& subDir, 21 | bool create = false) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // GDK 26 | } // Platform 27 | } // Standalone 28 | } // VSTGUI 29 | -------------------------------------------------------------------------------- /vstgui/tests/gridlayouttestapp/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2025 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/lib/platform/linux/x11timer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformtimer.h" 8 | #include "x11frame.h" 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace X11 { 13 | 14 | //------------------------------------------------------------------------ 15 | class Timer : public IPlatformTimer, public ITimerHandler 16 | { 17 | public: 18 | Timer (IPlatformTimerCallback* callback); 19 | ~Timer () noexcept; 20 | 21 | bool start (uint32_t periodMs) override; 22 | bool stop () override; 23 | 24 | void onTimer () override; 25 | 26 | private: 27 | IPlatformTimerCallback* callback = nullptr; 28 | }; 29 | 30 | //------------------------------------------------------------------------ 31 | } // X11 32 | } // VSTGUI 33 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/mac/maccommondirectories.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../include/icommondirectories.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | namespace Platform { 13 | namespace Mac { 14 | 15 | //------------------------------------------------------------------------ 16 | class CommonDirectories : public ICommonDirectories 17 | { 18 | public: 19 | Optional get (CommonDirectoryLocation location, const UTF8String& subDir, 20 | bool create = false) const override; 21 | }; 22 | 23 | //------------------------------------------------------------------------ 24 | } // Mac 25 | } // Platform 26 | } // Standalone 27 | } // VSTGUI 28 | -------------------------------------------------------------------------------- /vstgui/lib/controls/itextlabellistener.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //------------------------------------------------------------------------ 12 | /** Listener for a text label 13 | * @ingroup new_in_4_7 14 | */ 15 | class ITextLabelListener 16 | { 17 | public: 18 | /** the truncated text has changed */ 19 | virtual void onTextLabelTruncatedTextChanged (CTextLabel* label) = 0; 20 | }; 21 | 22 | //------------------------------------------------------------------------ 23 | class TextLabelListenerAdapter : public ITextLabelListener 24 | { 25 | public: 26 | void onTextLabelTruncatedTextChanged (CTextLabel* label) override {} 27 | }; 28 | 29 | //------------------------------------------------------------------------ 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | VSTGUI Standalone 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2016 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/simple_standalone/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | simple_standalone 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | simple_standalone 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2016 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/tests/uidescriptioneditorapp/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | UIDescriptionEditorApp 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | UIDescriptionEditorApp 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | NSHumanReadableCopyright 22 | Copyright © 2016 Arne Scheffler. All rights reserved. 23 | NSPrincipalClass 24 | NSApplication 25 | 26 | 27 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/direct3dshader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | static constexpr auto shaderCode = R"( 4 | 5 | //********************************************************* 6 | // 7 | // Copyright (c) Microsoft. All rights reserved. 8 | // This code is licensed under the MIT License (MIT). 9 | // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF 10 | // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY 11 | // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR 12 | // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. 13 | // 14 | //********************************************************* 15 | 16 | struct PSInput 17 | { 18 | float4 position : SV_POSITION; 19 | float4 color : COLOR; 20 | }; 21 | 22 | PSInput VSMain(float4 position : POSITION, float4 color : COLOR) 23 | { 24 | PSInput result; 25 | 26 | result.position = position; 27 | result.color = color; 28 | 29 | return result; 30 | } 31 | 32 | float4 PSMain(PSInput input) : SV_TARGET 33 | { 34 | return input.color; 35 | } 36 | 37 | )"; 38 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/uidescription/uiviewcreator/csearchtexteditcreator_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../../lib/controls/csearchtextedit.h" 6 | #include "../../../../lib/cstring.h" 7 | #include "../../../../uidescription/detail/uiviewcreatorattributes.h" 8 | #include "../../../../uidescription/uiattributes.h" 9 | #include "../../../../uidescription/uiviewfactory.h" 10 | #include "../../unittests.h" 11 | #include "helpers.h" 12 | 13 | namespace VSTGUI { 14 | using namespace UIViewCreator; 15 | 16 | TEST_CASE (CSearchTextEditCreatorTest, ClearMarkInset) 17 | { 18 | UIDescriptionAdapter uidesc; 19 | CPoint p (10, 11); 20 | testAttribute ( 21 | kCSearchTextEdit, kAttrClearMarkInset, p, &uidesc, 22 | [&] (CSearchTextEdit* v) { return v->getClearMarkInset () == p; }); 23 | } 24 | 25 | } // VSTGUI 26 | -------------------------------------------------------------------------------- /vstgui/uidescription/viewcreator/onoffbuttoncreator.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iviewcreator.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace UIViewCreator { 12 | 13 | //------------------------------------------------------------------------ 14 | struct OnOffButtonCreator : ViewCreatorAdapter 15 | { 16 | OnOffButtonCreator (); 17 | IdStringPtr getViewName () const override; 18 | IdStringPtr getBaseViewName () const override; 19 | UTF8StringPtr getDisplayName () const override; 20 | CView* create (const UIAttributes& attributes, 21 | const IUIDescription* description) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // UIViewCreator 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/tests/gfxtest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # VSTGUI GFXTest Application 3 | ########################################################################################## 4 | set(target GFXTest) 5 | 6 | set(${target}_sources 7 | "source/app.cpp" 8 | "source/drawdevicetests.cpp" 9 | "source/drawdevicetests.h" 10 | ) 11 | 12 | set(${target}_resources 13 | "resource/Window.uidesc" 14 | "resource/DrawDeviceTests.uidesc" 15 | ) 16 | 17 | vstgui_add_executable(${target} "${${target}_sources}") 18 | vstgui_add_resources(${target} "${${target}_resources}") 19 | vstgui_set_target_bundle_id(${target} "vstgui.tests.gfxtest") 20 | vstgui_set_target_infoplist(${target} "resource/Info.plist") 21 | vstgui_set_target_rcfile(${target} "resource/gfxtest.rc") 22 | vstgui_set_cxx_version(${target} ${VSTGUI_CXX_VERSION}) 23 | target_include_directories(${target} PRIVATE ../../../) 24 | set_target_properties(${target} PROPERTIES ${APP_PROPERTIES} FOLDER Tests) 25 | 26 | -------------------------------------------------------------------------------- /vstgui/standalone/source/window.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../include/iwindow.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | namespace Detail { 13 | 14 | //------------------------------------------------------------------------ 15 | WindowPtr makeWindow (const WindowConfiguration& config, const WindowControllerPtr& controller); 16 | 17 | //------------------------------------------------------------------------ 18 | class IPlatformWindowAccess : public IWindow 19 | { 20 | public: 21 | virtual InterfacePtr getPlatformWindow () const = 0; 22 | virtual CFrame* getFrame () const = 0; 23 | }; 24 | 25 | //------------------------------------------------------------------------ 26 | } // Detail 27 | } // Standalone 28 | } // VSTGUI 29 | -------------------------------------------------------------------------------- /vstgui/uidescription/viewcreator/kickbuttoncreator.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "multibitmapcontrolcreator.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace UIViewCreator { 12 | 13 | //------------------------------------------------------------------------ 14 | struct KickButtonCreator : MultiBitmapControlCreator 15 | { 16 | KickButtonCreator (); 17 | IdStringPtr getViewName () const override; 18 | IdStringPtr getBaseViewName () const override; 19 | UTF8StringPtr getDisplayName () const override; 20 | CView* create (const UIAttributes& attributes, 21 | const IUIDescription* description) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // UIViewCreator 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/uidescription/viewcreator/moviebitmapcreator.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "multibitmapcontrolcreator.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace UIViewCreator { 12 | 13 | //------------------------------------------------------------------------ 14 | struct MovieBitmapCreator : MultiBitmapControlCreator 15 | { 16 | MovieBitmapCreator (); 17 | IdStringPtr getViewName () const override; 18 | IdStringPtr getBaseViewName () const override; 19 | UTF8StringPtr getDisplayName () const override; 20 | CView* create (const UIAttributes& attributes, 21 | const IUIDescription* description) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // UIViewCreator 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/uidescription/viewcreator/moviebuttoncreator.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "multibitmapcontrolcreator.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace UIViewCreator { 12 | 13 | //------------------------------------------------------------------------ 14 | struct MovieButtonCreator : MultiBitmapControlCreator 15 | { 16 | MovieButtonCreator (); 17 | IdStringPtr getViewName () const override; 18 | IdStringPtr getBaseViewName () const override; 19 | UTF8StringPtr getDisplayName () const override; 20 | CView* create (const UIAttributes& attributes, 21 | const IUIDescription* description) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // UIViewCreator 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/lib/controls/icontrollistener.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | #include "../cbuttonstate.h" 9 | 10 | namespace VSTGUI { 11 | 12 | //----------------------------------------------------------------------------- 13 | class IControlListener 14 | { 15 | public: 16 | virtual ~IControlListener () noexcept = default; 17 | virtual void valueChanged (CControl* pControl) = 0; 18 | /** return 1 if you want the control to not handle it, otherwise 0 */ 19 | virtual int32_t controlModifierClicked (CControl* pControl, CButtonState button) { return 0; } 20 | virtual void controlBeginEdit (CControl* pControl) {} 21 | virtual void controlEndEdit (CControl* pControl) {} 22 | virtual void controlTagWillChange (CControl* pControl) {} 23 | virtual void controlTagDidChange (CControl* pControl) {} 24 | }; 25 | 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/standalone/source/testabout.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstgui/standalone/include/helpers/windowlistener.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace MyApp { 11 | 12 | //------------------------------------------------------------------------ 13 | class About : public VSTGUI::Standalone::WindowListenerAdapter 14 | { 15 | public: 16 | static void show (); 17 | 18 | private: 19 | using Ptr = std::unique_ptr; 20 | static Ptr gInstance; 21 | 22 | using IWindow = VSTGUI::Standalone::IWindow; 23 | using WindowPtr = VSTGUI::Standalone::WindowPtr; 24 | 25 | void onClosed (const IWindow& window) override; 26 | 27 | WindowPtr window; 28 | }; 29 | 30 | //------------------------------------------------------------------------ 31 | } // MyApp 32 | -------------------------------------------------------------------------------- /vstgui/uidescription/viewcreator/rockerswitchcreator.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "multibitmapcontrolcreator.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace UIViewCreator { 12 | 13 | //------------------------------------------------------------------------ 14 | struct RockerSwitchCreator : MultiBitmapControlCreator 15 | { 16 | RockerSwitchCreator (); 17 | IdStringPtr getViewName () const override; 18 | IdStringPtr getBaseViewName () const override; 19 | UTF8StringPtr getDisplayName () const override; 20 | CView* create (const UIAttributes& attributes, 21 | const IUIDescription* description) const override; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | } // UIViewCreator 26 | } // VSTGUI 27 | -------------------------------------------------------------------------------- /vstgui/lib/vstguiinit.h: -------------------------------------------------------------------------------- 1 | // in the LICENSE file found in the top-level directory of this 2 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 3 | 4 | #pragma once 5 | 6 | #include "platform/platformfwd.h" 7 | 8 | //----------------------------------------------------------------------------- 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | /** Init to use VSTGUI. Must be done before using the VSTGUI library. 13 | * 14 | * The instance is depended on the platform: 15 | * - HINSTANCE on Windows 16 | * - CFBundleRef on macOS 17 | * - void* on Linux (the handle returned from dlopen) 18 | * 19 | * @ingroup new_in_4_10 20 | */ 21 | void init (PlatformInstanceHandle instance); 22 | 23 | //----------------------------------------------------------------------------- 24 | /** exit using the VSTGUI library. 25 | * @ingroup new_in_4_10 26 | */ 27 | void exit (); 28 | 29 | //----------------------------------------------------------------------------- 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/tests/uidescriptioneditorapp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # VSTGUI UIDescriptionEditor Application 3 | ########################################################################################## 4 | option(VSTGUI_UIDESCRIPTIONEDITOR_APPLICATION "UIDescriptionEditorApp Target" OFF) 5 | 6 | if(VSTGUI_UIDESCRIPTIONEDITOR_APPLICATION) 7 | 8 | set(target UIDescriptionEditorApp) 9 | 10 | set(${target}_sources 11 | "source/app.cpp" 12 | ) 13 | 14 | vstgui_add_executable(${target} "${${target}_sources}") 15 | vstgui_add_resources(${target} "${target_resources}") 16 | vstgui_set_target_infoplist(${target} "resource/Info.plist" "vstgui.uidescriptioneditorapp") 17 | vstgui_set_target_rcfile(${target} "resource/winresources.rc") 18 | vstgui_set_cxx_version(${target} ${VSTGUI_CXX_VERSION}) 19 | target_include_directories(${target} PRIVATE ../../../) 20 | set_target_properties(${target} PROPERTIES ${APP_PROPERTIES} FOLDER Tests) 21 | 22 | endif(VSTGUI_UIDESCRIPTIONEDITOR_APPLICATION) 23 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/uidescription/uiviewcreator/conoffbuttoncreator_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../../lib/controls/cbuttons.h" 6 | #include "../../../../lib/cstring.h" 7 | #include "../../../../uidescription/detail/uiviewcreatorattributes.h" 8 | #include "../../../../uidescription/uiattributes.h" 9 | #include "../../../../uidescription/uiviewfactory.h" 10 | #include "../../unittests.h" 11 | 12 | namespace VSTGUI { 13 | using namespace UIViewCreator; 14 | 15 | TEST_CASE (COnOffButtonCreatorTest, Create) 16 | { 17 | UIViewFactory factory; 18 | UIAttributes a; 19 | a.setAttribute (kAttrClass, kCOnOffButton); 20 | 21 | auto view = owned (factory.createView (a, nullptr)); 22 | auto control = view.cast (); 23 | EXPECT (control); 24 | UIAttributes a2; 25 | EXPECT (factory.getAttributesForView (view, nullptr, a2)); 26 | } 27 | 28 | } // VSTGUI 29 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Minesweeper 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1 21 | CFBundleIconFile 22 | Minesweeper.icns 23 | NSHumanReadableCopyright 24 | Copyright © 2020 Arne Scheffler. All rights reserved. 25 | NSPrincipalClass 26 | NSApplication 27 | 28 | 29 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/win32/win32window.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../include/fwd.h" 8 | #include "../iplatformwindow.h" 9 | 10 | #ifndef _WINDEF_ 11 | struct HWND__; 12 | using HWND = HWND__*; 13 | #endif 14 | 15 | //------------------------------------------------------------------------ 16 | namespace VSTGUI { 17 | namespace Standalone { 18 | namespace Platform { 19 | namespace Win32 { 20 | 21 | //------------------------------------------------------------------------ 22 | class IWin32Window : public Platform::IWindow 23 | { 24 | public: 25 | virtual void updateCommands () const = 0; 26 | virtual void onQuit () = 0; 27 | virtual HWND getHWND () const = 0; 28 | virtual void setModalWindow (const VSTGUI::Standalone::WindowPtr& modalWindow) = 0; 29 | }; 30 | 31 | } // Win32 32 | } // Platform 33 | } // Standalone 34 | } // VSTGUI 35 | -------------------------------------------------------------------------------- /vstgui/lib/viewlayouter/noviewlayouter.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "baseviewlayouter.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | 12 | //------------------------------------------------------------------------ 13 | /** A view layouter that does not layout any views. 14 | * 15 | * @ingroup new_in_4_15 16 | */ 17 | struct NoViewLayouter final : BaseViewLayouter, 18 | NonAtomicReferenceCounted 19 | { 20 | NoViewLayouter () = default; 21 | 22 | std::optional calculateLayout (const CViewContainer& container, 23 | const Children& children, 24 | const CRect& newSize) override 25 | { 26 | return {ViewLayout {newSize, LayoutData {}}}; 27 | } 28 | }; 29 | 30 | //------------------------------------------------------------------------ 31 | } // VSTGUI 32 | -------------------------------------------------------------------------------- /vstgui/lib/platform/common/generictextedit.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformtextedit.h" 8 | #include 9 | 10 | //----------------------------------------------------------------------------- 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | class GenericTextEdit : public IPlatformTextEdit 15 | { 16 | public: 17 | GenericTextEdit (IPlatformTextEditCallback* callback); 18 | ~GenericTextEdit () noexcept; 19 | 20 | UTF8String getText () override; 21 | bool setText (const UTF8String& text) override; 22 | bool updateSize () override; 23 | bool drawsPlaceholder () const override { return false; } 24 | 25 | private: 26 | struct Impl; 27 | std::unique_ptr impl; 28 | }; 29 | 30 | //----------------------------------------------------------------------------- 31 | } // VSTGUI 32 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/mactimer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformtimer.h" 8 | 9 | #if MAC 10 | 11 | #include 12 | 13 | //------------------------------------------------------------------------ 14 | namespace VSTGUI { 15 | 16 | //----------------------------------------------------------------------------- 17 | class MacTimer : public IPlatformTimer 18 | { 19 | public: 20 | explicit MacTimer (IPlatformTimerCallback* callback); 21 | ~MacTimer () override; 22 | 23 | bool start (uint32_t fireTime) override; 24 | bool stop () override; 25 | private: 26 | static void timerCallback (CFRunLoopTimerRef timer, void *info); 27 | 28 | IPlatformTimerCallback* callback; 29 | CFRunLoopTimerRef timer; 30 | }; 31 | 32 | //------------------------------------------------------------------------ 33 | } // VSTGUI 34 | 35 | #endif // MAC 36 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/win32/win32preference.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../include/ipreference.h" 8 | #include 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace Standalone { 13 | namespace Platform { 14 | namespace Win32 { 15 | 16 | //------------------------------------------------------------------------ 17 | class Win32Preference : public IPreference 18 | { 19 | public: 20 | Win32Preference (); 21 | ~Win32Preference (); 22 | 23 | bool set (const UTF8String& key, const UTF8String& value) override; 24 | Optional get (const UTF8String& key) override; 25 | 26 | private: 27 | HKEY hKey {nullptr}; 28 | }; 29 | 30 | //------------------------------------------------------------------------ 31 | } // Mac 32 | } // Platform 33 | } // Standalone 34 | } // VSTGUI 35 | -------------------------------------------------------------------------------- /.github/workflows/cmake_linux.yml: -------------------------------------------------------------------------------- 1 | name: Linux build 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ${{ matrix.os }} 8 | 9 | strategy: 10 | matrix: 11 | os: [ubuntu-24.04] 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - run: sudo apt-get update 17 | - run: sudo apt-get install libx11-dev libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-keysyms1-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libfreetype6-dev libpango1.0-dev libwayland-dev wayland-protocols 18 | 19 | - uses: ./.github/actions/cmake 20 | with: 21 | source-dir: '${{github.workspace}}' 22 | build-dir: '${{github.workspace}}/build' 23 | build-type: 'Debug' 24 | build-vstgui-standalone: OFF 25 | 26 | - uses: ./.github/actions/cmake 27 | with: 28 | source-dir: '${{github.workspace}}' 29 | build-dir: '${{github.workspace}}/build-non-deprecated' 30 | build-type: 'Debug' 31 | build-vstgui-standalone: OFF 32 | enable-deprecated-methods: OFF 33 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/uidescription/uiviewcreator/cxypadcreator_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../../lib/controls/cxypad.h" 6 | #include "../../../../lib/cstring.h" 7 | #include "../../../../uidescription/detail/uiviewcreatorattributes.h" 8 | #include "../../../../uidescription/uiattributes.h" 9 | #include "../../../../uidescription/uiviewfactory.h" 10 | #include "../../unittests.h" 11 | #include "helpers.h" 12 | 13 | namespace VSTGUI { 14 | using namespace UIViewCreator; 15 | 16 | TEST_CASE (CXYPadCreatorTest, Create) 17 | { 18 | DummyUIDescription uidesc; 19 | UIViewFactory factory; 20 | UIAttributes a; 21 | a.setAttribute (kAttrClass, kCXYPad); 22 | 23 | auto view = owned (factory.createView (a, &uidesc)); 24 | auto control = view.cast (); 25 | EXPECT (control); 26 | UIAttributes a2; 27 | EXPECT (factory.getAttributesForView (view, &uidesc, a2)); 28 | } 29 | 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/minesweeper/source/highscores.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "highscorelist.h" 8 | #include 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace Standalone { 13 | namespace Minesweeper { 14 | 15 | //------------------------------------------------------------------------ 16 | class HighScores 17 | { 18 | public: 19 | static HighScores& instance (); 20 | static UTF8String getHighscoreListName (uint32_t rows, uint32_t cols, uint32_t mines); 21 | 22 | std::shared_ptr get (uint32_t rows, uint32_t cols, uint32_t mines); 23 | 24 | private: 25 | std::unordered_map> lists; 26 | }; 27 | 28 | //------------------------------------------------------------------------ 29 | } // Minesweeper 30 | } // Standalone 31 | } // VSTGUI 32 | -------------------------------------------------------------------------------- /vstgui/tests/base64codecspeed/main.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "vstgui/uidescription/base64codec.h" 6 | #include "vstgui/lib/malloc.h" 7 | 8 | #include 9 | #include 10 | 11 | using namespace VSTGUI; 12 | 13 | int main () 14 | { 15 | Buffer origData; 16 | origData.allocate (1024*1024*500); 17 | 18 | std::independent_bits_engine rbe; 19 | std::generate (origData.get (), origData.get () + origData.size (), std::ref (rbe)); 20 | 21 | auto encoderResult = Base64Codec::encode (origData.get (), origData.size ()); 22 | auto decoderResult = Base64Codec::decode (encoderResult.data.get (), encoderResult.dataSize); 23 | 24 | if (origData.size () != decoderResult.dataSize) 25 | return -1; 26 | 27 | if (memcmp (origData.get (), decoderResult.data.get (), origData.size ()) != 0) 28 | return -1; 29 | return 0; 30 | } 31 | -------------------------------------------------------------------------------- /vstgui/tools/imagestitcher/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TargetName ImageStitcher) 2 | 3 | set(${TargetName}_sources 4 | Readme.md 5 | source/app.cpp 6 | source/document.cpp 7 | source/document.h 8 | source/documentcontroller.cpp 9 | source/documentcontroller.h 10 | source/imageframesview.cpp 11 | source/imageframesview.h 12 | source/startupcontroller.cpp 13 | source/startupcontroller.h 14 | ) 15 | 16 | set(${TargetName}_RESOURCES 17 | "resource/Window.uidesc" 18 | "resource/StartupWindow.uidesc" 19 | ) 20 | 21 | vstgui_add_executable(${TargetName} "${${TargetName}_sources}") 22 | vstgui_add_resources(${TargetName} "${${TargetName}_RESOURCES}") 23 | vstgui_set_target_bundle_id(${TargetName} "com.steinberg.vstgui.imagestitcher") 24 | vstgui_set_target_infoplist(${TargetName} "resource/Info.plist") 25 | vstgui_set_target_rcfile(${TargetName} "resource/imagestitcher.rc") 26 | vstgui_set_cxx_version(${TargetName} ${VSTGUI_CXX_VERSION}) 27 | target_include_directories(${TargetName} PRIVATE ../../../) 28 | set_target_properties(${TargetName} PROPERTIES ${APP_PROPERTIES} ${VSTGUI_TOOLS_FOLDER}) 29 | 30 | -------------------------------------------------------------------------------- /vstgui/lib/animation/ianimationtarget.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | namespace Animation { 11 | 12 | //----------------------------------------------------------------------------- 13 | /// @brief Animation target interface 14 | /// @ingroup new_in_4_0 15 | //----------------------------------------------------------------------------- 16 | class IAnimationTarget 17 | { 18 | public: 19 | virtual ~IAnimationTarget () noexcept = default; 20 | 21 | /** animation starts */ 22 | virtual void animationStart (CView* view, IdStringPtr name) = 0; 23 | /** pos is a normalized value between zero and one */ 24 | virtual void animationTick (CView* view, IdStringPtr name, float pos) = 0; 25 | /** animation ended */ 26 | virtual void animationFinished (CView* view, IdStringPtr name, bool wasCanceled) = 0; 27 | }; 28 | 29 | } // Animation 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/standalone/source/platform/gdk/gdkpreference.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../../include/ipreference.h" 8 | #include 9 | 10 | //------------------------------------------------------------------------ 11 | namespace VSTGUI { 12 | namespace Standalone { 13 | namespace Platform { 14 | namespace GDK { 15 | 16 | //------------------------------------------------------------------------ 17 | class Preference : public IPreference 18 | { 19 | public: 20 | Preference (); 21 | ~Preference () noexcept; 22 | 23 | bool set (const UTF8String& key, const UTF8String& value) override; 24 | Optional get (const UTF8String& key) override; 25 | 26 | private: 27 | bool prepare (); 28 | 29 | sqlite3* db{nullptr}; 30 | }; 31 | 32 | //------------------------------------------------------------------------ 33 | } // GDK 34 | } // Platform 35 | } // Standalone 36 | } // VSTGUI 37 | -------------------------------------------------------------------------------- /vstgui/standalone/examples/simple_standalone/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # VSTGUI Simple Standalone Application 3 | ########################################################################################## 4 | set(target simple_standalone) 5 | 6 | set(${target}_sources 7 | "source/myapp.cpp" 8 | ) 9 | 10 | set(simple_standalone_resources 11 | "resource/Window.uidesc" 12 | ) 13 | 14 | ########################################################################################## 15 | vstgui_add_executable(${target} "${${target}_sources}" ) 16 | vstgui_add_resources(${target} "${simple_standalone_resources}") 17 | vstgui_set_target_bundle_id(${target} "vstgui.examples.simplestandalone") 18 | vstgui_set_target_infoplist(${target} "resource/Info.plist") 19 | vstgui_set_target_rcfile(${target} "resource/simple_standalone.rc") 20 | vstgui_set_cxx_version(${target} ${VSTGUI_CXX_VERSION}) 21 | target_include_directories(${target} PRIVATE ../../../../) 22 | set_target_properties(${target} PROPERTIES ${APP_PROPERTIES} ${VSTGUI_STANDALONE_EXAMPLES_FOLDER}) 23 | 24 | -------------------------------------------------------------------------------- /vstgui/lib/platform/mac/ios/uitextedit.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../iplatformtextedit.h" 8 | 9 | #if TARGET_OS_IPHONE 10 | 11 | #ifdef __OBJC__ 12 | @class UIView; 13 | @class UITextField; 14 | @class VSTGUI_UITextFieldDelegate; 15 | #else 16 | struct UIView; 17 | struct UITextField; 18 | struct VSTGUI_UITextFieldDelegate; 19 | #endif 20 | 21 | namespace VSTGUI { 22 | 23 | class UITextEdit : public IPlatformTextEdit 24 | { 25 | public: 26 | UITextEdit (UIView* parent, IPlatformTextEditCallback* textEdit); 27 | ~UITextEdit (); 28 | 29 | UTF8String getText () override; 30 | bool setText (const UTF8String& text) override; 31 | bool updateSize () override; 32 | bool drawsPlaceholder () const override { return true; } 33 | 34 | protected: 35 | UITextField* platformControl; 36 | VSTGUI_UITextFieldDelegate* delegate; 37 | UIView* parent; 38 | }; 39 | 40 | } // VSTGUI 41 | 42 | #endif // TARGET_OS_IPHONE 43 | -------------------------------------------------------------------------------- /vstgui/lib/cclipboard.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "cstring.h" 8 | #include "idatapackage.h" 9 | #include "optional.h" 10 | 11 | namespace VSTGUI { 12 | 13 | //----------------------------------------------------------------------------- 14 | struct CClipboard 15 | { 16 | /** get the global clipboard data */ 17 | static SharedPointer get (); 18 | /** set the global clipboard data */ 19 | static bool set (const SharedPointer& data); 20 | 21 | /** get the string from the global clipboard if it exists */ 22 | static Optional getString (); 23 | /** get the file path from the global clipboard if it exists */ 24 | static Optional getFilePath (); 25 | 26 | /** set the string of the global clipboard */ 27 | static bool setString (UTF8StringPtr str); 28 | /** set the file path of the global clipboard */ 29 | static bool setFilePath (UTF8StringPtr str); 30 | }; 31 | 32 | } // VSTGUI 33 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/lib/cclipboard_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../lib/cclipboard.h" 6 | #include "../unittests.h" 7 | 8 | namespace VSTGUI { 9 | 10 | #if !WINDOWS 11 | // the OLE clipboard functionality returns Ole not initialized even tho we call OleInitialize() 12 | // so we disable the test for now on Windows 13 | 14 | TEST_CASE (CClipboardTest, String) 15 | { 16 | EXPECT_TRUE (CClipboard::setString ("This is a test string")); 17 | auto cbStr = CClipboard::getString (); 18 | EXPECT_TRUE (cbStr); 19 | EXPECT (*cbStr == "This is a test string"); 20 | } 21 | 22 | TEST_CASE (CClipboardTest, FilePath) 23 | { 24 | #if WINDOWS 25 | constexpr auto path = "C:\\Windows\\test.txt"; 26 | #else 27 | constexpr auto path = "/tmp/test.txt"; 28 | #endif 29 | EXPECT_TRUE (CClipboard::setFilePath (path)); 30 | auto cbStr = CClipboard::getFilePath (); 31 | EXPECT_TRUE (cbStr); 32 | EXPECT (*cbStr == path); 33 | } 34 | #endif 35 | 36 | } // VSTGUI 37 | -------------------------------------------------------------------------------- /vstgui/doxygen/page_keyeventflow.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | /** 6 | @page key_event_flow Keyboard Event Flow 7 | 8 | @section short_story Short Story 9 | 10 | Keyboard events are dispatched from CFrame in this order : 11 | 12 | - IKeyboardHook 13 | - focus view 14 | - parents of focus view 15 | - modal view 16 | 17 | @section long_story Long Story 18 | 19 | If a keyboard event is coming to CFrame::onKeyDown or CFrame::onKeyUp, CFrame will first sent the event to the keyboard hook if 20 | it is set. If the keyboard hook has not handled the event, the next candidate is the focus view. If there is a focus view and 21 | the focus view does not handle the event, the event is dispatched to the parent of the focus view. If the parent also does not 22 | handle the event the event is propagated to the parent of the parent and so on until the parent is the frame. 23 | If the event is still not handled the event will be passed on to the modal view if it exists. 24 | 25 | */ 26 | -------------------------------------------------------------------------------- /vstgui/lib/platform/common/fileresourceinputstream.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../iplatformresourceinputstream.h" 8 | #include 9 | #include 10 | 11 | //----------------------------------------------------------------------------- 12 | namespace VSTGUI { 13 | 14 | //----------------------------------------------------------------------------- 15 | class FileResourceInputStream : public IPlatformResourceInputStream 16 | { 17 | public: 18 | static PlatformResourceInputStreamPtr create (const std::string& path); 19 | 20 | private: 21 | FileResourceInputStream (FILE* handle); 22 | ~FileResourceInputStream () noexcept override; 23 | 24 | uint32_t readRaw (void* buffer, uint32_t size) override; 25 | int64_t seek (int64_t pos, SeekMode mode) override; 26 | int64_t tell () override; 27 | 28 | FILE* fileHandle; 29 | }; 30 | 31 | //----------------------------------------------------------------------------- 32 | } // VSTGUI 33 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/uigrid.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../lib/cpoint.h" 8 | 9 | #if VSTGUI_LIVE_EDITING 10 | 11 | #include "igridprocessor.h" 12 | #include 13 | 14 | namespace VSTGUI { 15 | 16 | //---------------------------------------------------------------------------------------------------- 17 | class UIGrid : public IGridProcessor, public NonAtomicReferenceCounted 18 | { 19 | public: 20 | UIGrid (const CPoint& size = CPoint (10, 10)) : size (size) {} 21 | 22 | void process (CPoint& p) override 23 | { 24 | auto x = static_cast (std::round (p.x / size.x)); 25 | p.x = x * size.x; 26 | auto y = static_cast (std::round (p.y / size.y)); 27 | p.y = y * size.y; 28 | } 29 | 30 | virtual void setSize (const CPoint& p) { size = p; } 31 | const CPoint& getSize () const { return size; } 32 | protected: 33 | CPoint size; 34 | }; 35 | 36 | } // VSTGUI 37 | 38 | #endif // VSTGUI_LIVE_EDITING 39 | -------------------------------------------------------------------------------- /vstgui/standalone/include/ipreference.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "fwd.h" 8 | #include "../../lib/cstring.h" 9 | #include "../../lib/optional.h" 10 | #include "interface.h" 11 | 12 | //------------------------------------------------------------------------ 13 | namespace VSTGUI { 14 | namespace Standalone { 15 | 16 | //------------------------------------------------------------------------ 17 | /** Preference interface 18 | * 19 | * You get the preferences via IApplication::instance ().getPreferences (). 20 | * @ingroup standalone 21 | */ 22 | class IPreference : public Interface 23 | { 24 | public: 25 | /** Set a preference value. */ 26 | virtual bool set (const UTF8String& key, const UTF8String& value) = 0; 27 | /** Get a preference value */ 28 | virtual Optional get (const UTF8String& key) = 0; 29 | }; 30 | 31 | //------------------------------------------------------------------------ 32 | } // Standalone 33 | } // VSTGUI 34 | -------------------------------------------------------------------------------- /vstgui/standalone/include/ivaluelistener.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "ivalue.h" 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace Standalone { 12 | 13 | //------------------------------------------------------------------------ 14 | /** %Value listener interface 15 | * 16 | * @ingroup standalone 17 | */ 18 | class IValueListener : public Interface 19 | { 20 | public: 21 | /** %Value begins editing. */ 22 | virtual void onBeginEdit (IValue& value) = 0; 23 | /** %Value performed an edit. */ 24 | virtual void onPerformEdit (IValue& value, IValue::Type newValue) = 0; 25 | /** %Value ends editing. */ 26 | virtual void onEndEdit (IValue& value) = 0; 27 | /** %Value changed some of its state. */ 28 | virtual void onStateChange (IValue& value) = 0; 29 | }; 30 | 31 | //------------------------------------------------------------------------ 32 | } // Standalone 33 | } // VSTGUI 34 | -------------------------------------------------------------------------------- /vstgui/tests/gridlayouttestapp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # VSTGUI Grid Layout Test App 3 | ########################################################################################## 4 | option(VSTGUI_GRIDLAYOUTTESTAPP "Grid Layout Test App" OFF) 5 | 6 | if(NOT VSTGUI_GRIDLAYOUTTESTAPP) 7 | return() 8 | endif() 9 | 10 | set(target gridlayouttestapp) 11 | 12 | set(${target}_sources 13 | "source/app.cpp" 14 | ) 15 | 16 | set(${target}_resources 17 | "resource/Window.uidesc" 18 | ) 19 | 20 | ########################################################################################## 21 | vstgui_add_executable(${target} "${${target}_sources}" ) 22 | vstgui_add_resources(${target} "${${target}_resources}") 23 | vstgui_set_target_bundle_id(${target} "vstgui.examples.gridlayouttestapp") 24 | vstgui_set_target_infoplist(${target} "resource/Info.plist") 25 | vstgui_set_target_rcfile(${target} "resource/windows.rc") 26 | vstgui_set_cxx_version(${target} 17) 27 | target_include_directories(${target} PRIVATE ../../../) 28 | set_target_properties(${target} PROPERTIES ${APP_PROPERTIES} FOLDER Tests) 29 | 30 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/tests/test019.42.js: -------------------------------------------------------------------------------- 1 | // built-in functions 2 | 3 | foo = "foo bar stuff"; 4 | // 42-tiny-js change begin ---> 5 | // in JavaScript this function is called Math.random() 6 | // r = Math.rand(); 7 | r = Math.random(); 8 | //<--- 42-tiny-js change end 9 | 10 | // 42-tiny-js change begin ---> 11 | // in JavaScript parseInt is a methode in the global scope (root-scope) 12 | // parsed = Integer.parseInt("42"); 13 | parsed = parseInt ("42"); 14 | //<--- 42-tiny-js change end 15 | 16 | aStr = "ABCD"; 17 | aChar = aStr.charAt(0); 18 | 19 | obj1 = new Object (); 20 | obj1.food = "cake"; 21 | obj1.desert = "pie"; 22 | 23 | obj2 = obj1.clone(); 24 | obj2.food = "kittens"; 25 | 26 | result = foo.length == 13 && foo.indexOf("bar") == 4 && foo.substring(8, 13) == "stuff" && 27 | parsed == 42 && 28 | // 42-tiny-js change begin ---> 29 | // in 42tiny-js the Integer-Objecte will be removed 30 | // Integer.valueOf can be replaced by String.charCodeAt 31 | // Integer.valueOf(aChar)==65 && obj1.food=="cake" && obj2.desert=="pie"; 32 | aChar.charCodeAt() == 65 && obj1.food == "cake" && obj2.desert == "pie"; 33 | //<--- 42-tiny-js change end 34 | -------------------------------------------------------------------------------- /vstgui/lib/platform/platformfwd.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguibase.h" 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | #if WINDOWS 14 | using HINSTANCE = struct HINSTANCE__*; 15 | #elif MAC 16 | using CFBundleRef = struct __CFBundle*; 17 | #endif 18 | 19 | //------------------------------------------------------------------------ 20 | namespace VSTGUI { 21 | 22 | using PNGBitmapBuffer = std::vector; 23 | using FontFamilyCallback = std::function; 24 | 25 | class LinuxFactory; 26 | class MacFactory; 27 | class Win32Factory; 28 | 29 | #if WINDOWS 30 | using PlatformInstanceHandle = HINSTANCE; 31 | #elif MAC 32 | using PlatformInstanceHandle = CFBundleRef; 33 | #elif LINUX 34 | using PlatformInstanceHandle = void*; 35 | #else 36 | static_assert (false, "unknown platform"); 37 | #endif 38 | 39 | //------------------------------------------------------------------------ 40 | } // VSTGUI 41 | 42 | -------------------------------------------------------------------------------- /vstgui/uidescription-scripting/tiny-js/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Gordon Williams 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /vstgui/lib/ifocusdrawing.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | // IFocusDrawing Declaration 13 | /// @brief Custom focus drawing interface 14 | /// @ingroup new_in_4_0 15 | /// 16 | /// @details If focus drawing is enabled custom views can implement this interface to set a custom shape to be drawn if the view is the focus view. 17 | /// @sa CFrame 18 | /// @sa CControl 19 | //----------------------------------------------------------------------------- 20 | class IFocusDrawing 21 | { 22 | public: 23 | virtual ~IFocusDrawing () noexcept = default; 24 | /** draw focus before view will be drawn or afterwards */ 25 | virtual bool drawFocusOnTop () = 0; 26 | /** the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor() */ 27 | virtual bool getFocusPath (CGraphicsPath& outPath) = 0; 28 | }; 29 | 30 | } // VSTGUI 31 | -------------------------------------------------------------------------------- /vstgui/uidescription/editing/uioverlayview.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../lib/vstguibase.h" 8 | 9 | #if VSTGUI_LIVE_EDITING 10 | 11 | #include "../../lib/cviewcontainer.h" 12 | #include "../../lib/iviewlistener.h" 13 | 14 | namespace VSTGUI { 15 | 16 | //---------------------------------------------------------------------------------------------------- 17 | class UIOverlayView : public CView, public ViewListenerAdapter 18 | //---------------------------------------------------------------------------------------------------- 19 | { 20 | public: 21 | UIOverlayView (CViewContainer* view); 22 | ~UIOverlayView () override; 23 | 24 | bool attached (CView* parent) override; 25 | void viewSizeChanged (CView* view, const CRect& oldSize) override; 26 | 27 | protected: 28 | CViewContainer* getTargetView () const { return targetView; } 29 | 30 | private: 31 | CViewContainer* targetView; 32 | CView* targetViewParent; 33 | }; 34 | 35 | } // VSTGUI 36 | 37 | #endif // VSTGUI_LIVE_EDITING 38 | -------------------------------------------------------------------------------- /vstgui/vstgui_mac.mm: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #import "vstgui.cpp" 6 | 7 | #import "lib/platform/mac/macglobals.cpp" 8 | #import "lib/platform/mac/cgbitmap.cpp" 9 | #import "lib/platform/mac/coregraphicsdevicecontext.mm" 10 | #import "lib/platform/mac/quartzgraphicspath.cpp" 11 | #import "lib/platform/mac/macfactory.mm" 12 | #import "lib/platform/mac/macfileselector.mm" 13 | #import "lib/platform/mac/macstring.mm" 14 | #import "lib/platform/mac/mactaskexecutor.mm" 15 | #import "lib/platform/mac/mactimer.cpp" 16 | #import "lib/platform/mac/cfontmac.mm" 17 | #import "lib/platform/mac/caviewlayer.mm" 18 | #import "lib/platform/mac/macclipboard.mm" 19 | #import "lib/platform/mac/cocoa/autoreleasepool.mm" 20 | #import "lib/platform/mac/cocoa/cocoahelpers.mm" 21 | #import "lib/platform/mac/cocoa/cocoaopenglview.mm" 22 | #import "lib/platform/mac/cocoa/cocoatextedit.mm" 23 | #import "lib/platform/mac/cocoa/nsviewframe.mm" 24 | #import "lib/platform/mac/cocoa/nsviewoptionmenu.mm" 25 | #import "lib/platform/mac/cocoa/nsviewdraggingsession.mm" 26 | -------------------------------------------------------------------------------- /vstgui/lib/controls/cspecialdigit.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "ccontrol.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | // CSpecialDigit Declaration 13 | //! @brief special display with custom numbers (0...9) 14 | /// @ingroup views 15 | //----------------------------------------------------------------------------- 16 | class CSpecialDigit : public CControl 17 | { 18 | public: 19 | CSpecialDigit (const CRect& size, IControlListener* listener, int32_t tag, int32_t dwPos, int32_t iNumbers, int32_t* xpos, int32_t* ypos, int32_t width, int32_t height, CBitmap* background); 20 | CSpecialDigit (const CSpecialDigit& digit); 21 | 22 | void draw (CDrawContext*) override; 23 | 24 | CLASS_METHODS(CSpecialDigit, CControl) 25 | protected: 26 | ~CSpecialDigit () noexcept override = default; 27 | int32_t iNumbers; 28 | int32_t xpos[7]; 29 | int32_t ypos[7]; 30 | int32_t width; 31 | int32_t height; 32 | }; 33 | 34 | } // VSTGUI 35 | -------------------------------------------------------------------------------- /vstgui/thirdparty/miniz/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013-2014 RAD Game Tools and Valve Software 2 | Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC 3 | 4 | All Rights Reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/uidescription/uiviewcreator/coptionmenucreator_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../../../../lib/controls/coptionmenu.h" 6 | #include "../../../../lib/cstring.h" 7 | #include "../../../../uidescription/detail/uiviewcreatorattributes.h" 8 | #include "../../../../uidescription/uiattributes.h" 9 | #include "../../../../uidescription/uiviewfactory.h" 10 | #include "../../unittests.h" 11 | #include "helpers.h" 12 | 13 | namespace VSTGUI { 14 | using namespace UIViewCreator; 15 | 16 | TEST_CASE (COptionMenuCreatorTest, PopupStyle) 17 | { 18 | UIDescriptionAdapter uidesc; 19 | testAttribute ( 20 | kCOptionMenu, kAttrMenuPopupStyle, true, &uidesc, 21 | [] (COptionMenu* v) { return v->getStyle () & COptionMenu::kPopupStyle; }); 22 | } 23 | 24 | TEST_CASE (COptionMenuCreatorTest, checkStyle) 25 | { 26 | UIDescriptionAdapter uidesc; 27 | testAttribute ( 28 | kCOptionMenu, kAttrMenuCheckStyle, true, &uidesc, 29 | [] (COptionMenu* v) { return v->getStyle () & COptionMenu::kCheckStyle; }); 30 | } 31 | 32 | } // VSTGUI 33 | -------------------------------------------------------------------------------- /vstgui/lib/pixelbuffer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | //------------------------------------------------------------------------ 10 | namespace VSTGUI { 11 | namespace PixelBuffer { 12 | 13 | //------------------------------------------------------------------------ 14 | enum class Format 15 | { 16 | ARGB, 17 | RGBA, 18 | ABGR, 19 | BGRA 20 | }; 21 | 22 | //------------------------------------------------------------------------ 23 | /** Convert a buffer of 32 bit pixels from one format to another 24 | * 25 | * @param srcFormat Source Pixel Format 26 | * @param dstFormat Destination Pixel Format 27 | * @param buffer Pixel Buffer 28 | * @param bytesPerRow Number of bytes per row in buffer 29 | * @param width Number of pixels per row 30 | * @param height Number of rows 31 | */ 32 | void convert (Format srcFormat, Format dstFormat, uint8_t* buffer, uint32_t bytesPerRow, 33 | uint32_t width, uint32_t height); 34 | 35 | //------------------------------------------------------------------------ 36 | } // PixelBuffer 37 | } // VSTGUI 38 | -------------------------------------------------------------------------------- /vstgui/lib/controls/icommandmenuitemtarget.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //------------------------------------------------------------------------ 12 | /** Command menu item target 13 | * @ingroup new_in_4_7 14 | */ 15 | class ICommandMenuItemTarget : public virtual IReference 16 | { 17 | public: 18 | /** called before the item is shown to validate its state */ 19 | virtual bool validateCommandMenuItem (CCommandMenuItem* item) = 0; 20 | /** called when the item was selected */ 21 | virtual bool onCommandMenuItemSelected (CCommandMenuItem* item) = 0; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | class CommandMenuItemTargetAdapter : public ICommandMenuItemTarget 26 | { 27 | public: 28 | bool validateCommandMenuItem (CCommandMenuItem* item) override { return false; } 29 | bool onCommandMenuItemSelected (CCommandMenuItem* item) override { return false; } 30 | }; 31 | 32 | //------------------------------------------------------------------------ 33 | } // VSTGUI 34 | -------------------------------------------------------------------------------- /vstgui/tests/unittest/lib/cfont_test.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "../unittests.h" 6 | #include "../../../lib/cfont.h" 7 | 8 | namespace VSTGUI { 9 | 10 | TESTCASE(CFontTests, 11 | 12 | TEST(attributes, 13 | CFontDesc f; 14 | EXPECT(f.getName ().empty ()); 15 | EXPECT(f.getSize () == 0.); 16 | EXPECT(f.getStyle () == kNormalFace); 17 | f.setName ("Test"); 18 | EXPECT(strcmp (f.getName (), "Test") == 0); 19 | f.setSize (20.2); 20 | EXPECT(f.getSize () == 20.2); 21 | f.setStyle (kBoldFace|kItalicFace); 22 | EXPECT(f.getStyle () == (kBoldFace|kItalicFace)); 23 | CFontDesc::cleanup (); 24 | ); 25 | 26 | TEST(copyConstructor, 27 | CFontDesc f (*kSystemFont); 28 | EXPECT(f == *kSystemFont); 29 | ); 30 | 31 | TEST(notEqualOperator, 32 | CFontDesc f (*kSystemFont); 33 | EXPECT(f == *kSystemFont); 34 | f.setSize (f.getSize ()+1); 35 | EXPECT(f != *kSystemFont); 36 | f = *kSystemFont; 37 | f.setStyle (kBoldFace); 38 | EXPECT(f != *kSystemFont); 39 | f = *kSystemFont; 40 | f.setName ("Bla"); 41 | EXPECT(f != *kSystemFont); 42 | ); 43 | 44 | ); 45 | 46 | } // VSTGUI 47 | -------------------------------------------------------------------------------- /vstgui/lib/cresourcedescription.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "vstguibase.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | // CResourceDescription Declaration 13 | //! @brief Describes a resource by name or by ID 14 | //----------------------------------------------------------------------------- 15 | class CResourceDescription 16 | { 17 | public: 18 | enum { kIntegerType, kStringType, kUnknownType }; 19 | 20 | CResourceDescription () = default; 21 | CResourceDescription (UTF8StringPtr name) : type (kStringType) { u.name = name; } 22 | explicit CResourceDescription (int32_t id) : type (kIntegerType) { u.id = id; } 23 | CResourceDescription (const CResourceDescription&) = default; 24 | 25 | CResourceDescription& operator= (int32_t id) { u.id = id; type = kIntegerType; return *this; } 26 | CResourceDescription& operator= (const CResourceDescription& desc) = default; 27 | 28 | int32_t type {kUnknownType}; 29 | union { 30 | int32_t id; 31 | UTF8StringPtr name {nullptr}; 32 | } u; 33 | }; 34 | 35 | } // VSTGUI 36 | -------------------------------------------------------------------------------- /vstgui/standalone/include/ishareduiresources.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../../lib/vstguifwd.h" 8 | #include "../../lib/optional.h" 9 | #include "interface.h" 10 | 11 | //------------------------------------------------------------------------ 12 | namespace VSTGUI { 13 | namespace Standalone { 14 | 15 | //------------------------------------------------------------------------ 16 | /** Shared UI resources interface 17 | * 18 | * @ingroup standalone 19 | */ 20 | class ISharedUIResources : public Interface 21 | { 22 | public: 23 | /** get shared color. */ 24 | virtual Optional getColor (const UTF8String& name) const = 0; 25 | /** get shared bitmap. */ 26 | virtual Optional getBitmap (const UTF8String& name) const = 0; 27 | /** get shared gradient. */ 28 | virtual Optional getGradient (const UTF8String& name) const = 0; 29 | /** get shared font. */ 30 | virtual Optional getFont (const UTF8String& name) const = 0; 31 | }; 32 | 33 | //------------------------------------------------------------------------ 34 | } // Standalone 35 | } // VSTGUI 36 | -------------------------------------------------------------------------------- /vstgui/lib/platform/iplatformviewlayer.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //----------------------------------------------------------------------------- 12 | class IPlatformViewLayerDelegate 13 | { 14 | public: 15 | virtual ~IPlatformViewLayerDelegate () noexcept = default; 16 | 17 | /** rects are in client coordinates (top-left is 0, 0) */ 18 | virtual void drawViewLayerRects (const PlatformGraphicsDeviceContextPtr& context, 19 | double scaleFactor, const std::vector& rects) = 0; 20 | }; 21 | 22 | //----------------------------------------------------------------------------- 23 | class IPlatformViewLayer : public AtomicReferenceCounted 24 | { 25 | public: 26 | /** size must be zero based */ 27 | virtual void invalidRect (const CRect& size) = 0; 28 | /** size is relative to platformParent */ 29 | virtual void setSize (const CRect& size) = 0; 30 | virtual void setZIndex (uint32_t zIndex) = 0; 31 | virtual void setAlpha (float alpha) = 0; 32 | virtual void onScaleFactorChanged (double newScaleFactor) = 0; 33 | }; 34 | 35 | } // VSTGUI 36 | -------------------------------------------------------------------------------- /vstgui/lib/platform/win32/direct2d/d2dgradient.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #include "d2dgradient.h" 6 | 7 | #if WINDOWS 8 | 9 | #include "d2d.h" 10 | #include 11 | 12 | namespace VSTGUI { 13 | 14 | //----------------------------------------------------------------------------- 15 | ID2D1GradientStopCollection* D2DGradient::create (ID2D1RenderTarget* renderTarget, 16 | float globalAlpha) const 17 | { 18 | std::vector gradientStops; 19 | gradientStops.resize (getColorStops ().size ()); 20 | uint32_t index = 0; 21 | for (auto it = getColorStops ().begin (); it != getColorStops ().end (); ++it, ++index) 22 | { 23 | gradientStops[index].position = static_cast (it->first); 24 | gradientStops[index].color = convert (it->second, globalAlpha); 25 | } 26 | ID2D1GradientStopCollection* collection = nullptr; 27 | auto hr = renderTarget->CreateGradientStopCollection ( 28 | gradientStops.data (), static_cast (getColorStops ().size ()), &collection); 29 | if (SUCCEEDED (hr)) 30 | return collection; 31 | return nullptr; 32 | } 33 | 34 | } // VSTGUI 35 | 36 | #endif // WINDOWS 37 | -------------------------------------------------------------------------------- /vstgui/lib/controls/itexteditlistener.h: -------------------------------------------------------------------------------- 1 | // This file is part of VSTGUI. It is subject to the license terms 2 | // in the LICENSE file found in the top-level directory of this 3 | // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE 4 | 5 | #pragma once 6 | 7 | #include "../vstguifwd.h" 8 | 9 | namespace VSTGUI { 10 | 11 | //------------------------------------------------------------------------ 12 | /** Listener for a text edit 13 | * @ingroup new_in_4_10 14 | */ 15 | class ITextEditListener 16 | { 17 | public: 18 | /** called when the native platform text edit control was created and started to listen for keyboard input. */ 19 | virtual void onTextEditPlatformControlTookFocus (CTextEdit* textEdit) = 0; 20 | /** called when the natvie platform text edit control is going to be destroyed. */ 21 | virtual void onTextEditPlatformControlLostFocus (CTextEdit* textEdit) = 0; 22 | }; 23 | 24 | //------------------------------------------------------------------------ 25 | class TextEditListenerAdapter : public ITextEditListener 26 | { 27 | public: 28 | void onTextEditPlatformControlTookFocus (CTextEdit* textEdit) override {} 29 | void onTextEditPlatformControlLostFocus (CTextEdit* textEdit) override {} 30 | }; 31 | 32 | //------------------------------------------------------------------------ 33 | } // VSTGUI 34 | --------------------------------------------------------------------------------