The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

295 lines
11KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library.
  4. Copyright (c) 2015 - ROLI Ltd.
  5. Permission is granted to use this software under the terms of either:
  6. a) the GPL v2 (or any later version)
  7. b) the Affero GPL v3
  8. Details of these licenses can be found at: www.gnu.org/licenses
  9. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
  10. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  11. A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  12. ------------------------------------------------------------------------------
  13. To release a closed-source product which uses JUCE, commercial licenses are
  14. available: visit www.juce.com for more information.
  15. ==============================================================================
  16. */
  17. /*******************************************************************************
  18. The block below describes the properties of this module, and is read by
  19. the Projucer to automatically generate project code that uses it.
  20. For details about the syntax and how to create or use a module, see the
  21. JUCE Module Format.txt file.
  22. BEGIN_JUCE_MODULE_DECLARATION
  23. ID: juce_gui_basics
  24. vendor: juce
  25. version: 4.3.1
  26. name: JUCE GUI core classes
  27. description: Basic user-interface components and related classes.
  28. website: http://www.juce.com/juce
  29. license: GPL/Commercial
  30. dependencies: juce_events juce_graphics juce_data_structures
  31. OSXFrameworks: Cocoa Carbon QuartzCore
  32. iOSFrameworks: UIKit
  33. linuxPackages: x11 xinerama xext
  34. END_JUCE_MODULE_DECLARATION
  35. *******************************************************************************/
  36. #pragma once
  37. #include <juce_graphics/juce_graphics.h>
  38. #include <juce_data_structures/juce_data_structures.h>
  39. //==============================================================================
  40. /** Config: JUCE_ENABLE_REPAINT_DEBUGGING
  41. If this option is turned on, each area of the screen that gets repainted will
  42. flash in a random colour, so that you can see exactly which bits of your
  43. components are being drawn.
  44. */
  45. #ifndef JUCE_ENABLE_REPAINT_DEBUGGING
  46. #define JUCE_ENABLE_REPAINT_DEBUGGING 0
  47. #endif
  48. /** JUCE_USE_XRANDR: Enables Xrandr multi-monitor support (Linux only).
  49. Unless you specifically want to disable this, it's best to leave this option turned on.
  50. Note that your users do not need to have Xrandr installed for your JUCE app to run, as
  51. the availability of Xrandr is queried during runtime.
  52. */
  53. #ifndef JUCE_USE_XRANDR
  54. #define JUCE_USE_XRANDR 1
  55. #endif
  56. /** JUCE_USE_XINERAMA: Enables Xinerama multi-monitor support (Linux only).
  57. Unless you specifically want to disable this, it's best to leave this option turned on.
  58. This will be used as a fallback if JUCE_USE_XRANDR not set or libxrandr cannot be found.
  59. Note that your users do not need to have Xinerama installed for your JUCE app to run, as
  60. the availability of Xinerama is queried during runtime.
  61. */
  62. #ifndef JUCE_USE_XINERAMA
  63. #define JUCE_USE_XINERAMA 1
  64. #endif
  65. /** Config: JUCE_USE_XSHM
  66. Enables X shared memory for faster rendering on Linux. This is best left turned on
  67. unless you have a good reason to disable it.
  68. */
  69. #ifndef JUCE_USE_XSHM
  70. #define JUCE_USE_XSHM 1
  71. #endif
  72. /** Config: JUCE_USE_XRENDER
  73. Enables XRender to allow semi-transparent windowing on Linux.
  74. */
  75. #ifndef JUCE_USE_XRENDER
  76. #define JUCE_USE_XRENDER 0
  77. #endif
  78. /** Config: JUCE_USE_XCURSOR
  79. Uses XCursor to allow ARGB cursor on Linux. This is best left turned on unless you have
  80. a good reason to disable it.
  81. */
  82. #ifndef JUCE_USE_XCURSOR
  83. #define JUCE_USE_XCURSOR 1
  84. #endif
  85. //==============================================================================
  86. namespace juce
  87. {
  88. class Component;
  89. class LookAndFeel;
  90. class MouseInputSource;
  91. class MouseInputSourceInternal;
  92. class ComponentPeer;
  93. class MarkerList;
  94. class RelativeRectangle;
  95. class MouseEvent;
  96. struct MouseWheelDetails;
  97. class ToggleButton;
  98. class TextButton;
  99. class AlertWindow;
  100. class TextLayout;
  101. class ScrollBar;
  102. class ComboBox;
  103. class Button;
  104. class FilenameComponent;
  105. class DocumentWindow;
  106. class ResizableWindow;
  107. class GroupComponent;
  108. class MenuBarComponent;
  109. class DropShadower;
  110. class GlyphArrangement;
  111. class PropertyComponent;
  112. class TableHeaderComponent;
  113. class Toolbar;
  114. class ToolbarItemComponent;
  115. class PopupMenu;
  116. class ProgressBar;
  117. class FileBrowserComponent;
  118. class DirectoryContentsDisplayComponent;
  119. class FilePreviewComponent;
  120. class ImageButton;
  121. class CallOutBox;
  122. class Drawable;
  123. class DrawablePath;
  124. class DrawableComposite;
  125. class CaretComponent;
  126. class BubbleComponent;
  127. class KeyPressMappingSet;
  128. class ApplicationCommandManagerListener;
  129. class DrawableButton;
  130. class FlexBox;
  131. #include "mouse/juce_MouseCursor.h"
  132. #include "mouse/juce_MouseListener.h"
  133. #include "keyboard/juce_ModifierKeys.h"
  134. #include "mouse/juce_MouseInputSource.h"
  135. #include "mouse/juce_MouseEvent.h"
  136. #include "keyboard/juce_KeyPress.h"
  137. #include "keyboard/juce_KeyListener.h"
  138. #include "keyboard/juce_KeyboardFocusTraverser.h"
  139. #include "components/juce_ModalComponentManager.h"
  140. #include "components/juce_ComponentListener.h"
  141. #include "components/juce_CachedComponentImage.h"
  142. #include "components/juce_Component.h"
  143. #include "layout/juce_ComponentAnimator.h"
  144. #include "components/juce_Desktop.h"
  145. #include "layout/juce_ComponentBoundsConstrainer.h"
  146. #include "mouse/juce_ComponentDragger.h"
  147. #include "mouse/juce_DragAndDropTarget.h"
  148. #include "mouse/juce_DragAndDropContainer.h"
  149. #include "mouse/juce_FileDragAndDropTarget.h"
  150. #include "mouse/juce_SelectedItemSet.h"
  151. #include "mouse/juce_LassoComponent.h"
  152. #include "mouse/juce_MouseInactivityDetector.h"
  153. #include "mouse/juce_TextDragAndDropTarget.h"
  154. #include "mouse/juce_TooltipClient.h"
  155. #include "keyboard/juce_CaretComponent.h"
  156. #include "keyboard/juce_SystemClipboard.h"
  157. #include "keyboard/juce_TextEditorKeyMapper.h"
  158. #include "keyboard/juce_TextInputTarget.h"
  159. #include "commands/juce_ApplicationCommandID.h"
  160. #include "commands/juce_ApplicationCommandInfo.h"
  161. #include "commands/juce_ApplicationCommandTarget.h"
  162. #include "commands/juce_ApplicationCommandManager.h"
  163. #include "commands/juce_KeyPressMappingSet.h"
  164. #include "buttons/juce_Button.h"
  165. #include "buttons/juce_ArrowButton.h"
  166. #include "buttons/juce_DrawableButton.h"
  167. #include "buttons/juce_HyperlinkButton.h"
  168. #include "buttons/juce_ImageButton.h"
  169. #include "buttons/juce_ShapeButton.h"
  170. #include "buttons/juce_TextButton.h"
  171. #include "buttons/juce_ToggleButton.h"
  172. #include "layout/juce_AnimatedPosition.h"
  173. #include "layout/juce_AnimatedPositionBehaviours.h"
  174. #include "layout/juce_ComponentBuilder.h"
  175. #include "layout/juce_ComponentMovementWatcher.h"
  176. #include "layout/juce_ConcertinaPanel.h"
  177. #include "layout/juce_GroupComponent.h"
  178. #include "layout/juce_ResizableBorderComponent.h"
  179. #include "layout/juce_ResizableCornerComponent.h"
  180. #include "layout/juce_ResizableEdgeComponent.h"
  181. #include "layout/juce_ScrollBar.h"
  182. #include "layout/juce_StretchableLayoutManager.h"
  183. #include "layout/juce_StretchableLayoutResizerBar.h"
  184. #include "layout/juce_StretchableObjectResizer.h"
  185. #include "layout/juce_TabbedButtonBar.h"
  186. #include "layout/juce_TabbedComponent.h"
  187. #include "layout/juce_Viewport.h"
  188. #include "menus/juce_PopupMenu.h"
  189. #include "menus/juce_MenuBarModel.h"
  190. #include "menus/juce_MenuBarComponent.h"
  191. #include "positioning/juce_RelativeCoordinate.h"
  192. #include "positioning/juce_MarkerList.h"
  193. #include "positioning/juce_RelativePoint.h"
  194. #include "positioning/juce_RelativeRectangle.h"
  195. #include "positioning/juce_RelativeCoordinatePositioner.h"
  196. #include "positioning/juce_RelativeParallelogram.h"
  197. #include "positioning/juce_RelativePointPath.h"
  198. #include "drawables/juce_Drawable.h"
  199. #include "drawables/juce_DrawableShape.h"
  200. #include "drawables/juce_DrawableComposite.h"
  201. #include "drawables/juce_DrawableImage.h"
  202. #include "drawables/juce_DrawablePath.h"
  203. #include "drawables/juce_DrawableRectangle.h"
  204. #include "drawables/juce_DrawableText.h"
  205. #include "widgets/juce_TextEditor.h"
  206. #include "widgets/juce_Label.h"
  207. #include "widgets/juce_ComboBox.h"
  208. #include "widgets/juce_ImageComponent.h"
  209. #include "widgets/juce_ListBox.h"
  210. #include "widgets/juce_ProgressBar.h"
  211. #include "widgets/juce_Slider.h"
  212. #include "widgets/juce_TableHeaderComponent.h"
  213. #include "widgets/juce_TableListBox.h"
  214. #include "widgets/juce_Toolbar.h"
  215. #include "widgets/juce_ToolbarItemComponent.h"
  216. #include "widgets/juce_ToolbarItemFactory.h"
  217. #include "widgets/juce_ToolbarItemPalette.h"
  218. #include "buttons/juce_ToolbarButton.h"
  219. #include "misc/juce_DropShadower.h"
  220. #include "widgets/juce_TreeView.h"
  221. #include "windows/juce_TopLevelWindow.h"
  222. #include "windows/juce_AlertWindow.h"
  223. #include "windows/juce_CallOutBox.h"
  224. #include "windows/juce_ComponentPeer.h"
  225. #include "windows/juce_ResizableWindow.h"
  226. #include "windows/juce_DocumentWindow.h"
  227. #include "windows/juce_DialogWindow.h"
  228. #include "windows/juce_NativeMessageBox.h"
  229. #include "windows/juce_ThreadWithProgressWindow.h"
  230. #include "windows/juce_TooltipWindow.h"
  231. #include "layout/juce_MultiDocumentPanel.h"
  232. #include "filebrowser/juce_FileBrowserListener.h"
  233. #include "filebrowser/juce_DirectoryContentsList.h"
  234. #include "filebrowser/juce_DirectoryContentsDisplayComponent.h"
  235. #include "filebrowser/juce_FileBrowserComponent.h"
  236. #include "filebrowser/juce_FileChooser.h"
  237. #include "filebrowser/juce_FileChooserDialogBox.h"
  238. #include "filebrowser/juce_FileListComponent.h"
  239. #include "filebrowser/juce_FilenameComponent.h"
  240. #include "filebrowser/juce_FilePreviewComponent.h"
  241. #include "filebrowser/juce_FileSearchPathListComponent.h"
  242. #include "filebrowser/juce_FileTreeComponent.h"
  243. #include "filebrowser/juce_ImagePreviewComponent.h"
  244. #include "properties/juce_PropertyComponent.h"
  245. #include "properties/juce_BooleanPropertyComponent.h"
  246. #include "properties/juce_ButtonPropertyComponent.h"
  247. #include "properties/juce_ChoicePropertyComponent.h"
  248. #include "properties/juce_PropertyPanel.h"
  249. #include "properties/juce_SliderPropertyComponent.h"
  250. #include "properties/juce_TextPropertyComponent.h"
  251. #include "application/juce_Application.h"
  252. #include "misc/juce_BubbleComponent.h"
  253. #include "lookandfeel/juce_LookAndFeel.h"
  254. #include "lookandfeel/juce_LookAndFeel_V2.h"
  255. #include "lookandfeel/juce_LookAndFeel_V1.h"
  256. #include "lookandfeel/juce_LookAndFeel_V3.h"
  257. #if JUCE_LINUX
  258. #include "native/juce_linux_X11.h"
  259. #endif
  260. // these classes are C++11-only
  261. #if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
  262. #include "layout/juce_FlexItem.h"
  263. #include "layout/juce_FlexBox.h"
  264. #endif
  265. }