--*****************************************************************************
--                                             (C) IpeSoft s.r.o. (Ltd.) ZILINA
--   PROJECT :  D2000 
--   FILE    :  Imp_def.ads
--
--   DESCRIPTION : definicia konstant a typov pre import gr.formatov
--
--*****************************************************************************
with system; use system;
package Imp_Def is
  --***************************************************************************
  -- Constants of gr.object's types
  --***************************************************************************
  cLine    : constant :=  0;  -- objekt ciara
  cPLine   : constant :=  1;  -- objekt viacnasobna ciara
  cDLine   : constant :=  2;  -- objekt viacnasobna prerusovana ciara 
  cArc     : constant :=  3;  -- objekt obluk
  c3Arc    : constant :=  4;  -- objekt trojbodovy obluk
  cBox     : constant :=  5;  -- objekt obdlznik
  cPAngle  : constant :=  6;  -- objekt mnohouholnik
  cCircle  : constant :=  7;  -- objekt kruh
  cPiArc   : constant :=  8;  -- objekt kruhova vysec
  cElipse  : constant := 11;  -- objekt elipsa
  cText    : constant := 12;  -- objekt text
  cGroup   : constant := 32;  -- skupina objektov
  -- extra types
  cLineCombined   : constant := -1; -- skombinuje seriu ciar rovankych atributov do jedneho objektu
                                    -- typu PolyLine alebo PolyLineDisjoint
  cPLineAdd       : constant := -2; -- pridaj seriu parametrov do vytvaraneho objektu typu polyline
                                    -- (ak nie je vytvarany, tak zaloz novy)
  cFontStyle      : constant := -3; -- vytvorenie textového štýlu + autovytváranie 
                                    -- počas vytvárania textov - od ver. 5.00
                                    -- (s daným menom môže existovať len 1 štýl)
  --***************************************************************************
  -- konstanty definujuce povolene typy pre niektore parametre
  -----------------------------------------------------------------------------
  -- oznacenia v komentaroch
  -- (*) - default parameter
  --***************************************************************************
  --***************************************************************************
  -- color definition, implicitne farby logickej palety pouzivanej pri importe
  --***************************************************************************
  type TColorArr  is ARRAY (0.. 15) OF integer;  -- svetla..tmava
  
  -- bazy farieb
  CLR_BASE_WHITE   : constant :=  0;  W : constant := CLR_BASE_WHITE;
  CLR_BASE_YELLOW  : constant := 16;  Y : constant := CLR_BASE_YELLOW;
  CLR_BASE_CYAN    : constant := 32;  C : constant := CLR_BASE_CYAN;
  CLR_BASE_GREEN   : constant := 48;  G : constant := CLR_BASE_GREEN;
  CLR_BASE_RED     : constant := 64;  R : constant := CLR_BASE_RED;
  CLR_BASE_PINK    : constant := 80;  P : constant := CLR_BASE_PINK;
  CLR_BASE_BLUE    : constant := 96;  B : constant := CLR_BASE_BLUE;
  -- indexy farieb
  CLR_WHITE    : constant TColorArr := (W+0,W+1,W+2,W+3,W+4,W+5,6,W+7,W+8,W+9,W+10,W+11,W+12,W+13,W+14,W+15);
  CLR_YELLOW   : constant TColorArr := (Y+0,Y+1,Y+2,Y+3,Y+4,Y+5,6,Y+7,Y+8,Y+9,Y+10,Y+11,Y+12,Y+13,Y+14,Y+15);
  CLR_CYAN     : constant TColorArr := (C+0,C+1,C+2,C+3,C+4,C+5,6,C+7,C+8,C+9,C+10,C+11,C+12,C+13,C+14,C+15);
  CLR_GREEN    : constant TColorArr := (G+0,G+1,G+2,G+3,G+4,G+5,6,G+7,G+8,G+9,G+10,G+11,G+12,G+13,G+14,G+15);
  CLR_RED      : constant TColorArr := (W+0,W+1,W+2,W+3,W+4,W+5,6,W+7,W+8,W+9,W+10,W+11,W+12,W+13,W+14,W+15);
  CLR_PINK     : constant TColorArr := (P+0,P+1,P+2,P+3,P+4,P+5,6,P+7,P+8,P+9,P+10,P+11,P+12,P+13,P+14,P+15);
  CLR_BLUE     : constant TColorArr := (B+0,B+1,B+2,B+3,B+4,B+5,6,B+7,B+8,B+9,B+10,B+11,B+12,B+13,B+14,B+15);
  -- niektore vybrane farby
  i_CLR_WHITE         : constant integer :=  0;
  i_CLR_PALEGRAYLIGHT : constant integer :=  2;
  i_CLR_PALEGRAY      : constant integer :=  4;
  i_CLR_DARKGRAY      : constant integer := 10;
  i_CLR_DARKGRAYDARK  : constant integer := 12;
  i_CLR_BLACK         : constant integer := 15;
  i_CLR_YELLOW    : constant integer := 22;  i_CLR_DARKYELLOW: constant integer := 26;
  i_CLR_CYAN      : constant integer := 38;  i_CLR_DARKCYAN  : constant integer := 42;
  i_CLR_GREEN     : constant integer := 54;  i_CLR_DARKGREEN : constant integer := 58;
  i_CLR_RED       : constant integer := 70;  i_CLR_DARKRED   : constant integer := 74;
  i_CLR_PINK      : constant integer := 86;  i_CLR_DARKPINK  : constant integer := 90;
  i_CLR_BLUE      : constant integer :=102;  i_CLR_DARKBLUE  : constant integer :=106;

  --***************************************************************************
  -- štýl čiar
  -- lineStyles - type TPenStyle is (Solid, Alternate, Dash, Dot, DashDot, DashDotDot, Invisible); 
  --***************************************************************************
  tLS_Solid       : constant := 0;   -- -----------  (*)
  tLS_Alternate   : constant := 1;   -- . . . . . . - iba tenka, nepouzivat
  tLS_Dash        : constant := 2;   -- - - - - - - 
  tLS_Dot         : constant := 3;   -- . . . . . .
  tLS_DashDot     : constant := 4;   -- - . - . - .
  tLS_DashDotDot  : constant := 5;   -- - . . - . .
  tLS_Invisible   : constant := 6;   -- nepodporena
  --***************************************************************************
  -- ukončenie čiar
  -- lineEnd - type TLineEnd  is (Flat,  Square, Round);
  --***************************************************************************
  tLE_Flat        : constant := 0;   -- ostry roh (*) 
  tLE_Square      : constant := 1;   -- skoseny roh
  tLE_Round       : constant := 2;   -- zaobleny roh
  --***************************************************************************
  -- zalomenie čiar
  -- lineJoin - type TLineJoin is (Bevel, Round,  Miter);
  --***************************************************************************
  tLJ_Bevel       : constant := 0;   -- ukoncenie na koncovom bode (*) 
  tLJ_Round       : constant := 1;   -- zaoblene zakoncenie za koncovym bodom
  tLJ_Miter       : constant := 2;   -- hranate zakoncenie za koncovym bodom
 
  --***************************************************************************
  -- vyplnove vzory poskytovane vo Windows
  -- brushStyle - type TBrushStyle is (Solid, Hollow, BDiagonal, Cross, DiagCross, 
  --                  FDiagonal,  Horizontal, Vertical); 
  --***************************************************************************
  tBS_Solid       : constant := 0;   -- plny vzor
  tBS_Hollow      : constant := 1;   -- prazdny vzor (*) 
  tBS_BDiagonal   : constant := 2;
  tBS_Cross       : constant := 3; 
  tBS_DiagCross   : constant := 4; 
  tBS_FDiagonal   : constant := 5;
  tBS_CHorizontal : constant := 6; 
  tBS_Vertical    : constant := 7;
    
  --***************************************************************************
  -- umiestnenie textov
  -- cTextPos - type tTextPos   is (tpAtPos,tpInBox,tpIntoBox);
  --***************************************************************************
  tTP_ATPOS       : constant := 0;   -- text na zadanej pozicii (*)
  tTP_INBLOCK     : constant := 1;   -- text umiestneny v obdlzniku
  tTP_INTOBLOCK   : constant := 2;   -- text zaplnujuci obdlznik
  --***************************************************************************
  -- horizontalne umiestnenia pre text umiestneny v obdlzniku
  -- cTextCenterH -horizontal center
  --***************************************************************************
  tTHC_LEFT       : constant := 0;   -- vlavo
  tTHC_MIDDLE     : constant := 1;   -- centrovany (*)
  tTHC_RIGHT      : constant := 2;   -- vpravo
  --***************************************************************************
  -- vertikalne umiestnenia pre text umiestneny v obdlzniku
  -- cTextCenterV - vertical center
  --***************************************************************************
  tTVC_TOP        : constant := 0;   -- hore
  tTVC_MIDDLE     : constant := 1;   -- centrovany (*)
  tTVC_BOTTOM     : constant := 2;   -- dole
 
  --***************************************************************************
  -- parametre gr.objektov - param's types constants
  -----------------------------------------------------------------------------
  -- implementacne poznamky
  --   1. aby boli parametre akceptovane, musia by v procedurach takych typov ako
  --      su v poznamke za parametrom
  --   2. nie vsetky parametre su realizovane
  --   3. možno zadať max.1000 pozicnych bodov, ale V4.5 pozna max.prvych 1+30
  --      pri väčšom počte bodov pre typ polyline sa generuje viacero objektov tohto typu 
  --   4. index farby pre import index do default farebnej palety
  --   5. farba RGB od ver V5.0 farby plnia 128 prvkovu tabulku z ktorej bude vytvoreny
  --      objet paleta, farby v objekte budu ukladane ako indexy do tejto tabulky
  --***************************************************************************
  -----------------------------------------------------------------------------
  -- positions and sizes
  -----------------------------------------------------------------------------
  cPosXY               : constant :=1;  -- 2 * int/float - pozicia bodu
  cPosDXY              : constant :=2;  -- 2 * int/float - vzdialenodt bodu od predosleho bodu
  -----------------------------------------------------------------------------
  -- line params
  -----------------------------------------------------------------------------
  cLineColorRGB        : constant :=10;  -- int  - RGB farba objektu - od ver V5.0
  cLineColorIdx        : constant :=11;  -- int  - index farby v lokalnej palete
  cLineStyle           : constant :=12;  -- int  - styl ciary - lineStyles
  cLineWidth           : constant :=13;  -- int  - hrubka ciary 1..
  cLineEnd             : constant :=14;  -- int  - zakoncenie hrubej ciary - lineEnd
  cLineJoin            : constant :=15;  -- int  - zalomenie polyline ciary - lineJoin
  -----------------------------------------------------------------------------
  -- fill params
  -----------------------------------------------------------------------------
  cFillColorRGB        : constant :=30;  -- int - RGB farba objektu - od ver V5.0
  cFillColorIdx        : constant :=31;  -- int - index farby v lokalnej palete
  cFillPattern         : constant :=32;  -- int  - styl ciary - brushStyle
  -----------------------------------------------------------------------------
  -- circles
  -----------------------------------------------------------------------------
  cCircleRadial        : constant :=50;  -- int/float - polomer kruhu
  --
  cCircleAngleDegStart : constant :=56;  -- int/float - degree 
  cCircleAngleDegEnd   : constant :=57;  -- int/float - degree
  cCircleAngleDegSize  : constant :=58;  -- int/float - degree
  --
  cCircleAngleRadStart : constant :=59;  -- int/float - radiant
  cCircleAngleRadEnd   : constant :=60;  -- int/float - radiant
  cCircleAngleRadSize  : constant :=61;  -- int/float - degree
  
  -----------------------------------------------------------------------------
  -- text params
  -----------------------------------------------------------------------------
  cTextText            : constant :=70;  -- text
  cTextColorRGB        : constant :=71;  -- int - RGB farba objektu - od ver V5.0
  cTextColorIdx        : constant :=72;  -- int - index farby v lokalnej palete
  -- 
  cTextPos             : constant :=73;  -- int - umiestnenie v obdlzniku, tTP_ATPOS,..
  cTextCenterH         : constant :=76;  -- int - horizontalne centrovanie v obdlzniku
  cTextCenterV         : constant :=77;  -- int - vertikalne centrovanie v obdlzniku
  --***************************************************************************
  -- vytvorenie textového štýlu
  -- txt.štýl sa vytvori ako objekt s parametrom CFont alebo pocas vytvarania textu
  --  * ak nebudú nastavené všetky parametre font sa nevytvorí
  --  * ak štýl s menom v cFontStyleName existuje, nový nebude vytvorený, použije sa existujúci
  --  * ak je txt.štýl vytvorený počas vytvárania textu, bude text kreslený týmto štýlom
  --  * ak je počas vytvárania textu zadaný iba cFontStyleName,
  --    potom bude text kreslený týmto štýlom (ak existuje)
  --***************************************************************************
  cFontStyleName       : constant :=200;  --  string  - meno textového štýlu
  cFontName            : constant :=201;  --  string  - meno fontu
  cFontSize            : constant :=202;  --  Integer - vyska fonty
  cFontBold            : constant :=203;  --  Boolean - atribut pre hruby font
  cFontItalic          : constant :=204;  --  Boolean - atribut pre sikmy font
  cFontUnderline       : constant :=205;  --  Boolean - atribut pre podtrhnuty font
  cFontStrikeOut       : constant :=206;  --  Boolean - atribut pre preciarknuty font
  cFontCharSet         : constant :=207;  --  Integer - subor znakov (Western,Central euroean)
  --***************************************************************************
  -- types of obj.actions
  --***************************************************************************
  type tObjAction  is (closeFigure, -- uzatvor polyline , prevod na mnohouholník
                       closeObject, -- zatvor objekt
                       closeGroup,  -- zatvor objekt a grupu
                       closeAll);   -- zatvor objekt a všetky grupy
                                    -- vnútorne volaný po ukončení importu
  --***************************************************************************
  -- access to functions - definitions
  --***************************************************************************
  type tCreateObj    is access procedure (objType : integer);
  type tObjAtion     is access procedure (action  : tObjAction := closeObject);
  
  type tset_string   is access procedure (param   : integer; val :string);
  type tset_boolean  is access procedure (param   : integer; val :boolean);
  type tset_integer  is access procedure (param   : integer; val :integer);  
  type tset_float    is access procedure (param   : integer; val :long_float);
  type tset_integer2 is access procedure (param   : integer; val1,val2 : integer);  
  type tset_float2   is access procedure (param   : integer; val1,val2 : long_float);
  -- info text pocas importu
  type tShowInfo     is access procedure (text : string);
  --***************************************************************************
  -- access to functions
  --***************************************************************************
  createObj    : tCreateObj    := null;
  objAction    : tObjAtion     := null;
  
  set_string   : tset_string   := null;
  set_boolean  : tset_boolean  := null;
  set_integer  : tset_integer  := null;
  set_float    : tset_float    := null;
  set_integer2 : tset_integer2 := null;
  set_float2   : tset_float2   := null;
  -- info text pocas importu
  ShowInfo     : tShowInfo     := null;
  --***************************************************************************
  -- access to import functions
  --***************************************************************************
  pShowInfo     : constant := 0;
  pcreateObj    : constant := 1;    
  pobjAction    : constant := 2;  
  pset_string   : constant := 3;   
  pset_boolean  : constant := 4;
  pset_integer  : constant := 5;  
  pset_float    : constant := 6;
  pset_integer2 : constant := 7; 
  pset_float2   : constant := 8;
  -- pointer to 1.char of null terminating string
  maxResStr     : constant := 10000;
  -- nazov importu a tup suboru
  type tGetFileType     is access procedure (description,extension: out address);
  -- inicializacia call-back procedur
  type tImportConnect   is access procedure (procType:integer; procAddr : address);
  
  -- load autocad dxf file
  type tImportFile      is access procedure (FileName:address;x,y:INTEGER;resStr:address);
end Imp_Def;
--*****************************************************************************
-------------------------------------------------------------------------------
-- Revisions History --
-------------------------------------------------------------------------------
--  0.00     28.02.01 - vytvorenie modulu
-------------------------------------------------------------------------------
Napíšte komentár