home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / ST_PASCA.ZIP / GEMTYPE.PAS < prev    next >
Pascal/Delphi Source File  |  1987-04-22  |  7KB  |  165 lines

  1. { gemtype.pas - Common GEM type definitions for Personal Pascal library.
  2.     by Mark Rose
  3.         December, 1985
  4. }
  5.  
  6.         Color_Reg = 0..15;
  7.         Draw_Modes = Replace_Mode..Rev_Trans_Mode;
  8.         Line_Types = Solid..DashDotDot;
  9.         Paint_Types = None..Hatch12;
  10.  
  11.         Gem_Device = Screen_Device..Printer_Device;
  12.         Inq_Type = ( Open_Vals, Ext_Vals );
  13.         Mouse_Type = (  M_Arrow, M_Text_Curs, M_Bee, M_Point_Hand, M_Flat_Hand,
  14.                         M_Thin_Cross, M_Thick_Cross, M_Outln_Cross );
  15.  
  16.         Pointer         = ^char;
  17. {!!!    Dialog_Ptr      = ^char;}
  18. {!!!    Menu_Ptr        = ^char;}
  19.         Text_Ptr        = ^char;
  20.         Mouse_Form = (To_Be_Added);
  21.  
  22.         File_Name       = STRING [ Max_Fn ];
  23.         Path_Name       = STRING [ Max_Path ];
  24.         Window_Title = STRING [ Max_WTitle ];
  25.  
  26.         Message_Buffer  = ARRAY [ 0..15 ] OF integer;
  27.  
  28.         Ctrl_Parms              = ARRAY [ 0..11 ] OF integer;
  29.         Int_In_Parms    = ARRAY [ 0..15 ] OF integer;
  30.         Int_Out_Parms   = ARRAY [ 0..45 ] OF integer;
  31.         Pts_In_Parms    = ARRAY [ 0..11 ] OF integer;
  32.         Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer;
  33.         Addr_In_Parms   = ARRAY [ 0..1 ] OF Pointer;
  34.         Addr_Out_Parms  = ARRAY [ 0..0 ] OF Pointer;
  35.  
  36.         Point =     RECORD
  37.                      x, y : integer
  38.                     END;
  39.         Rectangle = RECORD
  40.                      x, y,        { Upper left corner of rectangle }
  41.                      w,           { Width of rectangle }
  42.                      h : integer; { Height of rectangle }
  43.                     END;
  44.  
  45.         Str255 = STRING [ 255 ];
  46.  
  47.   { Editable text justification: }
  48.         TE_Just = ( TE_Left, TE_Right, TE_Center );
  49.  
  50.   { Possible indices into a tree: }
  51.         Tree_Range = Root..Max_Tree;
  52.         Tree_Index = Null_Index..Max_Tree;
  53.  
  54.   { Possible object types }
  55.         Ob_Type = G_Box..G_Title;
  56.  
  57.   { "C" style string: }
  58.         C_String = PACKED ARRAY [ 0..Max_C_String ] OF char;
  59.         String_Ptr = ^C_String;
  60.  
  61.   { text_edInfo }
  62.     Text_Ed_Info = RECORD
  63.                      te_ptext  : String_Ptr;   { ptr to text (must be 1st) }
  64.                      te_ptmplt : String_Ptr;   { ptr to template }
  65.                      te_pvalid : String_Ptr;   { ptr to validation chrs. }
  66.                      te_font   : integer;      { font }
  67.                      te_junk1  : integer;      { junk word }
  68.                      te_just   : integer;      { justification }
  69.                      te_color  : integer;      { color information word }
  70.                      te_junk2  : integer;      { junk word }
  71.                      te_thickness : integer;   { border thickness }
  72.                      te_txtlen : integer;      { length of text string }
  73.                      te_tmplen : integer       { length of template string }
  74.                    END;
  75.         Ted_Ptr = ^Text_Ed_Info;
  76.  
  77.   { "Special" object information }
  78.         Spec_Info = RECORD
  79.                       CASE Ob_Type OF
  80.                        G_Box, G_IBox, G_BoxChar :
  81.                                             ( thick : integer;
  82.                                               color : integer );
  83.                        G_Text, G_BoxText, G_FText, G_FBoxText :
  84.                                             ( info : Ted_Ptr );
  85.                        G_Image, G_ProgDef, G_Button, G_Icon :
  86.                                             ( ptr : long_integer );
  87.                        G_String, G_Title :
  88.                                             ( str : String_Ptr )
  89.                     END;
  90.  
  91.   { OBJECT structure: }
  92.     Object = RECORD
  93.                ob_next : Tree_Index;   { Object's next sibling }
  94.                ob_head : Tree_Index;   { -> head of object's children }
  95.                ob_tail : Tree_Index;   { -> tail of object's children }
  96.                ob_type  : integer;     { type of object- BOX, CHAR,...}
  97.                ob_flags : integer;     { flags   }
  98.                ob_state : integer;     { state- SELECTED, OPEN, ... }
  99.                ob_spec  : Spec_Info;   { "out"- -> anything else }
  100.                ob_x     : integer;     { upper left corner of object }
  101.                ob_y     : integer;     { upper left corner of object }
  102.                ob_w     : integer;     { width of obj }
  103.                ob_h     : integer      { height of obj }
  104.              END;
  105.  
  106.   { Type of a whole tree: }
  107.         Tree = ARRAY [ Tree_Range ] OF Object;
  108.         Tree_Ptr = ^Tree;
  109.         Menu_Ptr = Tree_Ptr;
  110.         Dialog_Ptr = Tree_Ptr;
  111.  
  112.   { icon_block }
  113.     Icon_Block = RECORD
  114.                    ib_pmask : long_integer;
  115.                    ib_pdata : long_integer;
  116.                    ib_ptext : long_integer;
  117.                    ib_char  : integer;
  118.                    ib_xchar : integer;
  119.                    ib_ychar : integer;
  120.                    ib_xicon : integer;
  121.                    ib_yicon : integer;
  122.                    ib_wicon : integer;
  123.                    ib_hicon : integer;
  124.                    ib_xtext : integer;
  125.                    ib_ytext : integer;
  126.                    ib_wtext : integer;
  127.                    ib_htext : integer
  128.                  END;
  129.  
  130.   { bit_block }
  131.     Bit_Block = RECORD
  132.                   bi_pdata : long_integer;  { ptr to bit forms data }
  133.                   bi_wb    : integer;       { width of form in bytes }
  134.                   bi_hl    : integer;       { height in lines }
  135.                   bi_x     : integer;       { source x in bit form }
  136.                   bi_y     : integer;       { source y in bit form }
  137.                   bi_color : integer        { fg color of blt }
  138.                 END;
  139.  
  140.   { user_blk }
  141.     User_Blk = RECORD
  142.                  ub_code : long_integer;
  143.                  ub_parm : long_integer
  144.                END;
  145.  
  146.   { parm_blk }
  147.     Parm_Blk = RECORD
  148.                  pb_tree      : long_integer;
  149.                  pb_obj       : integer;
  150.                  pb_prevstate : integer;
  151.                  pb_currstate : integer;
  152.                  pb_x         : integer;
  153.                  pb_y         : integer;
  154.                  pb_w         : integer;
  155.                  pb_h         : integer;
  156.                  pb_xc        : integer;
  157.                  pb_yc        : integer;
  158.                  pb_wc        : integer;
  159.                  pb_hc        : integer;
  160.                  pb_parm      : long_integer
  161.                END;
  162.  
  163. { End of gemtype.pas }
  164.  
  165.