home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / wppalet.def < prev    next >
Text File  |  1994-05-24  |  8KB  |  265 lines

  1. DEFINITION MODULE WPPALET;
  2.  
  3. (***************************************************************************
  4.   OS/2 2.1 Workplace class interface for WPPalette;
  5.  
  6.   Copyright (c) 1994 by Juergen Neuhoff
  7. ****************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. IMPORT SOM;
  14. IMPORT WPABS;
  15. IMPORT OS2DEF;
  16. IMPORT WPOBJECT;
  17. IMPORT SYSTEM;
  18. IMPORT WINMESSAGEMGR;
  19.  
  20. TYPE PSOMClass              = SOM.PSOMClass;
  21. TYPE INTEGER4               = SOM.INTEGER4;
  22. TYPE somMToken              = SOM.somMToken;
  23. TYPE somDToken              = SOM.somDToken;
  24. TYPE somMethodProc          = SOM.somMethodProc;
  25. TYPE PWPPalette             = POINTER TO WPPalette;
  26. TYPE PM_WPPalette           = POINTER TO M_WPPalette;
  27.  
  28. (************************************************************************
  29.   Additional TYPE- and CONST-declarations supporting WPPalette
  30. *************************************************************************)
  31.  
  32. TYPE HWND                   = OS2DEF.HWND;
  33. TYPE PWPFolder              = WPOBJECT.PWPObject;
  34. TYPE USEITEM                = WPOBJECT.USEITEM;
  35. TYPE VIEWITEM               = WPOBJECT.VIEWITEM;
  36. TYPE RECTL                  = OS2DEF.RECTL;
  37. TYPE HPS                    = OS2DEF.HPS;
  38. TYPE BYTE                   = SYSTEM.BYTE;
  39. TYPE POINTL                 = OS2DEF.POINTL;
  40. TYPE PSZ                    = OS2DEF.PSZ;
  41.  
  42. CONST WM_USER               = WINMESSAGEMGR.WM_USER;
  43.  
  44. CONST
  45.   (*
  46.    *  Open view for the wpOpen() method
  47.    *)
  48.   OPEN_PALETTE       = 121;
  49.  
  50. CONST
  51.   (*
  52.    *  Palette save-restore keys
  53.    *)
  54.  
  55.   IDKEY_PALXCELLCOUNT      = 1000;
  56.   IDKEY_PALYCELLCOUNT      = 1001;
  57.   IDKEY_PALXCELLWIDTH      = 1002;
  58.   IDKEY_PALYCELLHEIGHT     = 1003;
  59.   IDKEY_PALXGAP            = 1004;
  60.   IDKEY_PALYGAP            = 1005;
  61.   IDKEY_PALSCREENSIZEX     = 1006;
  62.   IDKEY_PALSCREENSIZEY     = 1007;
  63.   IDKEY_PALCELLDATA_FIRST  = 1050;
  64.  
  65. CONST
  66.   (*
  67.    *  Default palette information
  68.    *)
  69.   DEF_XCELLCOUNT    = 6;
  70.   DEF_YCELLCOUNT    = 5;
  71.  
  72. TYPE
  73.   (*
  74.    *  Variables kept for each open palette window as
  75.    *  a structure pointed to by the QWL_USER window
  76.    *  word ...
  77.    *)
  78.  
  79.   CELL       = RECORD
  80.     cbData     : LONGCARD;  (* Size of the data that follows *)
  81.     (* Class specific cell data follows immediately afterwards -
  82.      * for example the font palette would store the ASCII name of
  83.      * the font, and the color palette would store the RGB color
  84.      * of the cell.
  85.      *)
  86.   END;
  87.   PCELL      = POINTER TO CELL;
  88.  
  89.   PALINFO           = RECORD
  90.     xCellCount        : LONGCARD;      (* Number of columns of cells *)
  91.     yCellCount        : LONGCARD;      (* Number of rows of cells *)
  92.     xCursor           : LONGCARD;      (* Cursor location (readonly) *)
  93.     yCursor           : LONGCARD;      (* Cursor location (readonly) *)
  94.     xCellWidth        : LONGCARD;      (* Width of each cell *)
  95.     yCellHeight       : LONGCARD;      (* Height of each cell *)
  96.     xGap              : LONGCARD;      (* X separation of cells *)
  97.     yGap              : LONGCARD;      (* Y separation of cells *)
  98.                       END;
  99.   PPALINFO          = POINTER TO PALINFO;
  100.  
  101.   PALETTEDATA       = RECORD
  102.     Palette           : PWPFolder;     (* Folder object for this window *)
  103.     UseItem           : USEITEM;       (* Folder object's INUSE list item *)
  104.     ViewItem          : VIEWITEM;
  105.     xCursor           : LONGCARD;
  106.     yCursor           : LONGCARD;
  107.                       END;
  108.   PPALETTEDATA      = POINTER TO PALETTEDATA;
  109.  
  110.   CELLSTRUCT        = RECORD
  111.     rclCell           : RECTL;         (* Cell coordinates *)
  112.     pCell             : PCELL;         (* Cell data pointer *)
  113.                       END;
  114.   PCELLSTRUCT       = POINTER TO CELLSTRUCT;
  115.  
  116.  
  117. CONST
  118.   (*
  119.    *  Miscellaneous
  120.    *)
  121.   PM_INVALIDATECELL = WM_USER+1000;
  122.  
  123. CONST
  124.   (* Macros that act on a PALINFO...
  125.    *)
  126.   ID_PALSCROLLHORZ  =  8091;
  127.   ID_PALSCROLLVERT  =  8092;
  128.  
  129. CONST
  130.   (* Coordinates (these are in DIALOG UNITS)
  131.    *)
  132.   CXBUTTON          = 12;      (* Width of a button (with no text) *)
  133.   CYBUTTON          = 12;      (* Height of a button *)
  134.   XBUTTONGAP        = 6;
  135.   YBUTTONGAP        = 4;
  136.   CYBUTTONAREA      = CYBUTTON + 2*YBUTTONGAP;
  137.   DEF_XCELLWIDTH    = 22;
  138.   DEF_YCELLHEIGHT   = 16;
  139.   DEF_XCELLGAP      = 4;
  140.   DEF_YCELLGAP      = 4;
  141.  
  142.  
  143. (*************************************************************************
  144.   SOM class API for WPPalette, including type-bound procedures
  145. **************************************************************************)
  146.  
  147. CONST
  148.   WPPalette_MajorVersion     = 1;
  149.   WPPalette_MinorVersion     = 2;
  150.  
  151. TYPE
  152.   WPPaletteClassDataStructure   = RECORD
  153.     classObject                   : PSOMClass;
  154.     wpPaintCell                   : somMToken;
  155.     wpSelectCell                  : somMToken;
  156.     wpSetupCell                   : somMToken;
  157.     wpQueryPaletteInfo            : somMToken;
  158.     wpSetPaletteInfo              : somMToken;
  159.     wpEditCell                    : somMToken;
  160.     wpDragCell                    : somMToken;
  161.     withdrawn                     : somMToken;
  162.     wpInitCellStructs             : somMToken;
  163.     wpRedrawCell                  : somMToken;
  164.     wpPaintPalette                : somMToken;
  165.     wpMouseAction                 : somMToken;
  166.     wpQueryPaletteHelp            : somMToken;
  167.     wpShowPalettePointer          : somMToken;
  168.                                   END;
  169.  
  170. VAR
  171.   WPPaletteClassData : WPPaletteClassDataStructure;
  172.  
  173. TYPE
  174.   (*$SOM+ *)
  175.   WPPalette = RECORD( WPABS.WPAbstract ) END;
  176.   (*$SOM- *)
  177.  
  178.  
  179. PROCEDURE WPPaletteNewClass
  180. (
  181.   majorVersion  : INTEGER4;
  182.   minorVersion  : INTEGER4
  183. )               : PSOMClass;
  184.  
  185. PROCEDURE( Self : PWPPalette ) wpPaintCell
  186. (
  187.   VAR Cell      : CELL;
  188.   hps           : HPS;
  189.   VAR rcl       : RECTL;
  190.   fHilite       : BOOLEAN
  191. );
  192.  
  193. PROCEDURE( Self : PWPPalette ) wpSetupCell
  194. (
  195.   VAR CellData  : ARRAY OF BYTE;
  196.   cb            : LONGCARD;
  197.   x             : LONGCARD;
  198.   y             : LONGCARD
  199. )               : BOOLEAN;
  200.  
  201. PROCEDURE( Self : PWPPalette ) wpRedrawCell
  202. (
  203.   VAR Cell      : CELL
  204. )               : BOOLEAN;
  205.  
  206. PROCEDURE( Self : PWPPalette ) wpQueryPaletteInfo
  207. (
  208.   VAR PalInfo   : PALINFO
  209. )               : BOOLEAN;
  210.  
  211. PROCEDURE( Self : PWPPalette ) wpSetPaletteInfo
  212. (
  213.   VAR PalInfo   : PALINFO
  214. )               : BOOLEAN;
  215.  
  216. PROCEDURE( Self : PWPPalette ) wpEditCell
  217. (
  218.   VAR Cell      : CELL;
  219.   hwndPal       : HWND
  220. )               : BOOLEAN;
  221.  
  222. PROCEDURE( Self : PWPPalette ) wpDragCell
  223. (
  224.   VAR Cell      : CELL;
  225.   hwndPal       : HWND;
  226.   VAR ptlDrag   : POINTL
  227. )               : BOOLEAN;
  228.  
  229. PROCEDURE( Self : PWPPalette ) wpQueryPaletteHelp( ) : LONGCARD;
  230.  
  231.  
  232.  
  233. (*************************************************************************
  234.   SOM class API for M_WPPalette, including type-bound procedures
  235. **************************************************************************)
  236.  
  237. CONST
  238.   M_WPPalette_MajorVersion   = 1;
  239.   M_WPPalette_MinorVersion   = 2;
  240.  
  241. TYPE
  242.   M_WPPaletteClassDataStructure   = RECORD
  243.     classObject                     : PSOMClass;
  244.     wpclsQueryEditString            : somMToken;
  245.                                     END;
  246.  
  247. VAR
  248.   M_WPPaletteClassData : M_WPPaletteClassDataStructure;
  249.  
  250. TYPE
  251.   (*$SOM+ *)
  252.   M_WPPalette = RECORD( WPABS.M_WPAbstract ) END;
  253.   (*$SOM- *)
  254.  
  255.  
  256. PROCEDURE M_WPPaletteNewClass
  257. (
  258.   majorVersion : INTEGER4;
  259.   minorVersion : INTEGER4
  260. )              : PSOMClass;
  261.  
  262. PROCEDURE( Self : PM_WPPalette ) wpclsQueryEditString( ) : PSZ;
  263.  
  264. END WPPALET.
  265.