Rose
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
rose::Dialog Class Reference

A Dialog is a way for the application to have a brief conversation with the user. More...

#include <PopupWindow.h>

Inheritance diagram for rose::Dialog:
Inheritance graph
[legend]
Collaboration diagram for rose::Dialog:
Collaboration graph
[legend]

Public Member Functions

 Dialog (const PopupWindow &)=delete
 
 Dialog (PopupWindow &&)=delete
 
 Dialog (const Position< int > &position)
 
std::string_view nodeId () const noexcept override
 
void addedToContainer () override
 Called when a Node is added to a Container. More...
 
template<class WidgetClass >
void addWidget (std::shared_ptr< WidgetClass > widget)
 
 Dialog (Dialog &&)=delete
 
 Dialog (const Dialog &)=delete
 
Dialogoperator= (Dialog &&)=delete
 
Dialogoperator= (const Dialog &)=delete
 
 Dialog (shared_ptr< Rose > parent)
 Construct a PopupWindow which covers the entire screen. More...
 
 Dialog (shared_ptr< Rose > parent, const Position &position)
 Construct a Window of specified position. More...
 
 Dialog (shared_ptr< Rose > parent, const Position &pos, const Size &size)
 Construct a Window of specified position and size. More...
 
void initializeComposite () override
 See Widget::initializeComposite()
 
void createActionButton (const DialogActionButton &dialogActionButton) override
 Create a DialogActionButton. More...
 
void setButtonSlot (shared_ptr< Slot< Button::SignalType >> &buttonSlot, bool dismissAll) override
 See Widget::setButtonSlot() More...
 
- Public Member Functions inherited from rose::PopupWindow
 PopupWindow (const PopupWindow &)=delete
 
 PopupWindow (PopupWindow &&)=delete
 
PopupWindowoperator= (const PopupWindow &)=delete
 
PopupWindowoperator= (PopupWindow &&)=delete
 
Rectangle layout (gm::Context &context, const Rectangle &screenRect) override
 Layout the visual.
 
constexpr bool removePopup () const noexcept
 
 PopupWindow (PopupWindow &&)=delete
 
 PopupWindow (const PopupWindow &)=delete
 
PopupWindowoperator= (PopupWindow &&)=delete
 
PopupWindowoperator= (const PopupWindow &)=delete
 
 PopupWindow (shared_ptr< Rose > parent)
 Construct a PopupWindow which covers the entire screen. More...
 
 PopupWindow (shared_ptr< Rose > parent, const Position &position)
 Construct a Window of specified position. More...
 
 PopupWindow (shared_ptr< Rose > parent, const Position &pos, const Size &size)
 Construct a Window of specified position and size. More...
 
void initializeComposite () override
 See Widget::initializeComposite()
 
Rectangle widgetLayout (sdl::Renderer &renderer, Rectangle available, uint layoutStage) override
 
void setTitle (const std::string &text) override
 Set the value of the Window Title. More...
 
bool mouseDragEvent (const Position &mousePos, const Position &rel, int button, int modifiers) override
 Handle a mouse drag event (default implementation: do nothing)
 
- Public Member Functions inherited from rose::Popup
 Popup (Popup &&)=delete
 
 Popup (const Popup &)=delete
 
Popupoperator= (Popup &&)=delete
 
Popupoperator= (const Popup &)=delete
 
 Popup (const shared_ptr< Rose > &parent)
 Construct a Popup which covers the entire screen or as determined by the size of its children. More...
 
 Popup (const shared_ptr< Rose > &parent, const Position &position)
 Construct a Window of specified position. More...
 
 Popup (const shared_ptr< Rose > &parent, const Position &pos, const Size &minimumSize)
 Construct a Window of specified position and size. More...
 
void initializeComposite () override
 See Widget::initializeComposite()
 
Rectangle widgetLayout (sdl::Renderer &renderer, Rectangle available, uint layoutStage) override
 See Widget::widgetLayout()
 
void draw (sdl::Renderer &renderer, Rectangle parentRect) override
 See Widget::draw()
 
void addChild (const std::shared_ptr< Widget > &widget) override
 Add a child Widget to the container that will be managing children. More...
 
template<class C >
void setActionButtons (C actionButtonList)
 Create the DialogActionButton objects. More...
 
- Public Member Functions inherited from rose::Window
std::string_view nodeId () const noexcept override
 
bool isModal () const
 
void add (const std::shared_ptr< Node > &node) override
 Add a Manager to the Window. More...
 
void draw (gm::Context &context, const Position< int > &containerPosition) override
 Draw the contents of the Window.
 
bool baseTextureNeeded (const Position< int > &containerPosition)
 
void generateBaseTexture (gm::Context &context, const Position< int > &containerPosition)
 Create a Texture for the Window that can be drawn over by animations. More...
 
void drawBaseTexture (gm::Context &context, const Position< int > &containerPosition)
 Draw the base texture for the window. More...
 
Rectangle layout (gm::Context &context, const Rectangle &screenRect) override
 Layout the contents of the Window.
 
std::shared_ptr< WidgetpointerWidget (const Position< int > &position)
 The the Widget which contains the Position.
 
std::shared_ptr< ScreengetScreen ()
 Get the Screen which supports the Window.
 
std::shared_ptr< ScreengetScreen () const
 Get the Screen which support the const Window.
 
- Public Member Functions inherited from rose::Visual
void setScreenRectangle (const Position< int > &containerPosition)
 Compute the screen rectangle from the Container screen Position. More...
 
Rectangle getScreenRectangle (const Position< int > &containerPosition) const
 Get the rectangle occupied by the Visual. More...
 
Position< int > drawPadding (const Position< int > &containerPosition)
 Pad the drawing location.
 
Rectangle layoutPadding (const Rectangle &screenRect)
 Pad the layout.
 
void setSize (const Size &size)
 Set preferred Size.
 
Size getSize () const
 Get the preferred size.
 
void setPosition (const Position< int > &position)
 Set preferred Position.
 
Position< int > getPosition () const
 Get the preferred Position.
 
void setPadding (const Padding &padding)
 Set Padding.
 
void setScreenRectangle (const Rectangle &screenRect)
 Set Screen Rectangle.
 
constexpr bool isVisible () const noexcept
 Check visibility.
 
void setVisible (bool visible) noexcept
 Set visibility.
 
void setLayoutHint (const LayoutHint &hint)
 Add a LayoutHint.
 
std::optional< int > getAttachmentHint (LayoutHint::Attachment attachment)
 Get an AttachmentHint value given a LayoutHint::Attachment. More...
 
std::optional< int > getGridHint (LayoutHint::GridLayoutHint gridLayoutHint)
 Get a GridLayoutHint value given a LayoutHint::GridLayoutHint. More...
 
template<size_t HintClass>
std::optional< const ValueMapgetHintMap () const
 
SemanticGesture supportedSemanticGestures () const
 Get supported SemanticGestures.
 
- Public Member Functions inherited from rose::Container
void remove (const std::shared_ptr< Node > &node)
 
- Public Member Functions inherited from rose::Node
 Node (const std::shared_ptr< Container > &container)
 Create a node and add it to a Container. More...
 
void setId (const Id &nodeId) noexcept
 Set Id.
 
std::string_view getId () const
 Get Id.
 
IdPath getIdPath () const
 Get the Id Path.
 
std::shared_ptr< Containercontainer ()
 
std::shared_ptr< Containercontainer () const
 
template<typename C >
std::shared_ptr< C > containerAs ()
 
template<typename C >
std::shared_ptr< C > containerAs () const
 
std::shared_ptr< const NodegetNode () const
 Get a const std::shared_ptr to this node. More...
 
std::shared_ptr< NodegetNode ()
 Get a std::shared_ptr to this node. More...
 
template<typename NodeType >
std::shared_ptr< const NodegetNode () const
 Get a std::shared_ptr<const NodeType> to this node. More...
 
template<typename NodeType >
std::shared_ptr< NodeType > getNode ()
 Get a std::shared_ptr<NodeType> to this node. More...
 
std::shared_ptr< Noderemove ()
 

Static Public Attributes

static constexpr std::string_view id = "Dialog"
 
- Static Public Attributes inherited from rose::PopupWindow
static constexpr std::string_view id = "PopupWindow"
 
- Static Public Attributes inherited from rose::Window
static constexpr std::string_view id = "Window"
 
- Static Public Attributes inherited from rose::Container
static constexpr std::string_view id = "Container"
 
- Static Public Attributes inherited from rose::Node
static constexpr std::string_view id = "Node"
 

Protected Attributes

ImageId mBadgeId {}
 The ImageId of the Dialog badge.
 
std::shared_ptr< RowmMessageRow
 The area where the Dialog badge and message are held.
 
std::shared_ptr< RowmButtonRow
 The area where the Dialog ActionButtons are held.
 
- Protected Attributes inherited from rose::PopupWindow
std::shared_ptr< FramemContentFrame {}
 
bool mRemovePopup {false}
 
std::string mWindowTitle {}
 The title of the window.
 
std::shared_ptr< LabelmTitle
 The Window Title Label.
 
- Protected Attributes inherited from rose::Popup
Size mMinimumSize
 The minimum size requests for the popup if supported by derived types.
 
std::shared_ptr< FramemFrame
 The Window Frame.
 
std::shared_ptr< ColumnmColumn
 A container for the Window Title gadget and the window Container.
 
std::shared_ptr< Slot< Button::SignalType > > mActionButtonRx {}
 The slot to receive action button signals.
 
std::shared_ptr< Slot< Button::SignalType > > mDismissButtonRx {}
 The slot to close the menu.
 
- Protected Attributes inherited from rose::Window
bool mModalWindow {}
 
gm::Texture mBaseTexture {}
 The base texture which animations draw over.
 
- Protected Attributes inherited from rose::Visual
SemanticGesture mSemanticGesture {}
 
Position< int > mPos {}
 Position relative to the container, arrived at by layout.
 
Size mSize {}
 The size on screen, arrived at by layout.
 
Position< int > mPreferredPos {}
 The preferred position.
 
Size mPreferredSize {}
 The preferred size.
 
Rectangle mScreenRect {}
 The screen Rectangle computed at drawing time.
 
Padding mPadding {}
 Immediately around the Visual, used for separation and alignment.
 
State mState {}
 The object state Id string.
 
bool mVisible {true}
 If true the object is visible.
 
- Protected Attributes inherited from rose::Node
std::weak_ptr< ContainermContainer {}
 The Container that holds the Node. More...
 
Id mId {}
 

Additional Inherited Members

- Public Types inherited from rose::Visual
using ValueMap = std::map< int, int >
 The std::map type for each hint class.
 
- Public Types inherited from rose::Node
using NodePtr = std::shared_ptr< Node >
 
- Static Public Member Functions inherited from rose::Node
template<typename NodeType >
static std::shared_ptr< NodeType > create ()
 Create a Node with no arguments. More...
 
template<typename NodeType , typename ... Args>
static std::shared_ptr< NodeType > create (Args ... args)
 Create a Node with arguments. More...
 
template<typename NodeType , typename ContainerType , typename ... Args>
static std::shared_ptr< NodeType > add (ContainerType container, Args ... args)
 Create a Node with arguments and add to a Container. More...
 
- Public Attributes inherited from rose::Visual
std::map< size_t, ValueMapmHintsMap {}
 The std::map of hint class to ValueMap.
 

Detailed Description

A Dialog is a way for the application to have a brief conversation with the user.

A Dialog has a Title, Text, Badge and one or more action buttons.

Constructor & Destructor Documentation

◆ Dialog() [1/3]

rose::Dialog::Dialog ( shared_ptr< Rose >  parent)
explicit

Construct a PopupWindow which covers the entire screen.

Parameters
parentthe Rose application object.

◆ Dialog() [2/3]

rose::Dialog::Dialog ( shared_ptr< Rose >  parent,
const Position position 
)

Construct a Window of specified position.

The position is clamped to be inside the screen.

Parameters
parentthe Rose application object.
positionthe Window size.

◆ Dialog() [3/3]

rose::Dialog::Dialog ( shared_ptr< Rose >  parent,
const Position pos,
const Size size 
)

Construct a Window of specified position and size.

Parameters
parentthe Rose application object.
posthe Window position
sizethe Window size.

Member Function Documentation

◆ addedToContainer()

void rose::Dialog::addedToContainer ( )
overridevirtual

Called when a Node is added to a Container.

By default it is ignored but can be used to perform initialization that is required when a Node is placed in a Container.

Reimplemented from rose::Node.

◆ createActionButton()

void rose::Dialog::createActionButton ( const DialogActionButton dialogActionButton)
overridevirtual

Create a DialogActionButton.

Parameters
dialogActionButtonThe data structure that describes the button.

Reimplemented from rose::Popup.

◆ setButtonSlot()

void rose::Dialog::setButtonSlot ( shared_ptr< Slot< Button::SignalType >> &  buttonSlot,
bool  dismissAll 
)
overridevirtual

See Widget::setButtonSlot()

If buttons have been created, they are disconnected from all slots before being connected to buttonSlot.

Parameters
buttonSlot

Reimplemented from rose::Popup.


The documentation for this class was generated from the following files: