← index
MasterX_System/system/src/messagebox.hpp
Source: MasterX_System/system/src/messagebox.hpp
#ifndef _MSGBOX_H__

#define _MSGBOX_H__


#include"window.hpp"

#include"mx_window.hpp"

#include<memory>



namespace mx {

    class DimensionContainer;

    using EventCallbackMsg = std::function<bool(mxApp &app, Window *window, int button)>;

    class MX_MessageBox : public Window {
    public:
        MX_MessageBox(mxApp &app);
        virtual ~MX_MessageBox();
        virtual void draw(mxApp &app) override;
        virtual bool event(mxApp &app, SDL_Event &e) override;

        void drawBox(mxApp &app);
        bool eventBox(mxApp &app, SDL_Event &e);
        
        void createControls(mxApp &app);
        void createControlsOkCancel(mxApp &app);
        void resizeControls();
        static void OkMX_MessageBox(mxApp &app, DimensionContainer *dim, const std::string &title, const std::string  &text);
        static void OkCancelMX_MessageBox(mxApp &app, DimensionContainer *dim, const std::string &title, const std::string &text, EventCallbackMsg event_cb);
    protected:
        std::string text;
        Button *ok = 0, *cancel = 0;
        EventCallbackMsg event_ = 0;
        static std::vector<MX_MessageBox *> boxes;
        static MX_MessageBox *box;
    };
}





#endif