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 /* */ 00036 /************************************************************************/ 00037 00038 /************************************************************************/ 00039 /* File Description */ 00040 /************************************************************************/ 00041 /* File Name :ExManager.h */ 00042 /* */ 00043 /* Start Date :04/16/2002 */ 00044 /* */ 00045 /* Last Update :06/20/2003 */ 00046 /* */ 00047 /* File Description : */ 00048 /* */ 00049 /* For update of this file check : www.ploksoftware.org */ 00050 /************************************************************************/ 00051 00052 #ifndef __EXMANAGERWINDOW_H__ 00053 #define __EXMANAGERWINDOW_H__ 00054 //------------------------------------------------------------------------ 00055 //Includes 00056 //------------------------------------------------------------------------ 00057 #include "ExDefine.h" 00058 #include "ExNihiloNameSpace.h" 00059 //------------------------------------------------------------------------ 00060 #include "Math/ExMath.h" 00061 //------------------------------------------------------------------------ 00062 #include "Manager/ExManager.h" 00063 //------------------------------------------------------------------------ 00064 class ExManagerWindow : public ExManager 00065 { 00066 private: 00067 //------------------------------------------------------------------------ 00068 // Variable 00069 //------------------------------------------------------------------------ 00070 int m_WindowHandler; 00071 int m_WindowSizeX; 00072 int m_WindowSizeY; 00073 int m_WindowSizeXOld; 00074 int m_WindowSizeYOld; 00075 int m_WindowPosX; 00076 int m_WindowPosY; 00077 int m_Bits; 00078 int m_Rate; 00079 bool m_FullScreen; 00080 bool m_OldMode; 00081 char *m_Title; 00082 char *m_IconTitle; 00083 int m_Cursor; 00084 bool m_ShowGrille; 00085 bool m_ShowFps; 00086 int frame; 00087 int timeframe; 00088 int timebase; 00089 char s[30]; 00090 //------------------------------------------------------------------------ 00091 // Singleton creation 00092 //------------------------------------------------------------------------ 00093 static bool m_flag; 00094 static ExManagerWindow *m_instance; 00095 ExManagerWindow(void); 00096 ~ExManagerWindow(void); 00097 //------------------------------------------------------------------------ 00098 public: 00099 void (*GlutCallBack)(); 00100 //------------------------------------------------------------------------ 00101 // Methode 00102 //------------------------------------------------------------------------ 00103 void CreateNewWindow(int SizeX,int SizeY,int PosX,int PosY,char *argv); 00104 void CreateNewWindow(int SizeX,int SizeY,char *argv); 00105 void Move(int Posx,int Posy); 00106 void SetResolution(int SizeX,int SizeY); 00107 inline void SetRate(int Rate){m_Rate=Rate;} 00108 inline void SetBits(int Bits){m_Bits=Bits;} 00109 inline void SetFullScreen(bool State){m_FullScreen=State;} 00110 void SetWindowTitle(char *Title); 00111 void SetIconTitle(char *Title); 00112 void SetCursor(int Cursor); 00113 void Apply(void); 00114 00115 inline int GetResolutionX(void){return m_WindowSizeX;} 00116 inline int GetResolutionY(void){return m_WindowSizeY;} 00117 inline int GetRate(void){return m_Rate;} 00118 inline int GetBits(void){return m_Bits;} 00119 inline bool GetFullScreen(void){return m_FullScreen;} 00120 00121 inline void SetGrilleState(bool state){m_ShowGrille=state;} 00122 inline bool GetGrilleState(void){return m_ShowGrille;} 00123 inline void SetFpsState(bool state){m_ShowFps=state;} 00124 inline bool GetFpsState(void){return m_ShowFps;} 00125 00126 void ShowFps(void); 00127 void ShowNetStat(void); 00128 00129 void Reset(void){return;} 00130 static ExManagerWindow* CreateSingleton(void); 00131 ExCAction InputCommand(ExCCommand Command); 00132 ExCAction InputAction(ExCAction Action); 00133 }; 00134 //------------------------------------------------------------------------ 00135 #endif //__EXMANAGERWINDOW_H__