home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / yacl-012.zip / ui / cursor.h < prev    next >
C/C++ Source or Header  |  1995-04-08  |  3KB  |  141 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. #ifndef _cursor_h_ /* Fri Apr  1 10:23:43 1994 */
  7. #define _cursor_h_
  8.  
  9.  
  10.  
  11.  
  12.  
  13. /*
  14.  *
  15.  *          Copyright (C) 1994, M. A. Sridhar
  16.  *  
  17.  *
  18.  *     This software is Copyright M. A. Sridhar, 1994. You are free
  19.  *     to copy, modify or distribute this software  as you see fit,
  20.  *     and to use  it  for  any  purpose, provided   this copyright
  21.  *     notice and the following   disclaimer are included  with all
  22.  *     copies.
  23.  *
  24.  *                        DISCLAIMER
  25.  *
  26.  *     The author makes no warranties, either expressed or implied,
  27.  *     with respect  to  this  software, its  quality, performance,
  28.  *     merchantability, or fitness for any particular purpose. This
  29.  *     software is distributed  AS IS.  The  user of this  software
  30.  *     assumes all risks  as to its quality  and performance. In no
  31.  *     event shall the author be liable for any direct, indirect or
  32.  *     consequential damages, even if the  author has been  advised
  33.  *     as to the possibility of such damages.
  34.  *
  35.  */
  36.  
  37.  
  38.  
  39.  
  40. // Author: M. A. Sridhar
  41.  
  42.  
  43. // This is an encapsulation of a cursor, which is the shape displayed at
  44. // the position of the mouse pointer ({\it sprite,} in X-windows
  45. // terminology). This value of this object may be modified via the
  46. // assignment operator it provides, thus changing
  47. // the shape displayed.
  48.  
  49.  
  50. #if defined(__GNUC__)
  51. #pragma interface
  52. #endif
  53.  
  54. enum UI_CursorType {
  55.     UICursor_Default
  56.   , UICursor_Arrow
  57.   , UICursor_Wait
  58.   , UICursor_CrossHairs
  59.   , UICursor_IBeam
  60. };
  61.  
  62. typedef long UI_CursorHandle;
  63.  
  64.  
  65. #include "base/string.h"
  66.  
  67. class CL_EXPORT UI_Cursor: public CL_Object {
  68.  
  69. public:
  70.  
  71.     // ------------------ Construction and destruction --------------------
  72.     
  73.     UI_Cursor (UI_CursorType type = UICursor_Default);
  74.     // Create a cursor with the given type.
  75.  
  76.     ~UI_Cursor ();
  77.  
  78.  
  79.     // ------------------------ Querying ---------------------------
  80.     
  81.     UI_CursorHandle Handle ();
  82.  
  83.     // -----------------------  Comparison -------------------------
  84.  
  85.     bool operator== (const UI_Cursor&) const;
  86.  
  87.     bool operator== (UI_CursorType t) const;
  88.     
  89.     bool operator== (const CL_Object&) const;
  90.     
  91.     bool operator!= (const UI_Cursor& c) const {return ! (*this == c);};
  92.  
  93.     bool operator!= (UI_CursorType t) const {return ! (*this == t);};
  94.     
  95.     bool operator!= (const CL_Object& o) const {return ! (*this == o);};
  96.     
  97.     // --------------------- Modification --------------------
  98.     
  99.     void operator= (UI_CursorType type);
  100.     // Change this cursor to be the given predefined type.
  101.     
  102.     void operator= (const char* cursor_name);
  103.     // Change this cursor to be the one with the given name.
  104.     // [Not yet available under OS/2 or Motif.]
  105.  
  106.     void operator= (const UI_Cursor&)
  107.         {NotImplemented ("op = (UI_Cursor&)");};
  108.  
  109.     void operator= (const CL_Object& o)
  110.         {NotImplemented ("op = (CL_Object&)");};
  111.     
  112. protected:
  113.  
  114.     void _Destroy ();
  115.     
  116.     UI_CursorType   _type;
  117.     CL_String       _name;
  118.     UI_CursorHandle _handle;
  119. };
  120.  
  121.  
  122.  
  123.  
  124. inline UI_CursorHandle UI_Cursor::Handle ()
  125. {
  126.     return _handle;
  127. }
  128.  
  129.  
  130. inline bool UI_Cursor::operator== (const CL_Object& o) const
  131. {
  132.     return operator== ((const UI_Cursor&) o);
  133. }
  134.  
  135. inline bool UI_Cursor::operator== (UI_CursorType t) const
  136. {
  137.     return _type == t;
  138. }
  139.  
  140. #endif /* _cursor_h_ */
  141.