Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Membres des namespaces | Composants | Déclarations

# ExManagerObjectWindow.h

Aller à la documentation de ce fichier.

    00001 /************************************************************************/
    00002 /* Ex Nihlo Engine by Hermanns Christophe                                                               */
    00003 /************************************************************************/
    00004 /* This program is free software; you can redistribute it and/or                */
    00005 /* modify it under the terms of the GNU General Public License                  */
    00006 /* as published by the Free Software Foundation; either version 2               */
    00007 /* of the License, or (at your option) any later version.                               */
    00008 /*                                                                                                                                              */
    00009 /* This program is distributed in the hope that it will be useful,              */
    00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of               */
    00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                                 */
    00012 /*                                                                                                                                              */
    00013 /* See the GNU General Public License for more details.                                 */
    00014 /*                                                                                                                                              */
    00015 /* You should have received a copy of the GNU General Public License    */
    00016 /* along with this program; if not, write to the Free Software                  */
    00017 /* Foundation, Inc., 59 Temple Place - Suite 330,                                               */
    00018 /* Boston, MA  02111-1307, USA.                                                                                 */
    00019 /*                                                                                                                                              */
    00020 /* If you use a important part of this code please send me a mail               */
    00021 /* I just want to see where my code go thks :)                                                  */
    00022 /************************************************************************/
    00023
    00024 /************************************************************************/
    00025 /* Contact                                                              */
    00026 /************************************************************************/
    00027 /* ExNihilo Website :www.ploksoftware.org                               */
    00028 /*                                                                      */
    00029 /* Hermanns Christophe ExNihilo creator and main programmer             */
    00030 /*                                                                      */
    00031 /* Mail             : Data@ploksoftware.org                                                             */
    00032 /* ICQ              : 8030901                                                                                   */
    00033 /* MSN Messenger    : Data_7@hotmail.com                                                                */
    00034 /*                                                                      */
    00035 /* Benjamin Michotte Linux port, webmaster                              */
    00036 /*                                                                      */
    00037 /* Mail             :binny@ploksoftware.org                             */
    00038 /*                                                                      */
    00039 /************************************************************************/
    00040
    00041 /************************************************************************/
    00042 /* File Description                                                                                             */
    00043 /************************************************************************/
    00044 /* File Name   :ExManagerObjectWindow.h                                                                 */
    00045 /*                                                                                                                                              */
    00046 /* Star Date   :03/14/2003                                                                                              */
    00047 /*                                                                                                                                              */
    00048 /* Last Update :                                                        */
    00049
    00050 /*                                                                                                                                              */
    00051 /* File Description :                                                                                                   */
    00052 /*                                                                      */
    00053 /* For update of this file check : www.ploksoftware.org                 */
    00054 /************************************************************************/
    00055
    00056 #ifndef __EXMANAGEROBJECTWINDOW_H__
    00057 #define __EXMANAGEROBJECTWINDOW_H__
    00058 //--------------------------------
    00059 // File to include
    00060 //--------------------------------
    00061 #include "ExDefine.h"
    00062 #include "Math/ExMath.h"
    00063 #include "Manager/ManagerObject/ExManagerObject.h"
    00064 #include "Manager/ManagerObject/ExManagerTexture.h"
    00065 #include "Manager/ExManagerWindow.h"
    00066 #include "Object/Object2D/WindowObject/ExCWindowObject.h"
    00067 #include "Object/Object2D/WindowObject/ExCWindow.h"
    00068 #include "Object/Object2D/WindowObject/ExCWindowControl.h"
    00069 #include "Object/Object2D/WindowObject/ExCWindowButton.h"
    00070 #include "Object/Object2D/WindowObject/ExCWindowButtonSwitch.h"
    00071 #include "Object/Object2D/WindowObject/ExCWindowLabel.h"
    00072 #include "Object/Object2D/WindowObject/ExCWindowEditLabel.h"
    00073 #include "Object/Object2D/WindowObject/ExCWindowMessageBox.h"
    00074 #include "Object/Object2D/WindowObject/ExCWindowMessageBoxQuestion.h"
    00075 #include "Object/Object2D/WindowObject/ExCWindowButtonSwitchOnMouse.h"
    00076 //--------------------------------
    00077 class ExManagerObjectWindow : public ExManagerObject<ExCWindow>
    00078 {
    00079 private:
    00080 //--------------------------------
    00081 // Singleton creation
    00082 //--------------------------------
    00083         static bool m_flag;
    00084         static ExManagerObjectWindow *m_instance;
    00085         ExManagerObjectWindow(void);
    00086         ~ExManagerObjectWindow(void);
    00087
    00088         bool                    m_MoveWindow;
    00089         ExCVec2D                m_MovePointerShift;
    00090         ExCCommand              m_LastCommandReceived;
    00091         float                   m_SizeWhenMinimized;
    00092         bool                    m_DrawAllWindow;
    00093 //--------------------------------
    00094         ExManagerTexture                        *ManagerTexture;
    00095         ExManagerWindow                         *ManagerWindow;
    00096         ExCWindow                                       *ModalWindow;
    00097         void OrganizeMinimizedWindow(void);
    00098         void ReadWindowObject(ExCWindowObject *win,std::ifstream *file);
    00099         std::string ReadWindowObject(ExCWindowObject *win,std::string FileName);
    00100         std::string ReadWindowObject(ExCWindowObject *win,std::string FileName,std::ifstream *fileReturn);
    00101         void ReadWindowSubObject(ExCWindow *win,std::string FileName);
    00102         ExCWindowControl * ReadWindowControlObject(ExCWindowObject *win,std::string FileName);
    00103 public:
    00104 //--------------------------------
    00105 // Methode
    00106 //--------------------------------
    00107         static ExManagerObjectWindow*  CreateSingleton(void);
    00108         inline void SetManagerTexture(ExManagerTexture * Texture){ManagerTexture = Texture;}
    00109         inline void SetManagerWindow(ExManagerWindow *Window){ManagerWindow = Window;}
    00110         void Reset(void);
    00111         void Init(void);
    00112         void Draw(void);
    00113         ExCAction InputAction(ExCAction Action);
    00114         ExCAction InputCommand(ExCCommand Command);
    00115         bool SetCurrentObject(ExNihilo::ExId id);
    00116
    00117         bool Load(std::string FileName);
    00118
    00119         inline void SetSizeWhenMinimized(float value){m_SizeWhenMinimized=value;}
    00120         inline float GetSizeWhenMinimized(void){ return m_SizeWhenMinimized;}
    00121 };
    00122 #endif //__EXMANAGEROBJECTWINDOW_H__