MyGUI 3.0.1

MyGUI_Message.h

Go to the documentation of this file.
00001 
00007 /*
00008     This file is part of MyGUI.
00009 
00010     MyGUI is free software: you can redistribute it and/or modify
00011     it under the terms of the GNU Lesser General Public License as published by
00012     the Free Software Foundation, either version 3 of the License, or
00013     (at your option) any later version.
00014 
00015     MyGUI is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018     GNU Lesser General Public License for more details.
00019 
00020     You should have received a copy of the GNU Lesser General Public License
00021     along with MyGUI.  If not, see <http://www.gnu.org/licenses/>.
00022 */
00023 #ifndef __MYGUI_MESSAGE_H__
00024 #define __MYGUI_MESSAGE_H__
00025 
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Window.h"
00028 #include "MyGUI_ResourceImageSet.h"
00029 #include "MyGUI_EventPair.h"
00030 #include "MyGUI_MessageStyle.h"
00031 #include "MyGUI_ControllerFadeAlpha.h"
00032 
00033 namespace MyGUI
00034 {
00035 
00036     typedef delegates::CDelegate2<Message*, MessageBoxStyle> EventHandle_MessagePtrMessageStyle;
00037 
00038     class MYGUI_EXPORT Message :
00039         public Window
00040     {
00041         MYGUI_RTTI_DERIVED( Message )
00042 
00043     public:
00044         Message();
00045 
00047         void setMessageText(const UString& _value);
00048 
00050         MessageBoxStyle addButtonName(const UString& _name);
00051 
00053         void setSmoothShow(bool _value);
00054 
00056         const std::string& getDefaultLayer() { return mDefaultLayer; }
00057 
00059         void setMessageIcon(MessageBoxStyle _value);
00061         void setWindowFade(bool _value);
00062 
00063         void endMessage(MessageBoxStyle _result);
00064         void endMessage();
00065 
00067         void setMessageButton(MessageBoxStyle _value);
00068 
00070         void setMessageStyle(MessageBoxStyle _value);
00071 
00072         void setMessageModal(bool _value);
00073 
00082         static MyGUI::Message* createMessageBox(
00083             const std::string& _skin,
00084             const UString& _caption,
00085             const UString& _message,
00086             MessageBoxStyle _style = MessageBoxStyle::Ok | MessageBoxStyle::IconDefault,
00087             const std::string& _layer = "",
00088             bool _modal = true,
00089             const std::string& _button1 = "",
00090             const std::string& _button2 = "",
00091             const std::string& _button3 = "",
00092             const std::string& _button4 = "");
00093 
00094 
00096         virtual void setProperty(const std::string& _key, const std::string& _value);
00097 
00098     /*event:*/
00104         EventHandle_MessagePtrMessageStyle eventMessageBoxResult;
00105 
00106     /*internal:*/
00107         virtual void _initialise(WidgetStyle _style, const IntCoord& _coord, Align _align, ResourceSkin* _info, Widget* _parent, ICroppedRectangle * _croppedParent, IWidgetCreator * _creator, const std::string& _name);
00108 
00109     protected:
00110         virtual ~Message();
00111 
00112         void baseChangeWidgetSkin(ResourceSkin* _info);
00113 
00114         void updateSize();
00115         void notifyButtonClick(MyGUI::Widget* _sender);
00116         void clearButton();
00117 
00118         void onKeyButtonPressed(KeyCode _key, Char _char);
00119         void _destroyMessage(MessageBoxStyle _result);
00120 
00121         UString getButtonName(MessageBoxStyle _style);
00122         const char * getIconName(size_t _index);
00123         const char * getButtonName(size_t _index);
00124         const char * getButtonTag(size_t _index);
00125 
00126     private:
00127         void initialiseWidgetSkin(ResourceSkin* _info);
00128         void shutdownWidgetSkin();
00129 
00130         ControllerFadeAlpha* createControllerFadeAlpha(float _alpha, float _coef, bool _enable);
00131 
00132     private:
00133         IntSize mOffsetText;
00134         Widget* mWidgetText;
00135 
00136         std::string mButtonSkin, mButtonType;
00137         IntSize mButtonSize, mButtonOffset;
00138 
00139         VectorWidgetPtr mVectorButton;
00140         MessageBoxStyle mInfoOk;
00141         MessageBoxStyle mInfoCancel;
00142         bool mSmoothShow;
00143 
00144         std::string mDefaultLayer, mDefaultCaption;
00145         std::string mFadeSkin, mFadeLayer;
00146         Widget* mWidgetFade;
00147         StaticImage* mIcon;
00148         int mLeftOffset1;
00149         int mLeftOffset2;
00150 
00151     };
00152 
00153 } // namespace MyGUI
00154 
00155 #endif // __MYGUI_MESSAGE_H__
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines