26 #ifndef TGUI_CHILD_WINDOW_HPP 27 #define TGUI_CHILD_WINDOW_HPP 30 #include <TGUI/Container.hpp> 31 #include <TGUI/Widgets/Button.hpp> 32 #include <TGUI/Widgets/Label.hpp> 38 class ChildWindowRenderer;
64 typedef std::shared_ptr<ChildWindow>
Ptr;
65 typedef std::shared_ptr<const ChildWindow>
ConstPtr;
136 void setPosition(
const Layout2d& position)
override;
148 void setSize(
const Layout2d& size)
override;
160 virtual sf::Vector2f getFullSize()
const override;
172 void setMaximumSize(sf::Vector2f size);
183 sf::Vector2f getMaximumSize()
const;
195 void setMinimumSize(sf::Vector2f size);
206 sf::Vector2f getMinimumSize()
const;
217 virtual void setFont(
const Font& font)
override;
226 virtual void setOpacity(
float opacity)
override;
235 void setTitle(
const sf::String& title);
246 return m_titleText.getText();
256 void setTitleAlignment(TitleAlignment alignment);
267 return m_titleAlignment;
282 void setTitleButtons(
unsigned int buttons);
293 return m_titleButtons;
305 void setTitleButtonsText(
const sf::String& closeText =
"x",
const sf::String& minimizeText =
"-",
const sf::String& maximizeText =
"+");
317 void setIcon(
const Texture& icon);
347 void setResizable(
bool resizable =
true);
356 bool isResizable()
const;
368 void keepInParent(
bool enabled =
true);
380 bool isKeptInParent()
const;
421 void setMinimizeButton(
Button::Ptr minimizeButton);
447 void setMaximizeButton(
Button::Ptr maximizeButton);
468 virtual sf::Vector2f getChildWidgetsOffset()
const override;
474 virtual bool mouseOnWidget(
float x,
float y)
const override;
479 virtual void leftMousePressed(
float x,
float y)
override;
484 virtual void leftMouseReleased(
float x,
float y)
override;
489 virtual void mouseMoved(
float x,
float y)
override;
494 virtual void mouseWheelMoved(
int delta,
int x,
int y)
override;
499 virtual void mouseNoLongerOnWidget()
override;
504 virtual void mouseNoLongerDown()
override;
522 virtual void reload(
const std::string& primary =
"",
const std::string& secondary =
"",
bool force =
false)
override;
530 return std::make_shared<ChildWindow>(*this);
538 virtual void draw(sf::RenderTarget& target, sf::RenderStates states)
const override;
556 Texture m_iconTexture;
559 sf::Vector2f m_draggingPosition;
560 sf::Vector2f m_maximumSize;
561 sf::Vector2f m_minimumSize;
562 TitleAlignment m_titleAlignment = TitleAlignment::Center;
563 unsigned int m_titleButtons = TitleButtons::Close;
564 sf::String m_closeButtonText =
"x";
565 sf::String m_minimizeButtonText =
"-";
566 sf::String m_maximizeButtonText =
"+";
568 std::shared_ptr<Button> m_closeButton = std::make_shared<Button>();
569 std::shared_ptr<Button> m_minimizeButton = std::make_shared<Button>();
570 std::shared_ptr<Button> m_maximizeButton = std::make_shared<Button>();
572 bool m_mouseDownOnTitleBar =
false;
573 bool m_keepInParent =
false;
575 bool m_resizable =
false;
576 int m_resizeDirection = ResizeNone;
578 friend class ChildWindowRenderer;
609 virtual void setProperty(std::string property,
const std::string& value)
override;
623 virtual void setProperty(std::string property, ObjectConverter&& value)
override;
635 virtual ObjectConverter getProperty(std::string property)
const override;
644 virtual std::map<std::string, ObjectConverter> getPropertyValuePairs()
const override;
655 void setTitleBarColor(
const Color& color);
664 void setTitleBarHeight(
float height);
673 void setTitleColor(
const Color& color);
682 void setBorderColor(
const Color& borderColor);
691 virtual void setBorders(
const Borders& borders)
override;
701 void setDistanceToSide(
float distanceToSide);
709 void setPaddingBetweenButtons(
float paddingBetweenButtons);
717 void setBackgroundColor(
const Color& backgroundColor);
729 void setTitleBarTexture(
const Texture& texture);
738 std::shared_ptr<ButtonRenderer> getCloseButton()
const;
746 std::shared_ptr<ButtonRenderer> getMinimizeButton()
const;
754 std::shared_ptr<ButtonRenderer> getMaximizeButton()
const;
759 void draw(sf::RenderTarget& target, sf::RenderStates states)
const;
768 virtual std::shared_ptr<WidgetRenderer> clone(Widget* widget)
override;
774 ChildWindow* m_childWindow;
776 float m_titleBarHeight = 0;
777 float m_distanceToSide = 0;
778 float m_paddingBetweenButtons = 3;
780 Texture m_textureTitleBar;
782 sf::Color m_titleColor;
783 sf::Color m_titleBarColor;
785 sf::Color m_backgroundColor;
786 sf::Color m_borderColor;
788 sf::String m_closeButtonClassName =
"";
789 sf::String m_minimizeButtonClassName =
"";
790 sf::String m_maximizeButtonClassName =
"";
792 friend class ChildWindow;
802 #endif // TGUI_CHILD_WINDOW_HPP Namespace that contains all TGUI functions and classes.
Definition: Animation.hpp:33
Child window widget.
Definition: ChildWindow.hpp:60
Class to store the position or size of a widget.
Definition: Layout.hpp:254
virtual Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
Definition: ChildWindow.hpp:528
ChildWindowRenderer(ChildWindow *childWindow)
Constructor.
Definition: ChildWindow.hpp:596
TitleAlignment getTitleAlignment() const
Returns the title alignment.
Definition: ChildWindow.hpp:265
unsigned int getTitleButtons() const
Returns the title bar buttons.
Definition: ChildWindow.hpp:291
const sf::String & getTitle() const
Returns the title that is displayed in the title bar of the child window.
Definition: ChildWindow.hpp:244
std::shared_ptr< ChildWindow > Ptr
Shared widget pointer.
Definition: ChildWindow.hpp:64
Container widget.
Definition: Container.hpp:47
Definition: Texture.hpp:44
Definition: ChildWindow.hpp:586
std::shared_ptr< const ChildWindow > ConstPtr
Shared constant widget pointer.
Definition: ChildWindow.hpp:65
TitleButtons
Title buttons (bitwise OR to combine)
Definition: ChildWindow.hpp:78
TitleAlignment
Title alignments, possible options for the setTitleAlignment function.
Definition: ChildWindow.hpp:69
std::shared_ptr< ChildWindowRenderer > getRenderer() const
Returns the renderer, which gives access to functions that determine how the widget is displayed...
Definition: ChildWindow.hpp:118