home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool.zip / OOL / include / xfrmwnd.h < prev    next >
C/C++ Source or Header  |  1997-02-23  |  5KB  |  118 lines

  1. #ifndef __OOL_XFRAMEWND_H__
  2. #define __OOL_XFRAMEWND_H__
  3.  
  4. /*===========================================================================*/
  5. /* OOL ------------------- the Open Object Library ------------- OS/2 Beta 1 */
  6. /*===========================================================================*/
  7. /*                              class: XFrameWindow                          */
  8. /*                       derived from: XWindow                               */
  9. /*                        last update: 12/96                                 */
  10. /*                      programmed by: Stefan von Brauk (sbrauk@gwdg.de)     */
  11. /*===========================================================================*/
  12.  
  13.  
  14. #include "xwindow.h"
  15. #include "XRect.h"
  16. #include "XColor.h"
  17. #include "XString.h"
  18. #include "XHandler.h"
  19. #include "XPoint.h"
  20. #include "XCntrEvn.h"
  21. #include "XRes.h"
  22. #include "XScrlbar.h"
  23. #include "XMenu.h"
  24. #include "XProcess.h"
  25. #include "XIcon.h"
  26.  
  27. #ifdef OOL_FOR_OS2_X86
  28.    #define FRM_TITLEBAR         0x00000001
  29.    #define FRM_SYSMENU          0x00000002
  30.    #define FRM_SIZEBORDER       0x00000008
  31.    #define FRM_MINBUTTON        0x00000010
  32.    #define FRM_MAXBUTTON        0x00000020
  33.    #define FRM_CENTER           0x00080000
  34.    #define FRM_DIALOGBORDER     0x00000100
  35.    #define FRM_BORDER           0x00000200
  36.    #define FRM_TASKLIST         0x00000800
  37.    #define FRM_NOBYTEALIGN      0x00001000
  38.    #define FRM_NOMOVEWITHOWNER  0x00002000
  39.    #define FRM_ICON             0x00004000
  40.    #define FRM_ACCELTABLE       0x00008000
  41.    #define FRM_SYSMODAL         0x00010000
  42.    #define FRM_SCREENALIGN      0x00020000
  43.    #define FRM_MOUSEALIGN       0x00040000
  44.    #define FRM_HIDEBUTTON       0x01000000
  45.    #define FRM_HIDEMAX          0x01000020
  46.    #define FRM_AUTOICON         0x40000000
  47.    #define FRM_MENU             FCF_MENU
  48. #endif
  49.  
  50.  
  51. class _export_ XFrameWindow : public XWindow{
  52.       friend class XMenuBar;
  53.       friend class XPopupMenu;
  54.       friend class XFrameControl;
  55.       friend class XHelpInstance;
  56.       friend class XObjectWindow;
  57.       friend class XFrame;
  58.       friend class XToolBar;
  59.       friend MRESULT EXPENTRY DProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  60.       friend MRESULT EXPENTRY WindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  61.       friend MRESULT HandleFrameDefault( XFrameWindow * w, ULONG msg, MPARAM mp1, MPARAM mp2, BOOL& handled);
  62.       friend MRESULT EXPENTRY ScrollProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  63.    protected:
  64.       XScrollBar * vert, *horz;
  65.    public:
  66.       enum __WindowStyles__ {
  67.                 defaultStyle = FRM_TITLEBAR | FRM_SYSMENU | FRM_SIZEBORDER | FRM_MINBUTTON | FRM_MAXBUTTON | WIN_VISIBLE,
  68.                 defaultDialogStyle = FRM_TITLEBAR | FRM_SYSMENU | FRM_DIALOGBORDER | WIN_VISIBLE,
  69.                 defaultClientStyle = FRM_BORDER | WIN_VISIBLE
  70.       };
  71.    protected:
  72.       OOL_WINDOWHANDLE dummy;
  73.       XFrame * frameWin;
  74.       XWindow * clientWindow;
  75.       XFrameWindow * lockingWin;
  76.       OOL_WINDOWHANDLE frame, dlgHandle;
  77.       BOOL enabled;
  78.       PFNWP oldfunc;
  79.       LONG backCol;
  80.    public:
  81.       XFrameWindow( const XResource * resource,
  82.                      const char * title =NULL,
  83.                      const ULONG createstyle = defaultStyle,
  84.                      const XRect * rec = NULL,
  85.                      const XFrameWindow * parent=NULL,
  86.                      const BOOL buildFromResources = FALSE,
  87.                      const BOOL animate = FALSE);
  88.       virtual ~XFrameWindow();
  89.       void Activate( void );
  90.       virtual void DoControl( XControlEvent*) { ;}        
  91.       virtual void Draw ( void ) { ;}
  92.       void Enable( const BOOL enable = TRUE);
  93.       void EnableWindowUpdate ( const BOOL enable = TRUE ) const ;
  94.       void FillBackground( void );
  95.       virtual void GetBackgroundColor( XColor * rgbColor);
  96.       void GetClientSize( XRect *) const ;
  97.       OOL_WINDOWHANDLE GetHandle() const;
  98.       void GetSize( XRect* rect) const;
  99.       void GetText( XString * buffer );
  100.       XWindow * GetWindow( const ULONG id);
  101.       virtual void InitMenu( XMenu *) {;}
  102.       virtual BOOL QueryForClose( void ) { return TRUE; }
  103.       XMenuBar * GetMenu( void ) const ;
  104.       XProcess * GetProcess( void ) const ;
  105.       void SetBackgroundColor( const XColor*);
  106.       void SetBottom(void) const ;
  107.       BOOL SetClient( const XWindow * c);
  108.       void SetIcon( const XIcon *);
  109.       void SetSize( const XRect * rect) const;
  110.       void SetText(const char * buffer);
  111.       void SetTop(void) const;
  112.       void Show( const BOOL show=TRUE);
  113.       void ShowModal( XFrameWindow *  );
  114. };
  115.  
  116.  
  117. #endif
  118.