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__