00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _CATControlWnd_H_
00016 #define _CATControlWnd_H_
00017
00018 #include "CATControl.h"
00019
00020 class CATWindow;
00021 class CATControlWnd;
00022
00023
00024
00025
00026
00027 class CATControlWnd : public CATControl
00028 {
00029 public:
00030
00031 CATControlWnd( const CATString& element,
00032 const CATString& rootDir);
00033
00034 virtual ~CATControlWnd();
00035
00036 virtual CATWND GetControlWndHndl()
00037 {
00038 return fControlWnd;
00039 }
00040
00041
00042
00043
00044
00045 virtual void SetFocused(bool focused);
00046
00047
00048
00049
00050
00051 virtual void MarkDirty(CATRect* dirtyRect = 0, bool force = false);
00052
00053
00054
00055
00056
00057 virtual void Draw(CATImage* image, const CATRect& dirtyRect);
00058
00059
00060 virtual CATResult OnEvent(const CATEvent& event, CATInt32& retVal);
00061
00062
00063
00064 virtual void PostDraw(CATDRAWCONTEXT drawContext, const CATRect& dirtyRect);
00065
00066
00067 virtual bool GetPostRects(CATStack<CATRect>& rectStack);
00068
00069
00070
00071
00072
00073 virtual void OnParentCreate();
00074
00075
00076
00077
00078
00079 virtual void OnParentDestroy();
00080
00081 virtual void SetVisible(bool visible);
00082
00083
00084
00085
00086 virtual CATResult RectFromAttribs();
00087
00088
00089
00090 virtual CATColor GetColorFore() const;
00091
00092
00093
00094 virtual CATColor GetColorBack() const;
00095
00096
00097
00098 #ifdef CAT_CONFIG_WIN32
00099 HBRUSH GetBGBrush();
00100
00101 static LRESULT WINAPI CustomControlProc( HWND hWnd,
00102 UINT message,
00103 WPARAM wParam,
00104 LPARAM lParam);
00105
00106
00107 HBRUSH fFGBrush;
00108 HBRUSH fFGFocBrush;
00109 HBRUSH fFGDisBrush;
00110
00111
00112 HBRUSH fBGBrush;
00113 HBRUSH fBGFocBrush;
00114 HBRUSH fBGDisBrush;
00115
00116
00117
00118
00119
00120 CATInt32 fOldWndProc;
00121
00122 CATString fWindowType;
00123 CATUInt32 fWindowStyle;
00124
00125 #endif // CAT_CONFIG_WIN32
00126
00127
00128 virtual CATResult Load( CATPROGRESSCB progressCB = 0,
00129 void* progressParam= 0,
00130 CATFloat32 progMin = 0.0f,
00131 CATFloat32 progMax = 1.0f);
00132
00133
00134
00135
00136 virtual void OnEscapeChange() {}
00137
00138 virtual void SetEnabled(bool enabled);
00139 virtual void OSSetText(const CATString& newText);
00140 virtual void OSGetText(CATString& getText);
00141
00142 virtual CATString GetHint() const;
00143
00144 protected:
00145 CATRect fWndRect;
00146
00147
00148 virtual void OSDrawBorderRect(CATDRAWCONTEXT drawContext, CATRect& rect);
00149
00150
00151 virtual CATResult ParseAttributes();
00152
00153
00154 virtual CATResult OSCreate();
00155 virtual void OSCleanup();
00156
00157 CATWND fControlWnd;
00158
00159
00160
00161 virtual bool OnControlEvent(const CATEvent& event, CATInt32& returnVal);
00162
00163
00164 CATResult CreateControlWnd( const CATString& windowClass,
00165 CATUInt32 style );
00166
00167
00168
00169 CATColor fFGColor_focus;
00170 CATColor fBGColor_focus;
00171
00172
00173 CATColor fFGColor_border;
00174 CATColor fBGColor_border;
00175
00176 bool fFocusSet;
00177 bool fBorderSet;
00178
00179 bool fCaptured;
00180 };
00181
00182 #endif // _CATControlWnd_H_
00183
00184