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.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
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//==============================================================================
125namespace 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
199#include "desktop/juce_Desktop.h"
221#include "buttons/juce_Button.h"
244#include "layout/juce_Viewport.h"
245#include "menus/juce_PopupMenu.h"
263#include "widgets/juce_Label.h"
266#include "widgets/juce_ListBox.h"
268#include "widgets/juce_Slider.h"
271#include "widgets/juce_Toolbar.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
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"
JUCE Namespace.
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