JUCE-7.0.12-0-g4f43011b96
JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins
« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_gui_basics
juce_gui_basics.h
Go to the documentation of this file.
1
/*
2
==============================================================================
3
4
This file is part of the JUCE library.
5
Copyright (c) 2022 - Raw Material Software Limited
6
7
JUCE is an open source library subject to commercial or open-source
8
licensing.
9
10
By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11
Agreement and JUCE Privacy Policy.
12
13
End User License Agreement: www.juce.com/juce-7-licence
14
Privacy Policy: www.juce.com/juce-privacy-policy
15
16
Or: You may also use this code under the terms of the GPL v3 (see
17
www.gnu.org/licenses).
18
19
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21
DISCLAIMED.
22
23
==============================================================================
24
*/
25
26
27
/*******************************************************************************
28
The block below describes the properties of this module, and is read by
29
the Projucer to automatically generate project code that uses it.
30
For details about the syntax and how to create or use a module, see the
31
JUCE Module Format.md file.
32
33
34
BEGIN_JUCE_MODULE_DECLARATION
35
36
ID: juce_gui_basics
37
vendor: juce
38
version: 7.0.12
39
name: JUCE GUI core classes
40
description: Basic user-interface components and related classes.
41
website: http://www.juce.com/juce
42
license: GPL/Commercial
43
minimumCppStandard: 17
44
45
dependencies: juce_graphics juce_data_structures
46
OSXFrameworks: Cocoa QuartzCore
47
WeakOSXFrameworks: Metal MetalKit
48
iOSFrameworks: CoreServices UIKit
49
WeakiOSFrameworks: Metal MetalKit
50
mingwLibs: dxgi
51
52
END_JUCE_MODULE_DECLARATION
53
54
*******************************************************************************/
55
56
57
#pragma once
58
#define JUCE_GUI_BASICS_H_INCLUDED
59
60
#include <
juce_graphics/juce_graphics.h
>
61
#include <
juce_data_structures/juce_data_structures.h
>
62
63
//==============================================================================
69
#ifndef JUCE_ENABLE_REPAINT_DEBUGGING
70
#define JUCE_ENABLE_REPAINT_DEBUGGING 0
71
#endif
72
79
#ifndef JUCE_USE_XRANDR
80
#define JUCE_USE_XRANDR 1
81
#endif
82
90
#ifndef JUCE_USE_XINERAMA
91
#define JUCE_USE_XINERAMA 1
92
#endif
93
98
#ifndef JUCE_USE_XSHM
99
#define JUCE_USE_XSHM 1
100
#endif
101
105
#ifndef JUCE_USE_XRENDER
106
#define JUCE_USE_XRENDER 0
107
#endif
108
113
#ifndef JUCE_USE_XCURSOR
114
#define JUCE_USE_XCURSOR 1
115
#endif
116
120
#ifndef JUCE_WIN_PER_MONITOR_DPI_AWARE
121
#define JUCE_WIN_PER_MONITOR_DPI_AWARE 1
122
#endif
123
124
//==============================================================================
125
namespace
juce
126
{
127
class
Component;
128
class
LookAndFeel;
129
class
MouseInputSource;
130
class
ComponentPeer;
131
class
MouseEvent;
132
struct
MouseWheelDetails;
133
struct
PenDetails;
134
class
ToggleButton;
135
class
TextButton;
136
class
AlertWindow;
137
class
TextLayout;
138
class
ScrollBar;
139
class
ComboBox;
140
class
Button;
141
class
FilenameComponent;
142
class
ResizableWindow;
143
class
MenuBarComponent;
144
class
GlyphArrangement;
145
class
TableHeaderComponent;
146
class
Toolbar;
147
class
PopupMenu;
148
class
ProgressBar;
149
class
FileBrowserComponent;
150
class
DirectoryContentsDisplayComponent;
151
class
FilePreviewComponent;
152
class
CallOutBox;
153
class
Drawable;
154
class
DrawablePath;
155
class
DrawableComposite;
156
class
CaretComponent;
157
class
KeyPressMappingSet;
158
class
ApplicationCommandManagerListener;
159
class
DrawableButton;
160
class
Displays;
161
class
AccessibilityHandler;
162
class
KeyboardFocusTraverser;
163
164
class
FlexBox;
165
class
Grid;
166
class
FocusOutline;
167
168
#if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD
169
Image createSnapshotOfNativeWindow (
void
*
nativeWindowHandle
);
170
#endif
171
172
namespace
detail
173
{
174
struct
ComponentHelpers;
175
class
MouseInputSourceImpl;
176
class
MouseInputSourceList;
177
class
PointerState;
178
class
ScopedMessageBoxImpl;
179
class
ToolbarItemDragAndDropOverlayComponent;
180
class
TopLevelWindowManager;
181
}
// namespace detail
182
183
}
// namespace juce
184
185
#include "
mouse/juce_MouseCursor.h
"
186
#include "
mouse/juce_MouseListener.h
"
187
#include "
keyboard/juce_ModifierKeys.h
"
188
#include "
mouse/juce_MouseInputSource.h
"
189
#include "
mouse/juce_MouseEvent.h
"
190
#include "
keyboard/juce_KeyPress.h
"
191
#include "
keyboard/juce_KeyListener.h
"
192
#include "
components/juce_ComponentTraverser.h
"
193
#include "
components/juce_FocusTraverser.h
"
194
#include "
components/juce_ModalComponentManager.h
"
195
#include "
components/juce_ComponentListener.h
"
196
#include "
components/juce_CachedComponentImage.h
"
197
#include "
components/juce_Component.h
"
198
#include "
layout/juce_ComponentAnimator.h
"
199
#include "
desktop/juce_Desktop.h
"
200
#include "
desktop/juce_Displays.h
"
201
#include "
layout/juce_ComponentBoundsConstrainer.h
"
202
#include "
layout/juce_BorderedComponentBoundsConstrainer.h
"
203
#include "
mouse/juce_ComponentDragger.h
"
204
#include "
mouse/juce_DragAndDropTarget.h
"
205
#include "
mouse/juce_DragAndDropContainer.h
"
206
#include "
mouse/juce_FileDragAndDropTarget.h
"
207
#include "
mouse/juce_SelectedItemSet.h
"
208
#include "
mouse/juce_MouseInactivityDetector.h
"
209
#include "
mouse/juce_TextDragAndDropTarget.h
"
210
#include "
mouse/juce_TooltipClient.h
"
211
#include "
keyboard/juce_CaretComponent.h
"
212
#include "
keyboard/juce_KeyboardFocusTraverser.h
"
213
#include "
keyboard/juce_SystemClipboard.h
"
214
#include "
keyboard/juce_TextEditorKeyMapper.h
"
215
#include "
keyboard/juce_TextInputTarget.h
"
216
#include "
commands/juce_ApplicationCommandID.h
"
217
#include "
commands/juce_ApplicationCommandInfo.h
"
218
#include "
commands/juce_ApplicationCommandTarget.h
"
219
#include "
commands/juce_ApplicationCommandManager.h
"
220
#include "
commands/juce_KeyPressMappingSet.h
"
221
#include "
buttons/juce_Button.h
"
222
#include "
buttons/juce_ArrowButton.h
"
223
#include "
buttons/juce_DrawableButton.h
"
224
#include "
buttons/juce_HyperlinkButton.h
"
225
#include "
buttons/juce_ImageButton.h
"
226
#include "
buttons/juce_ShapeButton.h
"
227
#include "
buttons/juce_TextButton.h
"
228
#include "
buttons/juce_ToggleButton.h
"
229
#include "
layout/juce_AnimatedPosition.h
"
230
#include "
layout/juce_AnimatedPositionBehaviours.h
"
231
#include "
layout/juce_ComponentBuilder.h
"
232
#include "
layout/juce_ComponentMovementWatcher.h
"
233
#include "
layout/juce_ConcertinaPanel.h
"
234
#include "
layout/juce_GroupComponent.h
"
235
#include "
layout/juce_ResizableBorderComponent.h
"
236
#include "
layout/juce_ResizableCornerComponent.h
"
237
#include "
layout/juce_ResizableEdgeComponent.h
"
238
#include "
layout/juce_ScrollBar.h
"
239
#include "
layout/juce_StretchableLayoutManager.h
"
240
#include "
layout/juce_StretchableLayoutResizerBar.h
"
241
#include "
layout/juce_StretchableObjectResizer.h
"
242
#include "
layout/juce_TabbedButtonBar.h
"
243
#include "
layout/juce_TabbedComponent.h
"
244
#include "
layout/juce_Viewport.h
"
245
#include "
menus/juce_PopupMenu.h
"
246
#include "
menus/juce_MenuBarModel.h
"
247
#include "
menus/juce_MenuBarComponent.h
"
248
#include "
positioning/juce_RelativeCoordinate.h
"
249
#include "
positioning/juce_MarkerList.h
"
250
#include "
positioning/juce_RelativePoint.h
"
251
#include "
positioning/juce_RelativeRectangle.h
"
252
#include "
positioning/juce_RelativeCoordinatePositioner.h
"
253
#include "
positioning/juce_RelativeParallelogram.h
"
254
#include "
positioning/juce_RelativePointPath.h
"
255
#include "
drawables/juce_Drawable.h
"
256
#include "
drawables/juce_DrawableShape.h
"
257
#include "
drawables/juce_DrawableComposite.h
"
258
#include "
drawables/juce_DrawableImage.h
"
259
#include "
drawables/juce_DrawablePath.h
"
260
#include "
drawables/juce_DrawableRectangle.h
"
261
#include "
drawables/juce_DrawableText.h
"
262
#include "
widgets/juce_TextEditor.h
"
263
#include "
widgets/juce_Label.h
"
264
#include "
widgets/juce_ComboBox.h
"
265
#include "
widgets/juce_ImageComponent.h
"
266
#include "
widgets/juce_ListBox.h
"
267
#include "
widgets/juce_ProgressBar.h
"
268
#include "
widgets/juce_Slider.h
"
269
#include "
widgets/juce_TableHeaderComponent.h
"
270
#include "
widgets/juce_TableListBox.h
"
271
#include "
widgets/juce_Toolbar.h
"
272
#include "
widgets/juce_ToolbarItemComponent.h
"
273
#include "
widgets/juce_ToolbarItemFactory.h
"
274
#include "
widgets/juce_ToolbarItemPalette.h
"
275
#include "
menus/juce_BurgerMenuComponent.h
"
276
#include "
buttons/juce_ToolbarButton.h
"
277
#include "
misc/juce_DropShadower.h
"
278
#include "
misc/juce_FocusOutline.h
"
279
#include "
misc/juce_JUCESplashScreen.h
"
280
#include "
widgets/juce_TreeView.h
"
281
#include "
windows/juce_TopLevelWindow.h
"
282
#include "
windows/juce_MessageBoxOptions.h
"
283
#include "
windows/juce_ScopedMessageBox.h
"
284
#include "
windows/juce_AlertWindow.h
"
285
#include "
windows/juce_CallOutBox.h
"
286
#include "
windows/juce_ComponentPeer.h
"
287
#include "
windows/juce_ResizableWindow.h
"
288
#include "
windows/juce_DocumentWindow.h
"
289
#include "
windows/juce_DialogWindow.h
"
290
#include "
windows/juce_NativeMessageBox.h
"
291
#include "
windows/juce_ThreadWithProgressWindow.h
"
292
#include "
windows/juce_TooltipWindow.h
"
293
#include "
windows/juce_VBlankAttachment.h
"
294
#include "
windows/juce_WindowUtils.h
"
295
#include "
windows/juce_NativeScaleFactorNotifier.h
"
296
#include "
layout/juce_MultiDocumentPanel.h
"
297
#include "
layout/juce_SidePanel.h
"
298
#include "
filebrowser/juce_FileBrowserListener.h
"
299
#include "
filebrowser/juce_DirectoryContentsList.h
"
300
#include "
filebrowser/juce_DirectoryContentsDisplayComponent.h
"
301
#include "
filebrowser/juce_FileBrowserComponent.h
"
302
#include "
filebrowser/juce_FileChooser.h
"
303
#include "
filebrowser/juce_FileChooserDialogBox.h
"
304
#include "
filebrowser/juce_FileListComponent.h
"
305
#include "
filebrowser/juce_FilenameComponent.h
"
306
#include "
filebrowser/juce_FilePreviewComponent.h
"
307
#include "
filebrowser/juce_FileSearchPathListComponent.h
"
308
#include "
filebrowser/juce_FileTreeComponent.h
"
309
#include "
filebrowser/juce_ImagePreviewComponent.h
"
310
#include "
filebrowser/juce_ContentSharer.h
"
311
#include "
properties/juce_PropertyComponent.h
"
312
#include "
properties/juce_BooleanPropertyComponent.h
"
313
#include "
properties/juce_ButtonPropertyComponent.h
"
314
#include "
properties/juce_ChoicePropertyComponent.h
"
315
#include "
properties/juce_PropertyPanel.h
"
316
#include "
properties/juce_SliderPropertyComponent.h
"
317
#include "
properties/juce_TextPropertyComponent.h
"
318
#include "
properties/juce_MultiChoicePropertyComponent.h
"
319
#include "
application/juce_Application.h
"
320
#include "
misc/juce_BubbleComponent.h
"
321
#include "
lookandfeel/juce_LookAndFeel.h
"
322
#include "
lookandfeel/juce_LookAndFeel_V2.h
"
323
#include "
lookandfeel/juce_LookAndFeel_V1.h
"
324
#include "
lookandfeel/juce_LookAndFeel_V3.h
"
325
#include "
lookandfeel/juce_LookAndFeel_V4.h
"
326
#include "
mouse/juce_LassoComponent.h
"
327
#include "
accessibility/interfaces/juce_AccessibilityCellInterface.h
"
328
#include "
accessibility/interfaces/juce_AccessibilityTableInterface.h
"
329
#include "
accessibility/interfaces/juce_AccessibilityTextInterface.h
"
330
#include "
accessibility/interfaces/juce_AccessibilityValueInterface.h
"
331
#include "
accessibility/enums/juce_AccessibilityActions.h
"
332
#include "
accessibility/enums/juce_AccessibilityEvent.h
"
333
#include "
accessibility/enums/juce_AccessibilityRole.h
"
334
#include "
accessibility/juce_AccessibilityState.h
"
335
#include "
accessibility/juce_AccessibilityHandler.h
"
336
337
#if JUCE_LINUX || JUCE_BSD
338
#if JUCE_GUI_BASICS_INCLUDE_XHEADERS
339
// If you're missing these headers, you need to install the libx11-dev package
340
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE (
"-Wvariadic-macros"
)
341
#include <X11/Xlib.h>
342
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
343
#include <X11/Xatom.h>
344
#include <X11/Xresource.h>
345
#include <X11/Xutil.h>
346
#include <X11/Xmd.h>
347
#include <X11/keysym.h>
348
#include <X11/XKBlib.h>
349
#include <X11/cursorfont.h>
350
#include <unistd.h>
351
352
#if JUCE_USE_XRANDR
353
// If you're missing this header, you need to install the libxrandr-dev package
354
#include <X11/extensions/Xrandr.h>
355
#endif
356
357
#if JUCE_USE_XINERAMA
358
// If you're missing this header, you need to install the libxinerama-dev package
359
#include <X11/extensions/Xinerama.h>
360
#endif
361
362
#if JUCE_USE_XSHM
363
#include <X11/extensions/XShm.h>
364
#include <sys/shm.h>
365
#include <sys/ipc.h>
366
#endif
367
368
#if JUCE_USE_XRENDER
369
// If you're missing these headers, you need to install the libxrender-dev and libxcomposite-dev packages
370
#include <X11/extensions/Xrender.h>
371
#include <X11/extensions/Xcomposite.h>
372
#endif
373
374
#if JUCE_USE_XCURSOR
375
// If you're missing this header, you need to install the libxcursor-dev package
376
#include <X11/Xcursor/Xcursor.h>
377
#endif
378
379
#undef SIZEOF
380
#undef KeyPress
381
382
#include "
native/juce_XWindowSystem_linux.h
"
383
#include "
native/juce_XSymbols_linux.h
"
384
#endif
385
#endif
386
387
#if JUCE_GUI_BASICS_INCLUDE_SCOPED_THREAD_DPI_AWARENESS_SETTER && JUCE_WINDOWS
388
#include "native/juce_ScopedThreadDPIAwarenessSetter_windows.h"
389
#endif
390
391
#include "
layout/juce_FlexItem.h
"
392
#include "
layout/juce_FlexBox.h
"
393
394
#include "
layout/juce_GridItem.h
"
395
#include "
layout/juce_Grid.h
"
396
#include "
native/juce_ScopedDPIAwarenessDisabler.h
"
juce_AccessibilityActions.h
juce_AccessibilityCellInterface.h
juce_AccessibilityEvent.h
juce_AccessibilityHandler.h
juce_AccessibilityRole.h
juce_AccessibilityState.h
juce_AccessibilityTableInterface.h
juce_AccessibilityTextInterface.h
juce_AccessibilityValueInterface.h
juce_AlertWindow.h
juce_AnimatedPositionBehaviours.h
juce_AnimatedPosition.h
juce_ApplicationCommandID.h
juce_ApplicationCommandInfo.h
juce_ApplicationCommandManager.h
juce_ApplicationCommandTarget.h
juce_Application.h
juce_ArrowButton.h
juce_BooleanPropertyComponent.h
juce_BorderedComponentBoundsConstrainer.h
juce_BubbleComponent.h
juce_BurgerMenuComponent.h
juce_ButtonPropertyComponent.h
juce_Button.h
juce_CachedComponentImage.h
juce_CallOutBox.h
juce_CaretComponent.h
juce_ChoicePropertyComponent.h
juce_ComboBox.h
juce_ComponentAnimator.h
juce_ComponentBoundsConstrainer.h
juce_ComponentBuilder.h
juce_ComponentDragger.h
juce_ComponentListener.h
juce_ComponentMovementWatcher.h
juce_ComponentPeer.h
juce_ComponentTraverser.h
juce_Component.h
juce_ConcertinaPanel.h
juce_ContentSharer.h
juce_Desktop.h
juce_DialogWindow.h
juce_DirectoryContentsDisplayComponent.h
juce_DirectoryContentsList.h
juce_Displays.h
juce_DocumentWindow.h
juce_DragAndDropContainer.h
juce_DragAndDropTarget.h
juce_DrawableButton.h
juce_DrawableComposite.h
juce_DrawableImage.h
juce_DrawablePath.h
juce_DrawableRectangle.h
juce_DrawableShape.h
juce_DrawableText.h
juce_Drawable.h
juce_DropShadower.h
juce_FileBrowserComponent.h
juce_FileBrowserListener.h
juce_FileChooserDialogBox.h
juce_FileChooser.h
juce_FileDragAndDropTarget.h
juce_FileListComponent.h
juce_FilePreviewComponent.h
juce_FileSearchPathListComponent.h
juce_FileTreeComponent.h
juce_FilenameComponent.h
juce_FlexBox.h
juce_FlexItem.h
juce_FocusOutline.h
juce_FocusTraverser.h
juce_GridItem.h
juce_Grid.h
juce_GroupComponent.h
juce_HyperlinkButton.h
juce_ImageButton.h
juce_ImageComponent.h
juce_ImagePreviewComponent.h
juce_JUCESplashScreen.h
juce_KeyListener.h
juce_KeyPressMappingSet.h
juce_KeyPress.h
juce_KeyboardFocusTraverser.h
juce_Label.h
juce_LassoComponent.h
juce_ListBox.h
juce_LookAndFeel.h
juce_LookAndFeel_V1.h
juce_LookAndFeel_V2.h
juce_LookAndFeel_V3.h
juce_LookAndFeel_V4.h
juce_MarkerList.h
juce_MenuBarComponent.h
juce_MenuBarModel.h
juce_MessageBoxOptions.h
juce_ModalComponentManager.h
juce_ModifierKeys.h
juce_MouseCursor.h
juce_MouseEvent.h
juce_MouseInactivityDetector.h
juce_MouseInputSource.h
juce_MouseListener.h
juce_MultiChoicePropertyComponent.h
juce_MultiDocumentPanel.h
juce_NativeMessageBox.h
juce_NativeScaleFactorNotifier.h
juce_PopupMenu.h
juce_ProgressBar.h
juce_PropertyComponent.h
juce_PropertyPanel.h
juce_RelativeCoordinatePositioner.h
juce_RelativeCoordinate.h
juce_RelativeParallelogram.h
juce_RelativePointPath.h
juce_RelativePoint.h
juce_RelativeRectangle.h
juce_ResizableBorderComponent.h
juce_ResizableCornerComponent.h
juce_ResizableEdgeComponent.h
juce_ResizableWindow.h
juce_ScopedDPIAwarenessDisabler.h
juce_ScopedMessageBox.h
juce_ScrollBar.h
juce_SelectedItemSet.h
juce_ShapeButton.h
juce_SidePanel.h
juce_SliderPropertyComponent.h
juce_Slider.h
juce_StretchableLayoutManager.h
juce_StretchableLayoutResizerBar.h
juce_StretchableObjectResizer.h
juce_SystemClipboard.h
juce_TabbedButtonBar.h
juce_TabbedComponent.h
juce_TableHeaderComponent.h
juce_TableListBox.h
juce_TextButton.h
juce_TextDragAndDropTarget.h
juce_TextEditorKeyMapper.h
juce_TextEditor.h
juce_TextInputTarget.h
juce_TextPropertyComponent.h
juce_ThreadWithProgressWindow.h
juce_ToggleButton.h
juce_ToolbarButton.h
juce_ToolbarItemComponent.h
juce_ToolbarItemFactory.h
juce_ToolbarItemPalette.h
juce_Toolbar.h
juce_TooltipClient.h
juce_TooltipWindow.h
juce_TopLevelWindow.h
juce_TreeView.h
juce_VBlankAttachment.h
juce_Viewport.h
juce_WindowUtils.h
juce_XSymbols_linux.h
juce_XWindowSystem_linux.h
juce_data_structures.h
juce_graphics.h
juce
JUCE Namespace.
Definition
juce_AudioPlayHead.cpp:24
juce::unalignedPointerCast
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
Definition
juce_Memory.h:88
« « « Anklang Documentation