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

  1.  
  2. #ifndef _resource_h_
  3. #define _resource_h_
  4.  
  5.  
  6.  
  7.  
  8.  
  9. /*
  10.  *
  11.  *          Copyright (C) 1994, M. A. Sridhar
  12.  *  
  13.  *
  14.  *     This software is Copyright M. A. Sridhar, 1994. You are free
  15.  *     to copy, modify or distribute this software  as you see fit,
  16.  *     and to use  it  for  any  purpose, provided   this copyright
  17.  *     notice and the following   disclaimer are included  with all
  18.  *     copies.
  19.  *
  20.  *                        DISCLAIMER
  21.  *
  22.  *     The author makes no warranties, either expressed or implied,
  23.  *     with respect  to  this  software, its  quality, performance,
  24.  *     merchantability, or fitness for any particular purpose. This
  25.  *     software is distributed  AS IS.  The  user of this  software
  26.  *     assumes all risks  as to its quality  and performance. In no
  27.  *     event shall the author be liable for any direct, indirect or
  28.  *     consequential damages, even if the  author has been  advised
  29.  *     as to the possibility of such damages.
  30.  *
  31.  */
  32.  
  33.  
  34.  
  35. // Authors:   M. A. Sridhar
  36. //            N. Bhowmik
  37.  
  38.  
  39.  
  40. #if defined(__GNUC__)
  41. #pragma interface
  42. #endif
  43.  
  44. #include "base/map.h"
  45. #include "base/binding.h"
  46.  
  47. #if defined(__MS_WINDOWS__)
  48.  
  49. #elif defined(__X_MOTIF__)
  50. #include <X11/Xlib.h>
  51.  
  52. #endif
  53.  
  54. typedef long UI_ResourceHandle;
  55.  
  56. class CL_EXPORT UI_DrawingSurface;
  57.  
  58. // A DiaplayResource is an abstraction of a resource used for drawing on a
  59. // display surface. Specializations of this class include the Font, the
  60. // Pen and the Brush.
  61.  
  62.  
  63. class CL_EXPORT UI_DisplayResource: public CL_Object {
  64.     
  65. public:
  66.  
  67.     UI_DisplayResource (UI_DrawingSurface* ctxt);
  68.     // Set up this resource to work with the given display context.
  69.  
  70.     ~UI_DisplayResource () {};
  71.     
  72.     void Initialize ()
  73.         {_Setup();};
  74.     
  75.     UI_ResourceHandle  Handle() { return _handle;};
  76.  
  77.     const char* ClassName() const { return "UI_DisplayResource";};
  78.  
  79.  
  80.  
  81. protected:
  82.     
  83.  
  84.     // ------------------- Instance variables ------------------------
  85.     
  86.     UI_ResourceHandle  _handle;
  87.     UI_DrawingSurface* _clientCtxt;
  88.  
  89.     // ------------------- Protected methods -------------------------
  90.     virtual void       _Setup () = 0;
  91.     // Set up the handle for this resource. Must be defined by derived
  92.     // class. 
  93.  
  94.  
  95. public:
  96.     void UseClient (UI_DrawingSurface* client);
  97.     // [YACL Internal use only]
  98.     
  99. };
  100.  
  101. #endif
  102.