git subrepo clone --branch=sono6good https://github.com/essej/JUCE.git deps/juce
subrepo: subdir: "deps/juce" merged: "b13f9084e" upstream: origin: "https://github.com/essej/JUCE.git" branch: "sono6good" commit: "b13f9084e" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596"
This commit is contained in:
deps/juce
.gitattributesCMakeLists.txtDemoRunner.jucerCMakeLists.txtCMakeLists.txtCMakeLists.txtjucer_Project.cppjucer_Project.hCMakeLists.txt
.github
.gitignore.gitlab-ci.yml.gitrepoBREAKING-CHANGES.txtCMakeLists.txtChangeList.txtLICENSE.mdREADME.mddocs
examples
Assets
AudioLiveScrollingDisplay.h
Box2DTests
AddPair.hApplyForce.hBodyTypes.hBreakable.hBridge.hBulletTest.hCantilever.hCar.hChain.hCharacterCollision.hCollisionFiltering.hCollisionProcessing.hCompoundShapes.hConfined.hContinuousTest.hDistanceTest.hDominos.hDumpShell.hDynamicTreeTest.hEdgeShapes.hEdgeTest.hGears.hOneSidedPlatform.hPinball.hPolyCollision.hPolyShapes.hPrismatic.hPulleys.hPyramid.hRayCast.hRevolute.hRope.hRopeJoint.hSensorTest.hShapeEditing.hSliderCrank.hSphereStack.hTestEntries.cppTheoJansen.hTiles.hTimeOfImpact.hTumbler.hVaryingFriction.hVaryingRestitution.hVerticalStack.hWeb.h
DSPDemos_Common.hDemoUtilities.hNotifications
images
ic_stat_name.pngic_stat_name10.pngic_stat_name2.pngic_stat_name3.pngic_stat_name4.pngic_stat_name5.pngic_stat_name6.pngic_stat_name7.pngic_stat_name8.pngic_stat_name9.png
sounds
Purchases
Ed.pngEd0.oggEd1.oggEd2.oggFabian.pngFabian0.oggFabian1.oggFabian2.oggJB.pngJB0.oggJB1.oggJB2.oggJules.pngJules0.oggJules1.oggJules2.oggLukasz.pngLukasz0.oggLukasz1.oggLukasz2.oggRobot.pngRobot0.oggRobot1.oggRobot2.oggicon.png
Signing
WavefrontObjParser.hcassette_recorder.wavcello.wavdemo table data.xmlgoogle-services.jsonguitar_amp.wavicons.zipjuce_icon.pngjuce_icon_template.pngjuce_module_infoportmeirion.jpgpower.pngproaudio.pathreverb_ir.wavsinging.oggteapot.objtile_background.pngtreedemo.xmlAudio
AudioAppDemo.hAudioLatencyDemo.hAudioPlaybackDemo.hAudioRecordingDemo.hAudioSettingsDemo.hAudioSynthesiserDemo.hCMakeLists.txtMPEDemo.hMidiDemo.hPluckedStringsDemo.hSimpleFFTDemo.h
CMake
CMakeLists.txtDSP
CMakeLists.txtConvolutionDemo.hFIRFilterDemo.hGainDemo.hIIRFilterDemo.hOscillatorDemo.hOverdriveDemo.hSIMDRegisterDemo.hStateVariableFilterDemo.hWaveShaperTanhDemo.h
DemoRunner
Builds
Android
app
CMakeLists.txtbuild.gradle
build.gradlesrc
debug
res
values
main
AndroidManifest.xml
assets
AudioLiveScrollingDisplay.h
Box2DTests
AddPair.hApplyForce.hBodyTypes.hBreakable.hBridge.hBulletTest.hCantilever.hCar.hChain.hCharacterCollision.hCollisionFiltering.hCollisionProcessing.hCompoundShapes.hConfined.hContinuousTest.hDistanceTest.hDominos.hDumpShell.hDynamicTreeTest.hEdgeShapes.hEdgeTest.hGears.hOneSidedPlatform.hPinball.hPolyCollision.hPolyShapes.hPrismatic.hPulleys.hPyramid.hRayCast.hRevolute.hRope.hRopeJoint.hSensorTest.hShapeEditing.hSliderCrank.hSphereStack.hTestEntries.cppTheoJansen.hTiles.hTimeOfImpact.hTumbler.hVaryingFriction.hVaryingRestitution.hVerticalStack.hWeb.h
DSPDemos_Common.hDemoUtilities.hNotifications
images
ic_stat_name.pngic_stat_name10.pngic_stat_name2.pngic_stat_name3.pngic_stat_name4.pngic_stat_name5.pngic_stat_name6.pngic_stat_name7.pngic_stat_name8.pngic_stat_name9.png
sounds
Purchases
Ed.pngEd0.oggEd1.oggEd2.oggFabian.pngFabian0.oggFabian1.oggFabian2.oggJB.pngJB0.oggJB1.oggJB2.oggJules.pngJules0.oggJules1.oggJules2.oggLukasz.pngLukasz0.oggLukasz1.oggLukasz2.oggRobot.pngRobot0.oggRobot1.oggRobot2.oggicon.png
Signing
WavefrontObjParser.hcassette_recorder.wavcello.wavdemo table data.xmlgoogle-services.jsonguitar_amp.wavicons.zipjuce_icon.pngjuce_icon_template.pngjuce_module_infoportmeirion.jpgpower.pngproaudio.pathreverb_ir.wavsinging.oggteapot.objtile_background.pngtreedemo.xmlres
release
res
values
gradle
gradlewgradlew.batsettings.gradleLinuxMakefile
MacOSX
VisualStudio2015
VisualStudio2017
VisualStudio2019
iOS
App.entitlementsIcon.icnsInfo-App.plistLaunchScreen.storyboard
DemoRunner.xcodeproj
DemoRunner
Images.xcassets
AppIcon.appiconset
Contents.jsonIcon-29.pngIcon-29@2x.pngIcon-29@3x.pngIcon-60@2x.pngIcon-72.pngIcon-72@2x.pngIcon-76.pngIcon-76@2x.pngIcon-83.5@2x.pngIcon-@3x.pngIcon-AppStore-1024.pngIcon-Notification-20@2x.pngIcon-Notification-20@3x.pngIcon-Notifications-20.pngIcon-Notifications-20@2x.pngIcon-Small-1.pngIcon-Small-50.pngIcon-Small-50@2x.pngIcon-Small@2x-1.pngIcon-Spotlight-40.pngIcon-Spotlight-40@2x-1.pngIcon-Spotlight-40@2x.pngIcon-Spotlight-40@3x.pngIcon.pngIcon@2x.png
LaunchImage.launchimage
JuceLibraryCode
JuceHeader.hReadMe.txtinclude_juce_analytics.cppinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_box2d.cppinclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_dsp.cppinclude_juce_dsp.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mminclude_juce_opengl.cppinclude_juce_opengl.mminclude_juce_osc.cppinclude_juce_product_unlocking.cppinclude_juce_product_unlocking.mminclude_juce_video.cppinclude_juce_video.mm
Source
GUI
AccessibilityDemo.hAnimationAppDemo.hAnimationDemo.hBouncingBallWavetableDemo.hCMakeLists.txtCameraDemo.hCodeEditorDemo.hComponentDemo.hComponentTransformsDemo.hDialogsDemo.hFlexBoxDemo.hFontsDemo.hGraphicsDemo.hGridDemo.hHelloWorldDemo.hImagesDemo.hKeyMappingsDemo.hLookAndFeelDemo.hMDIDemo.hMenusDemo.hMultiTouchDemo.hOpenGLAppDemo.hOpenGLDemo.hOpenGLDemo2D.hPropertiesDemo.hVideoDemo.hWebBrowserDemo.hWidgetsDemo.hWindowsDemo.h
Plugins
AUv3SynthPluginDemo.hArpeggiatorPluginDemo.hAudioPluginDemo.hCMakeLists.txtDSPModulePluginDemo.hGainPluginDemo.hInterAppAudioEffectPluginDemo.hMidiLoggerPluginDemo.hMultiOutSynthPluginDemo.hNoiseGatePluginDemo.hReaperEmbeddedViewPluginDemo.hSamplerPluginDemo.hSurroundPluginDemo.h
extern
Utilities
extras
AudioPerformanceTest
AudioPerformanceTest.jucerInfo-App.plistLaunchScreen.storyboardCMakeLists.txt
Builds
Android
LinuxMakefile
MacOSX
VisualStudio2019
AudioPerformanceTest.slnAudioPerformanceTest_App.vcxprojAudioPerformanceTest_App.vcxproj.filtersresources.rc
iOS
AudioPerformanceTest.xcodeproj
AudioPerformanceTest
Images.xcassets
JuceLibraryCode
JuceHeader.hReadMe.txtinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_core.cppinclude_juce_core.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mm
Source
AudioPluginHost
AudioPluginHost.jucerIcon.icnsInfo-App.plistLaunchScreen.storyboardCMakeLists.txt
Builds
Android
app
CMakeLists.txtbuild.gradle
build.gradlesrc
debug
res
values
main
AndroidManifest.xml
assets
AudioLiveScrollingDisplay.h
Box2DTests
AddPair.hApplyForce.hBodyTypes.hBreakable.hBridge.hBulletTest.hCantilever.hCar.hChain.hCharacterCollision.hCollisionFiltering.hCollisionProcessing.hCompoundShapes.hConfined.hContinuousTest.hDistanceTest.hDominos.hDumpShell.hDynamicTreeTest.hEdgeShapes.hEdgeTest.hGears.hOneSidedPlatform.hPinball.hPolyCollision.hPolyShapes.hPrismatic.hPulleys.hPyramid.hRayCast.hRevolute.hRope.hRopeJoint.hSensorTest.hShapeEditing.hSliderCrank.hSphereStack.hTestEntries.cppTheoJansen.hTiles.hTimeOfImpact.hTumbler.hVaryingFriction.hVaryingRestitution.hVerticalStack.hWeb.h
DSPDemos_Common.hDemoUtilities.hNotifications
images
ic_stat_name.pngic_stat_name10.pngic_stat_name2.pngic_stat_name3.pngic_stat_name4.pngic_stat_name5.pngic_stat_name6.pngic_stat_name7.pngic_stat_name8.pngic_stat_name9.png
sounds
Purchases
Ed.pngEd0.oggEd1.oggEd2.oggFabian.pngFabian0.oggFabian1.oggFabian2.oggJB.pngJB0.oggJB1.oggJB2.oggJules.pngJules0.oggJules1.oggJules2.oggLukasz.pngLukasz0.oggLukasz1.oggLukasz2.oggRobot.pngRobot0.oggRobot1.oggRobot2.oggicon.png
Signing
WavefrontObjParser.hcassette_recorder.wavcello.wavdemo table data.xmlgoogle-services.jsonguitar_amp.wavicons.zipjuce_icon.pngjuce_icon_template.pngjuce_module_infoportmeirion.jpgpower.pngproaudio.pathreverb_ir.wavsinging.oggteapot.objtile_background.pngtreedemo.xmlres
release
res
values
gradle
gradlewgradlew.batsettings.gradleLinuxMakefile
MacOSX
VisualStudio2015
AudioPluginHost.slnAudioPluginHost_App.vcxprojAudioPluginHost_App.vcxproj.filtersicon.icoresources.rc
VisualStudio2017
AudioPluginHost.slnAudioPluginHost_App.vcxprojAudioPluginHost_App.vcxproj.filtersicon.icoresources.rc
VisualStudio2019
AudioPluginHost.slnAudioPluginHost_App.vcxprojAudioPluginHost_App.vcxproj.filtersicon.icoresources.rc
iOS
AudioPluginHost.xcodeproj
AudioPluginHost
Images.xcassets
AppIcon.appiconset
Contents.jsonIcon-29.pngIcon-29@2x.pngIcon-29@3x.pngIcon-60@2x.pngIcon-72.pngIcon-72@2x.pngIcon-76.pngIcon-76@2x.pngIcon-83.5@2x.pngIcon-@3x.pngIcon-AppStore-1024.pngIcon-Notification-20@2x.pngIcon-Notification-20@3x.pngIcon-Notifications-20.pngIcon-Notifications-20@2x.pngIcon-Small-1.pngIcon-Small-50.pngIcon-Small-50@2x.pngIcon-Small@2x-1.pngIcon-Spotlight-40.pngIcon-Spotlight-40@2x-1.pngIcon-Spotlight-40@2x.pngIcon-Spotlight-40@3x.pngIcon.pngIcon@2x.png
LaunchImage.launchimage
JuceLibraryCode
JuceHeader.hReadMe.txtinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_dsp.cppinclude_juce_dsp.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mminclude_juce_opengl.cppinclude_juce_opengl.mm
Source
BinaryBuilder
Build
CMake
JUCECheckAtomic.cmakeJUCEConfig.cmake.inJUCEHelperTargets.cmakeJUCEModuleSupport.cmakeJUCEUtils.cmakeLaunchScreen.storyboardPIPAudioProcessor.cpp.inPIPComponent.cpp.inPIPConsole.cpp.inRecentFilesMenuTemplate.nibUnityPluginGUIScript.cs.incopyDir.cmakejuce_runtime_arch_detection.cpp
CMakeLists.txtjuce_build_tools
juce_build_tools.cppjuce_build_tools.h
utils
juce_BinaryResourceFile.cppjuce_BinaryResourceFile.hjuce_BuildHelperFunctions.cppjuce_BuildHelperFunctions.hjuce_CppTokeniserFunctions.cppjuce_Entitlements.cppjuce_Entitlements.hjuce_Icons.cppjuce_Icons.hjuce_PlistOptions.cppjuce_PlistOptions.hjuce_ProjectType.hjuce_RelativePath.hjuce_ResourceFileHelpers.cppjuce_ResourceFileHelpers.hjuce_ResourceRc.cppjuce_ResourceRc.hjuce_VersionNumbers.cppjuce_VersionNumbers.h
juceaide
NetworkGraphicsDemo
Builds
Android
LinuxMakefile
MacOSX
VisualStudio2019
NetworkGraphicsDemo.slnNetworkGraphicsDemo_App.vcxprojNetworkGraphicsDemo_App.vcxproj.filtersresources.rc
iOS
Icon.icnsInfo-App.plistLaunchScreen.storyboard
NetworkGraphicsDemo.xcodeproj
NetworkGraphicsDemo
Images.xcassets
AppIcon.appiconset
Contents.jsonIcon-29.pngIcon-29@2x.pngIcon-29@3x.pngIcon-60@2x.pngIcon-72.pngIcon-72@2x.pngIcon-76.pngIcon-76@2x.pngIcon-83.5@2x.pngIcon-@3x.pngIcon-AppStore-1024.pngIcon-Notification-20@2x.pngIcon-Notification-20@3x.pngIcon-Notifications-20.pngIcon-Notifications-20@2x.pngIcon-Small-1.pngIcon-Small-50.pngIcon-Small-50@2x.pngIcon-Small@2x-1.pngIcon-Spotlight-40.pngIcon-Spotlight-40@2x-1.pngIcon-Spotlight-40@2x.pngIcon-Spotlight-40@3x.pngIcon.pngIcon@2x.png
LaunchImage.launchimage
JuceLibraryCode
BinaryData.cppBinaryData.hJuceHeader.hReadMe.txtinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mminclude_juce_opengl.cppinclude_juce_opengl.mminclude_juce_osc.cpp
NetworkGraphicsDemo.jucerREADME.txtSource
Projucer
Builds
LinuxMakefile
MacOSX
VisualStudio2015
VisualStudio2017
VisualStudio2019
JuceLibraryCode
BinaryData.cppBinaryData.hJuceHeader.hReadMe.txtinclude_juce_build_tools.cppinclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mm
Projucer.jucerSource
Application
StartPage
jucer_ContentComponents.hjucer_NewProjectTemplates.hjucer_NewProjectWizard.cppjucer_NewProjectWizard.hjucer_StartPageComponent.cppjucer_StartPageComponent.hjucer_StartPageTreeHolder.h
UserAccount
Windows
jucer_AboutWindowComponent.hjucer_EditorColourSchemeWindowComponent.hjucer_FloatingToolWindow.hjucer_GlobalPathsWindowComponent.hjucer_PIPCreatorWindowComponent.hjucer_SVGPathDataWindowComponent.hjucer_TranslationToolWindowComponent.hjucer_UTF8WindowComponent.h
jucer_Application.cppjucer_Application.hjucer_AutoUpdater.cppjucer_AutoUpdater.hjucer_CommandIDs.hjucer_CommandLine.cppjucer_CommandLine.hjucer_CommonHeaders.hjucer_Headers.hjucer_Main.cppjucer_MainWindow.cppjucer_MainWindow.hBinaryData
Icons
background_logo.svgexport_android.svgexport_clion.svgexport_codeBlocks.svgexport_linux.svgexport_visualStudio.svgexport_xcode.svggpl_logo.svgjuce_icon.pngwizard_AnimatedApp.svgwizard_AudioApp.svgwizard_AudioPlugin.svgwizard_ConsoleApp.svgwizard_DLL.svgwizard_GUI.svgwizard_Highlight.svgwizard_OpenGL.svgwizard_Openfile.svgwizard_StaticLibrary.svg
Templates
jucer_AnimatedComponentSimpleTemplate.hjucer_AnimatedComponentTemplate.cppjucer_AnimatedComponentTemplate.hjucer_AudioComponentSimpleTemplate.hjucer_AudioComponentTemplate.cppjucer_AudioComponentTemplate.hjucer_AudioPluginEditorTemplate.cppjucer_AudioPluginEditorTemplate.hjucer_AudioPluginFilterTemplate.cppjucer_AudioPluginFilterTemplate.hjucer_ComponentTemplate.cppjucer_ComponentTemplate.hjucer_ContentCompSimpleTemplate.hjucer_ContentCompTemplate.cppjucer_ContentCompTemplate.hjucer_InlineComponentTemplate.hjucer_MainConsoleAppTemplate.cppjucer_MainTemplate_NoWindow.cppjucer_MainTemplate_Window.cppjucer_NewComponentTemplate.cppjucer_NewComponentTemplate.hjucer_NewCppFileTemplate.cppjucer_NewCppFileTemplate.hjucer_NewInlineComponentTemplate.hjucer_OpenGLComponentSimpleTemplate.hjucer_OpenGLComponentTemplate.cppjucer_OpenGLComponentTemplate.hjucer_PIPAudioProcessorTemplate.hjucer_PIPTemplate.h
colourscheme_dark.xmlcolourscheme_light.xmlgradle
CodeEditor
jucer_DocumentEditorComponent.cppjucer_DocumentEditorComponent.hjucer_ItemPreviewComponent.hjucer_OpenDocumentManager.cppjucer_OpenDocumentManager.hjucer_SourceCodeEditor.cppjucer_SourceCodeEditor.h
ComponentEditor
Components
jucer_ButtonHandler.hjucer_ComboBoxHandler.hjucer_ComponentNameProperty.hjucer_ComponentTypeHandler.cppjucer_ComponentTypeHandler.hjucer_ComponentUndoableAction.hjucer_GenericComponentHandler.hjucer_GroupComponentHandler.hjucer_HyperlinkButtonHandler.hjucer_ImageButtonHandler.hjucer_JucerComponentHandler.hjucer_LabelHandler.hjucer_SliderHandler.hjucer_TabbedComponentHandler.hjucer_TextButtonHandler.hjucer_TextEditorHandler.hjucer_ToggleButtonHandler.hjucer_TreeViewHandler.hjucer_ViewportHandler.h
Documents
PaintElements
jucer_ColouredElement.cppjucer_ColouredElement.hjucer_ElementSiblingComponent.hjucer_FillType.hjucer_GradientPointComponent.hjucer_ImageResourceProperty.hjucer_PaintElement.cppjucer_PaintElement.hjucer_PaintElementEllipse.hjucer_PaintElementGroup.cppjucer_PaintElementGroup.hjucer_PaintElementImage.cppjucer_PaintElementImage.hjucer_PaintElementPath.cppjucer_PaintElementPath.hjucer_PaintElementRectangle.hjucer_PaintElementRoundedRectangle.hjucer_PaintElementText.hjucer_PaintElementUndoableAction.hjucer_PointComponent.hjucer_StrokeType.h
Properties
jucer_ColourPropertyComponent.hjucer_ComponentBooleanProperty.hjucer_ComponentChoiceProperty.hjucer_ComponentColourProperty.hjucer_ComponentTextProperty.hjucer_FilePropertyComponent.hjucer_FontPropertyComponent.hjucer_JustificationProperty.hjucer_PositionPropertyBase.h
UI
jucer_ComponentLayoutEditor.cppjucer_ComponentLayoutEditor.hjucer_ComponentLayoutPanel.hjucer_ComponentOverlayComponent.cppjucer_ComponentOverlayComponent.hjucer_EditingPanelBase.cppjucer_EditingPanelBase.hjucer_JucerCommandIDs.hjucer_JucerDocumentEditor.cppjucer_JucerDocumentEditor.hjucer_PaintRoutineEditor.cppjucer_PaintRoutineEditor.hjucer_PaintRoutinePanel.cppjucer_PaintRoutinePanel.hjucer_RelativePositionedRectangle.hjucer_ResourceEditorPanel.cppjucer_ResourceEditorPanel.hjucer_SnapGridPainter.hjucer_TestComponent.cppjucer_TestComponent.h
jucer_BinaryResources.cppjucer_BinaryResources.hjucer_ComponentLayout.cppjucer_ComponentLayout.hjucer_GeneratedCode.cppjucer_GeneratedCode.hjucer_JucerDocument.cppjucer_JucerDocument.hjucer_ObjectTypes.cppjucer_ObjectTypes.hjucer_PaintRoutine.cppjucer_PaintRoutine.hjucer_UtilityFunctions.hLicenses
LiveBuildEngine
Project
Modules
UI
Sidebar
jucer_ExporterTreeItems.hjucer_FileTreeItems.hjucer_ModuleTreeItems.hjucer_ProjectTreeItemBase.hjucer_Sidebar.hjucer_TreeItemTypes.h
jucer_ContentViewComponent.hjucer_ContentViewComponents.hjucer_FileGroupInformationComponent.hjucer_HeaderComponent.cppjucer_HeaderComponent.hjucer_ModulesInformationComponent.hjucer_ProjectContentComponent.cppjucer_ProjectContentComponent.hjucer_ProjectMessagesComponent.hjucer_UserAvatarComponent.hProjectSaving
jucer_ProjectExport_Android.hjucer_ProjectExport_CLion.hjucer_ProjectExport_CodeBlocks.hjucer_ProjectExport_MSVC.hjucer_ProjectExport_Make.hjucer_ProjectExport_Xcode.hjucer_ProjectExporter.cppjucer_ProjectExporter.hjucer_ProjectSaver.cppjucer_ProjectSaver.hjucer_ResourceFile.cppjucer_ResourceFile.hjucer_XcodeProjectParser.h
Settings
jucer_AppearanceSettings.cppjucer_AppearanceSettings.hjucer_StoredSettings.cppjucer_StoredSettings.h
Utility
Helpers
jucer_CodeHelpers.cppjucer_CodeHelpers.hjucer_Colours.hjucer_FileHelpers.cppjucer_FileHelpers.hjucer_MiscUtilities.cppjucer_MiscUtilities.hjucer_NewFileWizard.cppjucer_NewFileWizard.hjucer_PresetIDs.hjucer_TranslationHelpers.hjucer_ValueSourceHelpers.hjucer_ValueWithDefaultWrapper.hjucer_VersionInfo.cppjucer_VersionInfo.h
PIPs
UI
PropertyComponents
jucer_ColourPropertyComponent.hjucer_FilePathPropertyComponent.hjucer_LabelPropertyComponent.hjucer_PropertyComponentsWithEnablement.h
jucer_IconButton.hjucer_Icons.cppjucer_Icons.hjucer_JucerTreeViewBase.cppjucer_JucerTreeViewBase.hjucer_ProjucerLookAndFeel.cppjucer_ProjucerLookAndFeel.hjucer_SlidingPanelComponent.cppjucer_SlidingPanelComponent.hUnitTestRunner
Builds
LinuxMakefile
MacOSX
VisualStudio2017
UnitTestRunner.slnUnitTestRunner_ConsoleApp.vcxprojUnitTestRunner_ConsoleApp.vcxproj.filtersresources.rc
VisualStudio2019
JuceLibraryCode
JuceHeader.hReadMe.txtinclude_juce_analytics.cppinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_dsp.cppinclude_juce_dsp.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mminclude_juce_opengl.cppinclude_juce_opengl.mminclude_juce_osc.cppinclude_juce_product_unlocking.cppinclude_juce_product_unlocking.mminclude_juce_video.cppinclude_juce_video.mm
Source
UnitTestRunner.jucerWindowsDLL
Builds
VisualStudio2019
JuceLibraryCode
JuceHeader.hReadMe.txtinclude_juce_audio_basics.cppinclude_juce_audio_basics.mminclude_juce_audio_devices.cppinclude_juce_audio_devices.mminclude_juce_audio_formats.cppinclude_juce_audio_formats.mminclude_juce_audio_processors.cppinclude_juce_audio_processors.mminclude_juce_audio_utils.cppinclude_juce_audio_utils.mminclude_juce_core.cppinclude_juce_core.mminclude_juce_cryptography.cppinclude_juce_cryptography.mminclude_juce_data_structures.cppinclude_juce_data_structures.mminclude_juce_events.cppinclude_juce_events.mminclude_juce_graphics.cppinclude_juce_graphics.mminclude_juce_gui_basics.cppinclude_juce_gui_basics.mminclude_juce_gui_extra.cppinclude_juce_gui_extra.mminclude_juce_opengl.cppinclude_juce_opengl.mminclude_juce_video.cppinclude_juce_video.mm
WindowsDLL.jucermodules
CMakeLists.txtjuce_android_Audio.cppjuce_android_HighPerformanceAudioHelpers.hjuce_android_Midi.cppjuce_android_Oboe.cppjuce_android_OpenSL.cppjuce_ios_Audio.cppjuce_ios_Audio.hjuce_linux_ALSA.cppjuce_linux_Bela.cppjuce_linux_JackAudio.cppjuce_linux_Midi.cppjuce_mac_CoreAudio.cppjuce_mac_CoreMidi.mmjuce_win32_ASIO.cppjuce_win32_DirectSound.cppjuce_win32_Midi.cppjuce_win32_WASAPI.cppAUResources.rjuce_audio_processors.cppjuce_audio_processors.hjuce_audio_processors.mmjuce_MultiTouchMapper.hjuce_ScopedDPIAwarenessDisabler.hjuce_android_ContentSharer.cppjuce_android_FileChooser.cppjuce_android_Windowing.cppjuce_common_MimeTypes.cppjuce_ios_ContentSharer.cppjuce_ios_FileChooser.mmjuce_ios_UIViewComponentPeer.mmjuce_ios_Windowing.mmjuce_linux_FileChooser.cppjuce_linux_Windowing.cppjuce_mac_FileChooser.mmjuce_mac_MainMenu.mmjuce_mac_MouseCursor.mmjuce_mac_NSViewComponentPeer.mmjuce_mac_Windowing.mmjuce_win32_DragAndDrop.cppjuce_win32_FileChooser.cppjuce_win32_ScopedThreadDPIAwarenessSetter.hjuce_win32_Windowing.cppjuce_OpenGLExtensions.hjuce_OpenGL_android.hjuce_OpenGL_ios.hjuce_OpenGL_linux_X11.hjuce_OpenGL_osx.hjuce_OpenGL_win32.h
juce_analytics
juce_audio_basics
audio_play_head
buffers
juce_AudioChannelSet.cppjuce_AudioChannelSet.hjuce_AudioDataConverters.cppjuce_AudioDataConverters.hjuce_AudioProcessLoadMeasurer.cppjuce_AudioProcessLoadMeasurer.hjuce_AudioSampleBuffer.hjuce_FloatVectorOperations.cppjuce_FloatVectorOperations.h
juce_audio_basics.cppjuce_audio_basics.hjuce_audio_basics.mmmidi
juce_MidiBuffer.cppjuce_MidiBuffer.hjuce_MidiDataConcatenator.hjuce_MidiFile.cppjuce_MidiFile.hjuce_MidiKeyboardState.cppjuce_MidiKeyboardState.hjuce_MidiMessage.cppjuce_MidiMessage.hjuce_MidiMessageSequence.cppjuce_MidiMessageSequence.hjuce_MidiRPN.cppjuce_MidiRPN.h
ump
juce_UMP.hjuce_UMPConversion.hjuce_UMPConverters.hjuce_UMPDispatcher.hjuce_UMPFactory.hjuce_UMPIterator.hjuce_UMPMidi1ToBytestreamTranslator.hjuce_UMPMidi1ToMidi2DefaultTranslator.cppjuce_UMPMidi1ToMidi2DefaultTranslator.hjuce_UMPProtocols.hjuce_UMPReceiver.hjuce_UMPSysEx7.cppjuce_UMPSysEx7.hjuce_UMPTests.cppjuce_UMPUtils.cppjuce_UMPUtils.hjuce_UMPView.cppjuce_UMPView.hjuce_UMPacket.hjuce_UMPackets.h
mpe
juce_MPEInstrument.cppjuce_MPEInstrument.cpp.origjuce_MPEInstrument.hjuce_MPEInstrument.h.origjuce_MPEMessages.cppjuce_MPEMessages.hjuce_MPENote.cppjuce_MPENote.hjuce_MPESynthesiser.cppjuce_MPESynthesiser.hjuce_MPESynthesiserBase.cppjuce_MPESynthesiserBase.hjuce_MPESynthesiserVoice.cppjuce_MPESynthesiserVoice.hjuce_MPEUtils.cppjuce_MPEUtils.hjuce_MPEValue.cppjuce_MPEValue.hjuce_MPEZoneLayout.cppjuce_MPEZoneLayout.h
native
sources
juce_AudioSource.hjuce_BufferingAudioSource.cppjuce_BufferingAudioSource.hjuce_ChannelRemappingAudioSource.cppjuce_ChannelRemappingAudioSource.hjuce_IIRFilterAudioSource.cppjuce_IIRFilterAudioSource.hjuce_MemoryAudioSource.cppjuce_MemoryAudioSource.hjuce_MixerAudioSource.cppjuce_MixerAudioSource.hjuce_PositionableAudioSource.hjuce_ResamplingAudioSource.cppjuce_ResamplingAudioSource.hjuce_ReverbAudioSource.cppjuce_ReverbAudioSource.hjuce_ToneGeneratorAudioSource.cppjuce_ToneGeneratorAudioSource.h
synthesisers
utilities
juce_audio_devices
audio_io
juce_AudioDeviceManager.cppjuce_AudioDeviceManager.hjuce_AudioIODevice.cppjuce_AudioIODevice.hjuce_AudioIODeviceType.cppjuce_AudioIODeviceType.hjuce_SystemAudioVolume.h
juce_audio_devices.cppjuce_audio_devices.hjuce_audio_devices.mmmidi_io
native
java
app
com
rmsl
oboe
CMakeLists.txtLICENSEREADME.md
include
oboe
src
aaudio
common
AudioClock.hAudioSourceCaller.cppAudioSourceCaller.hAudioStream.cppAudioStreamBuilder.cppDataConversionFlowGraph.cppDataConversionFlowGraph.hFilterAudioStream.cppFilterAudioStream.hFixedBlockAdapter.cppFixedBlockAdapter.hFixedBlockReader.cppFixedBlockReader.hFixedBlockWriter.cppFixedBlockWriter.hLatencyTuner.cppMonotonicCounter.hOboeDebug.hQuirksManager.cppQuirksManager.hSourceFloatCaller.cppSourceFloatCaller.hSourceI16Caller.cppSourceI16Caller.hSourceI24Caller.cppSourceI24Caller.hSourceI32Caller.cppSourceI32Caller.hStabilizedCallback.cppTrace.cppTrace.hUtilities.cppVersion.cpp
fifo
FifoBuffer.cppFifoBuffer.hFifoController.cppFifoController.hFifoControllerBase.cppFifoControllerBase.hFifoControllerIndirect.cppFifoControllerIndirect.h
flowgraph
ChannelCountConverter.cppChannelCountConverter.hClipToRange.cppClipToRange.hFlowGraphNode.cppFlowGraphNode.hFlowgraphUtilities.hManyToMultiConverter.cppManyToMultiConverter.hMonoToMultiConverter.cppMonoToMultiConverter.hMultiToMonoConverter.cppMultiToMonoConverter.hRampLinear.cppRampLinear.hSampleRateConverter.cppSampleRateConverter.hSinkFloat.cppSinkFloat.hSinkI16.cppSinkI16.hSinkI24.cppSinkI24.hSinkI32.cppSinkI32.hSourceFloat.cppSourceFloat.hSourceI16.cppSourceI16.hSourceI24.cppSourceI24.hSourceI32.cppSourceI32.h
resampler
HyperbolicCosineWindow.hIntegerRatio.cppIntegerRatio.hKaiserWindow.hLinearResampler.cppLinearResampler.hMultiChannelResampler.cppMultiChannelResampler.hPolyphaseResampler.cppPolyphaseResampler.hPolyphaseResamplerMono.cppPolyphaseResamplerMono.hPolyphaseResamplerStereo.cppPolyphaseResamplerStereo.hSincResampler.cppSincResampler.hSincResamplerStereo.cppSincResamplerStereo.h
opensles
AudioInputStreamOpenSLES.cppAudioInputStreamOpenSLES.hAudioOutputStreamOpenSLES.cppAudioOutputStreamOpenSLES.hAudioStreamBuffered.cppAudioStreamBuffered.hAudioStreamOpenSLES.cppAudioStreamOpenSLES.hEngineOpenSLES.cppEngineOpenSLES.hOpenSLESUtilities.cppOpenSLESUtilities.hOutputMixerOpenSLES.cppOutputMixerOpenSLES.h
sources
juce_audio_formats
codecs
flac
Flac Licence.txtall.halloc.hassert.hcallback.hcompat.hendswap.hexport.hformat.h
juce_AiffAudioFormat.cppjuce_AiffAudioFormat.hjuce_CoreAudioFormat.cppjuce_CoreAudioFormat.hjuce_FlacAudioFormat.cppjuce_FlacAudioFormat.hjuce_LAMEEncoderAudioFormat.cppjuce_LAMEEncoderAudioFormat.hjuce_MP3AudioFormat.cppjuce_MP3AudioFormat.hjuce_OggVorbisAudioFormat.cppjuce_OggVorbisAudioFormat.hjuce_WavAudioFormat.cppjuce_WavAudioFormat.hjuce_WindowsMediaAudioFormat.cppjuce_WindowsMediaAudioFormat.hlibFLAC
bitmath.cbitreader.cbitwriter.ccpu.ccrc.cfixed.cfloat.cformat.clpc_flac.cmd5.cmemory.cstream_decoder.cstream_encoder.cstream_encoder_framing.cwindow_flac.c
metadata.hordinals.hstream_decoder.hstream_encoder.hwin_utf8_io.hinclude
private
all.hbitmath.hbitreader.hbitwriter.hcpu.hcrc.hfixed.hfloat.hformat.hlpc.hmd5.hmemory.hmetadata.hstream_encoder.hstream_encoder_framing.hwindow.h
protected
oggvorbis
Ogg Vorbis Licence.txtbitwise.ccodec.hconfig_types.hcrctable.hframing.c
libvorbis-1.3.7
AUTHORSCHANGESCOPYINGREADME.md
ogg.hos_types.hvorbisenc.hvorbisfile.hlib
analysis.cbackends.hbitrate.cbitrate.hblock.c
books
codebook.ccodebook.hcodec_internal.henvelope.cenvelope.hfloor0.cfloor1.chighlevel.hinfo.clookup.clookup.hlookup_data.hlpc.clpc.hlsp.clsp.hmapping0.cmasking.hmdct.cmdct.hmisc.cmisc.hmodes
floor_all.hpsych_11.hpsych_16.hpsych_44.hpsych_8.hresidue_16.hresidue_44.hresidue_44p51.hresidue_44u.hresidue_8.hsetup_11.hsetup_16.hsetup_22.hsetup_32.hsetup_44.hsetup_44p51.hsetup_44u.hsetup_8.hsetup_X.h
os.hpsy.cpsy.hregistry.cregistry.hres0.cscales.hsharedbook.csmallft.csmallft.hsynthesis.cvorbisenc.cvorbisfile.cwindow.cwindow.hformat
juce_AudioFormat.cppjuce_AudioFormat.hjuce_AudioFormatManager.cppjuce_AudioFormatManager.hjuce_AudioFormatReader.cppjuce_AudioFormatReader.hjuce_AudioFormatReaderSource.cppjuce_AudioFormatReaderSource.hjuce_AudioFormatWriter.cppjuce_AudioFormatWriter.hjuce_AudioSubsectionReader.cppjuce_AudioSubsectionReader.hjuce_BufferingAudioFormatReader.cppjuce_BufferingAudioFormatReader.hjuce_MemoryMappedAudioFormatReader.h
juce_audio_formats.cppjuce_audio_formats.hjuce_audio_formats.mmsampler
juce_audio_plugin_client
AAX
AU
CoreAudioUtilityClasses
AUBase.cppAUBase.hAUBaseHelper.hAUBuffer.cppAUBuffer.hAUCarbonViewBase.cppAUCarbonViewBase.hAUCarbonViewControl.cppAUCarbonViewControl.hAUCarbonViewDispatch.cppAUDispatch.cppAUDispatch.hAUInputElement.cppAUInputElement.hAUInputFormatConverter.hAUMIDIBase.cppAUMIDIBase.hAUOutputBase.cppAUOutputBase.hAUOutputElement.cppAUOutputElement.hAUPlugInDispatch.cppAUPlugInDispatch.hAUScopeElement.cppAUScopeElement.hAUSilentTimeout.hAUTimestampGenerator.hAUViewLocalizedStringKeys.hCAAUParameter.cppCAAUParameter.hCAAtomic.hCAAtomicStack.hCAAudioChannelLayout.cppCAAudioChannelLayout.hCAAutoDisposer.hCADebugMacros.hCADebugPrintf.hCAException.hCAHostTimeBase.hCAMath.hCAMutex.cppCAMutex.hCAReferenceCounted.hCAStreamBasicDescription.cppCAStreamBasicDescription.hCAThreadSafeList.hCAVectorUnit.cppCAVectorUnit.hCAVectorUnitTypes.hCAXException.hCarbonEventHandler.cppCarbonEventHandler.hComponentBase.cppComponentBase.hMusicDeviceBase.cppMusicDeviceBase.h
juce_AU_Wrapper.mmjuce_AUv3_Wrapper.mmRTAS
juce_RTAS_DigiCode1.cppjuce_RTAS_DigiCode2.cppjuce_RTAS_DigiCode3.cppjuce_RTAS_DigiCode_Header.hjuce_RTAS_MacUtilities.mmjuce_RTAS_WinExports.defjuce_RTAS_WinResources.rsrjuce_RTAS_WinUtilities.cppjuce_RTAS_Wrapper.cpp
Standalone
Unity
VST
VST3
juce_audio_plugin_client.hjuce_audio_plugin_client_AAX.cppjuce_audio_plugin_client_AAX.mmjuce_audio_plugin_client_AU.rjuce_audio_plugin_client_AU_1.mmjuce_audio_plugin_client_AU_2.mmjuce_audio_plugin_client_AUv3.mmjuce_audio_plugin_client_RTAS.rjuce_audio_plugin_client_RTAS_1.cppjuce_audio_plugin_client_RTAS_2.cppjuce_audio_plugin_client_RTAS_3.cppjuce_audio_plugin_client_RTAS_4.cppjuce_audio_plugin_client_RTAS_utils.cppjuce_audio_plugin_client_RTAS_utils.mmjuce_audio_plugin_client_Standalone.cppjuce_audio_plugin_client_Unity.cppjuce_audio_plugin_client_VST2.cppjuce_audio_plugin_client_VST3.cppjuce_audio_plugin_client_VST_utils.mmjuce_audio_plugin_client_utils.cpputility
juce_audio_processors
format
juce_AudioPluginFormat.cppjuce_AudioPluginFormat.hjuce_AudioPluginFormatManager.cppjuce_AudioPluginFormatManager.h
format_types
VST3_SDK
JUCE_README.mdLICENSE.txtREADME.mdVST3_License_Agreement.pdfVST3_Usage_Guidelines.pdf
juce_AU_Shared.hjuce_AudioUnitPluginFormat.hjuce_AudioUnitPluginFormat.mmjuce_LADSPAPluginFormat.cppjuce_LADSPAPluginFormat.hjuce_LegacyAudioParameter.cppjuce_VST3Common.hjuce_VST3Headers.hjuce_VST3PluginFormat.cppjuce_VST3PluginFormat.hjuce_VSTCommon.hjuce_VSTMidiEventList.hjuce_VSTPluginFormat.cppjuce_VSTPluginFormat.hbase
LICENSE.txtREADME.md
source
baseiids.cppclassfactoryhelpers.hfbuffer.cppfbuffer.hfdebug.cppfdebug.hfobject.cppfobject.hfstreamer.cppfstreamer.hfstring.cppfstring.hupdatehandler.cppupdatehandler.h
thread
pluginterfaces
LICENSE.txtREADME.md
base
conststringtable.cppconststringtable.hcoreiids.cppfalignpop.hfalignpush.hfplatform.hfstrdefs.hftypes.hfunknown.cppfunknown.hfutils.hfvariant.hibstream.hicloneable.hipersistent.hipluginbase.histringresult.hiupdatehandler.hsmartpointer.htypesizecheck.hustring.cppustring.h
gui
vst
ivstattributes.hivstaudioprocessor.hivstautomationstate.hivstchannelcontextinfo.hivstcomponent.hivstcontextmenu.hivsteditcontroller.hivstevents.hivsthostapplication.hivstinterappaudio.hivstmessage.hivstmidicontrollers.hivstmidilearn.hivstnoteexpression.hivstparameterchanges.hivstparameterfunctionname.hivstphysicalui.hivstpluginterfacesupport.hivstplugview.hivstprefetchablesupport.hivstprocesscontext.hivstrepresentation.hivsttestplugprovider.hivstunits.hvstpshpack4.hvstspeaker.hvsttypes.h
public.sdk
processors
juce_AudioPluginInstance.cppjuce_AudioPluginInstance.hjuce_AudioProcessor.cppjuce_AudioProcessor.hjuce_AudioProcessorEditor.cppjuce_AudioProcessorEditor.hjuce_AudioProcessorEditorHostContext.hjuce_AudioProcessorGraph.cppjuce_AudioProcessorGraph.hjuce_AudioProcessorListener.hjuce_AudioProcessorParameter.hjuce_AudioProcessorParameterGroup.cppjuce_AudioProcessorParameterGroup.hjuce_GenericAudioProcessorEditor.cppjuce_GenericAudioProcessorEditor.hjuce_PluginDescription.cppjuce_PluginDescription.h
scanning
juce_KnownPluginList.cppjuce_KnownPluginList.hjuce_PluginDirectoryScanner.cppjuce_PluginDirectoryScanner.hjuce_PluginListComponent.cppjuce_PluginListComponent.h
utilities
juce_AudioParameterBool.cppjuce_AudioParameterBool.hjuce_AudioParameterChoice.cppjuce_AudioParameterChoice.hjuce_AudioParameterFloat.cppjuce_AudioParameterFloat.hjuce_AudioParameterInt.cppjuce_AudioParameterInt.hjuce_AudioProcessorParameterWithID.cppjuce_AudioProcessorParameterWithID.hjuce_AudioProcessorValueTreeState.cppjuce_AudioProcessorValueTreeState.hjuce_ExtensionsVisitor.hjuce_ParameterAttachments.cppjuce_ParameterAttachments.hjuce_PluginHostType.cppjuce_PluginHostType.hjuce_RangedAudioParameter.cppjuce_RangedAudioParameter.hjuce_VST3ClientExtensions.hjuce_VSTCallbackHandler.h
juce_audio_utils
audio_cd
gui
juce_AudioAppComponent.cppjuce_AudioAppComponent.hjuce_AudioDeviceSelectorComponent.cppjuce_AudioDeviceSelectorComponent.hjuce_AudioThumbnail.cppjuce_AudioThumbnail.hjuce_AudioThumbnailBase.hjuce_AudioThumbnailCache.cppjuce_AudioThumbnailCache.hjuce_AudioVisualiserComponent.cppjuce_AudioVisualiserComponent.hjuce_BluetoothMidiDevicePairingDialogue.hjuce_MidiKeyboardComponent.cppjuce_MidiKeyboardComponent.h
juce_audio_utils.cppjuce_audio_utils.hjuce_audio_utils.mmnative
juce_android_BluetoothMidiDevicePairingDialogue.cppjuce_ios_BluetoothMidiDevicePairingDialogue.mmjuce_linux_AudioCDReader.cppjuce_linux_BluetoothMidiDevicePairingDialogue.cppjuce_mac_AudioCDBurner.mmjuce_mac_AudioCDReader.mmjuce_mac_BluetoothMidiDevicePairingDialogue.mmjuce_win32_AudioCDBurner.cppjuce_win32_AudioCDReader.cppjuce_win_BluetoothMidiDevicePairingDialogue.cpp
players
juce_box2d
box2d
Box2D.hREADME.txt
juce_box2d.cppjuce_box2d.hCollision
Shapes
b2ChainShape.cppb2ChainShape.hb2CircleShape.cppb2CircleShape.hb2EdgeShape.cppb2EdgeShape.hb2PolygonShape.cppb2PolygonShape.hb2Shape.h
b2BroadPhase.cppb2BroadPhase.hb2CollideCircle.cppb2CollideEdge.cppb2CollidePolygon.cppb2Collision.cppb2Collision.hb2Distance.cppb2Distance.hb2DynamicTree.cppb2DynamicTree.hb2TimeOfImpact.cppb2TimeOfImpact.hCommon
b2BlockAllocator.cppb2BlockAllocator.hb2Draw.cppb2Draw.hb2GrowableStack.hb2Math.cppb2Math.hb2Settings.cppb2Settings.hb2StackAllocator.cppb2StackAllocator.hb2Timer.cppb2Timer.h
Dynamics
Contacts
b2ChainAndCircleContact.cppb2ChainAndCircleContact.hb2ChainAndPolygonContact.cppb2ChainAndPolygonContact.hb2CircleContact.cppb2CircleContact.hb2Contact.cppb2Contact.hb2ContactSolver.cppb2ContactSolver.hb2EdgeAndCircleContact.cppb2EdgeAndCircleContact.hb2EdgeAndPolygonContact.cppb2EdgeAndPolygonContact.hb2PolygonAndCircleContact.cppb2PolygonAndCircleContact.hb2PolygonContact.cppb2PolygonContact.h
Joints
b2DistanceJoint.cppb2DistanceJoint.hb2FrictionJoint.cppb2FrictionJoint.hb2GearJoint.cppb2GearJoint.hb2Joint.cppb2Joint.hb2MouseJoint.cppb2MouseJoint.hb2PrismaticJoint.cppb2PrismaticJoint.hb2PulleyJoint.cppb2PulleyJoint.hb2RevoluteJoint.cppb2RevoluteJoint.hb2RopeJoint.cppb2RopeJoint.hb2WeldJoint.cppb2WeldJoint.hb2WheelJoint.cppb2WheelJoint.h
b2Body.cppb2Body.hb2ContactManager.cppb2ContactManager.hb2Fixture.cppb2Fixture.hb2Island.cppb2Island.hb2TimeStep.hb2World.cppb2World.hb2WorldCallbacks.cppb2WorldCallbacks.hRope
utils
juce_core
containers
juce_AbstractFifo.cppjuce_AbstractFifo.hjuce_Array.hjuce_ArrayAllocationBase.hjuce_ArrayBase.cppjuce_ArrayBase.hjuce_DynamicObject.cppjuce_DynamicObject.hjuce_ElementComparator.hjuce_HashMap.hjuce_HashMap_test.cppjuce_LinkedListPointer.hjuce_ListenerList.hjuce_NamedValueSet.cppjuce_NamedValueSet.hjuce_OwnedArray.cppjuce_OwnedArray.hjuce_PropertySet.cppjuce_PropertySet.hjuce_ReferenceCountedArray.cppjuce_ReferenceCountedArray.hjuce_ScopedValueSetter.hjuce_SingleThreadedAbstractFifo.hjuce_SortedSet.hjuce_SparseSet.cppjuce_SparseSet.hjuce_Variant.cppjuce_Variant.h
files
juce_DirectoryIterator.cppjuce_DirectoryIterator.hjuce_File.cppjuce_File.hjuce_FileFilter.cppjuce_FileFilter.hjuce_FileInputStream.cppjuce_FileInputStream.hjuce_FileOutputStream.cppjuce_FileOutputStream.hjuce_FileSearchPath.cppjuce_FileSearchPath.hjuce_MemoryMappedFile.hjuce_RangedDirectoryIterator.cppjuce_RangedDirectoryIterator.hjuce_TemporaryFile.cppjuce_TemporaryFile.hjuce_WildcardFileFilter.cppjuce_WildcardFileFilter.h
javascript
juce_core.cppjuce_core.hjuce_core.mmlogging
maths
juce_BigInteger.cppjuce_BigInteger.hjuce_Expression.cppjuce_Expression.hjuce_MathsFunctions.hjuce_NormalisableRange.hjuce_Random.cppjuce_Random.hjuce_Range.hjuce_StatisticsAccumulator.h
memory
juce_AllocationHooks.cppjuce_AllocationHooks.hjuce_Atomic.hjuce_ByteOrder.hjuce_ContainerDeletePolicy.hjuce_HeapBlock.hjuce_HeavyweightLeakedObjectDetector.hjuce_LeakedObjectDetector.hjuce_Memory.hjuce_MemoryBlock.cppjuce_MemoryBlock.hjuce_OptionalScopedPointer.hjuce_ReferenceCountedObject.hjuce_Reservoir.hjuce_ScopedPointer.hjuce_SharedResourcePointer.hjuce_Singleton.hjuce_WeakReference.h
misc
juce_ConsoleApplication.cppjuce_ConsoleApplication.hjuce_Functional.hjuce_Result.cppjuce_Result.hjuce_RuntimePermissions.cppjuce_RuntimePermissions.hjuce_Uuid.cppjuce_Uuid.hjuce_WindowsRegistry.h
native
java
javacore
juce_BasicNativeHeaders.hjuce_android_Files.cppjuce_android_JNIHelpers.cppjuce_android_JNIHelpers.hjuce_android_Misc.cppjuce_android_Network.cppjuce_android_RuntimePermissions.cppjuce_android_SystemStats.cppjuce_android_Threads.cppjuce_curl_Network.cppjuce_intel_SharedCode.hjuce_linux_CommonFile.cppjuce_linux_Files.cppjuce_linux_Network.cppjuce_linux_SystemStats.cppjuce_linux_Threads.cppjuce_mac_CFHelpers.hjuce_mac_Files.mmjuce_mac_Network.mmjuce_mac_ObjCHelpers.hjuce_mac_Strings.mmjuce_mac_SystemStats.mmjuce_mac_Threads.mmjuce_posix_IPAddress.hjuce_posix_NamedPipe.cppjuce_posix_SharedCode.hjuce_wasm_SystemStats.cppjuce_win32_ComSmartPtr.hjuce_win32_Files.cppjuce_win32_Network.cppjuce_win32_Registry.cppjuce_win32_SystemStats.cppjuce_win32_Threads.cppnetwork
juce_IPAddress.cppjuce_IPAddress.hjuce_MACAddress.cppjuce_MACAddress.hjuce_NamedPipe.cppjuce_NamedPipe.hjuce_Socket.cppjuce_Socket.hjuce_URL.cppjuce_URL.hjuce_WebInputStream.cppjuce_WebInputStream.h
streams
juce_BufferedInputStream.cppjuce_BufferedInputStream.hjuce_FileInputSource.cppjuce_FileInputSource.hjuce_InputSource.hjuce_InputStream.cppjuce_InputStream.hjuce_MemoryInputStream.cppjuce_MemoryInputStream.hjuce_MemoryOutputStream.cppjuce_MemoryOutputStream.hjuce_OutputStream.cppjuce_OutputStream.hjuce_SubregionStream.cppjuce_SubregionStream.hjuce_URLInputSource.cppjuce_URLInputSource.h
system
juce_CompilerSupport.hjuce_CompilerWarnings.hjuce_PlatformDefs.hjuce_StandardHeader.hjuce_SystemStats.cppjuce_SystemStats.hjuce_TargetPlatform.h
text
juce_Base64.cppjuce_Base64.hjuce_CharPointer_ASCII.hjuce_CharPointer_UTF16.hjuce_CharPointer_UTF32.hjuce_CharPointer_UTF8.hjuce_CharacterFunctions.cppjuce_CharacterFunctions.hjuce_Identifier.cppjuce_Identifier.hjuce_LocalisedStrings.cppjuce_LocalisedStrings.hjuce_NewLine.hjuce_String.cppjuce_String.hjuce_StringArray.cppjuce_StringArray.hjuce_StringPairArray.cppjuce_StringPairArray.hjuce_StringPool.cppjuce_StringPool.hjuce_StringRef.hjuce_TextDiff.cppjuce_TextDiff.h
threads
juce_ChildProcess.cppjuce_ChildProcess.hjuce_CriticalSection.hjuce_DynamicLibrary.hjuce_HighResolutionTimer.cppjuce_HighResolutionTimer.hjuce_InterProcessLock.hjuce_Process.hjuce_ReadWriteLock.cppjuce_ReadWriteLock.hjuce_ScopedLock.hjuce_ScopedReadLock.hjuce_ScopedWriteLock.hjuce_SpinLock.hjuce_Thread.cppjuce_Thread.hjuce_ThreadLocalValue.hjuce_ThreadPool.cppjuce_ThreadPool.hjuce_TimeSliceThread.cppjuce_TimeSliceThread.hjuce_WaitableEvent.cppjuce_WaitableEvent.h
time
juce_PerformanceCounter.cppjuce_PerformanceCounter.hjuce_RelativeTime.cppjuce_RelativeTime.hjuce_Time.cppjuce_Time.h
unit_tests
xml
zip
juce_cryptography
juce_data_structures
app_properties
juce_ApplicationProperties.cppjuce_ApplicationProperties.hjuce_PropertiesFile.cppjuce_PropertiesFile.h
juce_data_structures.cppjuce_data_structures.hjuce_data_structures.mmundomanager
values
juce_dsp
containers
juce_AudioBlock.hjuce_AudioBlock_test.cppjuce_FixedSizeFunction.hjuce_FixedSizeFunction_test.cppjuce_SIMDRegister.hjuce_SIMDRegister_Impl.hjuce_SIMDRegister_test.cpp
filter_design
frequency
juce_Convolution.cppjuce_Convolution.hjuce_Convolution_test.cppjuce_FFT.cppjuce_FFT.hjuce_FFT_test.cppjuce_Windowing.cppjuce_Windowing.h
juce_dsp.cppjuce_dsp.hjuce_dsp.mmmaths
juce_FastMathApproximations.hjuce_LogRampedValue.hjuce_LogRampedValue_test.cppjuce_LookupTable.cppjuce_LookupTable.hjuce_Matrix.cppjuce_Matrix.hjuce_Matrix_test.cppjuce_Phase.hjuce_Polynomial.hjuce_SpecialFunctions.cppjuce_SpecialFunctions.h
native
juce_avx_SIMDNativeOps.cppjuce_avx_SIMDNativeOps.hjuce_fallback_SIMDNativeOps.hjuce_neon_SIMDNativeOps.cppjuce_neon_SIMDNativeOps.hjuce_sse_SIMDNativeOps.cppjuce_sse_SIMDNativeOps.h
processors
juce_BallisticsFilter.cppjuce_BallisticsFilter.hjuce_DelayLine.cppjuce_DelayLine.hjuce_DryWetMixer.cppjuce_DryWetMixer.hjuce_FIRFilter.cppjuce_FIRFilter.hjuce_FIRFilter_test.cppjuce_FirstOrderTPTFilter.cppjuce_FirstOrderTPTFilter.hjuce_IIRFilter.cppjuce_IIRFilter.hjuce_IIRFilter_Impl.hjuce_LinkwitzRileyFilter.cppjuce_LinkwitzRileyFilter.hjuce_Oversampling.cppjuce_Oversampling.hjuce_Panner.cppjuce_Panner.hjuce_ProcessContext.hjuce_ProcessorChain.hjuce_ProcessorChain_test.cppjuce_ProcessorDuplicator.hjuce_ProcessorWrapper.hjuce_StateVariableFilter.hjuce_StateVariableTPTFilter.cppjuce_StateVariableTPTFilter.h
widgets
juce_events
broadcasters
juce_ActionBroadcaster.cppjuce_ActionBroadcaster.hjuce_ActionListener.hjuce_AsyncUpdater.cppjuce_AsyncUpdater.hjuce_ChangeBroadcaster.cppjuce_ChangeBroadcaster.hjuce_ChangeListener.h
interprocess
juce_ConnectedChildProcess.cppjuce_ConnectedChildProcess.hjuce_InterprocessConnection.cppjuce_InterprocessConnection.hjuce_InterprocessConnectionServer.cppjuce_InterprocessConnectionServer.hjuce_NetworkServiceDiscovery.cppjuce_NetworkServiceDiscovery.h
juce_events.cppjuce_events.hjuce_events.mmmessages
juce_ApplicationBase.cppjuce_ApplicationBase.hjuce_CallbackMessage.hjuce_DeletedAtShutdown.cppjuce_DeletedAtShutdown.hjuce_Initialisation.hjuce_Message.hjuce_MessageListener.cppjuce_MessageListener.hjuce_MessageManager.cppjuce_MessageManager.hjuce_MountedVolumeListChangeDetector.hjuce_NotificationType.h
native
juce_ScopedLowPowerModeDisabler.cppjuce_ScopedLowPowerModeDisabler.hjuce_android_Messaging.cppjuce_ios_MessageManager.mmjuce_linux_EventLoop.hjuce_linux_Messaging.cppjuce_mac_MessageManager.mmjuce_osx_MessageQueue.hjuce_win32_HiddenMessageWindow.hjuce_win32_Messaging.cppjuce_win32_WinRTWrapper.cppjuce_win32_WinRTWrapper.h
timers
juce_graphics
colour
juce_Colour.cppjuce_Colour.hjuce_ColourGradient.cppjuce_ColourGradient.hjuce_Colours.cppjuce_Colours.hjuce_FillType.cppjuce_FillType.hjuce_PixelFormats.h
contexts
juce_GraphicsContext.cppjuce_GraphicsContext.hjuce_LowLevelGraphicsContext.hjuce_LowLevelGraphicsPostScriptRenderer.cppjuce_LowLevelGraphicsPostScriptRenderer.hjuce_LowLevelGraphicsSoftwareRenderer.cppjuce_LowLevelGraphicsSoftwareRenderer.h
effects
juce_DropShadowEffect.cppjuce_DropShadowEffect.hjuce_GlowEffect.cppjuce_GlowEffect.hjuce_ImageEffectFilter.h
fonts
juce_AttributedString.cppjuce_AttributedString.hjuce_CustomTypeface.cppjuce_CustomTypeface.hjuce_Font.cppjuce_Font.hjuce_GlyphArrangement.cppjuce_GlyphArrangement.hjuce_TextLayout.cppjuce_TextLayout.hjuce_Typeface.cppjuce_Typeface.h
geometry
juce_AffineTransform.cppjuce_AffineTransform.hjuce_BorderSize.hjuce_EdgeTable.cppjuce_EdgeTable.hjuce_Line.hjuce_Parallelogram.hjuce_Path.cppjuce_Path.hjuce_PathIterator.cppjuce_PathIterator.hjuce_PathStrokeType.cppjuce_PathStrokeType.hjuce_Point.hjuce_Rectangle.hjuce_RectangleList.h
image_formats
jpglib
READMEcderror.hchanges to libjpeg for JUCE.txtjcapimin.cjcapistd.cjccoefct.cjccolor.cjcdctmgr.cjchuff.cjchuff.hjcinit.cjcmainct.cjcmarker.cjcmaster.cjcomapi.cjconfig.hjcparam.cjcphuff.cjcprepct.cjcsample.cjctrans.cjdapimin.cjdapistd.cjdatasrc.cjdcoefct.cjdcolor.cjdct.hjddctmgr.cjdhuff.cjdhuff.hjdinput.cjdmainct.cjdmarker.cjdmaster.cjdmerge.cjdphuff.cjdpostct.cjdsample.cjdtrans.cjerror.cjerror.hjfdctflt.cjfdctfst.cjfdctint.cjidctflt.cjidctfst.cjidctint.cjidctred.cjinclude.hjmemmgr.cjmemnobs.cjmemsys.hjmorecfg.hjpegint.hjpeglib.hjquant1.cjquant2.cjutils.cjversion.htransupp.ctransupp.h
juce_GIFLoader.cppjuce_JPEGLoader.cppjuce_PNGLoader.cpppnglib
images
juce_Image.cppjuce_Image.hjuce_ImageCache.cppjuce_ImageCache.hjuce_ImageConvolutionKernel.cppjuce_ImageConvolutionKernel.hjuce_ImageFileFormat.cppjuce_ImageFileFormat.h
juce_graphics.cppjuce_graphics.hjuce_graphics.mmnative
juce_RenderingHelpers.hjuce_android_Fonts.cppjuce_android_GraphicsContext.cppjuce_android_IconHelpers.cppjuce_freetype_Fonts.cppjuce_linux_Fonts.cppjuce_linux_IconHelpers.cppjuce_mac_CoreGraphicsContext.hjuce_mac_CoreGraphicsContext.mmjuce_mac_CoreGraphicsHelpers.hjuce_mac_Fonts.mmjuce_mac_IconHelpers.cppjuce_win32_Direct2DGraphicsContext.cppjuce_win32_Direct2DGraphicsContext.hjuce_win32_DirectWriteTypeLayout.cppjuce_win32_DirectWriteTypeface.cppjuce_win32_Fonts.cppjuce_win32_IconHelpers.cpp
placement
juce_gui_basics
accessibility
enums
interfaces
juce_AccessibilityCellInterface.hjuce_AccessibilityTableInterface.hjuce_AccessibilityTextInterface.hjuce_AccessibilityValueInterface.h
juce_AccessibilityHandler.cppjuce_AccessibilityHandler.hjuce_AccessibilityState.happlication
buttons
juce_ArrowButton.cppjuce_ArrowButton.hjuce_Button.cppjuce_Button.hjuce_DrawableButton.cppjuce_DrawableButton.hjuce_HyperlinkButton.cppjuce_HyperlinkButton.hjuce_ImageButton.cppjuce_ImageButton.hjuce_ShapeButton.cppjuce_ShapeButton.hjuce_TextButton.cppjuce_TextButton.hjuce_ToggleButton.cppjuce_ToggleButton.hjuce_ToolbarButton.cppjuce_ToolbarButton.h
commands
juce_ApplicationCommandID.hjuce_ApplicationCommandInfo.cppjuce_ApplicationCommandInfo.hjuce_ApplicationCommandManager.cppjuce_ApplicationCommandManager.hjuce_ApplicationCommandTarget.cppjuce_ApplicationCommandTarget.hjuce_KeyPressMappingSet.cppjuce_KeyPressMappingSet.h
components
juce_CachedComponentImage.hjuce_Component.cppjuce_Component.hjuce_ComponentListener.cppjuce_ComponentListener.hjuce_ComponentTraverser.hjuce_FocusTraverser.cppjuce_FocusTraverser.hjuce_ModalComponentManager.cppjuce_ModalComponentManager.h
desktop
drawables
juce_Drawable.cppjuce_Drawable.hjuce_DrawableComposite.cppjuce_DrawableComposite.hjuce_DrawableImage.cppjuce_DrawableImage.hjuce_DrawablePath.cppjuce_DrawablePath.hjuce_DrawableRectangle.cppjuce_DrawableRectangle.hjuce_DrawableShape.cppjuce_DrawableShape.hjuce_DrawableText.cppjuce_DrawableText.hjuce_SVGParser.cpp
filebrowser
juce_ContentSharer.cppjuce_ContentSharer.hjuce_DirectoryContentsDisplayComponent.cppjuce_DirectoryContentsDisplayComponent.hjuce_DirectoryContentsList.cppjuce_DirectoryContentsList.hjuce_FileBrowserComponent.cppjuce_FileBrowserComponent.hjuce_FileBrowserListener.hjuce_FileChooser.cppjuce_FileChooser.hjuce_FileChooserDialogBox.cppjuce_FileChooserDialogBox.hjuce_FileListComponent.cppjuce_FileListComponent.hjuce_FilePreviewComponent.hjuce_FileSearchPathListComponent.cppjuce_FileSearchPathListComponent.hjuce_FileTreeComponent.cppjuce_FileTreeComponent.hjuce_FilenameComponent.cppjuce_FilenameComponent.hjuce_ImagePreviewComponent.cppjuce_ImagePreviewComponent.h
juce_gui_basics.cppjuce_gui_basics.hjuce_gui_basics.mmkeyboard
juce_CaretComponent.cppjuce_CaretComponent.hjuce_KeyListener.cppjuce_KeyListener.hjuce_KeyPress.cppjuce_KeyPress.hjuce_KeyboardFocusTraverser.cppjuce_KeyboardFocusTraverser.hjuce_ModifierKeys.cppjuce_ModifierKeys.hjuce_SystemClipboard.hjuce_TextEditorKeyMapper.hjuce_TextInputTarget.h
layout
juce_AnimatedPosition.hjuce_AnimatedPositionBehaviours.hjuce_ComponentAnimator.cppjuce_ComponentAnimator.hjuce_ComponentBoundsConstrainer.cppjuce_ComponentBoundsConstrainer.hjuce_ComponentBuilder.cppjuce_ComponentBuilder.hjuce_ComponentMovementWatcher.cppjuce_ComponentMovementWatcher.hjuce_ConcertinaPanel.cppjuce_ConcertinaPanel.hjuce_FlexBox.cppjuce_FlexBox.hjuce_FlexItem.hjuce_Grid.cppjuce_Grid.hjuce_GridItem.cppjuce_GridItem.hjuce_GroupComponent.cppjuce_GroupComponent.hjuce_MultiDocumentPanel.cppjuce_MultiDocumentPanel.hjuce_ResizableBorderComponent.cppjuce_ResizableBorderComponent.hjuce_ResizableCornerComponent.cppjuce_ResizableCornerComponent.hjuce_ResizableEdgeComponent.cppjuce_ResizableEdgeComponent.hjuce_ScrollBar.cppjuce_ScrollBar.hjuce_SidePanel.cppjuce_SidePanel.hjuce_StretchableLayoutManager.cppjuce_StretchableLayoutManager.hjuce_StretchableLayoutResizerBar.cppjuce_StretchableLayoutResizerBar.hjuce_StretchableObjectResizer.cppjuce_StretchableObjectResizer.hjuce_TabbedButtonBar.cppjuce_TabbedButtonBar.hjuce_TabbedComponent.cppjuce_TabbedComponent.hjuce_Viewport.cppjuce_Viewport.h
lookandfeel
juce_LookAndFeel.cppjuce_LookAndFeel.hjuce_LookAndFeel_V1.cppjuce_LookAndFeel_V1.hjuce_LookAndFeel_V2.cppjuce_LookAndFeel_V2.hjuce_LookAndFeel_V3.cppjuce_LookAndFeel_V3.hjuce_LookAndFeel_V4.cppjuce_LookAndFeel_V4.h
menus
juce_BurgerMenuComponent.cppjuce_BurgerMenuComponent.hjuce_MenuBarComponent.cppjuce_MenuBarComponent.hjuce_MenuBarModel.cppjuce_MenuBarModel.hjuce_PopupMenu.cppjuce_PopupMenu.h
misc
juce_BubbleComponent.cppjuce_BubbleComponent.hjuce_DropShadower.cppjuce_DropShadower.hjuce_JUCESplashScreen.cppjuce_JUCESplashScreen.h
mouse
juce_ComponentDragger.cppjuce_ComponentDragger.hjuce_DragAndDropContainer.cppjuce_DragAndDropContainer.hjuce_DragAndDropTarget.hjuce_FileDragAndDropTarget.hjuce_LassoComponent.hjuce_MouseCursor.cppjuce_MouseCursor.hjuce_MouseEvent.cppjuce_MouseEvent.hjuce_MouseInactivityDetector.cppjuce_MouseInactivityDetector.hjuce_MouseInputSource.cppjuce_MouseInputSource.hjuce_MouseListener.cppjuce_MouseListener.hjuce_SelectedItemSet.hjuce_TextDragAndDropTarget.hjuce_TooltipClient.h
native
accessibility
juce_AccessibilityTextHelpers.hjuce_android_Accessibility.cppjuce_ios_Accessibility.mmjuce_mac_Accessibility.mmjuce_mac_AccessibilitySharedCode.mmjuce_win32_Accessibility.cppjuce_win32_AccessibilityElement.cppjuce_win32_AccessibilityElement.hjuce_win32_UIAExpandCollapseProvider.hjuce_win32_UIAGridItemProvider.hjuce_win32_UIAGridProvider.hjuce_win32_UIAHelpers.hjuce_win32_UIAInvokeProvider.hjuce_win32_UIAProviderBase.hjuce_win32_UIAProviders.hjuce_win32_UIARangeValueProvider.hjuce_win32_UIASelectionProvider.hjuce_win32_UIATextProvider.hjuce_win32_UIAToggleProvider.hjuce_win32_UIATransformProvider.hjuce_win32_UIAValueProvider.hjuce_win32_UIAWindowProvider.hjuce_win32_WindowsUIAWrapper.h
java
app
javaopt
app
x11
positioning
juce_MarkerList.cppjuce_MarkerList.hjuce_RelativeCoordinate.cppjuce_RelativeCoordinate.hjuce_RelativeCoordinatePositioner.cppjuce_RelativeCoordinatePositioner.hjuce_RelativeParallelogram.cppjuce_RelativeParallelogram.hjuce_RelativePoint.cppjuce_RelativePoint.hjuce_RelativePointPath.cppjuce_RelativePointPath.hjuce_RelativeRectangle.cppjuce_RelativeRectangle.h
properties
juce_BooleanPropertyComponent.cppjuce_BooleanPropertyComponent.hjuce_ButtonPropertyComponent.cppjuce_ButtonPropertyComponent.hjuce_ChoicePropertyComponent.cppjuce_ChoicePropertyComponent.hjuce_MultiChoicePropertyComponent.cppjuce_MultiChoicePropertyComponent.hjuce_PropertyComponent.cppjuce_PropertyComponent.hjuce_PropertyPanel.cppjuce_PropertyPanel.hjuce_SliderPropertyComponent.cppjuce_SliderPropertyComponent.hjuce_TextPropertyComponent.cppjuce_TextPropertyComponent.h
widgets
juce_ComboBox.cppjuce_ComboBox.hjuce_ImageComponent.cppjuce_ImageComponent.hjuce_Label.cppjuce_Label.hjuce_ListBox.cppjuce_ListBox.cpp.rejjuce_ListBox.hjuce_ProgressBar.cppjuce_ProgressBar.hjuce_Slider.cppjuce_Slider.hjuce_TableHeaderComponent.cppjuce_TableHeaderComponent.hjuce_TableListBox.cppjuce_TableListBox.hjuce_TextEditor.cppjuce_TextEditor.hjuce_Toolbar.cppjuce_Toolbar.hjuce_ToolbarItemComponent.cppjuce_ToolbarItemComponent.hjuce_ToolbarItemFactory.hjuce_ToolbarItemPalette.cppjuce_ToolbarItemPalette.hjuce_TreeView.cppjuce_TreeView.h
windows
juce_AlertWindow.cppjuce_AlertWindow.hjuce_CallOutBox.cppjuce_CallOutBox.hjuce_ComponentPeer.cppjuce_ComponentPeer.hjuce_DialogWindow.cppjuce_DialogWindow.hjuce_DocumentWindow.cppjuce_DocumentWindow.hjuce_MessageBoxOptions.hjuce_NativeMessageBox.hjuce_ResizableWindow.cppjuce_ResizableWindow.hjuce_ThreadWithProgressWindow.cppjuce_ThreadWithProgressWindow.hjuce_TooltipWindow.cppjuce_TooltipWindow.hjuce_TopLevelWindow.cppjuce_TopLevelWindow.h
juce_gui_extra
code_editor
juce_CPlusPlusCodeTokeniser.cppjuce_CPlusPlusCodeTokeniser.hjuce_CPlusPlusCodeTokeniserFunctions.hjuce_CodeDocument.cppjuce_CodeDocument.hjuce_CodeEditorComponent.cppjuce_CodeEditorComponent.hjuce_CodeTokeniser.hjuce_LuaCodeTokeniser.cppjuce_LuaCodeTokeniser.hjuce_XMLCodeTokeniser.cppjuce_XMLCodeTokeniser.h
documents
embedding
juce_ActiveXControlComponent.hjuce_AndroidViewComponent.hjuce_HWNDComponent.hjuce_NSViewComponent.hjuce_UIViewComponent.hjuce_XEmbedComponent.h
juce_gui_extra.cppjuce_gui_extra.hjuce_gui_extra.mmmisc
juce_AnimatedAppComponent.cppjuce_AnimatedAppComponent.hjuce_AppleRemote.hjuce_BubbleMessageComponent.cppjuce_BubbleMessageComponent.hjuce_ColourSelector.cppjuce_ColourSelector.hjuce_KeyMappingEditorComponent.cppjuce_KeyMappingEditorComponent.hjuce_LiveConstantEditor.cppjuce_LiveConstantEditor.hjuce_PreferencesPanel.cppjuce_PreferencesPanel.hjuce_PushNotifications.cppjuce_PushNotifications.hjuce_RecentlyOpenedFilesList.cppjuce_RecentlyOpenedFilesList.hjuce_SplashScreen.cppjuce_SplashScreen.hjuce_SystemTrayIconComponent.cppjuce_SystemTrayIconComponent.hjuce_WebBrowserComponent.h
native
java
app
com
javaopt
juce_AndroidViewComponent.cppjuce_android_PushNotifications.cppjuce_android_WebBrowserComponent.cppjuce_ios_PushNotifications.cppjuce_ios_UIViewComponent.mmjuce_linux_X11_SystemTrayIcon.cppjuce_linux_X11_WebBrowserComponent.cppjuce_linux_XEmbedComponent.cppjuce_mac_AppleRemote.mmjuce_mac_CarbonViewWrapperComponent.hjuce_mac_NSViewComponent.mmjuce_mac_PushNotifications.cppjuce_mac_SystemTrayIcon.cppjuce_mac_WebBrowserComponent.mmjuce_win32_ActiveXComponent.cppjuce_win32_HWNDComponent.cppjuce_win32_SystemTrayIcon.cppjuce_win32_WebBrowserComponent.cppjuce_opengl
geometry
juce_opengl.cppjuce_opengl.hjuce_opengl.mmnative
java
app
com
rmsl
opengl
juce_OpenGLContext.cppjuce_OpenGLContext.hjuce_OpenGLContext.h.rejjuce_OpenGLFrameBuffer.cppjuce_OpenGLFrameBuffer.hjuce_OpenGLGraphicsContext.cppjuce_OpenGLGraphicsContext.hjuce_OpenGLHelpers.cppjuce_OpenGLHelpers.hjuce_OpenGLImage.cppjuce_OpenGLImage.hjuce_OpenGLPixelFormat.cppjuce_OpenGLPixelFormat.hjuce_OpenGLRenderer.hjuce_OpenGLShaderProgram.cppjuce_OpenGLShaderProgram.hjuce_OpenGLTexture.cppjuce_OpenGLTexture.hjuce_gl.cppjuce_gl.hjuce_gles2.cppjuce_gles2.hjuce_khrplatform.hjuce_wgl.h
utils
juce_osc
juce_product_unlocking
in_app_purchases
juce_product_unlocking.cppjuce_product_unlocking.hjuce_product_unlocking.mmmarketplace
juce_KeyFileGeneration.hjuce_OnlineUnlockForm.cppjuce_OnlineUnlockForm.hjuce_OnlineUnlockStatus.cppjuce_OnlineUnlockStatus.hjuce_TracktionMarketplaceStatus.cppjuce_TracktionMarketplaceStatus.h
native
juce_video
594
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp
vendored
Normal file
594
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp
vendored
Normal file
@ -0,0 +1,594 @@
|
||||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library.
|
||||
Copyright (c) 2020 - Raw Material Software Limited
|
||||
|
||||
JUCE is an open source library subject to commercial or open-source
|
||||
licensing.
|
||||
|
||||
By using JUCE, you agree to the terms of both the JUCE 6 End-User License
|
||||
Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
|
||||
|
||||
End User License Agreement: www.juce.com/juce-6-licence
|
||||
Privacy Policy: www.juce.com/juce-privacy-policy
|
||||
|
||||
Or: You may also use this code under the terms of the GPL v3 (see
|
||||
www.gnu.org/licenses).
|
||||
|
||||
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
extern void* createDraggingHandCursor();
|
||||
extern ComponentPeer* getPeerFor (::Window);
|
||||
|
||||
//==============================================================================
|
||||
class X11DragState
|
||||
{
|
||||
public:
|
||||
X11DragState() = default;
|
||||
|
||||
//==============================================================================
|
||||
bool isDragging() const noexcept
|
||||
{
|
||||
return dragging;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void handleExternalSelectionClear()
|
||||
{
|
||||
if (dragging)
|
||||
externalResetDragAndDrop();
|
||||
}
|
||||
|
||||
void handleExternalSelectionRequest (const XEvent& evt)
|
||||
{
|
||||
auto targetType = evt.xselectionrequest.target;
|
||||
|
||||
XEvent s;
|
||||
s.xselection.type = SelectionNotify;
|
||||
s.xselection.requestor = evt.xselectionrequest.requestor;
|
||||
s.xselection.selection = evt.xselectionrequest.selection;
|
||||
s.xselection.target = targetType;
|
||||
s.xselection.property = None;
|
||||
s.xselection.time = evt.xselectionrequest.time;
|
||||
|
||||
auto* display = getDisplay();
|
||||
|
||||
if (allowedTypes.contains (targetType))
|
||||
{
|
||||
s.xselection.property = evt.xselectionrequest.property;
|
||||
|
||||
X11Symbols::getInstance()->xChangeProperty (display, evt.xselectionrequest.requestor, evt.xselectionrequest.property,
|
||||
targetType, 8, PropModeReplace,
|
||||
reinterpret_cast<const unsigned char*> (textOrFiles.toRawUTF8()),
|
||||
(int) textOrFiles.getNumBytesAsUTF8());
|
||||
}
|
||||
|
||||
X11Symbols::getInstance()->xSendEvent (display, evt.xselectionrequest.requestor, True, 0, &s);
|
||||
}
|
||||
|
||||
void handleExternalDragAndDropStatus (const XClientMessageEvent& clientMsg)
|
||||
{
|
||||
if (expectingStatus)
|
||||
{
|
||||
expectingStatus = false;
|
||||
canDrop = false;
|
||||
silentRect = {};
|
||||
|
||||
const auto& atoms = getAtoms();
|
||||
|
||||
if ((clientMsg.data.l[1] & 1) != 0
|
||||
&& ((Atom) clientMsg.data.l[4] == atoms.XdndActionCopy
|
||||
|| (Atom) clientMsg.data.l[4] == atoms.XdndActionPrivate))
|
||||
{
|
||||
if ((clientMsg.data.l[1] & 2) == 0) // target requests silent rectangle
|
||||
silentRect.setBounds ((int) clientMsg.data.l[2] >> 16, (int) clientMsg.data.l[2] & 0xffff,
|
||||
(int) clientMsg.data.l[3] >> 16, (int) clientMsg.data.l[3] & 0xffff);
|
||||
|
||||
canDrop = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void handleExternalDragButtonReleaseEvent()
|
||||
{
|
||||
if (dragging)
|
||||
X11Symbols::getInstance()->xUngrabPointer (getDisplay(), CurrentTime);
|
||||
|
||||
if (canDrop)
|
||||
{
|
||||
sendExternalDragAndDropDrop();
|
||||
}
|
||||
else
|
||||
{
|
||||
sendExternalDragAndDropLeave();
|
||||
externalResetDragAndDrop();
|
||||
}
|
||||
}
|
||||
|
||||
void handleExternalDragMotionNotify()
|
||||
{
|
||||
auto* display = getDisplay();
|
||||
|
||||
auto newTargetWindow = externalFindDragTargetWindow (X11Symbols::getInstance()
|
||||
->xRootWindow (display,
|
||||
X11Symbols::getInstance()->xDefaultScreen (display)));
|
||||
|
||||
if (targetWindow != newTargetWindow)
|
||||
{
|
||||
if (targetWindow != None)
|
||||
sendExternalDragAndDropLeave();
|
||||
|
||||
canDrop = false;
|
||||
silentRect = {};
|
||||
|
||||
if (newTargetWindow == None)
|
||||
return;
|
||||
|
||||
xdndVersion = getDnDVersionForWindow (newTargetWindow);
|
||||
|
||||
if (xdndVersion == -1)
|
||||
return;
|
||||
|
||||
targetWindow = newTargetWindow;
|
||||
sendExternalDragAndDropEnter();
|
||||
}
|
||||
|
||||
if (! expectingStatus)
|
||||
sendExternalDragAndDropPosition();
|
||||
}
|
||||
|
||||
void handleDragAndDropPosition (const XClientMessageEvent& clientMsg, ComponentPeer* peer)
|
||||
{
|
||||
if (dragAndDropSourceWindow == 0)
|
||||
return;
|
||||
|
||||
dragAndDropSourceWindow = (::Window) clientMsg.data.l[0];
|
||||
|
||||
if (windowH == 0)
|
||||
windowH = (::Window) peer->getNativeHandle();
|
||||
|
||||
auto dropPos = Desktop::getInstance().getDisplays().physicalToLogical (Point<int> ((int) clientMsg.data.l[2] >> 16,
|
||||
(int) clientMsg.data.l[2] & 0xffff));
|
||||
dropPos -= peer->getBounds().getPosition();
|
||||
|
||||
const auto& atoms = getAtoms();
|
||||
|
||||
auto targetAction = atoms.XdndActionCopy;
|
||||
|
||||
for (int i = numElementsInArray (atoms.allowedActions); --i >= 0;)
|
||||
{
|
||||
if ((Atom) clientMsg.data.l[4] == atoms.allowedActions[i])
|
||||
{
|
||||
targetAction = atoms.allowedActions[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sendDragAndDropStatus (true, targetAction);
|
||||
|
||||
if (dragInfo.position != dropPos)
|
||||
{
|
||||
dragInfo.position = dropPos;
|
||||
|
||||
if (dragInfo.isEmpty())
|
||||
updateDraggedFileList (clientMsg, (::Window) peer->getNativeHandle());
|
||||
|
||||
if (! dragInfo.isEmpty())
|
||||
peer->handleDragMove (dragInfo);
|
||||
}
|
||||
}
|
||||
|
||||
void handleDragAndDropDrop (const XClientMessageEvent& clientMsg, ComponentPeer* peer)
|
||||
{
|
||||
if (dragInfo.isEmpty())
|
||||
{
|
||||
// no data, transaction finished in handleDragAndDropSelection()
|
||||
finishAfterDropDataReceived = true;
|
||||
updateDraggedFileList (clientMsg, (::Window) peer->getNativeHandle());
|
||||
}
|
||||
else
|
||||
{
|
||||
handleDragAndDropDataReceived(); // data was already received
|
||||
}
|
||||
}
|
||||
|
||||
void handleDragAndDropEnter (const XClientMessageEvent& clientMsg, ComponentPeer* peer)
|
||||
{
|
||||
dragInfo.clear();
|
||||
srcMimeTypeAtomList.clear();
|
||||
|
||||
dragAndDropCurrentMimeType = 0;
|
||||
auto dndCurrentVersion = (static_cast<unsigned long> (clientMsg.data.l[1]) & 0xff000000) >> 24;
|
||||
|
||||
if (dndCurrentVersion < 3 || dndCurrentVersion > XWindowSystemUtilities::Atoms::DndVersion)
|
||||
{
|
||||
dragAndDropSourceWindow = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
const auto& atoms = getAtoms();
|
||||
|
||||
dragAndDropSourceWindow = (::Window) clientMsg.data.l[0];
|
||||
|
||||
if ((clientMsg.data.l[1] & 1) != 0)
|
||||
{
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
|
||||
XWindowSystemUtilities::GetXProperty prop (getDisplay(),
|
||||
dragAndDropSourceWindow,
|
||||
atoms.XdndTypeList,
|
||||
0,
|
||||
0x8000000L,
|
||||
false,
|
||||
XA_ATOM);
|
||||
|
||||
if (prop.success && prop.actualType == XA_ATOM && prop.actualFormat == 32 && prop.numItems != 0)
|
||||
{
|
||||
auto* types = prop.data;
|
||||
|
||||
for (unsigned long i = 0; i < prop.numItems; ++i)
|
||||
{
|
||||
unsigned long type;
|
||||
memcpy (&type, types, sizeof (unsigned long));
|
||||
|
||||
if (type != None)
|
||||
srcMimeTypeAtomList.add (type);
|
||||
|
||||
types += sizeof (unsigned long);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (srcMimeTypeAtomList.isEmpty())
|
||||
{
|
||||
for (int i = 2; i < 5; ++i)
|
||||
if (clientMsg.data.l[i] != None)
|
||||
srcMimeTypeAtomList.add ((unsigned long) clientMsg.data.l[i]);
|
||||
|
||||
if (srcMimeTypeAtomList.isEmpty())
|
||||
{
|
||||
dragAndDropSourceWindow = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < srcMimeTypeAtomList.size() && dragAndDropCurrentMimeType == 0; ++i)
|
||||
for (int j = 0; j < numElementsInArray (atoms.allowedMimeTypes); ++j)
|
||||
if (srcMimeTypeAtomList[i] == atoms.allowedMimeTypes[j])
|
||||
dragAndDropCurrentMimeType = atoms.allowedMimeTypes[j];
|
||||
|
||||
handleDragAndDropPosition (clientMsg, peer);
|
||||
}
|
||||
|
||||
void handleDragAndDropExit()
|
||||
{
|
||||
if (auto* peer = getPeerFor (windowH))
|
||||
peer->handleDragExit (dragInfo);
|
||||
}
|
||||
|
||||
void handleDragAndDropSelection (const XEvent& evt)
|
||||
{
|
||||
dragInfo.clear();
|
||||
|
||||
if (evt.xselection.property != None)
|
||||
{
|
||||
StringArray lines;
|
||||
|
||||
{
|
||||
MemoryBlock dropData;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
XWindowSystemUtilities::GetXProperty prop (getDisplay(),
|
||||
evt.xany.window,
|
||||
evt.xselection.property,
|
||||
(long) (dropData.getSize() / 4),
|
||||
65536,
|
||||
false,
|
||||
AnyPropertyType);
|
||||
|
||||
if (! prop.success)
|
||||
break;
|
||||
|
||||
dropData.append (prop.data, (size_t) (prop.actualFormat / 8) * prop.numItems);
|
||||
|
||||
if (prop.bytesLeft <= 0)
|
||||
break;
|
||||
}
|
||||
|
||||
lines.addLines (dropData.toString());
|
||||
}
|
||||
|
||||
if (XWindowSystemUtilities::Atoms::isMimeTypeFile (getDisplay(), dragAndDropCurrentMimeType))
|
||||
{
|
||||
for (const auto& line : lines)
|
||||
{
|
||||
const auto escaped = line.replace ("+", "%2B").replace ("file://", String(), true);
|
||||
dragInfo.files.add (URL::removeEscapeChars (escaped));
|
||||
}
|
||||
|
||||
dragInfo.files.trim();
|
||||
dragInfo.files.removeEmptyStrings();
|
||||
}
|
||||
else
|
||||
{
|
||||
dragInfo.text = lines.joinIntoString ("\n");
|
||||
}
|
||||
|
||||
if (finishAfterDropDataReceived)
|
||||
handleDragAndDropDataReceived();
|
||||
}
|
||||
}
|
||||
|
||||
void externalResetDragAndDrop()
|
||||
{
|
||||
if (dragging)
|
||||
{
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
X11Symbols::getInstance()->xUngrabPointer (getDisplay(), CurrentTime);
|
||||
}
|
||||
|
||||
if (completionCallback != nullptr)
|
||||
completionCallback();
|
||||
}
|
||||
|
||||
bool externalDragInit (::Window window, bool text, const String& str, std::function<void()>&& cb)
|
||||
{
|
||||
windowH = window;
|
||||
isText = text;
|
||||
textOrFiles = str;
|
||||
targetWindow = windowH;
|
||||
completionCallback = std::move (cb);
|
||||
|
||||
auto* display = getDisplay();
|
||||
|
||||
allowedTypes.add (XWindowSystemUtilities::Atoms::getCreating (display, isText ? "text/plain" : "text/uri-list"));
|
||||
|
||||
auto pointerGrabMask = (unsigned int) (Button1MotionMask | ButtonReleaseMask);
|
||||
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
|
||||
if (X11Symbols::getInstance()->xGrabPointer (display, windowH, True, pointerGrabMask,
|
||||
GrabModeAsync, GrabModeAsync, None, None, CurrentTime) == GrabSuccess)
|
||||
{
|
||||
const auto& atoms = getAtoms();
|
||||
|
||||
// No other method of changing the pointer seems to work, this call is needed from this very context
|
||||
X11Symbols::getInstance()->xChangeActivePointerGrab (display, pointerGrabMask, (Cursor) createDraggingHandCursor(), CurrentTime);
|
||||
|
||||
X11Symbols::getInstance()->xSetSelectionOwner (display, atoms.XdndSelection, windowH, CurrentTime);
|
||||
|
||||
// save the available types to XdndTypeList
|
||||
X11Symbols::getInstance()->xChangeProperty (display, windowH, atoms.XdndTypeList, XA_ATOM, 32, PropModeReplace,
|
||||
reinterpret_cast<const unsigned char*> (allowedTypes.getRawDataPointer()), allowedTypes.size());
|
||||
|
||||
dragging = true;
|
||||
xdndVersion = getDnDVersionForWindow (targetWindow);
|
||||
|
||||
sendExternalDragAndDropEnter();
|
||||
handleExternalDragMotionNotify();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
const XWindowSystemUtilities::Atoms& getAtoms() const noexcept { return XWindowSystem::getInstance()->getAtoms(); }
|
||||
::Display* getDisplay() const noexcept { return XWindowSystem::getInstance()->getDisplay(); }
|
||||
|
||||
//==============================================================================
|
||||
void sendDragAndDropMessage (XClientMessageEvent& msg)
|
||||
{
|
||||
auto* display = getDisplay();
|
||||
|
||||
msg.type = ClientMessage;
|
||||
msg.display = display;
|
||||
msg.window = dragAndDropSourceWindow;
|
||||
msg.format = 32;
|
||||
msg.data.l[0] = (long) windowH;
|
||||
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
X11Symbols::getInstance()->xSendEvent (display, dragAndDropSourceWindow, False, 0, (XEvent*) &msg);
|
||||
}
|
||||
|
||||
bool sendExternalDragAndDropMessage (XClientMessageEvent& msg)
|
||||
{
|
||||
auto* display = getDisplay();
|
||||
|
||||
msg.type = ClientMessage;
|
||||
msg.display = display;
|
||||
msg.window = targetWindow;
|
||||
msg.format = 32;
|
||||
msg.data.l[0] = (long) windowH;
|
||||
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
return X11Symbols::getInstance()->xSendEvent (display, targetWindow, False, 0, (XEvent*) &msg) != 0;
|
||||
}
|
||||
|
||||
void sendExternalDragAndDropDrop()
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
msg.message_type = getAtoms().XdndDrop;
|
||||
msg.data.l[2] = CurrentTime;
|
||||
|
||||
sendExternalDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void sendExternalDragAndDropEnter()
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
msg.message_type = getAtoms().XdndEnter;
|
||||
msg.data.l[1] = (xdndVersion << 24);
|
||||
|
||||
for (int i = 0; i < 3; ++i)
|
||||
msg.data.l[i + 2] = (long) allowedTypes[i];
|
||||
|
||||
sendExternalDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void sendExternalDragAndDropPosition()
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
const auto& atoms = getAtoms();
|
||||
|
||||
msg.message_type = atoms.XdndPosition;
|
||||
|
||||
auto mousePos = Desktop::getInstance().getMousePosition();
|
||||
|
||||
if (silentRect.contains (mousePos)) // we've been asked to keep silent
|
||||
return;
|
||||
|
||||
mousePos = Desktop::getInstance().getDisplays().logicalToPhysical (mousePos);
|
||||
|
||||
msg.data.l[1] = 0;
|
||||
msg.data.l[2] = (mousePos.x << 16) | mousePos.y;
|
||||
msg.data.l[3] = CurrentTime;
|
||||
msg.data.l[4] = (long) atoms.XdndActionCopy; // this is all JUCE currently supports
|
||||
|
||||
expectingStatus = sendExternalDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void sendDragAndDropStatus (bool acceptDrop, Atom dropAction)
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
msg.message_type = getAtoms().XdndStatus;
|
||||
msg.data.l[1] = (acceptDrop ? 1 : 0) | 2; // 2 indicates that we want to receive position messages
|
||||
msg.data.l[4] = (long) dropAction;
|
||||
|
||||
sendDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void sendExternalDragAndDropLeave()
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
msg.message_type = getAtoms().XdndLeave;
|
||||
sendExternalDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void sendDragAndDropFinish()
|
||||
{
|
||||
XClientMessageEvent msg;
|
||||
zerostruct (msg);
|
||||
|
||||
msg.message_type = getAtoms().XdndFinished;
|
||||
sendDragAndDropMessage (msg);
|
||||
}
|
||||
|
||||
void updateDraggedFileList (const XClientMessageEvent& clientMsg, ::Window requestor)
|
||||
{
|
||||
jassert (dragInfo.isEmpty());
|
||||
|
||||
if (dragAndDropSourceWindow != None && dragAndDropCurrentMimeType != None)
|
||||
{
|
||||
auto* display = getDisplay();
|
||||
|
||||
XWindowSystemUtilities::ScopedXLock xLock;
|
||||
X11Symbols::getInstance()->xConvertSelection (display, getAtoms().XdndSelection, dragAndDropCurrentMimeType,
|
||||
XWindowSystemUtilities::Atoms::getCreating (display, "JXSelectionWindowProperty"),
|
||||
requestor, (::Time) clientMsg.data.l[2]);
|
||||
}
|
||||
}
|
||||
|
||||
bool isWindowDnDAware (::Window w) const
|
||||
{
|
||||
int numProperties = 0;
|
||||
auto* properties = X11Symbols::getInstance()->xListProperties (getDisplay(), w, &numProperties);
|
||||
|
||||
bool dndAwarePropFound = false;
|
||||
|
||||
for (int i = 0; i < numProperties; ++i)
|
||||
if (properties[i] == getAtoms().XdndAware)
|
||||
dndAwarePropFound = true;
|
||||
|
||||
if (properties != nullptr)
|
||||
X11Symbols::getInstance()->xFree (properties);
|
||||
|
||||
return dndAwarePropFound;
|
||||
}
|
||||
|
||||
int getDnDVersionForWindow (::Window target)
|
||||
{
|
||||
XWindowSystemUtilities::GetXProperty prop (getDisplay(),
|
||||
target,
|
||||
getAtoms().XdndAware,
|
||||
0,
|
||||
2,
|
||||
false,
|
||||
AnyPropertyType);
|
||||
|
||||
if (prop.success && prop.data != None && prop.actualFormat == 32 && prop.numItems == 1)
|
||||
return jmin ((int) prop.data[0], (int) XWindowSystemUtilities::Atoms::DndVersion);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
::Window externalFindDragTargetWindow (::Window target)
|
||||
{
|
||||
if (target == None)
|
||||
return None;
|
||||
|
||||
if (isWindowDnDAware (target))
|
||||
return target;
|
||||
|
||||
::Window child, phonyWin;
|
||||
int phony;
|
||||
unsigned int uphony;
|
||||
|
||||
X11Symbols::getInstance()->xQueryPointer (getDisplay(), target, &phonyWin, &child, &phony, &phony, &phony, &phony, &uphony);
|
||||
|
||||
return externalFindDragTargetWindow (child);
|
||||
}
|
||||
|
||||
void handleDragAndDropDataReceived()
|
||||
{
|
||||
ComponentPeer::DragInfo dragInfoCopy (dragInfo);
|
||||
|
||||
sendDragAndDropFinish();
|
||||
|
||||
if (! dragInfoCopy.isEmpty())
|
||||
if (auto* peer = getPeerFor (windowH))
|
||||
peer->handleDragDrop (dragInfoCopy);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
::Window windowH = 0, targetWindow = 0, dragAndDropSourceWindow = 0;
|
||||
|
||||
int xdndVersion = -1;
|
||||
bool isText = false, dragging = false, expectingStatus = false, canDrop = false, finishAfterDropDataReceived = false;
|
||||
|
||||
Atom dragAndDropCurrentMimeType;
|
||||
Array<Atom> allowedTypes, srcMimeTypeAtomList;
|
||||
|
||||
ComponentPeer::DragInfo dragInfo;
|
||||
Rectangle<int> silentRect;
|
||||
String textOrFiles;
|
||||
|
||||
std::function<void()> completionCallback = nullptr;
|
||||
|
||||
//==============================================================================
|
||||
JUCE_LEAK_DETECTOR (X11DragState)
|
||||
};
|
||||
|
||||
} // namespace juce
|
240
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_Symbols.cpp
vendored
Normal file
240
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_Symbols.cpp
vendored
Normal file
@ -0,0 +1,240 @@
|
||||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library.
|
||||
Copyright (c) 2020 - Raw Material Software Limited
|
||||
|
||||
JUCE is an open source library subject to commercial or open-source
|
||||
licensing.
|
||||
|
||||
By using JUCE, you agree to the terms of both the JUCE 6 End-User License
|
||||
Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
|
||||
|
||||
End User License Agreement: www.juce.com/juce-6-licence
|
||||
Privacy Policy: www.juce.com/juce-privacy-policy
|
||||
|
||||
Or: You may also use this code under the terms of the GPL v3 (see
|
||||
www.gnu.org/licenses).
|
||||
|
||||
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
namespace X11SymbolHelpers
|
||||
{
|
||||
|
||||
template <typename FuncPtr>
|
||||
struct SymbolBinding
|
||||
{
|
||||
FuncPtr& func;
|
||||
const char* name;
|
||||
};
|
||||
|
||||
template <typename FuncPtr>
|
||||
SymbolBinding<FuncPtr> makeSymbolBinding (FuncPtr& func, const char* name)
|
||||
{
|
||||
return { func, name };
|
||||
}
|
||||
|
||||
template <typename FuncPtr>
|
||||
bool loadSymbols (DynamicLibrary& lib, SymbolBinding<FuncPtr> binding)
|
||||
{
|
||||
if (auto* func = lib.getFunction (binding.name))
|
||||
{
|
||||
binding.func = reinterpret_cast<FuncPtr> (func);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename FuncPtr, typename... Args>
|
||||
bool loadSymbols (DynamicLibrary& lib1, DynamicLibrary& lib2, SymbolBinding<FuncPtr> binding)
|
||||
{
|
||||
return loadSymbols (lib1, binding) || loadSymbols (lib2, binding);
|
||||
}
|
||||
|
||||
template <typename FuncPtr, typename... Args>
|
||||
bool loadSymbols (DynamicLibrary& lib, SymbolBinding<FuncPtr> binding, Args... args)
|
||||
{
|
||||
return loadSymbols (lib, binding) && loadSymbols (lib, args...);
|
||||
}
|
||||
|
||||
template <typename FuncPtr, typename... Args>
|
||||
bool loadSymbols (DynamicLibrary& lib1, DynamicLibrary& lib2, SymbolBinding<FuncPtr> binding, Args... args)
|
||||
{
|
||||
return loadSymbols (lib1, lib2, binding) && loadSymbols (lib1, lib2, args...);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool X11Symbols::loadAllSymbols()
|
||||
{
|
||||
using namespace X11SymbolHelpers;
|
||||
|
||||
if (! loadSymbols (xLib, xextLib,
|
||||
makeSymbolBinding (xAllocClassHint, "XAllocClassHint"),
|
||||
makeSymbolBinding (xAllocSizeHints, "XAllocSizeHints"),
|
||||
makeSymbolBinding (xAllocWMHints, "XAllocWMHints"),
|
||||
makeSymbolBinding (xBitmapBitOrder, "XBitmapBitOrder"),
|
||||
makeSymbolBinding (xBitmapUnit, "XBitmapUnit"),
|
||||
makeSymbolBinding (xChangeActivePointerGrab, "XChangeActivePointerGrab"),
|
||||
makeSymbolBinding (xChangeProperty, "XChangeProperty"),
|
||||
makeSymbolBinding (xCheckTypedWindowEvent, "XCheckTypedWindowEvent"),
|
||||
makeSymbolBinding (xCheckWindowEvent, "XCheckWindowEvent"),
|
||||
makeSymbolBinding (xClearArea, "XClearArea"),
|
||||
makeSymbolBinding (xCloseDisplay, "XCloseDisplay"),
|
||||
makeSymbolBinding (xConnectionNumber, "XConnectionNumber"),
|
||||
makeSymbolBinding (xConvertSelection, "XConvertSelection"),
|
||||
makeSymbolBinding (xCreateColormap, "XCreateColormap"),
|
||||
makeSymbolBinding (xCreateFontCursor, "XCreateFontCursor"),
|
||||
makeSymbolBinding (xCreateGC, "XCreateGC"),
|
||||
makeSymbolBinding (xCreateImage, "XCreateImage"),
|
||||
makeSymbolBinding (xCreatePixmap, "XCreatePixmap"),
|
||||
makeSymbolBinding (xCreatePixmapCursor, "XCreatePixmapCursor"),
|
||||
makeSymbolBinding (xCreatePixmapFromBitmapData, "XCreatePixmapFromBitmapData"),
|
||||
makeSymbolBinding (xCreateWindow, "XCreateWindow"),
|
||||
makeSymbolBinding (xDefaultRootWindow, "XDefaultRootWindow"),
|
||||
makeSymbolBinding (xDefaultScreen, "XDefaultScreen"),
|
||||
makeSymbolBinding (xDefaultScreenOfDisplay, "XDefaultScreenOfDisplay"),
|
||||
makeSymbolBinding (xDefaultVisual, "XDefaultVisual"),
|
||||
makeSymbolBinding (xDefineCursor, "XDefineCursor"),
|
||||
makeSymbolBinding (xDeleteContext, "XDeleteContext"),
|
||||
makeSymbolBinding (xDeleteProperty, "XDeleteProperty"),
|
||||
makeSymbolBinding (xDestroyImage, "XDestroyImage"),
|
||||
makeSymbolBinding (xDestroyWindow, "XDestroyWindow"),
|
||||
makeSymbolBinding (xDisplayHeight, "XDisplayHeight"),
|
||||
makeSymbolBinding (xDisplayHeightMM, "XDisplayHeightMM"),
|
||||
makeSymbolBinding (xDisplayWidth, "XDisplayWidth"),
|
||||
makeSymbolBinding (xDisplayWidthMM, "XDisplayWidthMM"),
|
||||
makeSymbolBinding (xEventsQueued, "XEventsQueued"),
|
||||
makeSymbolBinding (xFindContext, "XFindContext"),
|
||||
makeSymbolBinding (xFlush, "XFlush"),
|
||||
makeSymbolBinding (xFree, "XFree"),
|
||||
makeSymbolBinding (xFreeCursor, "XFreeCursor"),
|
||||
makeSymbolBinding (xFreeColormap, "XFreeColormap"),
|
||||
makeSymbolBinding (xFreeGC, "XFreeGC"),
|
||||
makeSymbolBinding (xFreeModifiermap, "XFreeModifiermap"),
|
||||
makeSymbolBinding (xFreePixmap, "XFreePixmap"),
|
||||
makeSymbolBinding (xGetAtomName, "XGetAtomName"),
|
||||
makeSymbolBinding (xGetErrorDatabaseText, "XGetErrorDatabaseText"),
|
||||
makeSymbolBinding (xGetErrorText, "XGetErrorText"),
|
||||
makeSymbolBinding (xGetGeometry, "XGetGeometry"),
|
||||
makeSymbolBinding (xGetImage, "XGetImage"),
|
||||
makeSymbolBinding (xGetInputFocus, "XGetInputFocus"),
|
||||
makeSymbolBinding (xGetModifierMapping, "XGetModifierMapping"),
|
||||
makeSymbolBinding (xGetPointerMapping, "XGetPointerMapping"),
|
||||
makeSymbolBinding (xGetSelectionOwner, "XGetSelectionOwner"),
|
||||
makeSymbolBinding (xGetVisualInfo, "XGetVisualInfo"),
|
||||
makeSymbolBinding (xGetWMHints, "XGetWMHints"),
|
||||
makeSymbolBinding (xGetWindowAttributes, "XGetWindowAttributes"),
|
||||
makeSymbolBinding (xGetWindowProperty, "XGetWindowProperty"),
|
||||
makeSymbolBinding (xGrabPointer, "XGrabPointer"),
|
||||
makeSymbolBinding (xGrabServer, "XGrabServer"),
|
||||
makeSymbolBinding (xImageByteOrder, "XImageByteOrder"),
|
||||
makeSymbolBinding (xInitImage, "XInitImage"),
|
||||
makeSymbolBinding (xInitThreads, "XInitThreads"),
|
||||
makeSymbolBinding (xInstallColormap, "XInstallColormap"),
|
||||
makeSymbolBinding (xInternAtom, "XInternAtom"),
|
||||
makeSymbolBinding (xkbKeycodeToKeysym, "XkbKeycodeToKeysym"),
|
||||
makeSymbolBinding (xKeysymToKeycode, "XKeysymToKeycode"),
|
||||
makeSymbolBinding (xListProperties, "XListProperties"),
|
||||
makeSymbolBinding (xLockDisplay, "XLockDisplay"),
|
||||
makeSymbolBinding (xLookupString, "XLookupString"),
|
||||
makeSymbolBinding (xMapRaised, "XMapRaised"),
|
||||
makeSymbolBinding (xMapWindow, "XMapWindow"),
|
||||
makeSymbolBinding (xMoveResizeWindow, "XMoveResizeWindow"),
|
||||
makeSymbolBinding (xNextEvent, "XNextEvent"),
|
||||
makeSymbolBinding (xOpenDisplay, "XOpenDisplay"),
|
||||
makeSymbolBinding (xPeekEvent, "XPeekEvent"),
|
||||
makeSymbolBinding (xPending, "XPending"),
|
||||
makeSymbolBinding (xPutImage, "XPutImage"),
|
||||
makeSymbolBinding (xPutPixel, "XPutPixel"),
|
||||
makeSymbolBinding (xQueryBestCursor, "XQueryBestCursor"),
|
||||
makeSymbolBinding (xQueryExtension, "XQueryExtension"),
|
||||
makeSymbolBinding (xQueryPointer, "XQueryPointer"),
|
||||
makeSymbolBinding (xQueryTree, "XQueryTree"),
|
||||
makeSymbolBinding (xRefreshKeyboardMapping, "XRefreshKeyboardMapping"),
|
||||
makeSymbolBinding (xReparentWindow, "XReparentWindow"),
|
||||
makeSymbolBinding (xResizeWindow, "XResizeWindow"),
|
||||
makeSymbolBinding (xRestackWindows, "XRestackWindows"),
|
||||
makeSymbolBinding (xRootWindow, "XRootWindow"),
|
||||
makeSymbolBinding (xSaveContext, "XSaveContext"),
|
||||
makeSymbolBinding (xScreenCount, "XScreenCount"),
|
||||
makeSymbolBinding (xScreenNumberOfScreen, "XScreenNumberOfScreen"),
|
||||
makeSymbolBinding (xSelectInput, "XSelectInput"),
|
||||
makeSymbolBinding (xSendEvent, "XSendEvent"),
|
||||
makeSymbolBinding (xSetClassHint, "XSetClassHint"),
|
||||
makeSymbolBinding (xSetErrorHandler, "XSetErrorHandler"),
|
||||
makeSymbolBinding (xSetIOErrorHandler, "XSetIOErrorHandler"),
|
||||
makeSymbolBinding (xSetInputFocus, "XSetInputFocus"),
|
||||
makeSymbolBinding (xSetSelectionOwner, "XSetSelectionOwner"),
|
||||
makeSymbolBinding (xSetWMHints, "XSetWMHints"),
|
||||
makeSymbolBinding (xSetWMIconName, "XSetWMIconName"),
|
||||
makeSymbolBinding (xSetWMName, "XSetWMName"),
|
||||
makeSymbolBinding (xSetWMNormalHints, "XSetWMNormalHints"),
|
||||
makeSymbolBinding (xStringListToTextProperty, "XStringListToTextProperty"),
|
||||
makeSymbolBinding (xSync, "XSync"),
|
||||
makeSymbolBinding (xSynchronize, "XSynchronize"),
|
||||
makeSymbolBinding (xTranslateCoordinates, "XTranslateCoordinates"),
|
||||
makeSymbolBinding (xrmUniqueQuark, "XrmUniqueQuark"),
|
||||
makeSymbolBinding (xUngrabPointer, "XUngrabPointer"),
|
||||
makeSymbolBinding (xUngrabServer, "XUngrabServer"),
|
||||
makeSymbolBinding (xUnlockDisplay, "XUnlockDisplay"),
|
||||
makeSymbolBinding (xUnmapWindow, "XUnmapWindow"),
|
||||
makeSymbolBinding (xutf8TextListToTextProperty, "Xutf8TextListToTextProperty"),
|
||||
makeSymbolBinding (xWarpPointer, "XWarpPointer")))
|
||||
return false;
|
||||
|
||||
#if JUCE_USE_XCURSOR
|
||||
loadSymbols (xcursorLib,
|
||||
makeSymbolBinding (xcursorImageCreate, "XcursorImageCreate"),
|
||||
makeSymbolBinding (xcursorImageLoadCursor, "XcursorImageLoadCursor"),
|
||||
makeSymbolBinding (xcursorImageDestroy, "XcursorImageDestroy"));
|
||||
#endif
|
||||
#if JUCE_USE_XINERAMA
|
||||
loadSymbols (xineramaLib,
|
||||
makeSymbolBinding (xineramaIsActive, "XineramaIsActive"),
|
||||
makeSymbolBinding (xineramaQueryScreens, "XineramaQueryScreens"));
|
||||
#endif
|
||||
#if JUCE_USE_XRENDER
|
||||
loadSymbols (xrenderLib,
|
||||
makeSymbolBinding (xRenderQueryVersion, "XRenderQueryVersion"),
|
||||
makeSymbolBinding (xRenderFindStandardFormat, "XRenderFindStandardFormat"),
|
||||
makeSymbolBinding (xRenderFindFormat, "XRenderFindFormat"),
|
||||
makeSymbolBinding (xRenderFindVisualFormat, "XRenderFindVisualFormat"));
|
||||
#endif
|
||||
#if JUCE_USE_XRANDR
|
||||
loadSymbols (xrandrLib,
|
||||
makeSymbolBinding (xRRGetScreenResources, "XRRGetScreenResources"),
|
||||
makeSymbolBinding (xRRFreeScreenResources, "XRRFreeScreenResources"),
|
||||
makeSymbolBinding (xRRGetOutputInfo, "XRRGetOutputInfo"),
|
||||
makeSymbolBinding (xRRFreeOutputInfo, "XRRFreeOutputInfo"),
|
||||
makeSymbolBinding (xRRGetCrtcInfo, "XRRGetCrtcInfo"),
|
||||
makeSymbolBinding (xRRFreeCrtcInfo, "XRRFreeCrtcInfo"),
|
||||
makeSymbolBinding (xRRGetOutputPrimary, "XRRGetOutputPrimary"));
|
||||
#endif
|
||||
#if JUCE_USE_XSHM
|
||||
loadSymbols (xLib, xextLib,
|
||||
makeSymbolBinding (xShmAttach, "XShmAttach"),
|
||||
makeSymbolBinding (xShmCreateImage, "XShmCreateImage"),
|
||||
makeSymbolBinding (xShmDetach, "XShmDetach"),
|
||||
makeSymbolBinding (xShmGetEventBase, "XShmGetEventBase"),
|
||||
makeSymbolBinding (xShmPutImage, "XShmPutImage"),
|
||||
makeSymbolBinding (xShmQueryVersion, "XShmQueryVersion"));
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
JUCE_IMPLEMENT_SINGLETON (X11Symbols)
|
||||
|
||||
}
|
620
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_Symbols.h
vendored
Normal file
620
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_X11_Symbols.h
vendored
Normal file
@ -0,0 +1,620 @@
|
||||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library.
|
||||
Copyright (c) 2020 - Raw Material Software Limited
|
||||
|
||||
JUCE is an open source library subject to commercial or open-source
|
||||
licensing.
|
||||
|
||||
By using JUCE, you agree to the terms of both the JUCE 6 End-User License
|
||||
Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
|
||||
|
||||
End User License Agreement: www.juce.com/juce-6-licence
|
||||
Privacy Policy: www.juce.com/juce-privacy-policy
|
||||
|
||||
Or: You may also use this code under the terms of the GPL v3 (see
|
||||
www.gnu.org/licenses).
|
||||
|
||||
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
//==============================================================================
|
||||
namespace ReturnHelpers
|
||||
{
|
||||
template <typename Type>
|
||||
Type returnDefaultConstructedAnyType() { return {}; }
|
||||
|
||||
template <>
|
||||
inline void returnDefaultConstructedAnyType<void>() {}
|
||||
}
|
||||
|
||||
#define JUCE_GENERATE_FUNCTION_WITH_DEFAULT(functionName, objectName, args, returnType) \
|
||||
using functionName = returnType (*) args; \
|
||||
functionName objectName = [] args -> returnType { return ReturnHelpers::returnDefaultConstructedAnyType<returnType>(); };
|
||||
|
||||
|
||||
//==============================================================================
|
||||
class JUCE_API X11Symbols
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
bool loadAllSymbols();
|
||||
|
||||
//==============================================================================
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocClassHint, xAllocClassHint,
|
||||
(),
|
||||
XClassHint*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocSizeHints, xAllocSizeHints,
|
||||
(),
|
||||
XSizeHints*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocWMHints, xAllocWMHints,
|
||||
(),
|
||||
XWMHints*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XBitmapBitOrder, xBitmapBitOrder,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XBitmapUnit, xBitmapUnit,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XChangeActivePointerGrab, xChangeActivePointerGrab,
|
||||
(::Display*, unsigned int, Cursor, ::Time),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XChangeProperty, xChangeProperty,
|
||||
(::Display*, ::Window, Atom, Atom, int, int, const unsigned char*, int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCheckTypedWindowEvent, xCheckTypedWindowEvent,
|
||||
(::Display*, ::Window, int, XEvent*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCheckWindowEvent, xCheckWindowEvent,
|
||||
(::Display*, ::Window, long, XEvent*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XClearArea, xClearArea,
|
||||
(::Display*, ::Window, int, int, unsigned int, unsigned int, Bool),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCloseDisplay, xCloseDisplay,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XConnectionNumber, xConnectionNumber,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XConvertSelection, xConvertSelection,
|
||||
(::Display*, Atom, Atom, Atom, ::Window, ::Time),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateColormap, xCreateColormap,
|
||||
(::Display*, ::Window, Visual*, int),
|
||||
Colormap)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateFontCursor, xCreateFontCursor,
|
||||
(::Display*, unsigned int),
|
||||
Cursor)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateGC, xCreateGC,
|
||||
(::Display*, ::Drawable, unsigned long, XGCValues*),
|
||||
GC)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateImage, xCreateImage,
|
||||
(::Display*, Visual*, unsigned int, int, int, const char*, unsigned int, unsigned int, int, int),
|
||||
XImage*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmap, xCreatePixmap,
|
||||
(::Display*, ::Drawable, unsigned int, unsigned int, unsigned int),
|
||||
Pixmap)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmapCursor, xCreatePixmapCursor,
|
||||
(::Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int),
|
||||
Cursor)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmapFromBitmapData, xCreatePixmapFromBitmapData,
|
||||
(::Display*, ::Drawable, const char*, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int),
|
||||
Pixmap)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateWindow, xCreateWindow,
|
||||
(::Display*, ::Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, unsigned long, XSetWindowAttributes*),
|
||||
::Window)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultRootWindow, xDefaultRootWindow,
|
||||
(::Display*),
|
||||
::Window)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultScreen, xDefaultScreen,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultScreenOfDisplay, xDefaultScreenOfDisplay,
|
||||
(::Display*),
|
||||
Screen*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultVisual, xDefaultVisual,
|
||||
(::Display*, int),
|
||||
Visual*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefineCursor, xDefineCursor,
|
||||
(::Display*, ::Window, Cursor),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDeleteContext, xDeleteContext,
|
||||
(::Display*, XID, XContext),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDeleteProperty, xDeleteProperty,
|
||||
(::Display*, Window, Atom),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDestroyImage, xDestroyImage,
|
||||
(XImage*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDestroyWindow, xDestroyWindow,
|
||||
(::Display*, ::Window),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayHeight, xDisplayHeight,
|
||||
(::Display*, int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayHeightMM, xDisplayHeightMM,
|
||||
(::Display*, int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayWidth, xDisplayWidth,
|
||||
(::Display*, int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayWidthMM, xDisplayWidthMM,
|
||||
(::Display*, int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XEventsQueued, xEventsQueued,
|
||||
(::Display*, int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFindContext, xFindContext,
|
||||
(::Display*, XID, XContext, XPointer*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFlush, xFlush,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFree, xFree,
|
||||
(void*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeCursor, xFreeCursor,
|
||||
(::Display*, Cursor),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeColormap ,xFreeColormap,
|
||||
(::Display*, Colormap),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeGC, xFreeGC,
|
||||
(::Display*, GC),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeModifiermap, xFreeModifiermap,
|
||||
(XModifierKeymap*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreePixmap, xFreePixmap,
|
||||
(::Display*, Pixmap),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetAtomName, xGetAtomName,
|
||||
(::Display*, Atom),
|
||||
char*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetErrorDatabaseText, xGetErrorDatabaseText,
|
||||
(::Display*, const char*, const char*, const char*, const char*, int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetErrorText, xGetErrorText,
|
||||
(::Display*, int, const char*, int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetGeometry, xGetGeometry,
|
||||
(::Display*, ::Drawable, ::Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetImage, xGetImage,
|
||||
(::Display*, ::Drawable, int, int, unsigned int, unsigned int, unsigned long, int),
|
||||
XImage*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetInputFocus, xGetInputFocus,
|
||||
(::Display*, ::Window*, int*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetModifierMapping, xGetModifierMapping,
|
||||
(::Display*),
|
||||
XModifierKeymap*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetPointerMapping, xGetPointerMapping,
|
||||
(::Display*, unsigned char[], int),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetSelectionOwner, xGetSelectionOwner,
|
||||
(::Display*, Atom),
|
||||
::Window)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetVisualInfo, xGetVisualInfo,
|
||||
(::Display*, long, XVisualInfo*, int*),
|
||||
XVisualInfo*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWMHints, xGetWMHints,
|
||||
(::Display*, ::Window),
|
||||
XWMHints*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWindowAttributes, xGetWindowAttributes,
|
||||
(::Display*, ::Window, XWindowAttributes*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWindowProperty, xGetWindowProperty,
|
||||
(::Display*, ::Window, Atom, long, long, Bool, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGrabPointer, xGrabPointer,
|
||||
(::Display*, ::Window, Bool, unsigned int, int, int, ::Window, Cursor, ::Time),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGrabServer, xGrabServer,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XImageByteOrder, xImageByteOrder,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInitImage, xInitImage,
|
||||
(XImage*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInitThreads, xInitThreads,
|
||||
(),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInstallColormap, xInstallColormap,
|
||||
(::Display*, Colormap),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInternAtom, xInternAtom,
|
||||
(::Display*, const char*, Bool),
|
||||
Atom)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XkbKeycodeToKeysym, xkbKeycodeToKeysym,
|
||||
(::Display*, KeyCode, unsigned int, unsigned int),
|
||||
KeySym)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XKeysymToKeycode, xKeysymToKeycode,
|
||||
(::Display*, KeySym),
|
||||
KeyCode)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XListProperties, xListProperties,
|
||||
(::Display*, Window, int*),
|
||||
Atom*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XLockDisplay, xLockDisplay,
|
||||
(::Display*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XLookupString, xLookupString,
|
||||
(XKeyEvent*, const char*, int, KeySym*, XComposeStatus*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMapRaised, xMapRaised,
|
||||
(::Display*, ::Window),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMapWindow, xMapWindow,
|
||||
(::Display*, ::Window),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMoveResizeWindow, xMoveResizeWindow,
|
||||
(::Display*, ::Window, int, int, unsigned int, unsigned int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XNextEvent, xNextEvent,
|
||||
(::Display*, XEvent*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XOpenDisplay, xOpenDisplay,
|
||||
(const char*),
|
||||
::Display*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPeekEvent, xPeekEvent,
|
||||
(::Display*, XEvent*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPending, xPending,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPutImage, xPutImage,
|
||||
(::Display*, ::Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPutPixel, xPutPixel,
|
||||
(XImage*, int, int, unsigned long),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryBestCursor, xQueryBestCursor,
|
||||
(::Display*, ::Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryExtension, xQueryExtension,
|
||||
(::Display*, const char*, int*, int*, int*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryPointer, xQueryPointer,
|
||||
(::Display*, ::Window, ::Window*, ::Window*, int*, int*, int*, int*, unsigned int*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryTree, xQueryTree,
|
||||
(::Display*, ::Window, ::Window*, ::Window*, ::Window**, unsigned int*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRefreshKeyboardMapping, xRefreshKeyboardMapping,
|
||||
(XMappingEvent*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XReparentWindow, xReparentWindow,
|
||||
(::Display*, ::Window, ::Window, int, int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XResizeWindow, xResizeWindow,
|
||||
(::Display*, Window, unsigned int, unsigned int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRestackWindows, xRestackWindows,
|
||||
(::Display*, ::Window[], int),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRootWindow, xRootWindow,
|
||||
(::Display*, int),
|
||||
::Window)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSaveContext, xSaveContext,
|
||||
(::Display*, XID, XContext, XPointer),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XScreenCount, xScreenCount,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XScreenNumberOfScreen, xScreenNumberOfScreen,
|
||||
(Screen*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSelectInput, xSelectInput,
|
||||
(::Display*, ::Window, long),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSendEvent, xSendEvent,
|
||||
(::Display*, ::Window, Bool, long, XEvent*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetClassHint, xSetClassHint,
|
||||
(::Display*, ::Window, XClassHint*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetErrorHandler, xSetErrorHandler,
|
||||
(XErrorHandler),
|
||||
XErrorHandler)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetIOErrorHandler, xSetIOErrorHandler,
|
||||
(XIOErrorHandler),
|
||||
XIOErrorHandler)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetInputFocus, xSetInputFocus,
|
||||
(::Display*, ::Window, int, ::Time),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetSelectionOwner, xSetSelectionOwner,
|
||||
(::Display*, Atom, ::Window, ::Time),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMHints, xSetWMHints,
|
||||
(::Display*, ::Window, XWMHints*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMIconName, xSetWMIconName,
|
||||
(::Display*, ::Window, XTextProperty*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMName, xSetWMName,
|
||||
(::Display*, ::Window, XTextProperty*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMNormalHints, xSetWMNormalHints,
|
||||
(::Display*, ::Window, XSizeHints*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XStringListToTextProperty, xStringListToTextProperty,
|
||||
(char**, int, XTextProperty*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (Xutf8TextListToTextProperty, xutf8TextListToTextProperty,
|
||||
(::Display*, char**, int, XICCEncodingStyle, XTextProperty*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSync, xSync,
|
||||
(::Display*, Bool),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSynchronize, xSynchronize,
|
||||
(::Display*, Bool),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XTranslateCoordinates, xTranslateCoordinates,
|
||||
(::Display*, ::Window, ::Window, int, int, int*, int*, ::Window*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XrmUniqueQuark, xrmUniqueQuark,
|
||||
(),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUngrabPointer, xUngrabPointer,
|
||||
(::Display*, ::Time),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUngrabServer, xUngrabServer,
|
||||
(::Display*),
|
||||
int)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUnlockDisplay, xUnlockDisplay,
|
||||
(::Display*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUnmapWindow, xUnmapWindow,
|
||||
(::Display*, ::Window),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XWarpPointer, xWarpPointer,
|
||||
(::Display*, ::Window, ::Window, int, int, unsigned int, unsigned int, int, int),
|
||||
void)
|
||||
#if JUCE_USE_XCURSOR
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageCreate, xcursorImageCreate,
|
||||
(int, int),
|
||||
XcursorImage*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageLoadCursor, xcursorImageLoadCursor,
|
||||
(::Display*, XcursorImage*),
|
||||
Cursor)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageDestroy, xcursorImageDestroy,
|
||||
(XcursorImage*),
|
||||
void)
|
||||
#endif
|
||||
#if JUCE_USE_XINERAMA
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XineramaIsActive, xineramaIsActive,
|
||||
(::Display*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XineramaQueryScreens, xineramaQueryScreens,
|
||||
(::Display*, int*),
|
||||
XineramaScreenInfo*)
|
||||
#endif
|
||||
#if JUCE_USE_XRENDER
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderQueryVersion, xRenderQueryVersion,
|
||||
(::Display*, int*, int*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindStandardFormat, xRenderFindStandardFormat,
|
||||
(Display*, int),
|
||||
XRenderPictFormat*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindFormat, xRenderFindFormat,
|
||||
(Display*, unsigned long, XRenderPictFormat*, int),
|
||||
XRenderPictFormat*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindVisualFormat, xRenderFindVisualFormat,
|
||||
(Display*, Visual*),
|
||||
XRenderPictFormat*)
|
||||
#endif
|
||||
#if JUCE_USE_XRANDR
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetScreenResources, xRRGetScreenResources,
|
||||
(::Display*, Window),
|
||||
XRRScreenResources*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeScreenResources, xRRFreeScreenResources,
|
||||
(XRRScreenResources*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetOutputInfo, xRRGetOutputInfo,
|
||||
(::Display*, XRRScreenResources*, RROutput),
|
||||
XRROutputInfo*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeOutputInfo, xRRFreeOutputInfo,
|
||||
(XRROutputInfo*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetCrtcInfo, xRRGetCrtcInfo,
|
||||
(::Display*, XRRScreenResources*, RRCrtc),
|
||||
XRRCrtcInfo*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeCrtcInfo, xRRFreeCrtcInfo,
|
||||
(XRRCrtcInfo*),
|
||||
void)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetOutputPrimary, xRRGetOutputPrimary,
|
||||
(::Display*, ::Window),
|
||||
RROutput)
|
||||
#endif
|
||||
#if JUCE_USE_XSHM
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmAttach, xShmAttach,
|
||||
(::Display*, XShmSegmentInfo*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmCreateImage, xShmCreateImage,
|
||||
(::Display*, Visual*, unsigned int, int, const char*, XShmSegmentInfo*, unsigned int, unsigned int),
|
||||
XImage*)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmDetach, xShmDetach,
|
||||
(::Display*, XShmSegmentInfo*),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmGetEventBase, xShmGetEventBase,
|
||||
(::Display*),
|
||||
Status)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmPutImage, xShmPutImage,
|
||||
(::Display*, ::Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int, bool),
|
||||
Bool)
|
||||
|
||||
JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmQueryVersion, xShmQueryVersion,
|
||||
(::Display*, int*, int*, Bool*),
|
||||
Bool)
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_SINGLETON (X11Symbols, false)
|
||||
|
||||
private:
|
||||
X11Symbols() = default;
|
||||
|
||||
~X11Symbols()
|
||||
{
|
||||
clearSingletonInstance();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
DynamicLibrary xLib { "libX11.so.6" }, xextLib { "libXext.so.6" };
|
||||
|
||||
#if JUCE_USE_XCURSOR
|
||||
DynamicLibrary xcursorLib { "libXcursor.so.1" };
|
||||
#endif
|
||||
#if JUCE_USE_XINERAMA
|
||||
DynamicLibrary xineramaLib { "libXinerama.so.1" };
|
||||
#endif
|
||||
#if JUCE_USE_XRENDER
|
||||
DynamicLibrary xrenderLib { "libXrender.so.1" };
|
||||
#endif
|
||||
#if JUCE_USE_XRANDR
|
||||
DynamicLibrary xrandrLib { "libXrandr.so.2" };
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (X11Symbols)
|
||||
};
|
||||
|
||||
}
|
3837
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
vendored
Normal file
3837
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
346
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.h
vendored
Normal file
346
deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.h
vendored
Normal file
@ -0,0 +1,346 @@
|
||||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library.
|
||||
Copyright (c) 2020 - Raw Material Software Limited
|
||||
|
||||
JUCE is an open source library subject to commercial or open-source
|
||||
licensing.
|
||||
|
||||
By using JUCE, you agree to the terms of both the JUCE 6 End-User License
|
||||
Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
|
||||
|
||||
End User License Agreement: www.juce.com/juce-6-licence
|
||||
Privacy Policy: www.juce.com/juce-privacy-policy
|
||||
|
||||
Or: You may also use this code under the terms of the GPL v3 (see
|
||||
www.gnu.org/licenses).
|
||||
|
||||
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
//==============================================================================
|
||||
namespace XWindowSystemUtilities
|
||||
{
|
||||
//==============================================================================
|
||||
/** A handy struct that uses XLockDisplay and XUnlockDisplay to lock the X server
|
||||
using RAII.
|
||||
|
||||
@tags{GUI}
|
||||
*/
|
||||
struct ScopedXLock
|
||||
{
|
||||
ScopedXLock();
|
||||
~ScopedXLock();
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** Gets a specified window property and stores its associated data, freeing it
|
||||
on deletion.
|
||||
|
||||
@tags{GUI}
|
||||
*/
|
||||
struct GetXProperty
|
||||
{
|
||||
GetXProperty (::Display* display, ::Window windowH, Atom property,
|
||||
long offset, long length, bool shouldDelete, Atom requestedType);
|
||||
~GetXProperty();
|
||||
|
||||
bool success = false;
|
||||
unsigned char* data = nullptr;
|
||||
unsigned long numItems = 0, bytesLeft = 0;
|
||||
Atom actualType;
|
||||
int actualFormat = -1;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** Initialises and stores some atoms for the display.
|
||||
|
||||
@tags{GUI}
|
||||
*/
|
||||
struct Atoms
|
||||
{
|
||||
enum ProtocolItems
|
||||
{
|
||||
TAKE_FOCUS = 0,
|
||||
DELETE_WINDOW = 1,
|
||||
PING = 2
|
||||
};
|
||||
|
||||
Atoms() = default;
|
||||
explicit Atoms (::Display*);
|
||||
|
||||
static Atom getIfExists (::Display*, const char* name);
|
||||
static Atom getCreating (::Display*, const char* name);
|
||||
|
||||
static String getName (::Display*, Atom);
|
||||
static bool isMimeTypeFile (::Display*, Atom);
|
||||
|
||||
static constexpr unsigned long DndVersion = 3;
|
||||
|
||||
Atom protocols, protocolList[3], changeState, state, userTime, activeWin, pid, windowType, windowState, windowStateHidden,
|
||||
XdndAware, XdndEnter, XdndLeave, XdndPosition, XdndStatus, XdndDrop, XdndFinished, XdndSelection,
|
||||
XdndTypeList, XdndActionList, XdndActionDescription, XdndActionCopy, XdndActionPrivate,
|
||||
XembedMsgType, XembedInfo, allowedActions[5], allowedMimeTypes[4], utf8String, clipboard, targets;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** Represents a setting according to the XSETTINGS specification.
|
||||
|
||||
@tags{GUI}
|
||||
*/
|
||||
struct XSetting
|
||||
{
|
||||
enum class Type
|
||||
{
|
||||
integer,
|
||||
string,
|
||||
colour,
|
||||
invalid
|
||||
};
|
||||
|
||||
XSetting() = default;
|
||||
|
||||
XSetting (const String& n, int v) : name (n), type (Type::integer), integerValue (v) {}
|
||||
XSetting (const String& n, const String& v) : name (n), type (Type::string), stringValue (v) {}
|
||||
XSetting (const String& n, const Colour& v) : name (n), type (Type::colour), colourValue (v) {}
|
||||
|
||||
bool isValid() const noexcept { return type != Type::invalid; }
|
||||
|
||||
String name;
|
||||
Type type = Type::invalid;
|
||||
|
||||
int integerValue = -1;
|
||||
String stringValue;
|
||||
Colour colourValue;
|
||||
};
|
||||
|
||||
/** Parses and stores the X11 settings for a display according to the XSETTINGS
|
||||
specification.
|
||||
|
||||
@tags{GUI}
|
||||
*/
|
||||
class XSettings
|
||||
{
|
||||
public:
|
||||
explicit XSettings (::Display*);
|
||||
|
||||
//==============================================================================
|
||||
void update();
|
||||
::Window getSettingsWindow() const noexcept { return settingsWindow; }
|
||||
|
||||
XSetting getSetting (const String& settingName) const;
|
||||
|
||||
//==============================================================================
|
||||
struct Listener
|
||||
{
|
||||
virtual ~Listener() = default;
|
||||
virtual void settingChanged (const XSetting& settingThatHasChanged) = 0;
|
||||
};
|
||||
|
||||
void addListener (Listener* listenerToAdd) { listeners.add (listenerToAdd); }
|
||||
void removeListener (Listener* listenerToRemove) { listeners.remove (listenerToRemove); }
|
||||
|
||||
private:
|
||||
::Display* display = nullptr;
|
||||
::Window settingsWindow = None;
|
||||
Atom settingsAtom;
|
||||
|
||||
int lastUpdateSerial = -1;
|
||||
|
||||
std::unordered_map<String, XSetting> settings;
|
||||
ListenerList<Listener> listeners;
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (XSettings)
|
||||
};
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
class LinuxComponentPeer;
|
||||
|
||||
class XWindowSystem : public DeletedAtShutdown
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
::Window createWindow (::Window parentWindow, LinuxComponentPeer*) const;
|
||||
void destroyWindow (::Window);
|
||||
|
||||
void setTitle (::Window, const String&) const;
|
||||
void setIcon (::Window , const Image&) const;
|
||||
void setVisible (::Window, bool shouldBeVisible) const;
|
||||
void setBounds (::Window, Rectangle<int>, bool fullScreen) const;
|
||||
|
||||
BorderSize<int> getBorderSize (::Window) const;
|
||||
Rectangle<int> getWindowBounds (::Window, ::Window parentWindow);
|
||||
Point<int> getPhysicalParentScreenPosition() const;
|
||||
|
||||
bool contains (::Window, Point<int> localPos) const;
|
||||
|
||||
void setMinimised (::Window, bool shouldBeMinimised) const;
|
||||
bool isMinimised (::Window) const;
|
||||
|
||||
void setMaximised (::Window, bool shouldBeMinimised) const;
|
||||
|
||||
void toFront (::Window, bool makeActive) const;
|
||||
void toBehind (::Window, ::Window otherWindow) const;
|
||||
|
||||
bool isFocused (::Window) const;
|
||||
bool grabFocus (::Window) const;
|
||||
|
||||
bool canUseSemiTransparentWindows() const;
|
||||
bool canUseARGBImages() const;
|
||||
bool isDarkModeActive() const;
|
||||
|
||||
int getNumPaintsPendingForWindow (::Window);
|
||||
void processPendingPaintsForWindow (::Window);
|
||||
void addPendingPaintForWindow (::Window);
|
||||
void removePendingPaintForWindow (::Window);
|
||||
|
||||
Image createImage (bool isSemiTransparentWindow, int width, int height, bool argb) const;
|
||||
void blitToWindow (::Window, Image, Rectangle<int> destinationRect, Rectangle<int> totalRect) const;
|
||||
|
||||
void setScreenSaverEnabled (bool enabled) const;
|
||||
|
||||
Point<float> getCurrentMousePosition() const;
|
||||
void setMousePosition (Point<float> pos) const;
|
||||
|
||||
void* createCustomMouseCursorInfo (const Image&, Point<int> hotspot) const;
|
||||
void deleteMouseCursor (void* cursorHandle) const;
|
||||
void* createStandardMouseCursor (MouseCursor::StandardCursorType) const;
|
||||
void showCursor (::Window, void* cursorHandle) const;
|
||||
|
||||
bool isKeyCurrentlyDown (int keyCode) const;
|
||||
ModifierKeys getNativeRealtimeModifiers() const;
|
||||
|
||||
Array<Displays::Display> findDisplays (float masterScale) const;
|
||||
|
||||
::Window createKeyProxy (::Window) const;
|
||||
void deleteKeyProxy (::Window) const;
|
||||
|
||||
bool externalDragFileInit (LinuxComponentPeer*, const StringArray& files, bool canMove, std::function<void()>&& callback) const;
|
||||
bool externalDragTextInit (LinuxComponentPeer*, const String& text, std::function<void()>&& callback) const;
|
||||
|
||||
void copyTextToClipboard (const String&);
|
||||
String getTextFromClipboard() const;
|
||||
String getLocalClipboardContent() const noexcept { return localClipboardContent; }
|
||||
|
||||
::Display* getDisplay() const noexcept { return display; }
|
||||
const XWindowSystemUtilities::Atoms& getAtoms() const noexcept { return atoms; }
|
||||
XWindowSystemUtilities::XSettings* getXSettings() const noexcept { return xSettings.get(); }
|
||||
|
||||
bool isX11Available() const noexcept { return xIsAvailable; }
|
||||
|
||||
static String getWindowScalingFactorSettingName() { return "Gdk/WindowScalingFactor"; }
|
||||
static String getThemeNameSettingName() { return "Net/ThemeName"; }
|
||||
|
||||
//==============================================================================
|
||||
void handleWindowMessage (LinuxComponentPeer*, XEvent&) const;
|
||||
bool isParentWindowOf (::Window, ::Window possibleChild) const;
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_SINGLETON (XWindowSystem, false)
|
||||
|
||||
private:
|
||||
XWindowSystem();
|
||||
~XWindowSystem();
|
||||
|
||||
//==============================================================================
|
||||
struct VisualAndDepth
|
||||
{
|
||||
Visual* visual;
|
||||
int depth;
|
||||
};
|
||||
|
||||
struct DisplayVisuals
|
||||
{
|
||||
explicit DisplayVisuals (::Display*);
|
||||
|
||||
VisualAndDepth getBestVisualForWindow (bool) const;
|
||||
bool isValid() const noexcept;
|
||||
|
||||
Visual* visual16Bit = nullptr;
|
||||
Visual* visual24Bit = nullptr;
|
||||
Visual* visual32Bit = nullptr;
|
||||
};
|
||||
|
||||
bool initialiseXDisplay();
|
||||
void destroyXDisplay();
|
||||
|
||||
//==============================================================================
|
||||
::Window getFocusWindow (::Window) const;
|
||||
|
||||
bool isFrontWindow (::Window) const;
|
||||
|
||||
//==============================================================================
|
||||
void xchangeProperty (::Window, Atom, Atom, int, const void*, int) const;
|
||||
|
||||
void removeWindowDecorations (::Window) const;
|
||||
void addWindowButtons (::Window, int) const;
|
||||
void setWindowType (::Window, int) const;
|
||||
|
||||
void initialisePointerMap();
|
||||
void deleteIconPixmaps (::Window) const;
|
||||
void updateModifierMappings() const;
|
||||
|
||||
long getUserTime (::Window) const;
|
||||
|
||||
void initialiseXSettings();
|
||||
|
||||
//==============================================================================
|
||||
void handleKeyPressEvent (LinuxComponentPeer*, XKeyEvent&) const;
|
||||
void handleKeyReleaseEvent (LinuxComponentPeer*, const XKeyEvent&) const;
|
||||
void handleWheelEvent (LinuxComponentPeer*, const XButtonPressedEvent&, float) const;
|
||||
void handleButtonPressEvent (LinuxComponentPeer*, const XButtonPressedEvent&, int) const;
|
||||
void handleButtonPressEvent (LinuxComponentPeer*, const XButtonPressedEvent&) const;
|
||||
void handleButtonReleaseEvent (LinuxComponentPeer*, const XButtonReleasedEvent&) const;
|
||||
void handleMotionNotifyEvent (LinuxComponentPeer*, const XPointerMovedEvent&) const;
|
||||
void handleEnterNotifyEvent (LinuxComponentPeer*, const XEnterWindowEvent&) const;
|
||||
void handleLeaveNotifyEvent (LinuxComponentPeer*, const XLeaveWindowEvent&) const;
|
||||
void handleFocusInEvent (LinuxComponentPeer*) const;
|
||||
void handleFocusOutEvent (LinuxComponentPeer*) const;
|
||||
void handleExposeEvent (LinuxComponentPeer*, XExposeEvent&) const;
|
||||
void handleConfigureNotifyEvent (LinuxComponentPeer*, XConfigureEvent&) const;
|
||||
void handleGravityNotify (LinuxComponentPeer*) const;
|
||||
void propertyNotifyEvent (LinuxComponentPeer*, const XPropertyEvent&) const;
|
||||
void handleMappingNotify (XMappingEvent&) const;
|
||||
void handleClientMessageEvent (LinuxComponentPeer*, XClientMessageEvent&, XEvent&) const;
|
||||
void handleXEmbedMessage (LinuxComponentPeer*, XClientMessageEvent&) const;
|
||||
|
||||
void dismissBlockingModals (LinuxComponentPeer*) const;
|
||||
void dismissBlockingModals (LinuxComponentPeer*, const XConfigureEvent&) const;
|
||||
|
||||
::Window findTopLevelWindowOf (::Window) const;
|
||||
|
||||
static void windowMessageReceive (XEvent&);
|
||||
|
||||
//==============================================================================
|
||||
bool xIsAvailable = false;
|
||||
|
||||
XWindowSystemUtilities::Atoms atoms;
|
||||
::Display* display = nullptr;
|
||||
std::unique_ptr<DisplayVisuals> displayVisuals;
|
||||
std::unique_ptr<XWindowSystemUtilities::XSettings> xSettings;
|
||||
|
||||
#if JUCE_USE_XSHM
|
||||
std::map<::Window, int> shmPaintsPendingMap;
|
||||
#endif
|
||||
|
||||
int shmCompletionEvent = 0;
|
||||
int pointerMap[5] = {};
|
||||
String localClipboardContent;
|
||||
|
||||
Point<int> parentScreenPosition;
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (XWindowSystem)
|
||||
};
|
||||
|
||||
} // namespace juce
|
Reference in New Issue
Block a user