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 :ExCWindow.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 __EXCWINDOW_H__ 00057 #define __EXCWINDOW_H__ 00058 //-------------------------------- 00059 // File to include 00060 //-------------------------------- 00061 #include "ExDefine.h" 00062 #include "Math/ExMath.h" 00063 #include "Manager/ManagerObject/ExManagerTexture.h" 00064 #include "Manager/ExManagerWindow.h" 00065 //-------------------------------- 00066 #include "Object/Object2D/WindowObject/ExCWindowObject.h" 00067 #include "Object/Object2D/WindowObject/ExCWindowControl.h" 00068 #include "Object/Object2D/WindowObject/ExCWindowButton.h" 00069 #include "Object/Object2D/WindowObject/ExCWindowLabel.h" 00070 #include "Object/Object2D/WindowObject/ExCWindowEditLabel.h" 00071 //-------------------------------- 00072 class ExCWindow :public ExCWindowObject 00073 { 00074 //-------------------------------- 00075 // Variable 00076 //-------------------------------- 00077 protected: 00078 //Title Bar 00079 ExCWindowObject m_TitleBar; 00080 ExCWindowButton *m_CloseButton; 00081 ExCWindowButton *m_MaximizeButton; 00082 ExCWindowButton *m_MinimizeButton; 00083 ExCWindowButton *m_MinimizeToBarButton; 00084 //Window content 00085 ExCWindowObject m_Window; 00086 00087 00088 void Init(void); 00089 public: 00090 00091 //-------------------------------- 00092 // Constructor // Destructor 00093 //-------------------------------- 00094 ExCWindow(void); 00095 ExCWindow(ExCVec2D Size); 00096 //inline ExCWindow(float x,float y){ExCWindow(ExCVec2D(x,y));}; 00097 ExCWindow(ExCVec2D Size,ExCVec2D Position); 00098 /*inline ExCWindow(float x,float y,float xp,float yp) 00099 {ExCWindow(ExCVec2D(x,y),ExCVec2D(xp,yp));};*/ 00100 ExCWindow(ExCVec2D Size,ExCVec2D Position,std::string Title); 00101 /*inline ExCWindow(float x,float y,float xp,float yp,std::string Title) 00102 {ExCWindow(ExCVec2D(x,y),ExCVec2D(xp,yp),Title);}*/ 00103 ~ExCWindow(void); 00104 //-------------------------------- 00105 // Methode 00106 //-------------------------------- 00107 void RefreshPosotion(void); 00108 void RefreshSize(void); 00109 bool m_BeClosed; 00110 void SetManagerTexture(ExManagerTexture * Texture); 00111 void Draw(void); 00112 virtual ExCAction InputAction(ExCAction Action); 00113 virtual ExCAction InputCommand(ExCCommand Command); 00114 //GetPointer 00115 ExCWindowObject *GetWindowContentPointer(void){return &m_Window;} 00116 ExCWindowObject *GetWindowBarPointer(void){return &m_TitleBar;} 00117 ExCWindowButton *GetButtonClose(void){return m_CloseButton;} 00118 ExCWindowButton *GetButtonMaximize(void){return m_MaximizeButton;} 00119 ExCWindowButton *GetButtonMinimize(void){return m_MinimizeButton;} 00120 ExCWindowButton *GetButtonMinimizeToBar(void){return m_MinimizeToBarButton;} 00121 00122 //Position and size 00123 void SetWindowSize(ExCVec2D vec);//{m_WindowSize=vec;} 00124 //inline ExCVec2D GetWindowSize(void){return m_WindowSize;} 00125 void SetOldWindowSize(ExCVec2D vec);//{m_OldSize=vec;} 00126 //inline ExCVec2D GetOldWindowSize(void){return m_OldSize;} 00127 void SetOldPosition(ExCVec2D vec);//{m_OldPosition=vec;} 00128 //inline ExCVec2D GetOldPosition(void){return m_OldPosition;} 00129 void SetTitleBarSize(float size);//{m_TitleBarSize=size;} 00130 //inline float GetTitleBarSize(void){return m_TitleBarSize;} 00131 void SetWindowPosition(ExCVec2D vec); 00132 inline bool IsShowWindowContent(void){return m_Window.IsShowWindow();} 00133 inline void SetShowWindowContent(bool status){m_Window.SetShowWindow(status);} 00134 inline bool IsShowWindowBar(void){return m_TitleBar.IsShowWindow();} 00135 inline void SetShowWindowBar(bool status){m_TitleBar.SetShowWindow(status);} 00136 //Title 00137 void SetWindowTitle(std::string Title); 00138 std::string GetWindowTitle(void); 00139 void SetWindowOldTitle(std::string Title); 00140 std::string GetWindowOldTitle(void); 00141 void SetWindowTitleColor(ExCVec3D Color); 00142 ExCVec3D GetWindowTitleColor(void); 00143 00144 bool PointInWindow(ExCVec2D point); 00145 }; 00146 #endif //__EXCWINDOW_H__