Audio plugin host https://kx.studio/carla
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.

juce_gui_basics.h 11KB

9 years ago
8 years ago
8 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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.0
  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. #ifndef JUCE_GUI_BASICS_H_INCLUDED
  37. #define JUCE_GUI_BASICS_H_INCLUDED
  38. #include <juce_graphics/juce_graphics.h>
  39. #include <juce_data_structures/juce_data_structures.h>
  40. //==============================================================================
  41. /** Config: JUCE_ENABLE_REPAINT_DEBUGGING
  42. If this option is turned on, each area of the screen that gets repainted will
  43. flash in a random colour, so that you can see exactly which bits of your
  44. components are being drawn.
  45. */
  46. #ifndef JUCE_ENABLE_REPAINT_DEBUGGING
  47. #define JUCE_ENABLE_REPAINT_DEBUGGING 0
  48. #endif
  49. /** JUCE_USE_XRANDR: Enables Xrandr multi-monitor support (Linux only).
  50. Unless you specifically want to disable this, it's best to leave this option turned on.
  51. Note that your users do not need to have Xrandr installed for your JUCE app to run, as
  52. the availability of Xrandr is queried during runtime.
  53. */
  54. #ifndef JUCE_USE_XRANDR
  55. #define JUCE_USE_XRANDR 1
  56. #endif
  57. /** JUCE_USE_XINERAMA: Enables Xinerama multi-monitor support (Linux only).
  58. Unless you specifically want to disable this, it's best to leave this option turned on.
  59. This will be used as a fallback if JUCE_USE_XRANDR not set or libxrandr cannot be found.
  60. Note that your users do not need to have Xinerama installed for your JUCE app to run, as
  61. the availability of Xinerama is queried during runtime.
  62. */
  63. #ifndef JUCE_USE_XINERAMA
  64. #define JUCE_USE_XINERAMA 1
  65. #endif
  66. /** Config: JUCE_USE_XSHM
  67. Enables X shared memory for faster rendering on Linux. This is best left turned on
  68. unless you have a good reason to disable it.
  69. */
  70. #ifndef JUCE_USE_XSHM
  71. #define JUCE_USE_XSHM 1
  72. #endif
  73. /** Config: JUCE_USE_XRENDER
  74. Enables XRender to allow semi-transparent windowing on Linux.
  75. */
  76. #ifndef JUCE_USE_XRENDER
  77. #define JUCE_USE_XRENDER 0
  78. #endif
  79. /** Config: JUCE_USE_XCURSOR
  80. Uses XCursor to allow ARGB cursor on Linux. This is best left turned on unless you have
  81. a good reason to disable it.
  82. */
  83. #ifndef JUCE_USE_XCURSOR
  84. #define JUCE_USE_XCURSOR 1
  85. #endif
  86. //==============================================================================
  87. namespace juce
  88. {
  89. class Component;
  90. class LookAndFeel;
  91. class MouseInputSource;
  92. class MouseInputSourceInternal;
  93. class ComponentPeer;
  94. class MarkerList;
  95. class RelativeRectangle;
  96. class MouseEvent;
  97. struct MouseWheelDetails;
  98. class ToggleButton;
  99. class TextButton;
  100. class AlertWindow;
  101. class TextLayout;
  102. class ScrollBar;
  103. class ComboBox;
  104. class Button;
  105. class FilenameComponent;
  106. class DocumentWindow;
  107. class ResizableWindow;
  108. class GroupComponent;
  109. class MenuBarComponent;
  110. class DropShadower;
  111. class GlyphArrangement;
  112. class PropertyComponent;
  113. class TableHeaderComponent;
  114. class Toolbar;
  115. class ToolbarItemComponent;
  116. class PopupMenu;
  117. class ProgressBar;
  118. class FileBrowserComponent;
  119. class DirectoryContentsDisplayComponent;
  120. class FilePreviewComponent;
  121. class ImageButton;
  122. class CallOutBox;
  123. class Drawable;
  124. class DrawablePath;
  125. class DrawableComposite;
  126. class CaretComponent;
  127. class BubbleComponent;
  128. class KeyPressMappingSet;
  129. class ApplicationCommandManagerListener;
  130. class DrawableButton;
  131. class FlexBox;
  132. #include "mouse/juce_MouseCursor.h"
  133. #include "mouse/juce_MouseListener.h"
  134. #include "keyboard/juce_ModifierKeys.h"
  135. #include "mouse/juce_MouseInputSource.h"
  136. #include "mouse/juce_MouseEvent.h"
  137. #include "keyboard/juce_KeyPress.h"
  138. #include "keyboard/juce_KeyListener.h"
  139. #include "keyboard/juce_KeyboardFocusTraverser.h"
  140. #include "components/juce_ModalComponentManager.h"
  141. #include "components/juce_ComponentListener.h"
  142. #include "components/juce_CachedComponentImage.h"
  143. #include "components/juce_Component.h"
  144. #include "layout/juce_ComponentAnimator.h"
  145. #include "components/juce_Desktop.h"
  146. #include "layout/juce_ComponentBoundsConstrainer.h"
  147. #include "mouse/juce_ComponentDragger.h"
  148. #include "mouse/juce_DragAndDropTarget.h"
  149. #include "mouse/juce_DragAndDropContainer.h"
  150. #include "mouse/juce_FileDragAndDropTarget.h"
  151. #include "mouse/juce_SelectedItemSet.h"
  152. #include "mouse/juce_LassoComponent.h"
  153. #include "mouse/juce_MouseInactivityDetector.h"
  154. #include "mouse/juce_TextDragAndDropTarget.h"
  155. #include "mouse/juce_TooltipClient.h"
  156. #include "keyboard/juce_CaretComponent.h"
  157. #include "keyboard/juce_SystemClipboard.h"
  158. #include "keyboard/juce_TextEditorKeyMapper.h"
  159. #include "keyboard/juce_TextInputTarget.h"
  160. #include "commands/juce_ApplicationCommandID.h"
  161. #include "commands/juce_ApplicationCommandInfo.h"
  162. #include "commands/juce_ApplicationCommandTarget.h"
  163. #include "commands/juce_ApplicationCommandManager.h"
  164. #include "commands/juce_KeyPressMappingSet.h"
  165. #include "buttons/juce_Button.h"
  166. #include "buttons/juce_ArrowButton.h"
  167. #include "buttons/juce_DrawableButton.h"
  168. #include "buttons/juce_HyperlinkButton.h"
  169. #include "buttons/juce_ImageButton.h"
  170. #include "buttons/juce_ShapeButton.h"
  171. #include "buttons/juce_TextButton.h"
  172. #include "buttons/juce_ToggleButton.h"
  173. #include "layout/juce_AnimatedPosition.h"
  174. #include "layout/juce_AnimatedPositionBehaviours.h"
  175. #include "layout/juce_ComponentBuilder.h"
  176. #include "layout/juce_ComponentMovementWatcher.h"
  177. #include "layout/juce_ConcertinaPanel.h"
  178. #include "layout/juce_GroupComponent.h"
  179. #include "layout/juce_ResizableBorderComponent.h"
  180. #include "layout/juce_ResizableCornerComponent.h"
  181. #include "layout/juce_ResizableEdgeComponent.h"
  182. #include "layout/juce_ScrollBar.h"
  183. #include "layout/juce_StretchableLayoutManager.h"
  184. #include "layout/juce_StretchableLayoutResizerBar.h"
  185. #include "layout/juce_StretchableObjectResizer.h"
  186. #include "layout/juce_TabbedButtonBar.h"
  187. #include "layout/juce_TabbedComponent.h"
  188. #include "layout/juce_Viewport.h"
  189. #include "menus/juce_PopupMenu.h"
  190. #include "menus/juce_MenuBarModel.h"
  191. #include "menus/juce_MenuBarComponent.h"
  192. #include "positioning/juce_RelativeCoordinate.h"
  193. #include "positioning/juce_MarkerList.h"
  194. #include "positioning/juce_RelativePoint.h"
  195. #include "positioning/juce_RelativeRectangle.h"
  196. #include "positioning/juce_RelativeCoordinatePositioner.h"
  197. #include "positioning/juce_RelativeParallelogram.h"
  198. #include "positioning/juce_RelativePointPath.h"
  199. #include "drawables/juce_Drawable.h"
  200. #include "drawables/juce_DrawableShape.h"
  201. #include "drawables/juce_DrawableComposite.h"
  202. #include "drawables/juce_DrawableImage.h"
  203. #include "drawables/juce_DrawablePath.h"
  204. #include "drawables/juce_DrawableRectangle.h"
  205. #include "drawables/juce_DrawableText.h"
  206. #include "widgets/juce_TextEditor.h"
  207. #include "widgets/juce_Label.h"
  208. #include "widgets/juce_ComboBox.h"
  209. #include "widgets/juce_ImageComponent.h"
  210. #include "widgets/juce_ListBox.h"
  211. #include "widgets/juce_ProgressBar.h"
  212. #include "widgets/juce_Slider.h"
  213. #include "widgets/juce_TableHeaderComponent.h"
  214. #include "widgets/juce_TableListBox.h"
  215. #include "widgets/juce_Toolbar.h"
  216. #include "widgets/juce_ToolbarItemComponent.h"
  217. #include "widgets/juce_ToolbarItemFactory.h"
  218. #include "widgets/juce_ToolbarItemPalette.h"
  219. #include "buttons/juce_ToolbarButton.h"
  220. #include "misc/juce_DropShadower.h"
  221. #include "widgets/juce_TreeView.h"
  222. #include "windows/juce_TopLevelWindow.h"
  223. #include "windows/juce_AlertWindow.h"
  224. #include "windows/juce_CallOutBox.h"
  225. #include "windows/juce_ComponentPeer.h"
  226. #include "windows/juce_ResizableWindow.h"
  227. #include "windows/juce_DocumentWindow.h"
  228. #include "windows/juce_DialogWindow.h"
  229. #include "windows/juce_NativeMessageBox.h"
  230. #include "windows/juce_ThreadWithProgressWindow.h"
  231. #include "windows/juce_TooltipWindow.h"
  232. #include "layout/juce_MultiDocumentPanel.h"
  233. #include "filebrowser/juce_FileBrowserListener.h"
  234. #include "filebrowser/juce_DirectoryContentsList.h"
  235. #include "filebrowser/juce_DirectoryContentsDisplayComponent.h"
  236. #include "filebrowser/juce_FileBrowserComponent.h"
  237. #include "filebrowser/juce_FileChooser.h"
  238. #include "filebrowser/juce_FileChooserDialogBox.h"
  239. #include "filebrowser/juce_FileListComponent.h"
  240. #include "filebrowser/juce_FilenameComponent.h"
  241. #include "filebrowser/juce_FilePreviewComponent.h"
  242. #include "filebrowser/juce_FileSearchPathListComponent.h"
  243. #include "filebrowser/juce_FileTreeComponent.h"
  244. #include "filebrowser/juce_ImagePreviewComponent.h"
  245. #include "properties/juce_PropertyComponent.h"
  246. #include "properties/juce_BooleanPropertyComponent.h"
  247. #include "properties/juce_ButtonPropertyComponent.h"
  248. #include "properties/juce_ChoicePropertyComponent.h"
  249. #include "properties/juce_PropertyPanel.h"
  250. #include "properties/juce_SliderPropertyComponent.h"
  251. #include "properties/juce_TextPropertyComponent.h"
  252. #include "application/juce_Application.h"
  253. #include "misc/juce_BubbleComponent.h"
  254. #include "lookandfeel/juce_LookAndFeel.h"
  255. #include "lookandfeel/juce_LookAndFeel_V2.h"
  256. #include "lookandfeel/juce_LookAndFeel_V1.h"
  257. #include "lookandfeel/juce_LookAndFeel_V3.h"
  258. // these classes are C++11-only
  259. #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS && JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
  260. #include "layout/juce_FlexItem.h"
  261. #include "layout/juce_FlexBox.h"
  262. #endif
  263. }
  264. #endif // JUCE_GUI_BASICS_H_INCLUDED