| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // ================================================================================
- // == This file is a part of Turbo Badger. (C) 2011-2014, Emil Segerås ==
- // == See tb_core.h for more information. ==
- // ================================================================================
- #ifndef TB_MESSAGE_WINDOW_H
- #define TB_MESSAGE_WINDOW_H
- #include "tb_window.h"
- #include "tb_widgets_listener.h"
- namespace tb {
- enum TB_MSG {
- TB_MSG_NONE,
- TB_MSG_OK,
- TB_MSG_OK_CANCEL,
- TB_MSG_YES_NO
- };
- /** TBMessageWindowSettings contains additional settings for TBMessageWindow. */
- class TBMessageWindowSettings
- {
- public:
- TBMessageWindowSettings() : msg(TB_MSG_OK), dimmer(false), styling(false) {}
- TBMessageWindowSettings(TB_MSG msg, TBID icon_skin) : msg(msg), icon_skin(icon_skin), dimmer(false), styling(false) {}
- public:
- TB_MSG msg; ///< The type of response for the message.
- TBID icon_skin; ///< The icon skin (0 for no icon)
- bool dimmer; ///< Set to true to dim background widgets by a TBDimmer.
- bool styling; ///< Enable styling in the textfield.
- };
- /** TBMessageWindow is a window for showing simple messages.
- Events invoked in this window will travel up through the target widget.
- When the user click any of its buttons, it will invoke a click event
- (with the window ID), with the clicked buttons id as ref_id.
- Then it will delete itself.
- If the target widget is deleted while this window is alive, the
- window will delete itself. */
- class TBMessageWindow : public TBWindow, private TBWidgetListener
- {
- public:
- // For safe typecasting
- TBOBJECT_SUBCLASS(TBMessageWindow, TBWindow);
- TBMessageWindow(TBWidget *target, TBID id);
- virtual ~TBMessageWindow();
- bool Show(const char *title, const char *message, TBMessageWindowSettings *settings = nullptr, int width = 0, int height = 0);
- virtual TBWidget *GetEventDestination() { return m_target.Get(); }
- virtual bool OnEvent(const TBWidgetEvent &ev);
- virtual void OnDie();
- void AddButton(TBID id, bool focused, TBLayout *layout = nullptr);
- void AddButtonLeft(TBID id, bool focused);
- private:
- // TBWidgetListener
- virtual void OnWidgetDelete(TBWidget *widget);
- virtual bool OnWidgetDying(TBWidget *widget);
- TBWidgetSafePointer m_dimmer;
- TBWidgetSafePointer m_target;
- };
- }; // namespace tb
- #endif // TB_MESSAGE_WINDOW_H
|