home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dokpr1.zip / view.h < prev    next >
C/C++ Source or Header  |  1995-09-29  |  24KB  |  521 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *                                                                        *
  4.  *          This code is copyright (c) 1994                               *
  5.  *                     Athena Design, Inc.                                *
  6.  *                                                                        *
  7.  *                                                                        *
  8.  *                ALL RIGHTS RESERVED                                     *
  9.  *                                                                        *
  10.  *                                                                        *
  11.  *                                                                        *
  12.  *                                                                        *
  13.  *                                                                        *
  14.  **************************************************************************/
  15.  
  16. /*
  17.  
  18.     This is an OS/2 class that handles abstract views.  A view is a
  19.     display region that can be placed inside a window.  It is implemented
  20.     as an OS/2 window and is a sub-class of the OS/2 Window class
  21.  
  22. */
  23.  
  24. #ifndef _MH_view
  25.  
  26. #define _MH_view
  27.  
  28.  
  29. #include "os2h.h"
  30. #include "object.h"
  31. #include "color.h"
  32. #include "format.h"
  33. #include "font.h"
  34.  
  35. class MFont;
  36. class MChange;
  37. class MRect;
  38. class MPoint;
  39. class MDraw;
  40.  
  41. #if defined(M2Z) || defined(M2NT)
  42. //class MView : public MWindow
  43. class MView : public MObject
  44. #elif defined(M2MAC)
  45. #include "bview.h"
  46.  
  47. class MView : public MBView
  48. #endif
  49. {
  50.     public:
  51.     MView( MView *,int, HWND = 0);
  52.     virtual void setView(HWND h);
  53.     virtual void setHWND(HWND);
  54.     virtual ~MView();
  55.     virtual void setUp(const MRect *,int = 0);
  56.     virtual void cleanUp();
  57.     virtual int drawSelf(MDraw *,const MRect *);
  58.     virtual void setViewPos(const MRect *);
  59.  
  60.     // if you subclass and still want d&d font and color support,
  61.     // make sure you call this method
  62.     // virtual MRESULT winHitTest(HWND,ULONG,MPARAM,MPARAM,int &);
  63.  
  64.     virtual void setSuperview( MView *h ) { superview = h; superHWND = h -> getView(); };
  65.     virtual void setSuperSuperHWND( HWND h ) { supersuperHWND = h; };
  66.     virtual void setFocus();
  67.  
  68. #if defined(M2Z) || defined(M2NT)
  69.     virtual MRESULT winPresParamChanged(HWND,ULONG,MPARAM,MPARAM,int &);
  70. #endif
  71.  
  72.     virtual void colorDroppedAt(MColor,int,int) {};
  73.     virtual void bkgColorDroppedAt(MColor,int,int) {};
  74.     virtual void fontDroppedAt(const MFont *,int,int) {};
  75.  
  76. //#ifdef M2MAC
  77.     virtual MView *getSuperview() {return superview;};
  78. //#else
  79.     // FIXMENT
  80.     // FIXMEOS - revise the view hierarchy to make MView the superclass of MWindow
  81. //    virtual MWindow *getSuperview() {return superview;};
  82. //#endif
  83.  
  84.  
  85.      virtual HWND getSuperHWND() { return superHWND; };
  86.  
  87.     //virtual HWND getSuperview() {return superview;};
  88.     //virtual void setSuperview(HWND h) {superview = h;};
  89.     virtual void setSuperHWND( HWND h ) { superHWND = h;};
  90.  
  91.      //virtual MRESULT winHelp(HWND,ULONG,MPARAM,MPARAM,int &);
  92.     
  93.     // virtual int contextMenu( const MPoint *,int &);
  94.     virtual int getObjectMenu();
  95.  
  96.      virtual const MFont *getFont() { return &viewFont; };
  97.      virtual const MFormat *getFormat() { return &viewFormat; };
  98.      virtual void setFont( const MFont *newFont )
  99.          { viewFont.init( newFont ); };
  100.      virtual void setFormat( const MFormat *newFormat )
  101.          { viewFormat.init( newFormat ); };
  102.          
  103.          
  104.     virtual void invalidateRect(const MRect *);
  105.     virtual void validateRect(const MRect *);
  106.     virtual void getInvalidRect(MRect *);
  107.  
  108.     virtual HWND getView();
  109.  
  110.     virtual void aboutToDestroy();
  111.     virtual int size(int,int,int,int,int &) {return 0;};
  112.     virtual void getViewRect(MRect *);
  113.     virtual void getClientWindowViewRect(MRect *);
  114.  
  115.     virtual int activate( unsigned long, int, int &) {return 0;};
  116.     virtual int Mhelp( unsigned int, int & );
  117.     virtual int command( unsigned int, int & ) { return 0; };
  118.     virtual int comboButton( int & ) { return 0; };
  119.     virtual int contextMenu( const MPoint *, int & );
  120.     virtual int control( unsigned int, unsigned int, int & ) { return 0; };
  121.     // mouseMove takes a new point, and keyboard flags
  122.     virtual int mouseMove( const MPoint *, int, int &) {return 0;};
  123.     // MsetFocus takes the current window, the focus-window, a state
  124.     // (1 = getting focus, 0 = losing focus)
  125.     virtual int MsetFocus( unsigned long, unsigned long, int, int & ) { return 0; };
  126.     // sysCommand takes a command, a source, and a mouse-or-keyboard flag
  127.     virtual int sysCommand( unsigned int, int, int, int & ) { return 0; };
  128.     // close
  129.     virtual int Mclose(HWND, int & ) {return 0;};
  130.  
  131.     virtual int hasDrawSelf() {return 0;};
  132.     virtual float getDrawScale() {return 1.0;};
  133.  
  134.     virtual void mouse1Down(const MPoint *,int,int &) {};
  135.     virtual void mouse2Down(const MPoint *,int,int &) {};
  136.     virtual void mouse3Down(const MPoint *,int,int &) {};
  137.     virtual void mouse1Up(const MPoint *,int,int &) {};
  138.     virtual void mouse2Up(const MPoint *,int,int &) {};
  139.     virtual void mouse3Up(const MPoint *,int,int &) {};
  140.     virtual void mouse1Click(const MPoint *,int,int &) {};
  141.     virtual void mouse2Click(const MPoint *,int,int &) {};
  142.     virtual void mouse3Click(const MPoint *,int,int &) {};
  143.     virtual void mouse1DblClick(const MPoint *,int,int &) {};
  144.     virtual void mouse2DblClick(const MPoint *,int,int &) {};
  145.     virtual void mouse3DblClick(const MPoint *,int,int &) {};
  146.     virtual void mouse1MotionStart(int &) {};
  147.     virtual void mouse1MotionEnd(int &) {};
  148.     virtual void mouse2MotionStart(int &) {};
  149.     virtual void mouse2MotionEnd(int &) {};
  150.     virtual void mouse3MotionStart(int &) {};
  151.     virtual void mouse3MotionEnd(int &) {};
  152.  
  153.     virtual int vertScroll( int, int, int, int & ) { return 0; };
  154.     virtual int horizScroll( int, int, int, int & ) { return 0; };
  155.  
  156.     virtual int positionChanged( int, int & ) { return 0; };
  157.     virtual int winPing(int,int) {return 0;};
  158.  
  159.     virtual int changedSize(MChange *) {return 0;};
  160.     virtual int resetView(MChange *) {return 0;};
  161.  
  162.     virtual void percentChanged(int) {};
  163.     virtual int bufferWindow() {return 0;};
  164.     virtual void updateLayerNumber(int,int) {};
  165.     //dpr added
  166.      virtual void memOpenRevert(int &) {};
  167.  
  168.     // sent to a window when a display format has changed
  169.     virtual void formatChanged(MChange *) {};
  170.  
  171.     // sent to a window when the data in the worksheet has changed
  172.     virtual void contentsChanged(MChange *) {};
  173.  
  174.     // force a window re-draw
  175.     virtual void update();
  176.  
  177.     virtual int canExecute(int,int &flags) {flags = 0; return 0;};
  178.     virtual int handleChar( unsigned int, unsigned int, int & ) { return 0; };
  179.  
  180.     virtual void cycleCalcIndicator() {};
  181.     virtual int winUpdateSheet(MChange *) {return 0;};
  182.  
  183.     // perform a REXX function
  184.     virtual void threadRexxFuncs() {};
  185.  
  186.     virtual void enableDialogWindow( unsigned int, unsigned int, int );
  187.  
  188. #if defined(M2Z) || defined(M2NT)
  189.     virtual HWND getFrameWindow() {return frame;};
  190.     virtual HWND getClientWindow() {return view;};
  191.  
  192.     virtual void getFrameRect(MRect *);
  193.     // virtual void getClientWindowViewRect(MRect *);
  194.     virtual void getRect(MRect *re) {getClientWindowViewRect(re);};
  195.     // virtual void getViewRect(MRect *re) {getClientWindowViewRect(re);};
  196.  
  197.     virtual void setFrameWindow(HWND h) {frame = h;};
  198.     virtual void setClientWindow(HWND h) {view = h;};
  199.  
  200.     virtual void getFrameRectL(RECTL *);
  201.     
  202. // #if defined(M2Z) || defined(M2NT)
  203. #endif
  204.  
  205.     virtual void setCaptureOn(int);
  206.  
  207. /*
  208. #ifdef M2MAC
  209.     // virtual void setUp(const MRect *);
  210. #else
  211.      virtual void setCapture(HWND h) {WinSetCapture(HWND_DESKTOP,h);};
  212. #endif
  213. */
  214.  
  215. #if defined(M2Z) || defined(M2NT)
  216.     // these methods handle various different workspace manager
  217.     // messages
  218.     virtual MRESULT winAdjustWindowPos(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  219.     virtual MRESULT winCalcFrameRect(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  220.     virtual MRESULT winCalcValidRects(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  221.     virtual MRESULT winCreate(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  222.     virtual MRESULT winDestroy(HWND,ULONG,MPARAM,MPARAM,int &);
  223.     virtual MRESULT winEnable(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  224.     virtual MRESULT winMove(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  225.     virtual MRESULT winPaint(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  226.     virtual MRESULT winQueryWindowParams(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  227.     virtual MRESULT winSetWindowParams(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  228.     virtual MRESULT winShow(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  229.     virtual MRESULT winPositionChanged(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  230.     virtual MRESULT winEraseBackground(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  231.     virtual MRESULT winMenuSelect(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  232.     virtual MRESULT winInitMenu(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  233.     virtual MRESULT winControlPointer(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  234.     virtual MRESULT winDrawItem(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  235.     virtual MRESULT winFocusChanged(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  236.     //virtual MRESULT winHelp(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  237.     virtual MRESULT winMeasureItem(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  238.     virtual MRESULT winMenuEnd(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  239.     virtual MRESULT winNextMenu(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  240.     virtual MRESULT winQueryFocusPos(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  241.     virtual MRESULT winQueryConvertPos(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  242.     virtual MRESULT winNull(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  243.     virtual MRESULT winHitTest(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  244.     virtual MRESULT winSetSelection(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  245.     virtual MRESULT winPPaint(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  246.     virtual MRESULT winPSetFocus(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  247.     virtual MRESULT winPSysColorChange(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  248.     virtual MRESULT winPSize(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  249.     virtual MRESULT winPActivate(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  250.     virtual MRESULT winPControl(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  251.     virtual MRESULT winTimer(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  252.     virtual MRESULT winSem1(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  253.     virtual MRESULT winSem2(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  254.     virtual MRESULT winSem3(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  255.     virtual MRESULT winSem4(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  256.     virtual MRESULT winQuit(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  257.     virtual MRESULT winSysColorChange(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  258.     virtual MRESULT winSysValueChanged(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  259.     virtual MRESULT winAppTerminateNotify(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  260. //    virtual MRESULT winPresParamChanged(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  261.     virtual MRESULT winQueryDlgCode(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  262.     virtual MRESULT winInitDlg(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  263.     virtual MRESULT winSubstituteString(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  264.     virtual MRESULT winMatchMnemonic(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  265.     virtual MRESULT winSaveApplication(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  266.     virtual MRESULT winMouseLasr(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  267.     virtual MRESULT winExtMouseFirst(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  268.     virtual MRESULT winExtMouseLast(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  269.     virtual MRESULT winMouseTranslateFirst(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  270.     virtual MRESULT winMouseTranslateLast(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  271.     virtual MRESULT winSingleSelect(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  272.     virtual MRESULT winOpen(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  273.     virtual MRESULT winTextEdit(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  274.     virtual MRESULT winBeginSelect(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  275.     virtual MRESULT winMouseLast(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  276.     virtual MRESULT winContextHelp(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  277.     virtual MRESULT winChar(HWND,ULONG,MPARAM,MPARAM,int &);
  278.     virtual MRESULT winVioChar(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  279.     virtual MRESULT winBeginDrag(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  280.     virtual MRESULT winDDEAck(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  281.     virtual MRESULT winDDEAdvise(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  282.     virtual MRESULT winDDEData(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  283.     virtual MRESULT winDDEExecute(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  284.     virtual MRESULT winDDEInitiate(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  285.     virtual MRESULT winDDEInitiateAck(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  286.     virtual MRESULT winDDEPoke(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  287.     virtual MRESULT winDDERequest(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  288.     virtual MRESULT winDDETerminate(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  289.     virtual MRESULT winDDEUnadvise(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  290.     virtual MRESULT winDestroyClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  291.     virtual MRESULT winDrawClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  292.     virtual MRESULT winFlashWindow(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  293.     virtual MRESULT winFormatFrame(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  294.     virtual MRESULT winHScrollClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  295.     virtual MRESULT winJournalNotify(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  296.     virtual MRESULT winMinMaxFrame(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  297.     virtual MRESULT winPaintClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  298.     virtual MRESULT winQueryAccelTable(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  299.     virtual MRESULT winQueryFocusChain(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  300.     virtual MRESULT winQueryFrameCount(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  301.     virtual MRESULT winQueryFrameInfo(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  302.     virtual MRESULT winQueryIcon(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  303.     virtual MRESULT winQueryTrackInfo(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  304.     virtual MRESULT winRenderAllFmts(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  305.     virtual MRESULT winRenderFmt(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  306.     virtual MRESULT winSetAccelTable(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  307.     virtual MRESULT winSetBorderSize(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  308.     virtual MRESULT winSetIcon(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  309.     virtual MRESULT winSizeClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  310.     virtual MRESULT winTrackFrame(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  311.     virtual MRESULT winTranslateAccel(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  312.     virtual MRESULT winUpdateFrame(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  313.     virtual MRESULT winVScrollClipboard(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  314.     virtual MRESULT winDefault(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  315.     virtual MRESULT winEndSelect(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  316.     virtual MRESULT winEndDrag(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  317.     virtual void getClientWindowViewRectL(RECTL *);
  318.     virtual void getRectL(RECTL *re) {getClientWindowViewRectL(re);};
  319. /*
  320.     virtual HWND createStdWindow(HWND,ULONG,PULONG,PSZ,
  321.                 ULONG,HMODULE,ULONG,PHWND);
  322. */
  323.  
  324.     virtual HWND createWindow (HWND,PSZ,ULONG,LONG,LONG,LONG,LONG,
  325.                 HWND ,HWND);
  326.     virtual PFNWP getWinProc() {return frameWindowProc;};
  327.  
  328.     virtual void setWinProc(PFNWP);
  329.  
  330.  
  331.     // stuff that OS/2 SHOULD provide
  332.     virtual void getItemText(int id,char *text);
  333.     virtual void setItemText(int id,const char *text);
  334.     virtual double getItemValue(int id);
  335.     virtual void setItemValue(int,double);
  336.     virtual int getButtonValue(int);
  337.     virtual void setButtonValue(int,int);
  338.     virtual int getSpinValue(int);
  339.     virtual void setSpinValue(int,int);
  340.     virtual int getSelectValue(int);
  341.     virtual void setSelectValue(int,int);
  342.     virtual int getRadioValue(int numItems,const int *itemList);
  343.     virtual void setRadioValue(int val,int numItems,const int *itemList);
  344.     virtual int itemNumFromList(int item,int num,const int *itemList);
  345.     virtual HWND getWindowFromControl( HWND, int );
  346.     virtual int getListItem( HWND );
  347.     virtual void setListItem( HWND, int );
  348.     virtual void getListItemText( HWND, char *cBuf );
  349.  
  350.  
  351. #endif
  352.  
  353. #if defined(M2Z)
  354.     // OS/2-specific method functions -- if an application needs to,
  355.     // it can override any of these methods for direct access.  All
  356.     // are provided in a generic, unpacked form, tho, for cross-platform
  357.     // access
  358.     
  359.     virtual MRESULT winVScroll(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  360.     virtual MRESULT winHScroll(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  361.     virtual MRESULT winSize(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  362.     virtual MRESULT winSetFocus(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  363.     virtual MRESULT winSysCommand(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  364.     virtual MRESULT winMouseMove(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  365.     virtual MRESULT winClose(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  366.     virtual MRESULT winActivate(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  367.     virtual MRESULT winHelp(HWND,ULONG,MPARAM,MPARAM,int &);
  368.     virtual MRESULT winCommand(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  369.     virtual MRESULT winChord(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  370.     virtual MRESULT winContextMenu(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  371.     virtual MRESULT winControl(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  372.  
  373.  
  374. // mouse messages that should be unnecessary/unused?
  375.     virtual MRESULT winButton1(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  376.     virtual MRESULT winButton2(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  377.     virtual MRESULT winButton3(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  378.     virtual MRESULT winButton1Up(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  379.     virtual MRESULT winButton1Click(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  380.     virtual MRESULT winButton3DoubleClick(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  381.     virtual MRESULT winButton2Up(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  382.     virtual MRESULT winButton2DoubleClick(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  383.     virtual MRESULT winButton3Up(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  384.     virtual MRESULT winButton1MotionStart(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  385.     virtual MRESULT winButton1MotionEnd(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  386.     virtual MRESULT winButton1DoubleClick(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  387.     virtual MRESULT winButton3Click(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  388.     virtual MRESULT winButton2MotionStart(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  389.     virtual MRESULT winButton2MotionEnd(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  390.     virtual MRESULT winButton2Click(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  391.     virtual MRESULT winButton3MotionStart(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  392.     virtual MRESULT winButton3MotionEnd(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  393.  
  394.     // drag & drop support
  395.     // 94-09-21 dpp
  396.     virtual MRESULT winDragRenderPrepare(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  397.     virtual MRESULT winDragDiscardObject(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  398.     virtual MRESULT winDragError(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  399.     virtual MRESULT winDragFileComplete(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  400.     virtual MRESULT winDragLeave(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  401.     virtual MRESULT winDragOver(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  402.     virtual MRESULT winDragOverNotify(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  403.     virtual MRESULT winDragDrop(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  404.     virtual MRESULT winDragDropHelp(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  405.     virtual MRESULT winDragEmphasizeTarget(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  406.     virtual MRESULT winDragEndConversation(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  407.     virtual MRESULT winDragFileRendered(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  408.     virtual MRESULT winDragPrintObject(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  409.     virtual MRESULT winDragRender(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  410.     virtual MRESULT winDragRenderComplete(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  411.     virtual MRESULT winDragRenderFile(HWND,ULONG,MPARAM,MPARAM,int &) {return 0;};
  412.  
  413.     static MView *windowInProcess;
  414. #endif
  415.  
  416.     protected:
  417.     HWND menu;
  418.  
  419.     private:
  420.     MView *superview;
  421.     HWND superHWND;
  422.     HWND supersuperHWND;        // used to pass messages up to the super-parent
  423.     //int doneInit;
  424.     MFormat viewFormat;
  425.     MFont viewFont;
  426.  
  427. #if defined(M2Z) || defined(M2NT)
  428.     HWND view;
  429.     HWND frame;
  430.     PFNWP frameWindowProc;
  431. #endif
  432. };
  433.  
  434. #ifdef M2MAC
  435. #define WM_USER 1000
  436.  
  437. // some command numbers that we have to implement in Mesa to get the message posting stuff
  438. // to work correctly
  439. // 95-08-07 dpp
  440.  
  441. #define WM_CLOSE             (WM_USER - 1)
  442. #define WM_COMMAND             (WM_USER - 2)
  443.  
  444. // here are some constant window numbers for window message posting
  445. // 95-08-07 dpp
  446. #define MApplicationFrameWindowNum        -1
  447.  
  448. #endif
  449.  
  450. // update all windows belonging to a sheet mp1 - the sheet, mp2 - null
  451. const int MEM_UPDATE = (WM_USER + 1);
  452. const int MEM_PING = (WM_USER + 2);
  453. const int MEM_CHANGEDSIZE = (WM_USER + 3);
  454. const int MEM_PERCENT = (WM_USER + 4);
  455. const int MEM_FMT_CHANGED = (WM_USER + 5);
  456. const int MEM_CONTENTS_CHANGED = (WM_USER + 6);
  457. const int MEM_ADJUST_MAX = (WM_USER + 7);
  458. const int MEM_SET_LAYER = (WM_USER + 8); // sent to a window when the layer is changed
  459. const int MEM_REXX = (WM_USER + 9); // do a REXX thing
  460. const int MEM_CALC = (WM_USER + 13); // calc indicator
  461. const int MEM_RESET_VIEW = (WM_USER + 11); // reset the view
  462. const int MEM_OPEN_REVERT = (WM_USER + 12 ); // file revert to saved...
  463.  
  464. // Mesa-specific key masks, rather than OS/2 specific ones...
  465. const int MESA_SHIFT             = 0x0001;
  466. const int MESA_ALT                = 0x0002;
  467. const int MESA_CTRL                = 0x0004;
  468. const int MESA_NUMERICKEYPAD    = 0x0008;
  469. const int MESA_NUMLOCK            = 0x0010;
  470. const int MESA_SCROLLLOCK     = 0x0020;
  471.  
  472. const int LEFTARROW = 0x4be0;
  473. const int CLEFTARROW = 0x73e0;
  474. const int RIGHTARROW = 0x4de0;
  475. const int CRIGHTARROW = 0x74e0;
  476. const int ESCCHAR = 0x11b;
  477. const int UPARROW = 0x48e0;
  478. const int DOWNARROW = 0x50e0;
  479.  
  480. const int DELKEY        = 0x53e0;
  481. const int KPDELKEY    = 0x5300;
  482. const int INSERTKEY    = 0x52e0;
  483. const int KPINSERTKEY = 0x5200;
  484. const int HOMEKEY        = 0x47e0;
  485. const int KPHOMEKEY    = 0x4700;
  486. const int ENDKEY        = 0x4fe0;
  487. const int KPENDKEY    = 0x4f00;
  488. const int PGUPKEY        = 0x49e0;
  489. const int KPPGUPKEY    = 0x4900;
  490. const int PGDWNKEY    = 0x51e0;
  491. const int KPPGDWNKEY    = 0x5100;
  492. const int PGLEFTKEY    = 0x84e0;
  493. const int PGRIGHTKEY    = 0x76e0;
  494.  
  495. const int F1KEY = 0x3b0000;
  496. const int F2KEY = 0x3c0000;
  497. const int F3KEY = 0x3d0000;
  498. const int F4KEY = 0x3e0000;
  499. const int F5KEY = 0x3f0000;
  500. const int F6KEY = 0x400000;
  501. const int F7KEY = 0x410000;
  502. const int F8KEY = 0x420000;
  503. const int F9KEY = 0x430000;
  504.  
  505. const int RETURNKEY = 13;
  506. const int ENTERKEY = 10;
  507. const int TABKEY = 9;
  508. const int BKTABKEY = 7;
  509.  
  510. const int NUMLOCKKEY = 0x001D0000;
  511.  
  512. // the following are the names of window classes that will be pre-registered
  513.  
  514.  
  515. #define M_APP_WINDOW "MesaAW"
  516.  
  517. // ifndef _MH_view
  518. #endif
  519.  
  520.  
  521.