LMMS
Loading...
Searching...
No Matches
juce_DocumentWindow.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//==============================================================================
55{
56public:
57 //==============================================================================
71
72 //==============================================================================
94 Colour backgroundColour,
95 int requiredButtons,
96 bool addToDesktop = true);
97
101 ~DocumentWindow() override;
102
103 //==============================================================================
109 void setName (const String& newName) override;
110
117 void setIcon (const Image& imageToUse);
118
120 void setTitleBarHeight (int newHeight);
121
123 int getTitleBarHeight() const;
124
138 void setTitleBarButtonsRequired (int requiredButtons,
139 bool positionTitleBarButtonsOnLeft);
140
146 void setTitleBarTextCentred (bool textShouldBeCentred);
147
148 //==============================================================================
160 void setMenuBar (MenuBarModel* menuBarModel,
161 int menuBarHeight = 0);
162
167 Component* getMenuBarComponent() const noexcept;
168
172 void setMenuBarComponent (Component* newMenuBarComponent);
173
174 //==============================================================================
195 virtual void closeButtonPressed();
196
204 virtual void minimiseButtonPressed();
205
214 virtual void maximiseButtonPressed();
215
216 //==============================================================================
218 Button* getCloseButton() const noexcept;
219
221 Button* getMinimiseButton() const noexcept;
222
224 Button* getMaximiseButton() const noexcept;
225
226 //==============================================================================
235 {
236 textColourId = 0x1005701,
238 };
239
240 //==============================================================================
245 {
246 virtual ~LookAndFeelMethods() = default;
247
249 Graphics&, int w, int h,
250 int titleSpaceX, int titleSpaceW,
251 const Image* icon,
252 bool drawTitleTextOnLeft) = 0;
253
254 virtual Button* createDocumentWindowButton (int buttonType) = 0;
255
257 int titleBarX, int titleBarY, int titleBarW, int titleBarH,
262 };
263
264 //==============================================================================
265 #ifndef DOXYGEN
267 void paint (Graphics&) override;
269 void resized() override;
271 void lookAndFeelChanged() override;
277 void mouseDoubleClick (const MouseEvent&) override;
279 void userTriedToCloseWindow() override;
281 void activeWindowStatusChanged() override;
283 int getDesktopWindowStyleFlags() const override;
285 void parentHierarchyChanged() override;
288 #endif
289
290private:
291 //==============================================================================
294 std::unique_ptr<Button> titleBarButtons [3];
296 std::unique_ptr<Component> menuBar;
298
300 std::unique_ptr<ButtonListenerProxy> buttonListener;
301
302 void repaintTitleBar();
303
305};
306
307} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_BorderSize.h:42
Definition juce_Button.h:43
Definition juce_Colour.h:38
Definition juce_Component.h:36
Definition juce_DocumentWindow.cpp:30
Definition juce_DocumentWindow.h:55
int titleBarHeight
Definition juce_DocumentWindow.h:292
Rectangle< int > getTitleBarArea()
Definition juce_DocumentWindow.cpp:263
void parentHierarchyChanged() override
Definition juce_DocumentWindow.cpp:330
bool drawTitleTextCentred
Definition juce_DocumentWindow.h:293
int getDesktopWindowStyleFlags() const override
Definition juce_DocumentWindow.cpp:276
void activeWindowStatusChanged() override
Definition juce_DocumentWindow.cpp:335
void paint(Graphics &) override
Definition juce_DocumentWindow.cpp:187
Image titleBarIcon
Definition juce_DocumentWindow.h:295
MenuBarModel * menuBarModel
Definition juce_DocumentWindow.h:297
std::unique_ptr< ButtonListenerProxy > buttonListener
Definition juce_DocumentWindow.h:300
DocumentWindow(const String &name, Colour backgroundColour, int requiredButtons, bool addToDesktop=true)
Definition juce_DocumentWindow.cpp:48
ColourIds
Definition juce_DocumentWindow.h:235
@ textColourId
Definition juce_DocumentWindow.h:236
void repaintTitleBar()
Definition juce_DocumentWindow.cpp:82
BorderSize< int > getBorderThickness() override
Definition juce_DocumentWindow.cpp:241
TitleBarButtons
Definition juce_DocumentWindow.h:63
@ closeButton
Definition juce_DocumentWindow.h:66
@ allButtons
Definition juce_DocumentWindow.h:69
@ maximiseButton
Definition juce_DocumentWindow.h:65
@ minimiseButton
Definition juce_DocumentWindow.h:64
bool positionTitleBarButtonsOnLeft
Definition juce_DocumentWindow.h:293
std::unique_ptr< Button > titleBarButtons[3]
Definition juce_DocumentWindow.h:294
void lookAndFeelChanged() override
Definition juce_DocumentWindow.cpp:287
void userTriedToCloseWindow() override
Definition juce_DocumentWindow.cpp:355
int requiredButtons
Definition juce_DocumentWindow.h:292
std::unique_ptr< Component > menuBar
Definition juce_DocumentWindow.h:296
void mouseDoubleClick(const MouseEvent &) override
Definition juce_DocumentWindow.cpp:348
int menuBarHeight
Definition juce_DocumentWindow.h:292
BorderSize< int > getContentComponentBorder() override
Definition juce_DocumentWindow.cpp:246
void resized() override
Definition juce_DocumentWindow.cpp:218
Definition juce_GraphicsContext.h:45
Definition juce_Image.h:58
Definition juce_MenuBarModel.h:42
Definition juce_MouseEvent.h:39
Definition juce_Rectangle.h:67
ResizableWindow(const String &name, bool addToDesktop)
Definition juce_ResizableWindow.cpp:29
Definition juce_String.h:53
UINT_D64 w
Definition inflate.c:942
static const char * name
Definition pugl.h:1582
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
Definition juce_DocumentWindow.h:245
virtual Button * createDocumentWindowButton(int buttonType)=0
virtual void positionDocumentWindowButtons(DocumentWindow &, int titleBarX, int titleBarY, int titleBarW, int titleBarH, Button *minimiseButton, Button *maximiseButton, Button *closeButton, bool positionTitleBarButtonsOnLeft)=0
virtual void drawDocumentWindowTitleBar(DocumentWindow &, Graphics &, int w, int h, int titleSpaceX, int titleSpaceW, const Image *icon, bool drawTitleTextOnLeft)=0
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
#define const
Definition zconf.h:137