home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: SysTools / SysTools.zip / taman002.zip / TASKMANA.ZIP / src / kDlgBase.h < prev    next >
C/C++ Source or Header  |  2000-04-29  |  6KB  |  152 lines

  1. /* $Id: kDlgBase.h,v 1.1 2000/04/29 19:06:34 stknut Exp $
  2.  *
  3.  * kDlgBase (kClassLib) - Declaration of dialog base class.
  4.  *
  5.  * Copyright (c) 1999-2000 knut st. osmundsen
  6.  *
  7.  */
  8.  
  9. #ifndef _kDlgBase_h_
  10. #define _kDlgBase_h_
  11.  
  12.  
  13.  
  14. /*********************/
  15. /* required includes */
  16. /*********************/
  17. #ifndef INCL_WINDIALOGS
  18.     #error "INCL_WINDIALOGS not defined"
  19. #endif
  20.  
  21. #ifndef INCL_WINFRAMEMGR
  22.     #error "INCL_WINFRAMEMGR not defined"
  23. #endif
  24.  
  25.  
  26. /***************************************/
  27. /* "stub" structs in optional includes */
  28. /***************************************/
  29. #ifndef INCL_WINSTDDRAG_INCLUDED
  30. typedef struct _DRAGINFO
  31. {
  32.     int i;
  33. } DRAGINFO, *PDRAGINFO;
  34. #endif
  35.  
  36. #ifndef INCL_WINSTDCNR_INCLUDED
  37. typedef struct _RECORDCORE
  38. {
  39.     int i;
  40. } RECORDCORE, *PRECORDCORE;
  41. typedef struct _MINIRECORDCORE
  42. {
  43.     int i;
  44. } MINIRECORDCORE, *PMINIRECORDCORE;
  45. typedef struct _FIELDINFO
  46. {
  47.     int i;
  48. } FIELDINFO, *PFIELDINFO;
  49. #endif
  50.  
  51.  
  52.  
  53. /**
  54.  * @description Base class for OS/2 dialogs.
  55.  * @purpose     A common base class for all dialogs.
  56.  * @author      knut st. osmundsen
  57.  */
  58. class kDlgBase
  59. {
  60. private:
  61.     ULONG controlIntern(USHORT id, USHORT usNotifyCode, ULONG ulControlSpec); //WM_CONTROL
  62.  
  63. protected:
  64.     HWND           hwnd;
  65.     PDLGTEMPLATE   pDlgTemplate;
  66.     BOOL           fModal;
  67.  
  68.     /**@cat Operations */
  69.     ULONG     timerStart(ULONG idTimer, ULONG dtTimeout);
  70.     BOOL      timerStop(ULONG idTimer);
  71.  
  72.     /**@cat Mouse events */
  73.     virtual BOOL  button1Click(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON1CLICK
  74.     virtual BOOL  button1DblClick(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON1DBLCLK
  75.     virtual BOOL  button1Down(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON1CLICK
  76.     virtual BOOL  button2Click(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON2CLICK
  77.     virtual BOOL  button2DblClick(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON2DBLCLK
  78.     virtual BOOL  button2Down(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON2CLICK
  79.     virtual BOOL  button3Click(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON3CLICK
  80.     virtual BOOL  button3DblClick(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON3DBLCLK
  81.     virtual BOOL  button3Down(POINTS ptsPointerPos, USHORT fsHitTestres, USHORT fsFlags); //WM_BUTTON3CLICK
  82.  
  83.  
  84.     /**@cat Common events*/
  85.     virtual VOID  command(USHORT usCmd, USHORT usSource, BOOL fPointer); //WM_COMMAND
  86.     virtual ULONG control(USHORT id, USHORT usNotifyCode, ULONG ulControlSpec); //WM_CONTROL
  87.     virtual VOID  destroy(); //WM_DESTROY
  88.     virtual BOOL  initDlg(HWND hwndFocus); //WM_INITDLG
  89.     virtual VOID  initMenu(USHORT usMenuId, HWND hwndMnu); //WM_INITMENU
  90.     virtual VOID  menuEnd(USHORT usMenuId, HWND hwndMnu); //WM_ENDMENU
  91.     virtual VOID  sysCommand(USHORT usCmd, USHORT usSource, BOOL fPointer); //WM_SYSCOMMAND
  92.     virtual VOID  close(); //WM_CLOSE
  93.     virtual VOID  timer(ULONG idTimer);
  94.     virtual VOID  size(SHORT cxOld, SHORT cyOld, SHORT cxNew, SHORT cyNew); // WM_SIZE
  95.     virtual BOOL  adjustWindowPos(PSWP pswp); //WM_ADJUSTWINDOWPOS
  96.     virtual VOID  adjustFramePos(PSWP pswp, HSAVEWP hsavewphsvwp); //WM_ADJUSTFRAMEPOS
  97.  
  98.  
  99.     /**@cat Container notification virtual functions */
  100.     virtual VOID  cnrBeginEdit(USHORT usId, ULONG cb, HWND hwndCnr, PRECORDCORE pRecord, PFIELDINFO pFieldInfo, PSZ *ppszText, ULONG cbText, ULONG id);
  101.     virtual VOID  cnrCollapseTree(USHORT usId, PRECORDCORE pRecord);
  102.     virtual VOID  cnrContextMenu(USHORT usId, PRECORDCORE pRecord);
  103.     virtual ULONG cnrDragAfter(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo);
  104.     virtual VOID  cnrDragLeave(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo);
  105.     virtual ULONG cnrDragOver(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo);
  106.     virtual VOID  cnrDrop(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo);
  107.     virtual VOID  cnrDropNotify(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo, HWND hwndTarget);
  108.     virtual VOID  cnrDropHelp(USHORT usId, PRECORDCORE pRecord, PDRAGINFO pDragInfo);
  109.     virtual VOID  cnrEmphasis(USHORT usId, HWND hwndCnr, PRECORDCORE pRecord, ULONG fEmphasisMask);
  110.     virtual VOID  cnrEndEdit(USHORT usId, ULONG cb, HWND hwndCnr, PRECORDCORE pRecord, PFIELDINFO pFieldInfo, PSZ *ppszText, ULONG cbText, ULONG id);
  111.     virtual VOID  cnrEnter(USHORT usId, HWND hwndCnr, PRECORDCORE pRecord, ULONG fKey);
  112.     virtual VOID  cnrExpandTree(USHORT usId, PRECORDCORE pRecord);
  113.     virtual VOID  cnrGridResized(USHORT usId, SHORT sGridRows, SHORT sGridCols);
  114.     virtual VOID  cnrHelp(USHORT usId, PRECORDCORE pRecord);
  115.     virtual VOID  cnrInitDrag(USHORT usId, HWND hwndCnr, PRECORDCORE pRecord, LONG x, LONG y, LONG cx, LONG cy);
  116.     virtual VOID  cnrKillFocus(USHORT usId, HWND hwndCnr);
  117.     virtual VOID  cnrPickup(USHORT usId, HWND hwndCnr, PRECORDCORE pRecord, LONG x, LONG y, LONG cx, LONG cy);
  118.     virtual VOID  cnrQueryDelta(USHORT usId, HWND hwndCnr, ULONG fDelta);
  119.     virtual VOID  cnrReallocPSZ(USHORT usId, ULONG cb, HWND hwndCnr, PRECORDCORE pRecord, PFIELDINFO pFieldInfo, PSZ *ppszText, ULONG cbText, ULONG id);
  120.     virtual VOID  cnrScroll(USHORT usId, HWND hwndCnr, LONG lScrollInc, ULONG fScroll);
  121.     virtual VOID  cnrSetFocus(USHORT usId, HWND hwndCnr);
  122.  
  123. public:
  124.     /**@cat Constructor/Destructor */
  125.     kDlgBase(ULONG ulResId, HMODULE hmodRes, HWND hwndOwner, HWND hwndParent = HWND_DESKTOP) throw (kError);
  126.     kDlgBase(PCSZ pszTitle, ULONG id, ULONG flDialogStyle, ULONG flDialogCreate,
  127.              LONG x, LONG y, LONG cx, LONG cy,
  128.              HWND hwndOwner, HWND hwndParent = HWND_DESKTOP) throw (kError);
  129.     ~kDlgBase();
  130.  
  131.     /**@cat public methods */
  132.     BOOL    hide();
  133.     BOOL    show();
  134.     ULONG   showModal();
  135.     BOOL    setTitle(PCSZ pszTitle);
  136.     BOOL    resize(LONG cx, LONG cy);
  137.     BOOL    resizeAndMove(LONG x, LONG y, LONG cx, LONG cy);
  138.  
  139.     BOOL    queryRectangle(PRECTL prectl);
  140.  
  141.     /**@cat queries */
  142.     HWND    getHwnd();
  143.  
  144.     /**@cat public methods */
  145.     MRESULT msgLoop(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  146.  
  147.     BOOL    setDlgItemText(ULONG ulId, PCSZ pszFormat, ...);
  148.  
  149. };
  150.  
  151. #endif
  152.