Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXWindow.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_cXWindow_H
7 #define _INC_cXWindow_H
8 #pragma once
9 
10 #include "../GrayGUI.h"
11 #include "../Style/cXSpriteMap.h"
12 
16 
19 #include "GrayLib/include/Input/cInputBase.h" // MBUTTON_TYPE
21 
22 namespace GrayGUI
23 {
24  // Extended class types here:
25  const SHOWWINDOW_t SW_TOGGLE = SW_MAX; // SHOWWINDOW_t
26 
27  const DLGID_t k_DLGID_Static = 0xFFFFFFFF; // IDC_STATIC = (DLGID_t)(-1);
28  const DLGID_t k_DLGID_User = 0x00010000; // start local user control id's here.
29  const DLGID_t k_DLGID_ANY = 0xFFFFFFFF; // Any match.
30 
31  enum XSTYLE_ELEM_TYPE;
32 
34  {
38 #define cXWindowClassDef(a,b,c,d) X_##a##_##b, // = FOURCC ?
39 #include "cXWindowClasses.tbl"
40 #undef cXWindowClassDef
41  X_WNDCLASS_QTY, // May be extended by user.
42  };
43 
44  typedef DWORD WINFLAG_MASK;
46  {
50 
51  WINFLAG_TAB_HIDDEN = 0x00000010,
53  WINFLAG_TOPMOST = 0x00000040,
54  WINFLAG_MODAL = 0x00000080,
55  WINFLAG_TOOLTIP_PARENT = 0x00000100,
56  WINFLAG_HIDETITLE = 0x00000200,
57  WINFLAG_HIDEFRAME = 0x00000400,
58  WINFLAG_TOOLTIP_FAST = 0x00000800,
59 
60  WINFLAG_USER_RADAR_ROSE = 0x00010000,
61  WINFLAG_USER_QUICK_VERT = 0x00020000,
63  //WINFLAG_USER2 = 0x00080000,
64  };
65 
66  typedef DWORD WINDOCKFLAG_MASK;
68  {
71  WINDOCKFLAG_NONE = 0x0000,
72  WINDOCKFLAG_LEFT = 0x0001,
74  WINDOCKFLAG_TOP = 0x0004,
75  WINDOCKFLAG_BOTTOM = 0x0008,
76  WINDOCKFLAG_SIDES = 0x000F,
83  WINDOCKFLAG_OFF = 0x1000,
84  };
85 
86  class cXDesktopMgr;
87  class cXMenu;
88  class cXWindow;
89  typedef cRefPtr<cXWindow> cXWindowPtr;
90  class cXDialog;
91  typedef cRefPtr<cXDialog> cXDialogPtr;
92 
93  class cXWindow : public cXObject, public IInputWnd, public cDXBase
94  {
98 
99  friend class cXDesktopMgr;
100  friend class cXDialog;
101  typedef cXObject SUPER_t;
102 
103  public:
104  cXWindow(X_WNDCLASS_TYPE eXWClass, cXWindow* pParent, DLGID_t dlgid = k_DLGID_Static, UID_t uid = cUID::k_CLEAR);
105  virtual ~cXWindow();
106 
107  virtual HRESULT DisposeThis(); // detach my children etc.
108  virtual bool InitXWindow();
109 
110  STDMETHOD_(XOBJTID_t, get_XObjTypeId)() const
111  {
112  return cFourCC('U', 'I', 'W', 'i'); // RESC_UIWindow;
113  }
114 
115  static const ATOMCHAR_t* GetXWTypeName(X_WNDCLASS_TYPE eXWClass);
117  {
118  return m_eXWClass;
119  }
120  const ATOMCHAR_t* get_XWTypeName() const
121  {
122  return GetXWTypeName(m_eXWClass);
123  }
124  STDMETHOD_(cString, get_Name)() const override
125  {
126  return get_Text();
127  // return get_XWTypeName();
128  }
129  virtual cXObjectPtr get_ContainerObject() const override
130  {
131  return m_pParentWnd.get_Ptr();
132  }
134 
135  //*****************************
136  // Scripting
137  STDMETHOD(s_PropGet)(const cScriptableProp* pProp, cVariant& vValRet) override;
138  STDMETHOD(s_PropPut)(const cScriptableProp* pProp, const cVariant& vVal) override;
139  STDMETHOD(s_Invoke)(const cScriptableMethod* pMethod, const cVariant& vArgs, cVariant& vValRet) override;
140 
142  enum P_TYPE_
143  {
144 #define cXWindowProp(a,b,c,d,e) P_##a,
145 #include "cXWindowProps.tbl"
146 #undef cXWindowProp
148  };
149  void s_Update(P_TYPE_ eProp);
151  enum M_TYPE_
152  {
153 #define cXWindowMethod(a,b,c) M_##a,
154 #include "cXWindowMethods.tbl"
155 #undef cXWindowMethod
157  };
159 
160  //*****************************
161  // Show state
162  virtual void ShowWindow(SHOWWINDOW_t nCmdShow = SW_SHOW);
163  void ShowWindowBool(bool bShow);
164  bool IsWindowVisible(void) const noexcept
165  {
166  return (m_dwStyle & WS_VISIBLE) != 0;
167  }
168  bool IsWindowEnabled(void) const noexcept
169  {
170  return (m_dwStyle & WS_DISABLED) == 0;
171  }
172  void EnableWindow(bool bClickable)
173  {
174  if (bClickable)
175  m_dwStyle &= ~WS_DISABLED;
176  else
177  m_dwStyle |= WS_DISABLED;
178  }
179  bool IsZoomed(void) const noexcept
180  {
181  if (IsIconic())
182  return false;
183  return(m_dwStyle & WS_MAXIMIZE) != 0;
184  }
185  bool IsIconic(void) const noexcept
186  {
187  return(m_dwStyle & WS_MINIMIZE) != 0;
188  }
189  bool IsWindowOpen() const noexcept
190  {
191  return IsWindowVisible() && !IsIconic();
192  }
193 
194  bool IsStyle(DWORD dwStyle) const noexcept
195  {
197  return (m_dwStyle & dwStyle) != 0;
198  }
199  DWORD get_Style(void) const noexcept
200  {
202  return m_dwStyle;
203  }
204  virtual void put_Style(DWORD dwStyle)
205  {
207  m_dwStyle = dwStyle;
208  }
209  void ModifyStyle(DWORD dwStyleAdd, DWORD dwStyleRem = 0)
210  {
212  put_Style((get_Style() & ~dwStyleRem) | dwStyleAdd);
213  }
214  void ModifyStyleBool(DWORD dwStyleMod, bool bFlag)
215  {
217  DWORD dwStyle = get_Style();
218  if (bFlag)
219  dwStyle |= dwStyleMod;
220  else
221  dwStyle &= ~dwStyleMod;
222  put_Style(dwStyle);
223  }
224 
225  bool IsExStyle(DWORD dwStyle) const noexcept
226  {
228  return((m_dwExStyle & dwStyle) != 0);
229  }
230  void put_ExStyle(DWORD dwStyle)
231  {
233  m_dwExStyle = dwStyle;
234  }
235 
236  WINFLAG_MASK get_Flags(void) const noexcept
237  {
238  return m_uWinFlags;
239  }
240  void put_Flags(WINFLAG_MASK uiFlags)
241  {
242  m_uWinFlags = uiFlags;
243  }
244  bool HasFlags(WINFLAG_MASK uiFlags) const noexcept
245  {
246  return (m_uWinFlags & uiFlags) != 0;
247  }
248  virtual void ModifyFlags(WINFLAG_MASK uiFlagsAdd, WINFLAG_MASK uiFlagsRem = 0)
249  {
250  m_uWinFlags &= ~uiFlagsRem;
251  m_uWinFlags |= uiFlagsAdd;
252  }
253 
254  WINDOCKFLAG_MASK get_DockFlags(void) const noexcept
255  {
256  return m_uDockFlags;
257  }
259  {
260  m_uDockFlags = dock;
261  }
262  bool ConstrainDocking(void);
263 
264  DLGID_t get_DlgID(void) const noexcept
265  {
266  return m_DlgItemId;
267  }
269  {
270  m_DlgItemId = id;
271  }
272  DLGID_t get_HelpID() const;
273 
274  cDXSpriteElem& get_TextureDC(void)
275  {
276  return m_TexElem;
277  }
278 
279  //**********************************************
280  // Position rectangle and z order
281 
282  PIXELS_t get_XPos(void) const noexcept
283  {
284  // Get my left coord in my parent coords.
285  return m_WindowRect.left;
286  }
287  PIXELS_t get_YPos(void) const noexcept
288  {
289  // Get my left coord in my parent coords.
290  return m_WindowRect.top;
291  }
292 
293  PIXELS_t get_Width(void) const noexcept
294  {
295  return m_WindowRect.Width();
296  }
297  PIXELS_t get_Height(void) const noexcept
298  {
299  return m_WindowRect.Height();
300  }
301 
302  void MoveWindow(PIXELS_t xParent, PIXELS_t yParent, PIXELS_t width, PIXELS_t height);
303  void MoveWindow(const cRectI& rect);
304 
305  const cRectI& get_WindowRect(void) const noexcept
306  {
307  // Get the window rectangle in my parents coords.
308  return m_WindowRect;
309  }
310  void CvtWindowToApp(cPoint2i* pPoint) const;
311  void CvtWindowToApp(cPoint2i* pPoint, PIXELS_t x, PIXELS_t y) const;
312  void CvtAppToWindow(cPoint2i* pPoint) const;
313  void CvtAppToWindow(cPoint2i* pPoint, PIXELS_t x, PIXELS_t y) const;
314 
315  HRESULT SetViewportWindow(cPoint2i& ptAbsolutePos);
316  void SetScissorWindow(cPoint2i& ptAbsolutePos);
317 
318  bool IsPointIntersect(PIXELS_t x, PIXELS_t y) const;
319  bool IsAppIntersect(PIXELS_t x, PIXELS_t y) const;
320  bool IsCursorIntersect() const;
321 
322  void ScaleAll(FLOAT fScale);
323 
324  void MoveToFront();
325  bool MoveToFront(cXWindow* pChildControl);
326 
327  //*****************************
328  // Render
329  virtual HRESULT InitDeviceObjects(cDXDevice* pDXDev);
330  virtual HRESULT DeleteDeviceObjects();
331  virtual HRESULT OnResetDeviceX();
332  virtual HRESULT OnLostDeviceX();
333  virtual void Render(); // render me and my children.
334  void RenderChildren();
335 
336  //*****************************
337  // Overridable accessors and methods
338  virtual void SetWidthHeight(PIXELS_t Width, PIXELS_t Height);
339  virtual void SetXYPos(PIXELS_t X, PIXELS_t Y);
340  void SetXYCenter();
341  void GetSizeParent(SIZE& sizeparent) const;
342 
343  //*****************************
344  // Overridable notifications.
345  virtual bool OnRender(void); // render just me and not my children.
346 
347  virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
348  virtual bool OnMouseWheel(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y, short nWheelChange);
349  virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
350  virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
351  virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
352 
353  virtual bool OnKeyDown(VK_TYPE vKey);
354  virtual bool OnKeyUp(VK_TYPE vKey);
355  virtual bool OnChar(VK_TYPE vKey);
356  virtual bool OnCommand(DLGID_t id, cXWindow* pCtrl, WORD wNotify);
357 
358  virtual DWORD OnNCHitTest(int x, int y) const;
359  virtual bool OnDrop(cXWindow* pDragged, cXWindow* pConsumer, bool bTest);
360  virtual void OnCancelMode()
361  {}
362  virtual void OnShowWindow(bool bShow, UINT nShowWindowCode);
363  virtual bool OnKeyFocus(bool bActive);
364 
365  virtual bool OnHelp() const;
366 
367  virtual void OnScroll(int iPos, cXWindow* pCtrl);
368  virtual void OnContextMenu(cXMenu* pMenu, cXWindow* pCtrl);
369  virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy);
370 
371  void FrameMoveTick(TIMESYS_t timeNow); // update me and my children.
372  virtual void onTick(void);
373  virtual bool CanTakeMouseInput() const;
374 
375  //************************************
376  // Children
377  int get_ChildQty() const noexcept
378  {
379  return m_aChildWindows.GetSize();
380  }
382  bool IsChildTypeOpen(X_WNDCLASS_TYPE xClassType, DLGID_t id = k_DLGID_ANY) const;
384  cXWindowPtr GetDlgItem(DLGID_t id, int iDescendChildren = 0) const;
385  int AddChildWindow(cXWindow* pChild, bool bAddBottom = false, SHOWWINDOW_t nShowCmd = SW_SHOWNORMAL);
387  bool IsMyDescendant(const cXWindow* pChild) const;
388  virtual cXWindowPtr GetConsumingControl(int x, int y, cXWindow* pIgnore = nullptr) const;
389  bool DetachFromParent();
390  void EnableWindowRange(DLGID_t idStart, DLGID_t idEnd, bool bEnable);
391 
392  //*****************************
393  // Attribute helpers.
394 
395  bool SendCommand(WORD wNotify) const;
396  cXWindowPtr get_ParentWindow(void) const noexcept
397  {
399  return m_pParentWnd;
400  }
401 
402  virtual bool LoadTextureFromFile(const FILECHAR_t* File, TEXTURELOAD_t uLoadFlags = TEXTURELOAD_NOP);
403  void LoadTextureBlank();
405  bool LoadTextureIcon(SPRITEID_t iIconIndex);
406 
407  COLOR_ELEM_t get_BackAlpha() const noexcept
408  {
410  return m_TexElem.get_Alpha();
411  }
412  virtual void put_BackAlpha(COLOR_ELEM_t bAlpha)
413  {
415  m_TexElem.put_Alpha(bAlpha);
416  }
418  {
419  return m_TexElem.get_SpriteColor();
420  }
422  {
423  m_TexElem.put_SpriteColor(color);
424  }
426  {
427  return m_NormalColor;
428  }
430  {
431  m_NormalColor = color;
432  put_BackColor(color);
433  }
434 
435  void put_ToolTip(const GChar_t* pstrToolTip);
436  virtual cString GetToolTip(cXWindow* pCtrl, int x, int y) const;
437 
438  virtual void put_Text(const GChar_t* pszText)
439  {
441  UNREFERENCED_PARAMETER(pszText);
442  }
443  virtual cString get_Text() const // any text associated with this window?
444  {
445  return "";
446  }
447  virtual void put_FontPtr(const cFontBase* pFont)
448  {
450  UNREFERENCED_PARAMETER(pFont);
451  }
452 
453  bool SetKeyFocus();
454 
455  void put_TickTimer(TIMESYSD_t dwTimeInc);
456 
457  public:
458  const X_WNDCLASS_TYPE m_eXWClass; // similar to the windows concept of a class
460 
462 
463  protected:
464  //Status
467  cDXSpriteElem m_TexElem;
469 
470  private:
471  DLGID_t m_DlgItemId;
472 
473  DWORD m_dwStyle;
474  DWORD m_dwExStyle;
475  WINDOCKFLAG_MASK m_uDockFlags;
476  WINFLAG_MASK m_uWinFlags;
477 
478  cString m_strToolTip;
479  TIMESYSD_t m_timeTickFreq;
480  cTimeSys m_timeTickLast;
481  };
482 
483  class cXWindowText : public cXWindow
484  {
487 
488  typedef cXWindow SUPER_t;
489 
490  public:
491  cFontPtr m_pFont; // the font associated with any text in this window.
492 
493  public:
494  cXWindowText(X_WNDCLASS_TYPE eXWClass, cXWindow* pParent, DLGID_t dlgid = k_DLGID_Static, UID_t uid = cUID::k_CLEAR);
495  virtual ~cXWindowText();
496 
497  virtual void put_FontPtr(const cFontBase* pFont) override
498  {
499  m_pFont = pFont;
500  }
501 
503  {
504  if (m_pFont != nullptr)
505  {
506  m_pFont->InitDeviceObjects(pDXDev);
507  }
508  return __super::InitDeviceObjects(pDXDev);
509  }
511  {
512  if (m_pFont != nullptr)
513  {
514  m_pFont->DeleteDeviceObjects();
515  }
516  return __super::DeleteDeviceObjects();
517  }
519  {
520  if (m_pFont != nullptr)
521  {
522  m_pFont->OnLostDeviceX();
523  }
524  return __super::OnLostDeviceX();
525  }
527  {
528  if (m_pFont != nullptr)
529  {
530  m_pFont->OnResetDeviceX();
531  }
532  return __super::OnResetDeviceX();
533  }
534  };
535 
537 }
538 
539 #endif // _INC_cXWindow_H
#define UNREFERENCED_PARAMETER(P)
< _WIN32 type thing. get rid of stupid warning.
Definition: SysTypes.h:299
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
DWORD D3DCOLOR
Stuff normally defined in windows.h or DirectX headers.
Definition: cColorRef.h:24
int VK_TYPE
a type of physical key in _WIN32. "#define VK_UP" etc. NOT the same as a scan code.
Definition: cInputBase.h:27
Definition: cDXBase.h:20
Definition: cDXDevice.h:20
Definition: cXDesktopMgr.h:47
Definition: cXDialog.h:96
Definition: cXMenu.h:17
Definition: cXWindow.h:484
cFontPtr m_pFont
Definition: cXWindow.h:491
virtual HRESULT OnResetDeviceX()
Definition: cXWindow.h:526
virtual ~cXWindowText()
Definition: cXWindowText.cpp:19
virtual void put_FontPtr(const cFontBase *pFont) override
Definition: cXWindow.h:497
virtual HRESULT DeleteDeviceObjects()
Definition: cXWindow.h:510
virtual HRESULT InitDeviceObjects(cDXDevice *pDXDev)
Definition: cXWindow.h:502
virtual HRESULT OnLostDeviceX()
Definition: cXWindow.h:518
cXWindowText(X_WNDCLASS_TYPE eXWClass, cXWindow *pParent, DLGID_t dlgid=k_DLGID_Static, UID_t uid=cUID::k_CLEAR)
Definition: cXWindowText.cpp:13
Definition: cXWindow.h:94
virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXWindow.cpp:1043
virtual cString get_Text() const
Definition: cXWindow.h:443
static const ATOMCHAR_t * k_XWindowClassNames[X_WNDCLASS_QTY+1]
Definition: cXWindow.h:459
bool IsZoomed(void) const noexcept
Definition: cXWindow.h:179
int get_ChildQty() const noexcept
Definition: cXWindow.h:377
virtual void put_Text(const GChar_t *pszText)
Definition: cXWindow.h:438
cXWindowPtr FindChildByType(X_WNDCLASS_TYPE XClassType, DLGID_t id=k_DLGID_ANY) const
Definition: cXWindow.cpp:764
cXWindowPtr GetDlgItem(DLGID_t id, int iDescendChildren=0) const
Definition: cXWindow.cpp:790
D3DCOLOR get_NormalColor() const
Definition: cXWindow.h:425
virtual void OnScroll(int iPos, cXWindow *pCtrl)
Definition: cXWindow.cpp:1216
void ScaleAll(FLOAT fScale)
Definition: cXWindow.cpp:545
virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXWindow.cpp:1083
const ATOMCHAR_t * get_XWTypeName() const
Definition: cXWindow.h:120
void ModifyStyle(DWORD dwStyleAdd, DWORD dwStyleRem=0)
Definition: cXWindow.h:209
cColorDX m_NormalColor
foreground color.
Definition: cXWindow.h:461
void MoveWindow(PIXELS_t xParent, PIXELS_t yParent, PIXELS_t width, PIXELS_t height)
Definition: cXWindow.cpp:288
STDMETHOD() s_PropPut(const cScriptableProp *pProp, const cVariant &vVal) override
Definition: cXWindow.cpp:1378
virtual HRESULT OnResetDeviceX()
Definition: cXWindow.cpp:898
bool IsExStyle(DWORD dwStyle) const noexcept
Definition: cXWindow.h:225
STDMETHOD_(XOBJTID_t, get_XObjTypeId)() const
Definition: cXWindow.h:110
CSCRIPT_CLASS_DEF1(XWindow, cXObject)
cDXSpriteElem & get_TextureDC(void)
Definition: cXWindow.h:274
virtual bool OnKeyDown(VK_TYPE vKey)
Definition: cXWindow.cpp:1092
DWORD get_Style(void) const noexcept
Definition: cXWindow.h:199
PIXELS_t get_YPos(void) const noexcept
Definition: cXWindow.h:287
bool IsWindowVisible(void) const noexcept
Definition: cXWindow.h:164
PIXELS_t get_Height(void) const noexcept
Definition: cXWindow.h:297
virtual bool OnKeyUp(VK_TYPE vKey)
Definition: cXWindow.cpp:1100
virtual HRESULT DisposeThis()
utility
Definition: cXWindow.cpp:98
bool IsPointIntersect(PIXELS_t x, PIXELS_t y) const
Definition: cXWindow.cpp:396
void SetXYCenter()
Definition: cXWindow.cpp:280
cRectI m_WindowRect
Current coords relative to my m_pParentWnd.
Definition: cXWindow.h:466
bool IsCursorIntersect() const
Definition: cXWindow.cpp:426
cDXSpriteElem m_TexElem
Background texture if we are using one. defines back color also.
Definition: cXWindow.h:467
int AddChildWindow(cXWindow *pChild, bool bAddBottom=false, SHOWWINDOW_t nShowCmd=SW_SHOWNORMAL)
Definition: cXWindow.cpp:812
const X_WNDCLASS_TYPE m_eXWClass
Definition: cXWindow.h:458
bool ConstrainDocking(void)
Definition: cXWindow.cpp:602
virtual HRESULT OnLostDeviceX()
Definition: cXWindow.cpp:889
virtual bool OnKeyFocus(bool bActive)
Definition: cXWindow.cpp:1141
PIXELS_t get_XPos(void) const noexcept
Definition: cXWindow.h:282
virtual bool OnDrop(cXWindow *pDragged, cXWindow *pConsumer, bool bTest)
Definition: cXWindow.cpp:1116
cXWindow(X_WNDCLASS_TYPE eXWClass, cXWindow *pParent, DLGID_t dlgid=k_DLGID_Static, UID_t uid=cUID::k_CLEAR)
Definition: cXWindow.cpp:38
X_WNDCLASS_TYPE get_XWType() const
Definition: cXWindow.h:116
STDMETHOD() s_Invoke(const cScriptableMethod *pMethod, const cVariant &vArgs, cVariant &vValRet) override
Definition: cXWindow.cpp:1408
DLGID_t get_HelpID() const
Definition: cXWindow.cpp:121
void put_NormalColor(D3DCOLOR color)
Definition: cXWindow.h:429
HRESULT SetViewportWindow(cPoint2i &ptAbsolutePos)
Definition: cXWindow.cpp:384
bool SendCommand(WORD wNotify) const
Definition: cXWindow.cpp:1259
void put_DockFlags(WINDOCKFLAG_MASK dock)
Definition: cXWindow.h:258
P_TYPE_
Definition: cXWindow.h:143
@ P_QTY
Definition: cXWindow.h:147
void put_Flags(WINFLAG_MASK uiFlags)
Definition: cXWindow.h:240
bool IsChildTypeOpen(X_WNDCLASS_TYPE xClassType, DLGID_t id=k_DLGID_ANY) const
Definition: cXWindow.cpp:782
virtual bool OnChar(VK_TYPE vKey)
Definition: cXWindow.cpp:1125
cArrayRef< cXWindow > m_aChildWindows
z ordered array of children. [0]=draw on top. [qty]=draw on bottom
Definition: cXWindow.h:468
void EnableWindow(bool bClickable)
Definition: cXWindow.h:172
PIXELS_t get_Width(void) const noexcept
Definition: cXWindow.h:293
bool IsAppIntersect(PIXELS_t x, PIXELS_t y) const
Definition: cXWindow.cpp:410
WINDOCKFLAG_MASK get_DockFlags(void) const noexcept
Definition: cXWindow.h:254
void EnableWindowRange(DLGID_t idStart, DLGID_t idEnd, bool bEnable)
Definition: cXWindow.cpp:872
virtual bool LoadTextureFromFile(const FILECHAR_t *File, TEXTURELOAD_t uLoadFlags=TEXTURELOAD_NOP)
Definition: cXWindow.cpp:1284
virtual void ModifyFlags(WINFLAG_MASK uiFlagsAdd, WINFLAG_MASK uiFlagsRem=0)
Definition: cXWindow.h:248
void RenderChildren()
Definition: cXWindow.cpp:928
virtual void put_Style(DWORD dwStyle)
Definition: cXWindow.h:204
cXDialogPtr get_DialogParent() const
Definition: cXWindow.cpp:153
cXWindowPtr EnumChild(ITERATE_t index) const
Definition: cXWindow.cpp:759
void put_DlgID(DLGID_t id)
Definition: cXWindow.h:268
static cScriptableProp sm_Props[P_QTY+1]
Definition: cXWindow.h:150
void put_TickTimer(TIMESYSD_t dwTimeInc)
Definition: cXWindow.cpp:984
STDMETHOD_(cString, get_Name)() const override
Definition: cXWindow.h:124
virtual bool OnMouseWheel(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y, short nWheelChange)
Definition: cXWindow.cpp:1133
DLGID_t get_DlgID(void) const noexcept
Definition: cXWindow.h:264
void CvtWindowToApp(cPoint2i *pPoint) const
Definition: cXWindow.cpp:333
virtual bool CanTakeMouseInput() const
Definition: cXWindow.cpp:506
virtual bool OnRender(void)
Definition: cXWindow.cpp:964
STDMETHOD() s_PropGet(const cScriptableProp *pProp, cVariant &vValRet) override
Definition: cXWindow.cpp:1345
bool IsIconic(void) const noexcept
Definition: cXWindow.h:185
virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy)
Definition: cXWindow.cpp:1160
void put_BackColor(D3DCOLOR color)
Definition: cXWindow.h:421
cXWindowPtr m_pParentWnd
Set when someone calls AddChildWindow(pMe) for me on my parent.
Definition: cXWindow.h:465
bool LoadTextureIcon(SPRITEID_t iIconIndex)
Definition: cXWindow.cpp:1320
virtual cXObjectPtr get_ContainerObject() const override
Definition: cXWindow.h:129
void MoveToFront()
Definition: cXWindow.cpp:590
cXWindowPtr get_ParentWindow(void) const noexcept
Definition: cXWindow.h:396
virtual void OnCancelMode()
Definition: cXWindow.h:360
bool HasFlags(WINFLAG_MASK uiFlags) const noexcept
Definition: cXWindow.h:244
static cScriptableMethod sm_Methods[M_QTY+1]
Definition: cXWindow.h:158
bool IsWindowEnabled(void) const noexcept
Definition: cXWindow.h:168
bool LoadTextureStyleElem(XSTYLE_ELEM_TYPE eStyleElem, TEXTURELOAD_t uLoadFlags=TEXTURELOAD_NOP)
Definition: cXWindow.cpp:1302
void FrameMoveTick(TIMESYS_t timeNow)
Definition: cXWindow.cpp:994
virtual void OnContextMenu(cXMenu *pMenu, cXWindow *pCtrl)
Definition: cXWindow.cpp:1174
COLOR_ELEM_t get_BackAlpha() const noexcept
Definition: cXWindow.h:407
M_TYPE_
Definition: cXWindow.h:152
@ M_QTY
Definition: cXWindow.h:156
virtual DWORD OnNCHitTest(int x, int y) const
Definition: cXWindow.cpp:1108
void ShowWindowBool(bool bShow)
Definition: cXWindow.cpp:232
virtual cString GetToolTip(cXWindow *pCtrl, int x, int y) const
Definition: cXWindow.cpp:745
virtual void put_BackAlpha(COLOR_ELEM_t bAlpha)
Definition: cXWindow.h:412
bool IsMyDescendant(const cXWindow *pChild) const
Definition: cXWindow.cpp:864
virtual HRESULT DeleteDeviceObjects()
Definition: cXWindow.cpp:917
virtual cXWindowPtr GetConsumingControl(int x, int y, cXWindow *pIgnore=nullptr) const
Definition: cXWindow.cpp:450
void GetSizeParent(SIZE &sizeparent) const
Definition: cXWindow.cpp:265
virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXWindow.cpp:1073
virtual void SetWidthHeight(PIXELS_t Width, PIXELS_t Height)
Definition: cXWindow.cpp:256
bool SetKeyFocus()
Definition: cXWindow.cpp:1273
bool DetachFromParent()
Definition: cXWindow.cpp:88
virtual void OnShowWindow(bool bShow, UINT nShowWindowCode)
Definition: cXWindow.cpp:1166
void SetScissorWindow(cPoint2i &ptAbsolutePos)
Definition: cXWindow.cpp:371
virtual void put_FontPtr(const cFontBase *pFont)
Definition: cXWindow.h:447
bool IsStyle(DWORD dwStyle) const noexcept
Definition: cXWindow.h:194
void LoadTextureBlank()
Definition: cXWindow.cpp:1278
virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXWindow.cpp:1023
virtual void ShowWindow(SHOWWINDOW_t nCmdShow=SW_SHOW)
Definition: cXWindow.cpp:173
virtual void onTick(void)
Definition: cXWindow.cpp:979
virtual bool OnCommand(DLGID_t id, cXWindow *pCtrl, WORD wNotify)
Definition: cXWindow.cpp:1228
bool IsWindowOpen() const noexcept
Definition: cXWindow.h:189
D3DCOLOR get_BackColor() const
Definition: cXWindow.h:417
virtual bool OnHelp() const
Definition: cXWindow.cpp:1197
virtual ~cXWindow()
Definition: cXWindow.cpp:63
void GetWidthHeightForChildren(OUT cRectI &rect, PIXELS_t dx, PIXELS_t dy)
Definition: cXWindow.cpp:431
static const ATOMCHAR_t * GetXWTypeName(X_WNDCLASS_TYPE eXWClass)
Definition: cXWindow.cpp:76
void s_Update(P_TYPE_ eProp)
Definition: cXWindow.cpp:1335
virtual void SetXYPos(PIXELS_t X, PIXELS_t Y)
Definition: cXWindow.cpp:240
const cRectI & get_WindowRect(void) const noexcept
Definition: cXWindow.h:305
void put_ToolTip(const GChar_t *pstrToolTip)
Definition: cXWindow.cpp:738
virtual HRESULT InitDeviceObjects(cDXDevice *pDXDev)
Definition: cXWindow.cpp:908
void ModifyStyleBool(DWORD dwStyleMod, bool bFlag)
Definition: cXWindow.h:214
virtual void Render()
Definition: cXWindow.cpp:949
void CvtAppToWindow(cPoint2i *pPoint) const
Definition: cXWindow.cpp:300
WINFLAG_MASK get_Flags(void) const noexcept
Definition: cXWindow.h:236
void put_ExStyle(DWORD dwStyle)
Definition: cXWindow.h:230
virtual bool InitXWindow()
Definition: cXWindow.cpp:1018
Definition: cColorRef.h:147
Definition: cFont.h:20
Definition: cFourCC.h:96
Definition: cPoint2.h:20
Definition: cRectI.h:22
TYPE Height() const noexcept
Definition: cRectT.h:415
TYPE Width() const noexcept
Definition: cRectT.h:404
TYPE left
Definition: cRectT.h:35
TYPE top
Definition: cRectT.h:35
const cVariant & vArgs
Definition: cScriptableObj.h:61
Definition: cScriptableInterface.h:97
static const UID_t k_CLEAR
Hard coded UID_t values.
Definition: cUID.h:32
Definition: cVariant.h:26
Definition: cXObject.h:78
Definition: cArrayRef.h:21
TYPE * get_Ptr() const noexcept
Definition: cPtrFacade.h:53
Definition: cTimeSys.h:93
DWORD TEXTURELOAD_t
mask of TEXTURELOAD_TYPE_
Definition: cXTextureFile.h:41
@ TEXTURELOAD_NOP
load default. demand load.
Definition: cXTextureFile.h:23
Definition: GrayGUI.cpp:11
const DLGID_t k_DLGID_ANY
Definition: cXWindow.h:29
const DLGID_t k_DLGID_Static
Definition: cXWindow.h:27
const SHOWWINDOW_t SW_TOGGLE
Definition: cXWindow.h:25
const DLGID_t k_DLGID_User
Definition: cXWindow.h:28
X_WNDCLASS_TYPE
Definition: cXWindow.h:34
@ X_WNDCLASS_QTY
Definition: cXWindow.h:41
@ X_WNDCLASS_INVALID
Definition: cXWindow.h:37
XSTYLE_ELEM_TYPE
Definition: cXStyleSheet.h:17
WINDOCKFLAG_TYPE_
Definition: cXWindow.h:68
@ WINDOCKFLAG_OFF_MASK
cant turn these off!
Definition: cXWindow.h:82
@ WINDOCKFLAG_OFF
temporary turn off docking.
Definition: cXWindow.h:83
@ WINDOCKFLAG_RIGHT
Definition: cXWindow.h:73
@ WINDOCKFLAG_ALLINPARENT
make sure my size is in parent
Definition: cXWindow.h:81
@ WINDOCKFLAG_MAXSIZE
fill my parents client area.
Definition: cXWindow.h:79
@ WINDOCKFLAG_HCENTER
Definition: cXWindow.h:77
@ WINDOCKFLAG_BOTTOM
fixed distance to the bottom
Definition: cXWindow.h:75
@ WINDOCKFLAG_VCENTER
Definition: cXWindow.h:78
@ WINDOCKFLAG_SIDES
Mask.
Definition: cXWindow.h:76
@ WINDOCKFLAG_HEADINPARENT
make sure my position is in parent
Definition: cXWindow.h:80
@ WINDOCKFLAG_NONE
who cares.
Definition: cXWindow.h:71
@ WINDOCKFLAG_TOP
Definition: cXWindow.h:74
@ WINDOCKFLAG_LEFT
Definition: cXWindow.h:72
WINFLAG_TYPE_
Definition: cXWindow.h:46
@ WINFLAG_TAB_HIDDEN
Maximize when restoring. eqiv of WPF_RESTORETOMAXIMIZED.
Definition: cXWindow.h:51
@ WINFLAG_USER_RADAR_ROSE
Put up the tool-tip fast.
Definition: cXWindow.h:60
@ WINFLAG_RESTORETOMAXIMIZED
Definition: cXWindow.h:49
@ WINFLAG_HIDETITLE
pass tool tip to parent.
Definition: cXWindow.h:56
@ WINFLAG_TOOLTIP_FAST
Hide the dialog frame AND WINFLAG_HIDETITLE.
Definition: cXWindow.h:58
@ WINFLAG_MODAL
Top most window.
Definition: cXWindow.h:54
@ WINFLAG_TOOLTIP_PARENT
Definition: cXWindow.h:55
@ WINFLAG_HIDEFRAME
Hide the dialog title bar ~WS_CAPTION.
Definition: cXWindow.h:57
@ WINFLAG_SHOWWINDOW_CALLED
TAB pressed for this dialog so it was hidden.
Definition: cXWindow.h:52
@ WINFLAG_USER_QUICK_VERT
no radar rose
Definition: cXWindow.h:61
@ WINFLAG_USER_RADAR_FACEUP
vertical orientation
Definition: cXWindow.h:62
@ WINFLAG_TOPMOST
We have done ShowWindow() at least once.
Definition: cXWindow.h:53
cRefPtr< cXWindow > cXWindowPtr
Definition: cXToolTipMgr.h:17
DWORD WINFLAG_MASK
Definition: cXWindow.h:44
cRefPtr< cXDialog > cXDialogPtr
Definition: cXDesktopMgr.h:16
DWORD WINDOCKFLAG_MASK
Definition: cXWindow.h:66
cRefPtr< cXWindowText > cXWindowTextPtr
Definition: cXWindow.h:536
FOURCC XOBJTID_t
a unique FOURCC id for a type of XObject, 0=k_XOBJTID_NULL, MAKEFOURCC(a,b,c,d). Equiv to GUID for IU...
Definition: IXObject.h:42
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
BYTE COLOR_ELEM_t
A single 8 bit color element. alpha, red, green, or blue intensity as 0-255.
Definition: cColorRef.h:34
MBUTTON_TYPE
Definition: cInputBase.h:40
interface const RECTQ_t & rect
Definition: cQuadtree.h:44
int PIXELS_t
Count of pixels in a dimension of some image/surface.
Definition: cSurfaceInfo.h:20
HASHCODE32_t UID_t
Sort of the same as a HASHCODE_t. not the same as UIDINDEX_t.
Definition: cUID.h:18
INT32 TIMESYSD_t
Time delta. signed milli-Seconds Span. cTimeSys::k_DMAX, cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:28
int ITERATE_t
like size_t but signed
Definition: Index.h:28
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
char ATOMCHAR_t
the char form (UNICODE or not) for an atom. (for symbolic names)
Definition: StrConst.h:15
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26
UINT32 TIMESYS_t
TIMESYS_t = The normal system tick timer. milli-seconds since start of system/app ?
Definition: cTimeSys.h:27
uint16 index
Definition: sample3.cpp:29
Definition: cInputBase.h:97