123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311 |
- {
- This file is part of the Free Pascal run time library.
- A file in Amiga system run time library.
- Copyright (c) 2000-2003 by Nils Sjoholm
- member of the Amiga RTL development team.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {
- History:
- This is just a quick translation of gtlayout.h.
- I have made a small testprogram and all is well.
- 16 Jul 2000.
- Added MessageBox for error report.
- 31 Jul 2000.
- Added functions and procedures with array of const.
- For use with fpc 1.0.
- 06 Jan 2003.
-
- Added the defines use_amiga_smartlink and
- use_auto_openlib.
- 12 Jan 2003.
- Changed startcode for unit.
- 10 Feb 2003.
-
- [email protected]
- }
- {$mode objfpc}
- {$I useamigasmartlink.inc}
- {$ifdef use_amiga_smartlink}
- {$smartlink on}
- {$endif use_amiga_smartlink}
- UNIT GTLAYOUT;
- INTERFACE
- USES Exec,intuition,utility, gadtools,graphics;
- { Kinds of objects supported in addition to the normal GadTools kinds }
- const
- GTLAYOUTNAME : PCHar = 'gtlayout.library';
- HORIZONTAL_KIND = 45;
- VERTICAL_KIND = 46;
- END_KIND = 47;
- FRAME_KIND = 48;
- BOX_KIND = 49;
- FRACTION_KIND = 50;
- XBAR_KIND = 51;
- YBAR_KIND = 52;
- PASSWORD_KIND = 53;
- GAUGE_KIND = 54;
- TAPEDECK_KIND = 55;
- LEVEL_KIND = 56;
- BOOPSI_KIND = 57;
- POPUP_KIND = 58;
- TAB_KIND = 59;
- BLANK_KIND = 60;
- IMAGE_KIND = 61;
-
- { Where to place a gadget label }
- PLACE_Left = 0;
- PLACE_Right = 1;
- PLACE_Above = 2;
- PLACE_In = 3;
- PLACE_Below = 4;
- { How to align text lines in BOX_KIND gadgets }
- ALIGNTEXT_Left = 0;
- ALIGNTEXT_Centered = 1;
- ALIGNTEXT_Right = 2;
- ALIGNTEXT_Pad = 3;
- { The button images available for TAPEDECK_KIND gadgets. }
- TDBT_Backward = 0;
- TDBT_Forward = 1;
- TDBT_Previous = 2;
- TDBT_Next = 3;
- TDBT_Stop = 4;
- TDBT_Pause = 5;
- TDBT_Record = 6;
- TDBT_Rewind = 7;
- TDBT_Eject = 8;
- TDBT_Play = 9;
- TDBTLAST = 10;
- { The frame types for groups. }
- FRAMETYPE_None = 0;
- FRAMETYPE_Label = 1;
- FRAMETYPE_Tab = 2;
- { How to align the window opened by LT_Build() on the screen. }
- ALIGNF_Right = 1 shl 0;
- ALIGNF_Left = 1 shl 1;
- ALIGNF_Top = 1 shl 2;
- ALIGNF_Bottom = 1 shl 3;
- ALIGNF_ExtraRight = 1 shl 4;
- ALIGNF_ExtraLeft = 1 shl 5;
- ALIGNF_ExtraTop = 1 shl 6;
- ALIGNF_ExtraBottom = 1 shl 7;
- { Generic tags, applicable for several object types }
- LA_Chars = TAG_USER+2;
- LA_LabelPlace = TAG_USER+3;
- LA_ExtraSpace = TAG_USER+4;
- LA_NoKey = TAG_USER+30;
- LA_HighLabel = TAG_USER+31;
- LA_LabelText = TAG_USER+37;
- LA_LabelID = TAG_USER+38;
- LA_ID = TAG_USER+39;
- LA_Type = TAG_USER+40;
- LA_PageSelector = TAG_USER+79;
- LA_LabelChars = TAG_USER+107;
- LA_DefaultSize = TAG_USER+170;
- LA_LayoutSpace = TAG_USER+189;
- { Storage type tags }
- LA_BYTE = TAG_USER+63;
- LA_UBYTE = TAG_USER+64;
- LA_WORD = TAG_USER+65;
- LA_BOOL = TAG_USER+65;
- LA_UWORD = TAG_USER+66;
- LA_LONG = TAG_USER+67;
- LA_ULONG = TAG_USER+68;
- LA_STRPTR = TAG_USER+69;
- { for use with LT_GetAttributes() only }
- LA_Left = TAG_USER+16;
- LA_Top = TAG_USER+17;
- LA_Width = TAG_USER+18;
- LA_Height = TAG_USER+19;
- LA_LabelLeft = TAG_USER+114;
- LA_LabelTop = TAG_USER+115;
- { BOOPSI_KIND }
- LABO_TagCurrent = TAG_USER+119;
- LABO_TagTextAttr = TAG_USER+120;
- LABO_TagDrawInfo = TAG_USER+121;
- LABO_TagLink = TAG_USER+129;
- LABO_TagScreen = TAG_USER+132;
- LABO_Link = TAG_USER+7;
- LABO_ClassInstance = TAG_USER+122;
- LABO_ClassName = TAG_USER+123;
- LABO_ClassLibraryName = TAG_USER+124;
- LABO_ExactWidth = TAG_USER+127;
- LABO_ExactHeight = TAG_USER+128;
- LABO_RelFontHeight = TAG_USER+131;
- LABO_Object = TAG_USER+133;
- LABO_FullWidth = TAG_USER+135;
- LABO_FullHeight = TAG_USER+136;
- LABO_ActivateHook = TAG_USER+141;
- { BOX_KIND }
- LABX_Labels = TAG_USER+12;
- LABX_Lines = TAG_USER+13;
- LABX_Chars = TAG_USER+2;
- LABX_Rows = TAG_USER+1;
- LABX_Index = TAG_USER+14;
- LABX_Text = TAG_USER+15;
- LABX_AlignText = TAG_USER+27;
- LABX_DrawBox = TAG_USER+11;
- LABX_FirstLabel = TAG_USER+44;
- LABX_LastLabel = TAG_USER+45;
- LABX_ReserveSpace = TAG_USER+72;
- LABX_LabelTable = TAG_USER+98;
- LABX_FirstLine = TAG_USER+152;
- LABX_LastLine = TAG_USER+153;
- LABX_LineTable = TAG_USER+156;
- LABX_Line = TAG_USER+161;
- LABX_LineID = TAG_USER+162;
- LABX_TextPen = TAG_USER+172;
- LABX_BackPen = TAG_USER+173;
- LABX_Spacing = TAG_USER+180;
- { BUTTON_KIND }
- LABT_ReturnKey = TAG_USER+34;
- LABT_DefaultButton = TAG_USER+34;
- LABT_EscKey = TAG_USER+56;
- LABT_ExtraFat = TAG_USER+29;
- LABT_Lines = TAG_USER+140;
- LABT_FirstLine = TAG_USER+44;
- LABT_LastLine = TAG_USER+45;
- LABT_DefaultCorrection = TAG_USER+145;
- LABT_Smaller = TAG_USER+147;
- { CYCLE_KIND }
- LACY_FirstLabel = TAG_USER+44;
- LACY_LastLabel = TAG_USER+45;
- LACY_LabelTable = TAG_USER+98;
- LACY_AutoPageID = TAG_USER+103;
- LACY_TabKey = TAG_USER+118;
- { FRACTION_KIND }
- LAFR_IncrementerHook = TAG_USER+85;
- { FRAME_KIND }
- LAFR_InnerWidth = TAG_USER+9;
- LAFR_InnerHeight = TAG_USER+10;
- LAFR_DrawBox = TAG_USER+11;
- LAFR_RefreshHook = TAG_USER+117;
- LAFR_GenerateEvents = TAG_USER+155;
- LAFR_ResizeX = TAG_USER+109;
- LAFR_ResizeY = TAG_USER+110;
- { GAUGE_KIND }
- LAGA_Percent = TAG_USER+36;
- LAGA_InfoLength = TAG_USER+70;
- LAGA_InfoText = TAG_USER+71;
- LAGA_NoTicks = TAG_USER+143;
- LAGA_Discrete = TAG_USER+144;
- LAGA_Tenth = TAG_USER+144;
- { IMAGE_KIND }
- LAIM_Image = TAG_USER+181;
- LAIM_BitMap = TAG_USER+182;
- LAIM_BitMapLeft = TAG_USER+183;
- LAIM_BitMapTop = TAG_USER+184;
- LAIM_BitMapWidth = TAG_USER+185;
- LAIM_BitMapHeight = TAG_USER+186;
- LAIM_BitMapMask = TAG_USER+187;
- { INTEGER_KIND }
- LAIN_LastGadget = TAG_USER+28;
- LAIN_Min = TAG_USER+23;
- LAIN_Max = TAG_USER+24;
- LAIN_UseIncrementers = TAG_USER+57;
- LAIN_Incrementers = TAG_USER+57;
- LAIN_HistoryLines = TAG_USER+59;
- LAIN_HistoryHook = TAG_USER+80;
- LAIN_IncrementerHook = TAG_USER+85;
- LAIN_Activate = TAG_USER+148;
- { LISTVIEW_KIND }
- LALV_ExtraLabels = TAG_USER+26;
- LALV_Labels = TAG_USER+33;
- LALV_CursorKey = TAG_USER+35;
- LALV_Columns = TAG_USER+2;
- LALV_Lines = TAG_USER+1;
- LALV_Link = TAG_USER+7;
- LALV_FirstLabel = TAG_USER+44;
- LALV_LastLabel = TAG_USER+45;
- LALV_MaxGrowX = TAG_USER+77;
- LALV_MaxGrowY = TAG_USER+78;
- LALV_LabelTable = TAG_USER+98;
- LALV_LockSize = TAG_USER+106;
- LALV_ResizeX = TAG_USER+109;
- LALV_ResizeY = TAG_USER+110;
- LALV_MinChars = TAG_USER+111;
- LALV_MinLines = TAG_USER+112;
- LALV_FlushLabelLeft = TAG_USER+113;
- LALV_TextAttr = TAG_USER+138;
- LALV_AutoPageID = TAG_USER+103;
- LALV_Selected = TAG_USER+167;
- LALV_AdjustForString = TAG_USER+174;
- { LEVEL_KIND }
- LAVL_Min = GTSL_Min;
- LAVL_Max = GTSL_Max;
- LAVL_Level = GTSL_Level;
- LAVL_LevelFormat = GTSL_LevelFormat;
- LAVL_LevelPlace = GTSL_LevelPlace;
- LAVL_DispFunc = GTSL_DispFunc;
- LAVL_FullCheck = TAG_USER+22;
- LAVL_Freedom = TAG_USER+177 { (I) New in V41 };
- LAVL_Ticks = TAG_USER+178 { (I) New in V41 };
- LAVL_NumTicks = TAG_USER+179 { (IS) New in V41 };
- LAVL_Lines = TAG_USER+1;
- { MX_KIND }
- LAMX_FirstLabel = TAG_USER+44;
- LAMX_LastLabel = TAG_USER+45;
- LAMX_LabelTable = TAG_USER+98;
- LAMX_TabKey = TAG_USER+118;
- LAMX_AutoPageID = TAG_USER+103;
- { PALETTE_KIND }
- LAPA_SmallPalette = TAG_USER+32;
- LAPA_Lines = TAG_USER+1;
- LAPA_UsePicker = TAG_USER+137;
- LAPA_Picker = TAG_USER+137;
- { PASSWORD_KIND }
- LAPW_String = GTST_String;
- LAPW_LastGadget = TAG_USER+28;
- LAPW_HistoryLines = TAG_USER+59;
- LAPW_HistoryHook = TAG_USER+80;
- LAPW_Activate = TAG_USER+148;
- LAPW_MaxChars = GTST_MaxChars;
- { POPUP_KIND }
- LAPU_FirstLabel = TAG_USER+44;
- LAPU_LastLabel = TAG_USER+45;
- LAPU_LabelTable = TAG_USER+98;
- LAPU_AutoPageID = TAG_USER+103;
- LAPU_TabKey = TAG_USER+118;
- LAPU_Labels = GTCY_Labels;
- LAPU_Active = GTCY_Active;
- LAPU_CentreActive = TAG_USER+163;
- { SLIDER_KIND }
- LASL_FullCheck = TAG_USER+22;
- { SCROLLER_KIND }
- LASC_Thin = TAG_USER+62;
- LASC_FullSize = TAG_USER+188;
- { STRING_KIND }
- LAST_LastGadget = TAG_USER+28;
- LAST_Link = TAG_USER+7;
- LAST_Picker = TAG_USER+5;
- LAST_UsePicker = TAG_USER+5;
- LAST_HistoryLines = TAG_USER+59;
- LAST_HistoryHook = TAG_USER+80;
- LAST_CursorPosition = TAG_USER+105;
- LAST_Activate = TAG_USER+148;
- LAST_ValidateHook = TAG_USER+165;
- { TAB_KIND }
- LATB_FirstLabel = TAG_USER+44;
- LATB_LastLabel = TAG_USER+45;
- LATB_LabelTable = TAG_USER+98;
- LATB_AutoPageID = TAG_USER+103;
- LATB_TabKey = TAG_USER+118;
- LATB_Labels = GTCY_Labels;
- LATB_Active = GTCY_Active;
- LATB_FullWidth = TAG_USER+149;
- LATB_FullSize = TAG_USER+149;
- { TAPEDECK_KIND }
- LATD_ButtonType = TAG_USER+86;
- LATD_Toggle = TAG_USER+87;
- LATD_Pressed = TAG_USER+88;
- LATD_Smaller = TAG_USER+89;
- LATD_Tick = TAG_USER+139;
- { TEXT_KIND }
- LATX_Picker = TAG_USER+5;
- LATX_UsePicker = TAG_USER+5;
- LATX_LockSize = TAG_USER+106;
- { VERTICAL_KIND and HORIZONTAL_KIND }
- LAGR_Spread = TAG_USER+6;
- LAGR_SameSize = TAG_USER+8;
- LAGR_LastAttributes = TAG_USER+46;
- LAGR_ActivePage = TAG_USER+58;
- LAGR_Frame = TAG_USER+104;
- LAGR_IndentX = TAG_USER+130;
- LAGR_IndentY = TAG_USER+134;
- LAGR_NoIndent = TAG_USER+146;
- LAGR_SameWidth = TAG_USER+150;
- LAGR_SameHeight = TAG_USER+151;
- LAGR_FrameGroup = TAG_USER+168;
- LAGR_AlignRight = TAG_USER+171;
- { XBAR_KIND }
- LAXB_FullSize = TAG_USER+50;
- LAXB_FullWidth = TAG_USER+50;
- { Applicable for layout handle only }
- LAHN_TextAttr = TAG_USER+41;
- LAHN_AutoActivate = TAG_USER+42;
- LAHN_LocaleHook = TAG_USER+4;
- LAHN_CloningPermitted = TAG_USER+61;
- LAHN_EditHook = TAG_USER+74;
- LAHN_ExactClone = TAG_USER+75;
- LAHN_MenuGlyphs = TAG_USER+76;
- LAHN_Parent = TAG_USER+83;
- LAHN_BlockParent = TAG_USER+84;
- LAHN_SimpleClone = TAG_USER+90;
- LAHN_ExitFlush = TAG_USER+108;
- LAHN_UserData = TAG_USER+116;
- LAHN_RawKeyFilter = TAG_USER+142;
- LAHN_DontPickShortcuts = TAG_USER+154;
- LAHN_NoKeys = TAG_USER+154;
- LAHN_PubScreen = TAG_USER+157;
- LAHN_PubScreenName = TAG_USER+158;
- LAHN_PubScreenFallBack = TAG_USER+159;
- LAHN_CloneScreenTitle = TAG_USER+175;
- LAHN_CloneScreenTitleID = TAG_USER+176;
- LAHN_TopGroupType = TAG_USER+190;
- { Applicable for menus only. }
- LAMN_FirstLabel = LABX_FirstLabel;
- LAMN_LastLabel = LABX_LastLabel;
- LAMN_LabelTable = TAG_USER+98;
- LAMN_TitleText = TAG_USER+17000;
- LAMN_TitleID = TAG_USER+17001;
- LAMN_ItemText = TAG_USER+17002;
- LAMN_ItemID = TAG_USER+17003;
- LAMN_SubText = TAG_USER+17004;
- LAMN_SubID = TAG_USER+17005;
- LAMN_KeyText = TAG_USER+17006;
- LAMN_KeyID = TAG_USER+17007;
- LAMN_CommandText = TAG_USER+17008;
- LAMN_CommandID = TAG_USER+17009;
- LAMN_MutualExclude = TAG_USER+17010;
- LAMN_UserData = TAG_USER+17011;
- LAMN_Disabled = TAG_USER+17012;
- LAMN_CheckIt = TAG_USER+17013;
- LAMN_Checked = TAG_USER+17014;
- LAMN_Toggle = TAG_USER+17015;
- LAMN_Code = TAG_USER+17016;
- LAMN_Qualifier = TAG_USER+17017;
- LAMN_Char = TAG_USER+17018;
- LAMN_ID = TAG_USER+17019;
- LAMN_AmigaGlyph = TAG_USER+17020;
- LAMN_CheckmarkGlyph = TAG_USER+17021;
- LAMN_Error = TAG_USER+17022;
- LAMN_Screen = TAG_USER+17023;
- LAMN_TextAttr = TAG_USER+17024;
- LAMN_LayoutHandle = TAG_USER+17025;
- LAMN_Handle = TAG_USER+17025;
- LAMN_ExtraSpace = TAG_USER+17026;
- LAMN_FullMenuNum = TAG_USER+160;
- { Applicable for window only }
- LAWN_Menu = TAG_USER+25;
- LAWN_UserPort = TAG_USER+47;
- LAWN_Left = TAG_USER+48;
- LAWN_Top = TAG_USER+49;
- LAWN_Zoom = TAG_USER+50;
- LAWN_MaxPen = TAG_USER+52;
- LAWN_BelowMouse = TAG_USER+53;
- LAWN_MoveToWindow = TAG_USER+54;
- LAWN_AutoRefresh = TAG_USER+55;
- LAWN_HelpHook = TAG_USER+73;
- LAWN_Parent = TAG_USER+81;
- LAWN_BlockParent = TAG_USER+82;
- LAWN_SmartZoom = TAG_USER+91;
- LAWN_Title = TAG_USER+92;
- LAWN_TitleText = TAG_USER+92;
- LAWN_Bounds = TAG_USER+93;
- LAWN_ExtraWidth = TAG_USER+94;
- LAWN_ExtraHeight = TAG_USER+95;
- LAWN_IDCMP = TAG_USER+96;
- LAWN_AlignWindow = TAG_USER+97;
- LAWN_TitleID = TAG_USER+99;
- LAWN_FlushLeft = TAG_USER+14000 { NOTEZ-BIEN: = TAG_USER+99 = WA_Dummy and can clash };
- LAWN_FlushTop = TAG_USER+14001 { with Intuition! };
- LAWN_Show = TAG_USER+14002;
- LAWN_MenuTemplate = TAG_USER+14003;
- LAWN_MenuTags = TAG_USER+14004;
- LAWN_NoInitialRefresh = TAG_USER+164;
- LAWN_LimitWidth = TAG_USER+165;
- LAWN_LimitHeight = TAG_USER+166;
- LAWN_UserData = TAG_USER+169;
- { Private tags; do not use, or you'll run into trouble! }
- LA_Private1 = TAG_USER+100;
- LA_Private2 = TAG_USER+101;
- { Last tag item value used }
- LAST_TAG = TAG_USER+190;
- { Identifies the absence of a link for a listview or a string gadget }
- NIL_LINK = -(2);
- { }
- { String gadget type history hook support: you will either get
- the following value passed as the message parameter to your
- hook function, or a pointer to a null-terminated string you should
- copy and create a Node from, which you should then add to the tail
- of your history list. Place a pointer to your history list in the
- Hook.h_Data entry.
- }
- HISTORYHOOK_DiscardOldest = 0;
- { }
- { Refresh hook support: you will get the following structure
- passed as the message and a pointer to the LayoutHandle as
- the object.
- }
- type
- tRefreshMsg = record
- ID : LONG;
- Left : WORD;
- Top : WORD;
- Width : WORD;
- Height : WORD;
- end;
- pRefreshMsg = ^tRefreshMsg;
- { }
- { Incrementer hook support: you will get the current value
- passed as the object and one of the following values as
- the message. Return the number to be used.
- }
- const
- INCREMENTERMSG_Decrement = -1; { Decrement value }
- INCREMENTERMSG_Initial = 0; { Initial value passed upon gadget creation }
- INCREMENTERMSG_Increment = 1; { Increment value }
- const
- TICKS_None = 0; {/* No ticks please */}
- TICKS_Left = 1; {/* Place ticks left of the slider (FREEVERT only) */}
- TICKS_Both = 2; {/* Place ticks on both sides of the slider */}
- TICKS_Above = TICKS_Left;
- { }
- { The central data structure of the layout process. }
- { Requires gtlayout.library V9 }
- { Requires gtlayout.library V13 }
- { Hands off, private fields follow.... }
- type
- tLayoutHandle = record
- Screen : PScreen;
- DrawInfo : PDrawInfo;
- Window : PWindow;
- VisualInfo : Pointer;
- AmigaGlyph : PImage;
- CheckGlyph : PImage;
- UserData : Pointer;
- Menu : PMenu;
- end;
- pLayoutHandle = ^tLayoutHandle;
- { Help key hook support: the hook will be called with a "struct IBox "
- as the object and a "struct HelpMsg ". The IBox describes the object
- the mouse was positioned over, such as a button, a listview, etc.
- The "ObjectID" will indicate the ID of the object the mouse was
- positioned over. The ID will be -1 if no object was to be found.
- }
- { Window layout handle }
- { ID of the object, -1 for full window }
- tHelpMsg = record
- Handle : PLayoutHandle;
- ObjectID : LONG;
- end;
- pHelpMsg = ^tHelpMsg;
- { pUWord = ^UWord; }
- ppGadget = ^pGadget;
- pUWORD = ^UWORD;
- PROCEDURE LT_LevelWidth(par1 : pLayoutHandle; par2 : pCHAR; par3 : POINTER; par4 : LONGINT; par5 : LONGINT; par6 : pLONGINT; par7 : pLONGINT; last : LONGINT);
- PROCEDURE LT_DeleteHandle(last : pLayoutHandle);
- FUNCTION LT_CreateHandle(par1 : pScreen; last : pTextAttr) : pLayoutHandle;
- FUNCTION LT_CreateHandleTagList(par1 : pScreen; tags : pTagItem) : pLayoutHandle;
- FUNCTION LT_Rebuild(par1 : pLayoutHandle; par2 : pIBox; par3 : LONGINT; par4 : LONGINT; last : LONGINT) : BOOLEAN;
- PROCEDURE LT_HandleInput(par1 : pLayoutHandle; par2 : ulong; par3 : pulong; par4 : pUWORD; last :ppGadget);
- PROCEDURE LT_BeginRefresh(last : pLayoutHandle);
- PROCEDURE LT_EndRefresh(par1 : pLayoutHandle; last : LONGINT);
- FUNCTION LT_GetAttributesA(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem) : LONGINT;
- PROCEDURE LT_SetAttributesA(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem);
- PROCEDURE LT_AddA(par1 : pLayoutHandle; par2 : LONGINT; par3 : pCHAR; par4 : LONGINT; tags : pTagItem);
- PROCEDURE LT_NewA(par1 : pLayoutHandle; tags : pTagItem);
- PROCEDURE LT_EndGroup(last : pLayoutHandle);
- FUNCTION LT_LayoutA(par1 : pLayoutHandle; par2 : pCHAR; par3 : pIBox; par4 : LONGINT; par5 : LONGINT; par6 : ulong; par7 : LONGINT; tags : pTagItem) : pWindow;
- FUNCTION LT_LayoutMenusA(par1 : pLayoutHandle; par2 : pNewMenu; tags : pTagItem) : pMenu;
- FUNCTION LT_LabelWidth(par1 : pLayoutHandle; last : pCHAR) : LONGINT;
- FUNCTION LT_LabelChars(par1 : pLayoutHandle; last : pCHAR) : LONGINT;
- PROCEDURE LT_LockWindow(last : pWindow);
- PROCEDURE LT_UnlockWindow(last : pWindow);
- PROCEDURE LT_DeleteWindowLock(last : pWindow);
- PROCEDURE LT_ShowWindow(par1 : pLayoutHandle; last : LONGINT);
- PROCEDURE LT_Activate(par1 : pLayoutHandle; last : LONGINT);
- FUNCTION LT_PressButton(par1 : pLayoutHandle; last : LONGINT) : BOOLEAN;
- FUNCTION LT_GetCode(par1 : ulong; par2 : ulong; par3 : ulong; last : pGadget) : LONGINT;
- FUNCTION LT_GetIMsg(last : pLayoutHandle) : pIntuiMessage;
- PROCEDURE LT_ReplyIMsg(last : pIntuiMessage);
- FUNCTION LT_BuildA(par1 : pLayoutHandle; tags : pTagItem) : pWindow;
- FUNCTION LT_RebuildTagList(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem) : BOOLEAN;
- PROCEDURE LT_UpdateStrings(last : pLayoutHandle);
- PROCEDURE LT_DisposeMenu(last : pMenu);
- FUNCTION LT_NewMenuTemplate(par1 : pScreen; par2 : pTextAttr; par3 : pImage; par4 : pImage; par5 : pLONGINT; last : pNewMenu) : pMenu;
- FUNCTION LT_NewMenuTagList(tags : pTagItem) : pMenu;
- PROCEDURE LT_MenuControlTagList(par1 : pWindow; par2 : pMenu; tags : pTagItem);
- FUNCTION LT_GetMenuItem(par1 : pMenu; last : ulong) : pMenuItem;
- FUNCTION LT_FindMenuCommand(par1 : pMenu; par2 : ulong; par3 : ulong; last : pGadget) : pMenuItem;
- PROCEDURE LT_NewLevelWidth(par1 : pLayoutHandle; par2 : pCHAR; par3 : POINTER; par4 : LONGINT; par5 : LONGINT; par6 : pLONGINT; par7 : pLONGINT; last : LONGINT);
- PROCEDURE LT_Refresh(last : pLayoutHandle);
- PROCEDURE LT_CatchUpRefresh(last : pLayoutHandle);
- FUNCTION LT_GetWindowUserData(par1 : pWindow; last : POINTER) : POINTER;
- {
- This is functions and procedures with array of const.
- For use with fpc 1.0.7 and above.
- }
- FUNCTION LT_CreateHandleTags(screen : pScreen; const tagList : Array Of Const) : pLayoutHandle;
- FUNCTION LT_GetAttributes(handle : pLayoutHandle; id : LONGINT; const tagList : Array Of Const) : LONGINT;
- PROCEDURE LT_SetAttributes(handle : pLayoutHandle; id : LONGINT; const tagList : Array Of Const);
- PROCEDURE LT_Add(handle : pLayoutHandle; _type : LONGINT; _label : pCHAR; id : LONGINT; const tagList : Array Of Const);
- PROCEDURE LT_New(handle : pLayoutHandle; const tagList : Array Of Const);
- FUNCTION LT_Layout(handle : pLayoutHandle; title : pCHAR; bounds : pIBox; extraWidth : LONGINT; extraHeight : LONGINT; idcmp : longword; align : LONGINT; const tagParams : Array Of Const) : pWindow;
- FUNCTION LT_LayoutMenus(handle : pLayoutHandle; menuTemplate : pNewMenu; const tagParams : Array Of Const) : pMenu;
- FUNCTION LT_Build(handle : pLayoutHandle; const tagParams : Array Of Const) : pWindow;
- FUNCTION LT_RebuildTags(handle : pLayoutHandle; clear : LONGINT; const tags : Array Of Const) : BOOLEAN;
- FUNCTION LT_NewMenuTags(const tagList : Array Of Const) : pMenu;
- PROCEDURE LT_MenuControlTags(window : pWindow; intuitionMenu : pMenu; const tags : Array Of Const);
- VAR GTLayoutBase : pLibrary;
- {You can remove this include and use a define instead}
- {$I useautoopenlib.inc}
- {$ifdef use_init_openlib}
- procedure InitGTLAYOUTLibrary;
- {$endif use_init_openlib}
- {This is a variable that knows how the unit is compiled}
- var
- GTLAYOUTIsCompiledHow : longint;
- IMPLEMENTATION
- uses
- {$ifndef dont_use_openlib}
- msgbox,
- {$endif dont_use_openlib}
- tagsarray;
- PROCEDURE LT_LevelWidth(par1 : pLayoutHandle; par2 : pCHAR; par3 : POINTER; par4 : LONGINT; par5 : LONGINT; par6 : pLONGINT; par7 : pLONGINT; last : LONGINT);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L par3,A2
- MOVE.L par4,D0
- MOVE.L par5,D1
- MOVEA.L par6,A3
- MOVEA.L par7,A5
- MOVE.L last,D2
- MOVEA.L GTLayoutBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_DeleteHandle(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_CreateHandle(par1 : pScreen; last : pTextAttr) : pLayoutHandle;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_CreateHandleTagList(par1 : pScreen; tags : pTagItem) : pLayoutHandle;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_Rebuild(par1 : pLayoutHandle; par2 : pIBox; par3 : LONGINT; par4 : LONGINT; last : LONGINT) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L par3,A2
- MOVE.L par4,D0
- MOVE.L last,D1
- MOVEA.L GTLayoutBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
- PROCEDURE LT_HandleInput(par1 : pLayoutHandle; par2 : ulong; par3 : pulong;par4 : pUWORD; last : ppGadget);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVEA.L par3,A1
- MOVEA.L par4,A2
- MOVEA.L last,A3
- MOVEA.L GTLayoutBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_BeginRefresh(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_EndRefresh(par1 : pLayoutHandle; last : LONGINT);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L last,D0
- MOVEA.L GTLayoutBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_GetAttributesA(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem) : LONGINT;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- PROCEDURE LT_SetAttributesA(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_AddA(par1 : pLayoutHandle; par2 : LONGINT; par3 : pCHAR; par4 : LONGINT; tags : pTagItem);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVE.L par3,D1
- MOVE.L par4,D2
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_NewA(par1 : pLayoutHandle; tags : pTagItem);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_EndGroup(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_LayoutA(par1 : pLayoutHandle; par2 : pCHAR; par3 : pIBox; par4 : LONGINT; par5 : LONGINT; par6 : ulong; par7 : LONGINT; tags : pTagItem) : pWindow;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L par3,A2
- MOVE.L par4,D0
- MOVE.L par5,D1
- MOVE.L par6,D2
- MOVE.L par7,D3
- MOVEA.L tags,A3
- MOVEA.L GTLayoutBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_LayoutMenusA(par1 : pLayoutHandle; par2 : pNewMenu; tags : pTagItem) : pMenu;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L tags,A2
- MOVEA.L GTLayoutBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_LabelWidth(par1 : pLayoutHandle; last : pCHAR) : LONGINT;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_LabelChars(par1 : pLayoutHandle; last : pCHAR) : LONGINT;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- PROCEDURE LT_LockWindow(last : pWindow);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_UnlockWindow(last : pWindow);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_DeleteWindowLock(last : pWindow);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_ShowWindow(par1 : pLayoutHandle; last : LONGINT);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_Activate(par1 : pLayoutHandle; last : LONGINT);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L last,D0
- MOVEA.L GTLayoutBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_PressButton(par1 : pLayoutHandle; last : LONGINT) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L last,D0
- MOVEA.L GTLayoutBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
- FUNCTION LT_GetCode(par1 : ulong; par2 : ulong; par3 : ulong; last : pGadget) : LONGINT;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L par1,D0
- MOVE.L par2,D1
- MOVE.L par3,D2
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_GetIMsg(last : pLayoutHandle) : pIntuiMessage;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- PROCEDURE LT_ReplyIMsg(last : pIntuiMessage);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_BuildA(par1 : pLayoutHandle; tags : pTagItem) : pWindow;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_RebuildTagList(par1 : pLayoutHandle; par2 : LONGINT; tags : pTagItem) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVEA.L tags,A1
- MOVEA.L GTLayoutBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
- PROCEDURE LT_UpdateStrings(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_DisposeMenu(last : pMenu);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_NewMenuTemplate(par1 : pScreen; par2 : pTextAttr; par3 : pImage; par4 : pImage; par5 : pLONGINT; last : pNewMenu) : pMenu;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L par3,A2
- MOVEA.L par4,A3
- MOVE.L par5,D0
- MOVE.L last,D1
- MOVEA.L GTLayoutBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_NewMenuTagList(tags : pTagItem) : pMenu;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L tags,A0
- MOVEA.L GTLayoutBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- PROCEDURE LT_MenuControlTagList(par1 : pWindow; par2 : pMenu; tags : pTagItem);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L tags,A2
- MOVEA.L GTLayoutBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_GetMenuItem(par1 : pMenu; last : ulong) : pMenuItem;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L last,D0
- MOVEA.L GTLayoutBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- FUNCTION LT_FindMenuCommand(par1 : pMenu; par2 : ulong; par3 : ulong; last : pGadget) : pMenuItem;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVE.L par2,D0
- MOVE.L par3,D1
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- PROCEDURE LT_NewLevelWidth(par1 : pLayoutHandle; par2 : pCHAR; par3 : POINTER; par4 : LONGINT; par5 : LONGINT; par6 : pLONGINT; par7 : pLONGINT; last : LONGINT);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L par2,A1
- MOVEA.L par3,A2
- MOVE.L par4,D0
- MOVE.L par5,D1
- MOVEA.L par6,A3
- MOVE.L par7,D3
- MOVE.L last,D2
- MOVEA.L GTLayoutBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_Refresh(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- PROCEDURE LT_CatchUpRefresh(last : pLayoutHandle);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L last,A0
- MOVEA.L GTLayoutBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
- FUNCTION LT_GetWindowUserData(par1 : pWindow; last : POINTER) : POINTER;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L par1,A0
- MOVEA.L last,A1
- MOVEA.L GTLayoutBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
- {
- Functions and procedures with array of const go here
- }
- FUNCTION LT_CreateHandleTags(screen : pScreen; const tagList : Array Of Const) : pLayoutHandle;
- begin
- LT_CreateHandleTags := LT_CreateHandleTagList(screen , readintags(tagList));
- end;
- FUNCTION LT_GetAttributes(handle : pLayoutHandle; id : LONGINT; const tagList : Array Of Const) : LONGINT;
- begin
- LT_GetAttributes := LT_GetAttributesA(handle , id , readintags(tagList));
- end;
- PROCEDURE LT_SetAttributes(handle : pLayoutHandle; id : LONGINT; const tagList : Array Of Const);
- begin
- LT_SetAttributesA(handle , id , readintags(tagList));
- end;
- PROCEDURE LT_Add(handle : pLayoutHandle; _type : LONGINT; _label : pCHAR; id : LONGINT; const tagList : Array Of Const);
- begin
- LT_AddA(handle , _type , _label , id , readintags(tagList));
- end;
- PROCEDURE LT_New(handle : pLayoutHandle; const tagList : Array Of Const);
- begin
- LT_NewA(handle , readintags(tagList));
- end;
- FUNCTION LT_Layout(handle : pLayoutHandle; title : pCHAR; bounds : pIBox; extraWidth : LONGINT; extraHeight : LONGINT; idcmp : longword; align : LONGINT; const tagParams : Array Of Const) : pWindow;
- begin
- LT_Layout := LT_LayoutA(handle , title , bounds , extraWidth , extraHeight , idcmp , align , readintags(tagParams));
- end;
- FUNCTION LT_LayoutMenus(handle : pLayoutHandle; menuTemplate : pNewMenu; const tagParams : Array Of Const) : pMenu;
- begin
- LT_LayoutMenus := LT_LayoutMenusA(handle , menuTemplate , readintags(tagParams));
- end;
- FUNCTION LT_Build(handle : pLayoutHandle; const tagParams : Array Of Const) : pWindow;
- begin
- LT_Build := LT_BuildA(handle , readintags(tagParams));
- end;
- FUNCTION LT_RebuildTags(handle : pLayoutHandle; clear : LONGINT; const tags : Array Of Const) : BOOLEAN;
- begin
- LT_RebuildTags := LT_RebuildTagList(handle , clear , readintags(tags));
- end;
- FUNCTION LT_NewMenuTags(const tagList : Array Of Const) : pMenu;
- begin
- LT_NewMenuTags := LT_NewMenuTagList(readintags(tagList));
- end;
- PROCEDURE LT_MenuControlTags(window : pWindow; intuitionMenu : pMenu; const tags : Array Of Const);
- begin
- LT_MenuControlTagList(window , intuitionMenu , readintags(tags));
- end;
- const
- { Change VERSION and LIBVERSION to proper values }
- VERSION : string[2] = '0';
- LIBVERSION : Cardinal = 0;
- {$ifdef use_init_openlib}
- {$Info Compiling initopening of gtlayout.library}
- {$Info don't forget to use InitGTLAYOUTLibrary in the beginning of your program}
- var
- gtlayout_exit : Pointer;
- procedure ClosegtlayoutLibrary;
- begin
- ExitProc := gtlayout_exit;
- if GTLayoutBase <> nil then begin
- CloseLibrary(GTLayoutBase);
- GTLayoutBase := nil;
- end;
- end;
- procedure InitGTLAYOUTLibrary;
- begin
- GTLayoutBase := nil;
- GTLayoutBase := OpenLibrary(GTLAYOUTNAME,LIBVERSION);
- if GTLayoutBase <> nil then begin
- gtlayout_exit := ExitProc;
- ExitProc := @ClosegtlayoutLibrary;
- end else begin
- MessageBox('FPC Pascal Error',
- 'Can''t open gtlayout.library version ' + VERSION + #10 +
- 'Deallocating resources and closing down',
- 'Oops');
- halt(20);
- end;
- end;
- begin
- GTLAYOUTIsCompiledHow := 2;
- {$endif use_init_openlib}
- {$ifdef use_auto_openlib}
- {$Info Compiling autoopening of gtlayout.library}
- var
- gtlayout_exit : Pointer;
- procedure ClosegtlayoutLibrary;
- begin
- ExitProc := gtlayout_exit;
- if GTLayoutBase <> nil then begin
- CloseLibrary(GTLayoutBase);
- GTLayoutBase := nil;
- end;
- end;
- begin
- GTLayoutBase := nil;
- GTLayoutBase := OpenLibrary(GTLAYOUTNAME,LIBVERSION);
- if GTLayoutBase <> nil then begin
- gtlayout_exit := ExitProc;
- ExitProc := @ClosegtlayoutLibrary;
- GTLAYOUTIsCompiledHow := 1;
- end else begin
- MessageBox('FPC Pascal Error',
- 'Can''t open gtlayout.library version ' + VERSION + #10 +
- 'Deallocating resources and closing down',
- 'Oops');
- halt(20);
- end;
- {$endif use_auto_openlib}
- {$ifdef dont_use_openlib}
- begin
- GTLAYOUTIsCompiledHow := 3;
- {$Warning No autoopening of gtlayout.library compiled}
- {$Warning Make sure you open gtlayout.library yourself}
- {$endif dont_use_openlib}
- END. (* UNIT GTLAYOUT *)
- {
- $Log
- }
|