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_TopLevelWindow.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
26namespace juce
27{
28
29//==============================================================================
53class JUCE_API TopLevelWindow : public Component
54{
55public:
56 //==============================================================================
63 TopLevelWindow (const String& name, bool addToDesktop);
64
66 ~TopLevelWindow() override;
67
68 //==============================================================================
77 bool isActiveWindow() const noexcept { return isCurrentlyActive; }
78
79 //==============================================================================
91 void centreAroundComponent (Component* componentToCentreAround,
92 int width, int height);
93
94 //==============================================================================
96 void setDropShadowEnabled (bool useShadow);
97
99 bool isDropShadowEnabled() const noexcept { return useDropShadow; }
100
104 void setUsingNativeTitleBar (bool useNativeTitleBar);
105
109 bool isUsingNativeTitleBar() const noexcept;
110
111 //==============================================================================
115 static int getNumTopLevelWindows() noexcept;
116
120 static TopLevelWindow* getTopLevelWindow (int index) noexcept;
121
125 static TopLevelWindow* getActiveTopLevelWindow() noexcept;
126
128 void addToDesktop();
129
130 //==============================================================================
132 void addToDesktop (int windowStyleFlags, void* nativeWindowToAttachTo = nullptr) override;
134 std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
135
136protected:
137 //==============================================================================
141 virtual void activeWindowStatusChanged();
142
143
144 //==============================================================================
146 void focusOfChildComponentChanged (FocusChangeType) override;
148 void parentHierarchyChanged() override;
150 virtual int getDesktopWindowStyleFlags() const;
152 void recreateDesktopWindow();
154 void visibilityChanged() override;
155
156private:
157 friend class detail::TopLevelWindowManager;
158 friend class ResizableWindow;
159 bool useDropShadow = true, useNativeTitleBar = false, isCurrentlyActive = false;
160 std::unique_ptr<DropShadower> shadower;
161
162 void setWindowActive (bool);
163
165};
166
167} // namespace juce
Base class for accessible Components.
The base class for all JUCE user-interface objects.
Adds a drop-shadow to a component.
A base class for top-level windows that can be dragged around and resized.
The JUCE String class!
Definition juce_String.h:53
A base class for top-level windows.
bool isDropShadowEnabled() const noexcept
True if drop-shadowing is enabled.
bool isActiveWindow() const noexcept
True if this is currently the TopLevelWindow that is actively being used.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.