home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / object10 / omfc.h < prev    next >
C/C++ Source or Header  |  1994-12-21  |  7KB  |  255 lines

  1. /* Copyright (c) Oracle Corporation 1994.  All Rights Reserved */
  2.  
  3. /*
  4.     This source code is provided as a debugging aid for developers
  5.     who have purchased Oracle Objects for OLE    .  Please see the
  6.     provided help file for documentation of these classes.
  7.  
  8. */
  9.  
  10. /*
  11.     Oracle Objects for OLE    
  12.     C++ classes for bound Widget support
  13.     MFC version
  14.     
  15.     CREATED    ********   11/22/94
  16.  
  17. */
  18.  
  19. #ifndef OMFC_ORACLE
  20. #define OMFC_ORACLE
  21.  
  22. #ifndef OBOUND_ORACLE
  23. #include "obound.h"
  24. #endif
  25.  
  26. #define OBOUND_READONLY   TRUE
  27. #define OBOUND_READWRITE  FALSE
  28.  
  29. //-----------------------------
  30. // OMFCBound: a derived OBound class for MFC
  31.  
  32. class OMFCBound : public OBound
  33. {
  34. public:
  35.     OMFCBound(void);
  36.     ~OMFCBound(void);
  37.     
  38. protected:
  39.     oresult Subclass(CWnd *bwnd, CWnd *wnd, int itemid);
  40.     BOOL IsBound(void) {return m_isbound;}
  41.     BOOL   m_isbound;
  42. };
  43.  
  44.  
  45. //-----------------------------
  46. // OBoundEdit: a bound edit control
  47.  
  48. class OBoundEdit : public CEdit, public OMFCBound
  49. {
  50. // Construction
  51. public:
  52.     OBoundEdit();
  53.    
  54.     // declarations of methods so that compiler won't implement these (which would be wrong)
  55.     // at present we don't implement these either...
  56.     OBoundEdit(const OBoundEdit &other);  // copy constructor
  57.     OBoundEdit &operator=(const OBoundEdit &other);  // overloaded assignment
  58.  
  59.     oresult BindToControl(CWnd *wnd, int itemid) {return Subclass(this, wnd, itemid);}
  60.     oresult SetProperty(BOOL mode=OBOUND_READWRITE);
  61.  
  62. // Implementation
  63. public:
  64.     virtual ~OBoundEdit();
  65.  
  66. protected:
  67.     // Generated message map functions
  68.     //{{AFX_MSG(OBoundEdit)
  69.     afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  70.     //}}AFX_MSG
  71.     DECLARE_MESSAGE_MAP()
  72.  
  73. private:
  74.     oresult Refresh(const OValue &val); 
  75.     oresult SaveChange(void);
  76.     BOOL    m_mode;    // readonly/readwrite mode
  77. };
  78.  
  79.  
  80. /////////////////////////////////////////////////////////////////////////////
  81. // OBoundStatic: a bound static control
  82.  
  83. class OBoundStatic : public CStatic, public OMFCBound
  84. {
  85. // Construction
  86. public:
  87.     OBoundStatic();
  88.  
  89.     // declarations of methods so that compiler won't implement these (which would be wrong)
  90.     // at present we don't implement these either...
  91.     OBoundStatic(const OBoundStatic &other);  // copy constructor
  92.     OBoundStatic &operator=(const OBoundStatic &other);  // overloaded assignment
  93.  
  94.     oresult BindToControl(CWnd *wnd, int itemid) {return Subclass(this, wnd, itemid);}
  95.  
  96. // Operations
  97. public:
  98.  
  99. // Overrides
  100.     // ClassWizard generate virtual function overrides
  101.     //{{AFX_VIRTUAL(OBoundStatic)
  102.         // NOTE - the ClassWizard will add and remove member functions here.
  103.     //}}AFX_VIRTUAL
  104.  
  105. // Implementation
  106. public:
  107.     virtual ~OBoundStatic();
  108.  
  109.     // Generated message map functions
  110. protected:
  111.     //{{AFX_MSG(OBoundStatic)
  112.         // NOTE - the ClassWizard will add and remove member functions here.
  113.     //}}AFX_MSG
  114.     DECLARE_MESSAGE_MAP()
  115.  
  116. private:
  117.     oresult Refresh(const OValue &val); 
  118.     oresult SaveChange(void) {return OSUCCESS;}
  119. };
  120.  
  121. //----------------------------
  122. // OBoundCheckBox: a bound checkbox control
  123.  
  124. class OBoundCheckBox : public CButton, public OMFCBound
  125. {
  126. // Construction
  127. public:
  128.     OBoundCheckBox();
  129.  
  130.     OBoundCheckBox(const OBoundCheckBox &other);  // copy constructor
  131.     OBoundCheckBox &operator=(const OBoundCheckBox &other);  // overloaded assignment
  132.  
  133.     oresult BindToControl(CWnd *wnd, int itemid) {return Subclass(this, wnd, itemid);}
  134.     oresult SetProperty(const OValue &onvalue, const OValue &offvalue, BOOL mode=OBOUND_READWRITE); 
  135.  
  136. // Operations
  137. public:
  138.  
  139. // Overrides
  140.     // ClassWizard generate virtual function overrides
  141.     //{{AFX_VIRTUAL(OBoundCheckBox)
  142.         // NOTE - the ClassWizard will add and remove member functions here.
  143.     //}}AFX_VIRTUAL
  144.  
  145. // Implementation
  146. public:
  147.     virtual ~OBoundCheckBox();
  148.  
  149.     // Generated message map functions
  150. protected:
  151.     //{{AFX_MSG(OBoundCheckBox)
  152.     afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  153.     afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  154.     //}}AFX_MSG
  155.     DECLARE_MESSAGE_MAP()
  156.  
  157. private:
  158.     oresult Refresh(const OValue &val); 
  159.     oresult SaveChange(void);
  160.     BOOL    m_mode;             // readonly/readwrite mode
  161.     BOOL    m_tristate;         // tri-state flag
  162.     OValue  m_onvalue;          // represented value when checked
  163.     OValue  m_offvalue;         // represented value when unchecked
  164.     OValue  m_curvalue;   
  165. };
  166.  
  167.  
  168. // button list element structure
  169. struct buttonlist
  170. {
  171.   void    *button;   // derived c++ radio button pointer
  172.   OValue  *value;           // value for this button
  173.   int itemid;               // button id in the parent's window
  174.   buttonlist  *next;        // pointer to the next button list element
  175. };  
  176.  
  177. //---------------------------------
  178. // OBoundGroupButton: a bound radio button group control
  179.  
  180. class OBoundGroupButton : public OMFCBound
  181. {
  182. // Construction
  183. public:
  184.     OBoundGroupButton();
  185.  
  186.     OBoundGroupButton(const OBoundGroupButton &other);  // copy constructor
  187.     OBoundGroupButton &operator=(const OBoundGroupButton &other);  // overloaded assignment
  188.  
  189.     oresult BindToControl(CWnd *wnd, int itemid);
  190.     oresult SetProperty(int itemid, const OValue &value, BOOL mode=OBOUND_READWRITE);
  191. // Operations
  192. public:
  193.  
  194.     virtual ~OBoundGroupButton();
  195.     
  196.     // for internal use (don't call)
  197.     void ButtonChanged(void *button);
  198.  
  199. private:
  200.     oresult Refresh(const OValue &val); 
  201.     oresult SaveChange(void);
  202.     BOOL    m_mode;         // readonly/readwrite mode
  203.     buttonlist *m_head;     // head of buttonlist
  204.     buttonlist *m_tail;     // tail of buttonlist
  205.     buttonlist *m_current;  // currently checked radio button
  206. };
  207.  
  208. //----------------------------
  209. // OBoundSlider: a bound scrollbar + static control
  210.  
  211. class OBoundSlider : public CWnd, public OMFCBound
  212. {
  213. // Construction
  214. public:
  215.     OBoundSlider();
  216.  
  217.     OBoundSlider(const OBoundSlider &other);  // copy constructor
  218.     OBoundSlider &operator=(const OBoundSlider &other);  // overloaded assignment
  219.  
  220.     oresult BindToControl(CWnd *wnd, int scrollbarid, int staticid);
  221.     oresult SetProperty(const OValue &min, const OValue &max, BOOL mode=OBOUND_READWRITE);
  222.  
  223. // Operations
  224. public:
  225.  
  226. // Overrides
  227.     // ClassWizard generate virtual function overrides
  228.     //{{AFX_VIRTUAL(OBoundSlider)
  229.         // NOTE - the ClassWizard will add and remove member functions here.
  230.     //}}AFX_VIRTUAL
  231.  
  232. // Implementation
  233. public:
  234.     virtual ~OBoundSlider();
  235.  
  236.     // Generated message map functions
  237. protected:
  238.     //{{AFX_MSG(OBoundSlider)
  239.     afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  240.     afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  241.     //}}AFX_MSG
  242.     DECLARE_MESSAGE_MAP()
  243. private:
  244.     oresult Refresh(const OValue &val); 
  245.     oresult SaveChange(void);
  246.     BOOL    m_mode;                     // readonly/readwrite mode
  247.     void   *m_scrollbar;           // embedded derived scrollbar object
  248.     CStatic m_static;                   // embedded static object
  249.     int     m_minvalue;                 // minimum value
  250.     int     m_maxvalue;                 // maximum value
  251.     int     m_currentvalue;             // current value
  252. };
  253.  
  254. #endif
  255.