65 if (shouldAddToDesktop)
95 bool resizeToFitWhenContentChangesSize)
108 if (resizeToFitWhenContentChangesSize)
116 setContent (newContentComponent,
true, resizeToFitWhenContentChangesSize);
121 setContent (newContentComponent,
false, resizeToFitWhenContentChangesSize);
125 const bool deleteOldOne,
126 const bool resizeToFitWhenContentChangesSize)
141 setContent (newContentComponent,
true, resizeToFitWhenContentChangesSize);
194 const int resizerSize = 18;
197 resizerSize, resizerSize);
212 hasBeenResized =
true;
227 child->
getHeight() + borders.getTopAndBottom());
246 const bool useBottomRightCornerResizer)
248 if (shouldBeResizable)
250 if (useBottomRightCornerResizer)
292 int newMinimumHeight,
294 int newMaximumHeight)
noexcept
303 newMaximumWidth, newMaximumHeight);
320 bool shouldBeResizable = useBottomRightCornerResizer ||
resizableBorder !=
nullptr;
325 setResizable (shouldBeResizable, useBottomRightCornerResizer);
333 constrainer->setBoundsForComponent (
this, newBounds,
false,
false,
false,
false);
384 auto backgroundColour = newColour;
387 backgroundColour = newColour.
withAlpha (1.0f);
400 return peer !=
nullptr && peer->isFullScreen();
420 peer->setFullScreen (shouldBeFullScreen);
422 if ((! shouldBeFullScreen) && ! lastPos.isEmpty())
432 if (shouldBeFullScreen)
445 return peer->isMinimised();
457 peer->setMinimised (shouldMinimise);
470 return peer->isKioskMode();
512 if (
const auto optionalFrameSize = peer->getFrameSizeIfPresent())
514 const auto& frameSize = *optionalFrameSize;
515 stateString <<
" frame " << frameSize.getTop() <<
' ' << frameSize.getLeft()
516 <<
' ' << frameSize.getBottom() <<
' ' << frameSize.getRight();
531 const bool fs = tokens[0].startsWithIgnoreCase (
"fs");
532 const int firstCoord = fs ? 1 : 0;
534 if (tokens.
size() < firstCoord + 4)
538 tokens[firstCoord + 1].getIntValue(),
539 tokens[firstCoord + 2].getIntValue(),
540 tokens[firstCoord + 3].getIntValue());
549 if (
const auto frameSize = peer->getFrameSizeIfPresent())
550 frameSize->addTo (newPos);
554 if (peer ==
nullptr || ! peer->getFrameSizeIfPresent())
558 if (tokens[firstCoord + 4] ==
"frame" && tokens.
size() == firstCoord + 9)
561 tokens[firstCoord + 6].getIntValue(),
562 tokens[firstCoord + 7].getIntValue(),
563 tokens[firstCoord + 8].getIntValue() };
575 auto allMonitors = desktop.getDisplays().getRectangleList (
true);
576 allMonitors.clipTo (newPos);
577 auto onScreenArea = allMonitors.getBounds();
579 if (onScreenArea.getWidth() * onScreenArea.getHeight() < 32 * 32)
581 auto screen = desktop.getDisplays().getDisplayForRect (newPos)->userArea;
593 if (
const auto frameSize = peer->getFrameSizeIfPresent())
594 frameSize->subtractFrom (newPos);
596 peer->setNonFullScreenBounds (newPos);
618 dragger.startDraggingComponent (
this,
e);
652void ResizableWindow::addAndMakeVisible (Component*
const child,
int zOrder)
666 Component::addAndMakeVisible (child, zOrder);
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_BorderSize.h:42
ValueType getTop() const noexcept
Definition juce_BorderSize.h:66
ValueType getLeft() const noexcept
Definition juce_BorderSize.h:69
Definition juce_Colour.h:38
Colour withAlpha(uint8 newAlpha) const noexcept
Definition juce_Colour.cpp:317
Definition juce_ComponentBoundsConstrainer.h:44
Definition juce_Component.h:36
Component * getParentComponent() const noexcept
Definition juce_Component.h:804
int getNumChildComponents() const noexcept
Definition juce_Component.cpp:1643
int getIndexOfChildComponent(const Component *child) const noexcept
Definition juce_Component.cpp:1653
int getHeight() const noexcept
Definition juce_Component.h:274
bool isShowing() const
Definition juce_Component.cpp:634
void addAndMakeVisible(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1554
void setOpaque(bool shouldBeOpaque)
Definition juce_Component.cpp:829
Rectangle< int > getBounds() const noexcept
Definition juce_Component.h:304
void repaint()
Definition juce_Component.cpp:1917
bool isOnDesktop() const noexcept
Definition juce_Component.cpp:796
void removeChildComponent(Component *childToRemove)
Definition juce_Component.cpp:1569
virtual void addToDesktop(int windowStyleFlags, void *nativeWindowToAttachTo=nullptr)
Definition juce_Component.cpp:658
void setBounds(int x, int y, int width, int height)
Definition juce_Component.cpp:1147
void setSize(int newWidth, int newHeight)
Definition juce_Component.cpp:1262
void setColour(int colourID, Colour newColour)
Definition juce_Component.cpp:2242
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
int getWidth() const noexcept
Definition juce_Component.h:271
ComponentPeer * getPeer() const
Definition juce_Component.cpp:801
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
Rectangle< int > getLocalBounds() const noexcept
Definition juce_Component.cpp:2283
int getParentWidth() const noexcept
Definition juce_Component.cpp:1114
void addChildComponent(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1548
int getParentHeight() const noexcept
Definition juce_Component.cpp:1120
@ windowIsResizable
Definition juce_ComponentPeer.h:59
@ windowHasTitleBar
Definition juce_ComponentPeer.h:56
static Desktop &JUCE_CALLTYPE getInstance()
Definition juce_Desktop.cpp:50
static bool canUseSemiTransparentWindows() noexcept
Definition juce_linux_Windowing.cpp:603
Definition juce_GraphicsContext.h:45
Definition juce_MouseEvent.h:39
Definition juce_Rectangle.h:67
ValueType getHeight() const noexcept
Definition juce_Rectangle.h:136
ValueType getX() const noexcept
Definition juce_Rectangle.h:127
ValueType getWidth() const noexcept
Definition juce_Rectangle.h:133
void setX(ValueType newX) noexcept
Definition juce_Rectangle.h:195
void setPosition(Point< ValueType > newPos) noexcept
Definition juce_Rectangle.h:164
void setY(ValueType newY) noexcept
Definition juce_Rectangle.h:198
void setSize(ValueType newWidth, ValueType newHeight) noexcept
Definition juce_Rectangle.h:188
bool isEmpty() const noexcept
Definition juce_Rectangle.h:121
ValueType getY() const noexcept
Definition juce_Rectangle.h:130
Definition juce_ResizableBorderComponent.h:48
Definition juce_ResizableCornerComponent.h:42
void setResizable(bool shouldBeResizable, bool useBottomRightCornerResizer)
Definition juce_ResizableWindow.cpp:245
void setBoundsConstrained(const Rectangle< int > &newBounds)
Definition juce_ResizableWindow.cpp:330
ComponentBoundsConstrainer defaultConstrainer
Definition juce_ResizableWindow.h:398
void setFullScreen(bool shouldBeFullScreen)
Definition juce_ResizableWindow.cpp:406
Rectangle< int > lastNonFullScreenPos
Definition juce_ResizableWindow.h:397
bool resizeToFitContent
Definition juce_ResizableWindow.h:395
bool ownsContentComponent
Definition juce_ResizableWindow.h:395
bool canDrag
Definition juce_ResizableWindow.h:395
void updateLastPosIfNotFullScreen()
Definition juce_ResizableWindow.cpp:484
void setContent(Component *, bool takeOwnership, bool resizeToFit)
Definition juce_ResizableWindow.cpp:93
void mouseDown(const MouseEvent &) override
Definition juce_ResizableWindow.cpp:613
String getWindowStateAsString()
Definition juce_ResizableWindow.cpp:504
void setDraggable(bool shouldBeDraggable) noexcept
Definition juce_ResizableWindow.cpp:308
std::unique_ptr< ResizableCornerComponent > resizableCorner
Definition juce_ResizableWindow.h:384
std::unique_ptr< ResizableBorderComponent > resizableBorder
Definition juce_ResizableWindow.h:385
void resized() override
Definition juce_ResizableWindow.cpp:178
int getDesktopWindowStyleFlags() const override
Definition juce_ResizableWindow.cpp:69
bool fullscreen
Definition juce_ResizableWindow.h:395
bool isResizable() const noexcept
Definition juce_ResizableWindow.cpp:285
void mouseUp(const MouseEvent &) override
Definition juce_ResizableWindow.cpp:628
void setResizeLimits(int newMinimumWidth, int newMinimumHeight, int newMaximumWidth, int newMaximumHeight) noexcept
Definition juce_ResizableWindow.cpp:291
bool isMinimised() const
Definition juce_ResizableWindow.cpp:442
bool isKioskMode() const
Definition juce_ResizableWindow.cpp:466
void setContentOwned(Component *newContentComponent, bool resizeToFitWhenContentChangesSize)
Definition juce_ResizableWindow.cpp:114
void mouseDrag(const MouseEvent &) override
Definition juce_ResizableWindow.cpp:622
void clearContentComponent()
Definition juce_ResizableWindow.cpp:80
ComponentDragger dragger
Definition juce_ResizableWindow.h:396
void lookAndFeelChanged() override
Definition juce_ResizableWindow.cpp:366
@ backgroundColourId
Definition juce_ResizableWindow.h:312
void setBackgroundColour(Colour newColour)
Definition juce_ResizableWindow.cpp:382
void updateLastPosIfShowing()
Definition juce_ResizableWindow.cpp:475
void visibilityChanged() override
Definition juce_ResizableWindow.cpp:172
virtual BorderSize< int > getContentComponentBorder()
Definition juce_ResizableWindow.cpp:162
void paint(Graphics &) override
Definition juce_ResizableWindow.cpp:339
virtual BorderSize< int > getBorderThickness()
Definition juce_ResizableWindow.cpp:154
bool isFullScreen() const
Definition juce_ResizableWindow.cpp:395
void activeWindowStatusChanged() override
Definition juce_ResizableWindow.cpp:233
void parentSizeChanged() override
Definition juce_ResizableWindow.cpp:497
Colour getBackgroundColour() const noexcept
Definition juce_ResizableWindow.cpp:377
void setConstrainer(ComponentBoundsConstrainer *newConstrainer)
Definition juce_ResizableWindow.cpp:313
ComponentBoundsConstrainer * constrainer
Definition juce_ResizableWindow.h:399
void moved() override
Definition juce_ResizableWindow.cpp:167
Component::SafePointer< Component > contentComponent
Definition juce_ResizableWindow.h:394
bool restoreWindowStateFromString(const String &previousState)
Definition juce_ResizableWindow.cpp:524
bool dragStarted
Definition juce_ResizableWindow.h:395
void setContentNonOwned(Component *newContentComponent, bool resizeToFitWhenContentChangesSize)
Definition juce_ResizableWindow.cpp:119
~ResizableWindow() override
Definition juce_ResizableWindow.cpp:42
ResizableWindow(const String &name, bool addToDesktop)
Definition juce_ResizableWindow.cpp:29
void setContentComponent(Component *newContentComponent, bool deleteOldOne=true, bool resizeToFit=false)
Definition juce_ResizableWindow.cpp:124
void setContentComponentSize(int width, int height)
Definition juce_ResizableWindow.cpp:144
void childBoundsChanged(Component *) override
Definition juce_ResizableWindow.cpp:216
void updatePeerConstrainer()
Definition juce_ResizableWindow.cpp:490
void initialise(bool addToDesktop)
Definition juce_ResizableWindow.cpp:59
void setMinimised(bool shouldMinimise)
Definition juce_ResizableWindow.cpp:450
void addToDesktop()
Definition juce_TopLevelWindow.cpp:258
Definition juce_StringArray.h:35
void removeEmptyStrings(bool removeWhitespaceStrings=true)
Definition juce_StringArray.cpp:250
int size() const noexcept
Definition juce_StringArray.h:136
void trim()
Definition juce_StringArray.cpp:266
int addTokens(StringRef stringToTokenise, bool preserveQuotedStrings)
Definition juce_StringArray.cpp:329
Definition juce_String.h:53
void recreateDesktopWindow()
Definition juce_TopLevelWindow.cpp:249
void visibilityChanged() override
Definition juce_TopLevelWindow.cpp:186
virtual int getDesktopWindowStyleFlags() const
Definition juce_TopLevelWindow.cpp:200
bool isUsingNativeTitleBar() const noexcept
Definition juce_TopLevelWindow.cpp:181
TopLevelWindow(const String &name, bool addToDesktop)
Definition juce_TopLevelWindow.cpp:134
* e
Definition inflate.c:1404
int g
Definition inflate.c:1573
static ZCONST unsigned border[]
Definition inflate.c:749
unsigned s
Definition inflate.c:1555
static const char * name
Definition pugl.h:1582
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
Definition carla_juce.cpp:31
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
#define const
Definition zconf.h:137