Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

MNComponent.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 #ifndef MNCOMPONENT_H
00005 #define MNCOMPONENT_H
00006 
00007 // The debugger can't handle symbols more than 255 characters long.
00008 // STL often creates symbols longer than that.
00009 // When symbols are longer than 255 characters, the warning is disabled.
00010 #pragma warning(disable:4786)
00011 
00012 #include <windows.h>
00013 #include <vector>
00014 
00015 using namespace std;
00016 
00021 #define AUTOSIZE -1
00022 
00027 #define AUTOPOS -2
00028 
00033 #define TRANS 0
00034 
00041 class MNComponent
00042 {
00043   protected:
00044     MNComponent* parent;            
00045     HWND         hwnd;              
00046     HINSTANCE    hInstance;         
00047     int          showstate;         
00048     int          width;             
00049     int          height;            
00050     int          x;                 
00051     int          y;                 
00052 
00053     static       TEXTMETRIC  finfo; 
00054 
00062     struct CHILDCOMPONENT
00063     {
00064       MNComponent *com;                 
00065       HWND        *hwnd;                
00066     };
00067 
00074     vector <BOOL (*)(MNComponent* , UINT, WPARAM, LPARAM)> listeners; 
00075     
00081     vector < CHILDCOMPONENT > clisteners;
00082   
00083   public:
00087     virtual void RegisterComponent( HWND *hwnd, MNComponent* com );
00088 
00092     virtual void RegisterChild( HWND *hwnd, MNComponent* com );
00093     
00097     virtual void AddCallBack( BOOL (*callback)(MNComponent* , UINT, WPARAM, LPARAM) );
00098 
00102     virtual LRESULT FireEvents( HWND hwnd, UINT message, 
00103                                 WPARAM wParam, LPARAM lParam );
00104 
00108     virtual LRESULT FireChildEvents( UINT message, WPARAM wParam, 
00109                                      LPARAM lParam );
00110 
00111 
00115     virtual LRESULT SendEventToParent( UINT message, WPARAM wParam, 
00116                                        LPARAM lParam );
00117 
00121     virtual LRESULT SendEventToChild( HWND child, UINT message, 
00122                                       WPARAM wParam, LPARAM lParam );
00123 
00127     virtual LRESULT SendEventToChild( MNComponent* child, UINT message, 
00128                                       WPARAM wParam, LPARAM lParam );
00129 
00133     LRESULT SendMessage( UINT msg, WPARAM wParam, LPARAM lParam );
00134 
00138     virtual BOOL Show();
00139 
00143     virtual BOOL Hide();
00144 
00148     virtual HWND GetHwnd();
00149 
00153     virtual HINSTANCE GetInstance();
00154 
00158     virtual void SetSize( int width, int height );
00159 
00163     virtual void SetWidth( int width );
00164 
00168     virtual void SetHeight( int height );
00169 
00173     virtual int GetWidth();
00174 
00178     virtual int GetHeight();
00179 
00183     virtual void SetText( LPSTR label );
00184 
00188     virtual void GetText( LPSTR buf, int buf_len );
00189 
00193     virtual int GetX();
00194 
00198     virtual int GetY();
00199 
00203     virtual void SetX( int x );
00204 
00208     virtual void SetY( int y );
00209 
00213     virtual void SetPosition( int x, int y );
00214 
00215   protected:
00219     void CreateControl( MNComponent *parent, LPSTR classname, LPSTR label, 
00220                         int width, int height, int x, int y, int style, 
00221                         int exstyle );
00222 
00226     void GetCharSize();
00227 
00228 
00232   friend LRESULT CALLBACK GlobalProc( HWND hwnd, 
00233                                       UINT message, 
00234                                       WPARAM wParam, 
00235                                       LPARAM lParam);
00236 };
00237 
00238 
00244 struct REGCOMPONENT
00245 {
00246   HWND        *hwnd;          
00247   MNComponent *com;           
00248 };
00249 
00250 #endif

Generated on Thu Oct 31 18:21:37 2002 for GuiLib by doxygen1.2.18