home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d9xx
/
d996
/
startup-menu.lha
/
Startup-Menu
/
Source
/
SMPrefs
/
Window.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-04-05
|
24KB
|
660 lines
{ ===================================================================== }
Procedure displayBevelboxes; { used to display and refresh the boxes }
Begin { output }
DrawBevelBoxA(TheWindow^.RPort, Sizes[S_G2_L]+Sizes[S_G2_W]+4,
Sizes[TBS]+2, Sizes[S_G3_W]+sizes[extra]+7,
Gads[G_LV]^.TopEdge + gads[G_LV]^.Height-2 -Sizes[TBS],
@Beveltags);
{DrawBevelBoxA(TheWindow^.RPort, Sizes[S_G2_L]+Sizes[S_G2_W]+4,
Sizes[TBS]+2, Sizes[S_G3_W]+sizes[extra]+7,
Gads[G_S_SCRID]^.TopEdge + gads[G_S_SCRID]^.Height +3 -Sizes[TBS],
@Beveltags);
}
End;
{ ===================================================================== }
Procedure setupbevelBoxes; { set up boxes }
Begin
Beveltags[1].ti_Tag := GT_VisualInfo;
BevelTags[1].ti_Data := LONG(vi);
BevelTags[2].ti_Tag := GTBB_Recessed;
BevelTags[2].ti_Data := True_;
BevelTags[3].ti_Tag := TAG_DONE;
End;
(* ===================================================================== *)
Procedure RefreshWin;
begin
GT_BeginRefresh(TheWindow);
DisplayBevelBoxes;
GT_EndRefresh(TheWindow, True);
end;
(* ===================================================================== *)
Procedure UpDateFont;
VAR
t : array[0..2] of tTagItem;
ts2 : string;
begin
FSplit(retrieveStr(CD.cd_Font.ta_Name), ts2, ts, ts2);
(* Just pretend it is a file name *)
Str(CD.cd_Font.ta_YSize, ts2);
TS := TS + ' ' + TS2 + #0;
T[0].ti_Tag := GTTX_Border;
T[0].ti_Data := True_;
T[1].ti_Tag := GTTX_Text;
T[1].ti_Data := Long(@ts[1]);
T[2].ti_Tag := TAG_DONE;
GT_SetGadgetAttrsA(gads[G_TD_FONT], Thewindow, NIL, @T);
end;
(* ===================================================================== *)
Procedure ErrExit(Errortxt : string; ExitCode : integer);
Begin
ErrorExit('** SMPrefs Error **'#0, Errortxt);
CloseLibrary(pLibrary(IntuitionBase));
If GadToolsBase <> NIL then CloseLibrary(pLibrary(GadtoolsBase));
If UtilityBase <> NIL then CloseLibrary(pLibrary(UtilityBase));
If AslBase <> NIL then CloseLibrary(pLibrary(AslBase));
If GfxBase <> NIL then CloseLibrary(pLibrary(GfxBase));
If ReqToolsBase <> NIL then CloseLibrary(pLibrary(ReqToolsBase));
If TheWindow <> NIL then CloseWindow(TheWindow);
If gads[G_NI] <> NIL then FreeGadgets(gads[G_NI]);
If vi <> NIL then Freevisualinfo(vi);
FreeRemember(@RememberKey, True);
Halt(exitcode);
end;
(* ===================================================================== *)
Procedure open_window;
Var
Window_Tags : Array[0..17] Of tTagItem;
Gadget_Tags : Array[0..4] Of tTagItem;
sampTxt : tIntuiText;
screendef : pScreen;
Begin
WindowIDCMP := INTEGERIDCMP Or IDCMP_REFRESHWINDOW
Or BUTTONIDCMP Or LISTVIEWIDCMP
OR CHECKBOXIDCMP;
gads[G_NI] := NIL;
pubname := LockFrontPubScr(screendef);
(* Get visual info and create context *)
vi := GetVisualInfoA(screendef, NIL);
If vi = NIL Then
ErrExit('Failed to get visual info'#0, 0);
Gads[G_CC] := CreateContext(@gads[G_NI]);
If Gads[G_CC] = NIL Then
ErrExit('Failed to create context'#0, 0);
(* Get some data from the screen *)
My_Font := Screendef^.Font^;
Sizes[TBS] := screendef^.WBorTop + (screendef^.Font^.ta_YSize + 1);
Sizes[S_Gad_H] := sizes[TBS] + 1;
sizes[S_WB_T] := Screendef^.WBorTop;
sizes[S_WB_L] := Screendef^.WBorLeft;
sizes[S_WB_R] := Screendef^.WBorRight;
sizes[S_WB_B] := Screendef^.WBorBottom;
Samptxt.ITextFont := @My_Font;
Sizes[S_G1_L] := Sizes[S_WB_L] + Sizes[S_WB_L];
Samptxt.IText := @G_B_BOTTOMtxt[1];
Sizes[S_G1_W] := IntuiTextLength(@Samptxt) + 10;
Samptxt.IText := @Sampstr[1];
Sizes[S_G2_W] := IntuiTextLength(@Samptxt) + 10;
Samptxt.IText := @G_S_TXTtxt[1];
Sizes[S_G2_L] := sizes[S_G1_L] + sizes[S_G1_W] + sizes[S_WB_L];
Samptxt.IText := @sampstr2[1];
Sizes[S_G3_W] := IntuiTextLength(@Samptxt) + 20;
Sizes[S_G3_L] := sizes[S_G2_L] + sizes[S_G2_W] + 6;
Samptxt.IText := @G_IK_ACROStxt[1];
sizes[extra] := IntuiTextLength(@Samptxt) + 10;
Samptxt.IText := CstrConstPtrAR(@RememberKey, 'The Requesters');
sizes[S_SCRID_W] := IntuiTextLength(@Samptxt) + 20;
(* Initilise gadget structures *)
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := True_;
Gadget_Tags[1].ti_Tag := GT_UnderScore;
Gadget_Tags[1].ti_Data := LONG('_');
Gadget_Tags[2].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_TextAttr := @My_Font;
ng_LeftEdge := sizes[S_G1_L];
ng_TopEdge := Sizes[TBS]+2;
ng_Width := Sizes[S_G1_W];
ng_Height := Sizes[S_GAD_H];
ng_GadgetText := @G_B_TOPtxt[1];
ng_VisualInfo := vi;
ng_GadgetID := G_B_TOP;
End;
(* create gadgets *)
Gads[G_B_TOP] := CreateGadgetA(BUTTON_KIND, Gads[G_CC], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_UPtxt[1];
ng_GadgetID := G_B_UP;
End;
Gads[G_B_UP] := CreateGadgetA(BUTTON_KIND, Gads[G_B_TOP], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_DOWNtxt[1];
ng_GadgetID := G_B_DOWN;
End;
Gads[G_B_DOWN] := CreateGadgetA(BUTTON_KIND, Gads[G_B_UP], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_BOTTOMtxt[1];
ng_GadgetID := G_B_BOTTOM;
End;
Gads[G_B_BOTTOM] := CreateGadgetA(BUTTON_KIND, Gads[G_B_DOWN], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_SORTtxt[1];
ng_GadgetID := G_B_SORT;
End;
Gads[G_B_SORT] := CreateGadgetA(BUTTON_KIND, Gads[G_B_BOTTOM], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_NEWtxt[1];
ng_GadgetID := G_B_NEW;
End;
Gads[G_B_NEW] := CreateGadgetA(BUTTON_KIND, Gads[G_B_SORT], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := True_;
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_REMOVEtxt[1];
ng_GadgetID := G_B_REMOVE;
End;
Gads[G_B_REMOVE] := CreateGadgetA(BUTTON_KIND, Gads[G_B_NEW], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_COPYtxt[1];
ng_GadgetID := G_B_COPY;
End;
Gads[G_B_COPY] := CreateGadgetA(BUTTON_KIND, Gads[G_B_REMOVE], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[2].ti_Tag := GTST_MaxChars;
Gadget_Tags[2].ti_Data := 31;
Gadget_Tags[3].ti_Tag := TAG_DONE;
With GadgetFlags Do Begin
ng_Width := Sizes[S_G2_W];
ng_LeftEdge := Sizes[S_G2_L];
ng_TopEdge := Sizes[TBS] + 2;
ng_GadgetText := @G_S_TXTtxt[1];
ng_GadgetID := G_S_TXT;
ng_Flags := PLACETEXT_RIGHT;
End;
Gads[G_S_TXT] := CreateGadgetA(STRING_KIND, Gads[G_B_COPY], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[2].ti_Tag := GTLV_ShowSelected;
Gadget_Tags[2].ti_Data := LONG(gads[G_S_TXT]);
Gadget_Tags[3].ti_Tag := GTLV_Labels;
Gadget_Tags[3].ti_Data := LONG(CurrentList);
Gadget_Tags[4].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_LeftEdge := sizes[S_G2_L];
ng_TopEdge := Sizes[TBS] +2;
ng_Width := Sizes[S_G2_W];
ng_Height := (screendef^.Font^.ta_YSize * ListViewRows)+Sizes[S_GAD_H]+4;
ng_GadgetText := NIL;
ng_GadgetID := G_LV;
End;
Gads[G_LV] := CreateGadgetA(LISTVIEW_KIND, Gads[G_S_TXT], @Gadgetflags, @Gadget_Tags);
If Gads[G_LV] = NIL Then
ErrExit('Failed to create gadgets'#0, 0);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := True_;
Gadget_Tags[2].ti_Tag := GTST_MaxChars;
Gadget_Tags[2].ti_Data := 180;
Gadget_Tags[3].ti_Tag := TAG_DONE;
With GadgetFlags Do Begin
ng_TopEdge := gads[G_S_TXT]^.TopEdge + gads[G_S_TXT]^.Height + 4;
ng_Width := Sizes[S_G2_W];
ng_Height := Sizes[S_GAD_H];
ng_GadgetText := @G_S_CMDtxt[1];
ng_Flags := PLACETEXT_RIGHT;
ng_GadgetID := G_S_CMD;
End;
Gads[G_S_CMD] := CreateGadgetA(STRING_KIND, Gads[G_LV], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[2].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_LeftEdge := sizes[S_G2_L] + (Sizes[S_G2_W] div 2);
ng_Width := Sizes[S_G2_W] div 2;
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_CMDREQtxt[1];
ng_GadgetID := G_B_CMDREQ;
ng_Flags := 0;
End;
Gads[G_B_CMDREQ] := CreateGadgetA(BUTTON_KIND, Gads[G_S_CMD], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[2].ti_Tag := GTST_MaxChars;
Gadget_Tags[2].ti_Data := 1;
Gadget_Tags[3].ti_Tag := TAG_DONE;
With GadgetFlags Do Begin
ng_LeftEdge := sizes[S_G2_L];
ng_Width := Sizes[S_G2_W] div 4;
ng_GadgetText := @G_S_KEYtxt[1];
ng_GadgetID := G_S_KEY;
ng_Flags := PLACETEXT_RIGHT;
End;
Gads[G_S_KEY] := CreateGadgetA(STRING_KIND, Gads[G_B_CMDREQ], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[2].ti_Tag := GTIN_MaxChars;
Gadget_Tags[2].ti_Data := 3;
Gadget_Tags[3].ti_Tag := GTIN_Number;
Gadget_Tags[3].ti_Data := CD.cd_Across;
Gadget_Tags[4].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_Width := Sizes[S_G3_W];
ng_LeftEdge := Sizes[S_G3_L]+4;
ng_Height := Sizes[S_GAD_H];
ng_TopEdge := Sizes[TBS] +5;
ng_GadgetText := @G_IK_ACROStxt[1];
ng_GadgetID := G_IK_ACROS;
End;
Gads[G_IK_ACROS] := CreateGadgetA(INTEGER_KIND, Gads[G_S_KEY], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[2].ti_Tag := GTNM_Border;
Gadget_Tags[2].ti_Data := True_;
Gadget_Tags[3].ti_Tag := GTNM_Number;
Gadget_Tags[3].ti_Data := 337;
Gadget_Tags[4].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := @G_ND_DOWNtxt[1];
ng_GadgetID := G_ND_DOWN;
End;
Gads[G_ND_DOWN] := CreateGadgetA(NUMBER_KIND, Gads[G_IK_ACROS], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[2].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_Width := Sizes[S_G3_L]+Sizes[S_G3_W]+Sizes[S_WB_L]+sizes[extra]-ng_LeftEdge-5;
ng_Height := Sizes[S_GAD_H];
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := CstrConstPtrAR(@RememberKey, 'Screen...');
ng_GadgetID := G_S_SCRID;
ng_Flags := 0;
End;
Gads[G_S_SCRID] := CreateGadgetA(BUTTON_KIND, Gads[G_ND_DOWN], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_Width := Sizes[S_G3_L]+Sizes[S_G3_W]+Sizes[S_WB_L]+sizes[extra]-ng_LeftEdge-5;
ng_TopEdge := ng_TopEdge + sizes[S_Gad_H] + 2;
ng_GadgetText := @G_B_FONTtxt[1];
ng_GadgetID := G_B_FONT;
ng_Flags := 0;
end;
Gads[G_B_FONT] := CreateGadgetA(BUTTON_KIND, Gads[G_S_SCRID], @Gadgetflags, @Gadget_Tags);
str(CD.cd_Font.ta_YSize, tmpstr);
fontstr := retrievestr(CD.cd_Font.ta_Name)+tmpstr+#0;
Gadget_Tags[2].ti_Tag := GTTX_Border;
Gadget_Tags[2].ti_Data := True_;
Gadget_Tags[3].ti_Tag := GTTX_Text;
Gadget_Tags[3].ti_Data := LONG(NIL);
Gadget_Tags[4].ti_Tag := TAG_DONE;
With GadgetFlags do begin
ng_GadgetText := NIL;
ng_TopEdge := ng_TopEdge + sizes[S_Gad_H] + 2;
end;
Gads[G_TD_FONT] := CreateGadgetA(TEXT_KIND, Gads[G_B_FONT], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[2].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_Width := Sizes[S_G3_L]+Sizes[S_G3_W]+Sizes[S_WB_L]+sizes[extra]-ng_LeftEdge-5;
ng_Height := Sizes[S_GAD_H];
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := CstrConstPtrAR(@RememberKey, 'Palette...');
ng_GadgetID := G_B_PALREQ;
ng_Flags := 0;
End;
Gads[G_B_PALREQ] := CreateGadgetA(BUTTON_KIND, Gads[G_TD_FONT], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[2].ti_Tag := TAG_END;
With GadgetFlags Do Begin
ng_Width := Sizes[S_G3_L]+Sizes[S_G3_W]+Sizes[S_WB_L]+sizes[extra]-ng_LeftEdge-5;
ng_Height := Sizes[S_GAD_H];
ng_TopEdge := ng_TopEdge + Sizes[S_Gad_H] + 2;
ng_GadgetText := CstrConstPtrAR(@RememberKey, 'Titles...');
ng_GadgetID := G_B_TITREQ;
ng_Flags := 0;
End;
Gads[G_B_TITREQ] := CreateGadgetA(BUTTON_KIND, Gads[G_B_PALREQ], @Gadgetflags, @Gadget_Tags);
Gadget_Tags[0].ti_Tag := GA_Disabled;
Gadget_Tags[0].ti_Data := False_;
Gadget_Tags[3].ti_Tag := TAG_DONE;
SampTxt.IText := @G_B_SAVEAStxt[1];
With GadgetFlags Do Begin
ng_TopEdge := gads[G_S_KEY]^.TopEdge + gads[G_S_KEY]^.Height + 6;
ng_LeftEdge := sizes[S_G1_L];
ng_Width := IntuiTextLength(@Samptxt) + 10;
ng_GadgetText := @G_B_SAVEtxt[1];
ng_Flags := 0;
ng_GadgetID := G_B_SAVE;
End;
Gads[G_B_SAVE] := CreateGadgetA(BUTTON_KIND, Gads[G_B_TITREQ], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_Leftedge := ng_LeftEdge + ng_Width + 2;
ng_GadgetText := @G_B_SAVEAStxt[1];
ng_GadgetID := G_B_SAVEAS;
ng_Width := ng_Width ;
End;
Gads[G_B_SAVEAS] := CreateGadgetA(BUTTON_KIND, Gads[G_B_SAVE], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_Leftedge := Sizes[S_G3_L] + Sizes[S_G3_W] + Sizes[S_WB_L] + sizes[extra] - ng_Width;
ng_GadgetText := @G_B_CANCELtxt[1];
ng_GadgetID := G_B_CANCEL;
End;
Gads[G_B_CANCEL] := CreateGadgetA(BUTTON_KIND, Gads[G_B_SAVEAS], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_Leftedge := ng_LeftEdge -(ng_Width) - 2;
ng_GadgetText := @G_B_LOADtxt[1];
ng_GadgetID := G_B_LOAD;
End;
Gads[G_B_LOAD] := CreateGadgetA(BUTTON_KIND, Gads[G_B_CANCEL], @Gadgetflags, @Gadget_Tags);
With GadgetFlags Do Begin
ng_Leftedge := gads[G_B_SAVEAS]^.LeftEdge + ng_Width + 2;
ng_GadgetText := @G_B_INFOtxt[1];
ng_Width := gads[G_B_LOAD]^.LeftEdge - 2 - ng_LeftEdge;
ng_GadgetID := G_B_INFO;
End;
Gads[G_B_INFO] := CreateGadgetA(BUTTON_KIND, Gads[G_B_LOAD], @Gadgetflags, @Gadget_Tags);
If Gads[G_CC] = NIL Then
ErrExit('Failed to create gadgets'#0, 0);
(* window structure *)
Window_Tags[0].ti_Tag := WA_Left;
Window_Tags[0].ti_Data := screendef^.MouseX - ((Sizes[S_G2_L] + Sizes[S_G2_W] + Sizes[S_WB_R] + Sizes[S_WB_L]) div 2);
Window_Tags[1].ti_Tag := WA_Top;
Window_Tags[1].ti_Data := Screendef^.MouseY - ((GadgetFlags.ng_TopEdge + Sizes[S_Gad_H] + 2) div 2);
Window_Tags[2].ti_Tag := WA_Width;
Window_Tags[2].ti_Data := Sizes[S_G3_L] + Sizes[S_G3_W] + Sizes[S_WB_R] + Sizes[S_WB_L] + sizes[extra]+4;
Window_Tags[3].ti_Tag := WA_Height;
Window_Tags[3].ti_Data := gads[G_B_SAVE]^.TopEdge + gads[G_B_SAVE]^.Height + Sizes[S_WB_T] + Sizes[S_WB_B];
Window_Tags[4].ti_Tag := WA_Title;
Window_Tags[4].ti_Data := LONG(@Win_Title[1]);
Window_Tags[5].ti_Tag := WA_IDCMP;
Window_Tags[5].ti_Data := WindowIDCMP;
Window_Tags[6].ti_Tag := WA_CloseGadget;
Window_Tags[6].ti_Data := False_;
Window_Tags[7].ti_Tag := WA_DragBar;
Window_Tags[7].ti_Data := True_;
Window_Tags[8].ti_Tag := WA_DepthGadget;
Window_Tags[8].ti_Data := True_;
Window_Tags[9].ti_Tag := WA_AutoAdjust;
Window_Tags[9].ti_Data := True_;
Window_Tags[10].ti_Tag := WA_Activate;
Window_Tags[10].ti_Data:= True_;
Window_Tags[11].ti_Tag := WA_Gadgets;
Window_Tags[11].ti_Data:= LONG(gads[G_NI]);
Window_Tags[12].ti_Tag := WA_SimpleRefresh;
Window_Tags[12].ti_Data:= True_;
Window_Tags[13].ti_Tag := WA_RMBTrap;
Window_Tags[13].ti_Data:= True_;
Window_Tags[14].ti_Tag := WA_PubScreenName;
Window_Tags[14].ti_Data:= LONG(@pubname[1]);
Window_Tags[15].ti_Tag := WA_PubScreenFallBack;
Window_Tags[15].ti_Data:= True_;
Window_Tags[16].ti_Tag := WA_ScreenTitle;
Window_Tags[16].ti_Data:= LONG(@Scr_Title[1]);
Window_Tags[17].ti_Tag := TAG_DONE;
TheWindow := OpenWindowTaglist(NIL,@Window_Tags);
If TheWindow = NIL Then
ErrExit('Failed to create window'#0, 206);
Gadget_Tags[0].ti_Tag := TAG_IGNORE;
Gadget_Tags[0].ti_Data := True_;
Gadget_Tags[1].ti_Tag := TAG_END;
setupbevelboxes;
displaybevelboxes;
GT_RefreshWindow(TheWindow, NIL);
UnlockFrontPubScr(pubname, ScreenDef);
CD.cd_Down := calcdown(CD.cd_Across);
UpDateFont;
End;
(* ===================================================================== *)
Procedure UpDateAcDown;
VAR
t : array[0..1] of tTagItem;
begin
T[0].ti_Tag := GTIN_Number;
T[0].ti_Data := CD.cd_Across;
T[1].ti_Tag := TAG_DONE;
GT_SetGadgetAttrsA(gads[G_IK_ACROS], Thewindow, NIL, @T);
CD.cd_Down := calcdown(CD.cd_Across);
end;
(* ===================================================================== *)
Function ThirdGenAn(LeftEdge, TopEdge : LongInt) : Boolean;
TYPE (* Displays info *)
tGrafixData = Array[0..279] of Word;
pGrafixData = ^tGrafixData;
CONST
fontname : string = 'topaz.font'#0;
WT : string = 'About Startup-Menu'#0;
ImgData : tGrafixData = (
(* Plane 0 *)
$8A70,$0FFF,$FFFF,$FFFF,$FFF0,$80C6,$07FF,$FFFF,
$FFFF,$FFF0,$803E,$03FF,$FFFF,$FFBF,$FFF0,$80C1,
$01E0,$007F,$FF5F,$FFF0,$813E,$819F,$FFBF,$FEEF,
$FFF0,$82CF,$417F,$FFDF,$FDF7,$FFF0,$8507,$A2FF,
$FFBF,$FDF7,$FFF0,$8A07,$D50F,$FF7F,$FBFB,$FFF0,
$8A1F,$DA1F,$FEFF,$F7FD,$FC00,$FD25,$DBF8,$05FF,
$F7FD,$FC00,$FEA5,$D7E7,$007F,$AFBE,$FC00,$FF48,
$D72A,$FFBF,$DFB1,$7800,$FF90,$B655,$FFDF,$5FF1,
$7E00,$FFB4,$57DB,$FE5F,$BFF0,$AFF0,$FFDF,$E4D7,
$FE5F,$7FE0,$50F0,$542F,$D44F,$FC59,$45F8,$5050,
$0011,$F6A4,$0452,$87FF,$E800,$01FD,$F6E3,$F455,
$0803,$F400,$0202,$D2D8,$0455,$17FD,$5400,$05FC,
$2B07,$FC5A,$1405,$0A00,$0A7F,$EDB0,$045A,$2802,
$8A00,$14FF,$DEF4,$4054,$2802,$8500,$28FF,$BF6F,
$7028,$1405,$0280,$17FE,$4F9F,$FFD7,$EF82,$FDF0,
$0801,$EF60,$0028,$1F81,$03F0,$07FE,$AC7F,$FFC7,
$FF80,$FFF0,$0000,$B07F,$B000,$FFC0,$07F0,$0000,
$007F,$8000,$7FC0,$07F0,
(* Plane 1 *)
$758F,$F000,$0000,$0FFF,$FFF0,$FF39,$F800,$0000,
$0FFF,$FFF0,$FFFF,$FC1F,$FF80,$3FFF,$FFF0,$FFFF,
$FE7F,$FFC0,$1FBF,$FFF0,$FFC1,$FEE0,$0060,$7F5F,
$FFF0,$FF30,$FF80,$00B0,$FEEF,$FFF0,$FEF8,$7F00,
$0060,$7EEF,$FFF0,$FDF8,$3EF0,$00C1,$FDF7,$FFF0,
$FDE0,$3DE0,$0183,$FBFB,$FFF0,$FEDA,$3DE7,$FB81,
$FBBB,$FFF0,$FF5A,$3BDF,$FFC7,$F75D,$FFF0,$FFB7,
$3BDF,$006F,$EF5E,$FFF0,$FFEF,$7BBE,$07BF,$EE0E,
$FFF0,$FFDF,$BBBC,$1FBF,$DCFF,$7FF0,$FFEF,$DBB8,
$3FBF,$BDFF,$BFF0,$FFF1,$EBB0,$03BF,$BBFF,$BFF0,
$FFFE,$EBDB,$FBBF,$7803,$DFF0,$FFFE,$EBDF,$FBBE,
$F7FD,$EFF0,$FFFD,$EDA7,$FBBE,$EFFE,$EFF0,$FE03,
$DDF8,$03BD,$EFFE,$F7F0,$FDFF,$DEFF,$FFBD,$DFFF,
$77F0,$FBFF,$BF5F,$FFBB,$DFFF,$7BF0,$F7FE,$7F97,
$FFD7,$EFFE,$FDF0,$F801,$FBE0,$0038,$187F,$0300,
$FFFF,$FFFF,$FFFF,$F07F,$FE00,$FFFF,$FF9F,$FFFF,
$E07F,$FC00,$FFFF,$FF81,$FFFF,$003F,$F800,$FFFF,
$FF80,$FFFF,$803F,$F800
);
PicImage : tImage = (
LeftEdge : 0;
TopEdge : 0;
Width : 76;
Height : 28;
Depth : 2;
ImageData : NIL;
PlanePick : $0003;
PlaneOnOff : $0000;
NextImage : NIL
);
VAR
TheWin : pWindow;
exitl : boolean;
message : pIntuiMessage;
MsgClass,
Dummy : Long;
ImageDataPtr : pGrafixData;
Tgs : Array[0..13] of tTagItem;
Infotxt : array [0..11] of tIntuiText;
MyFont : tTextAttr;
InfoStrs : Array[0..11] of string;
begin
ImageDataptr := AllocMem(sizeof(tGrafixData), MEMF_CHIP);
if ImageDataPtr = NIL then ErrExit('Failed to allocate pointer memory'#0, 10);
ImageDataPtr^ := ImgData;
PicImage.ImageData := pWord(ImageDataPtr);
WITH MyFont DO BEGIN
ta_Name := @FontName[1];
ta_YSize := 8;
ta_Style := FS_NORMAL;
ta_Flags := FPF_ROMFONT;
END;
InfoStrs[0] := 'SMPrefs v1.00'#0;
InfoStrs[1] := 'Creates a preference file'#0;
InfoStrs[2] := 'file for Startup-Menu'#0;
InfoStrs[3] := ' '#0;
InfoStrs[4] := 'Programming : Lee Kindness'#0;
InfoStrs[5] := 'Gfx & Misc : Adam Kindness'#0;
InfoStrs[6] := 'Comments to : '#0;
InfoStrs[7] := ' Lee Kindness'#0;
InfoStrs[8] := ' 8 Craigmarn Road'#0;
InfoStrs[9] := ' Portlethen'#0;
InfoStrs[10]:= ' ABERDEEN AB1 4QR'#0;
InfoStrs[11]:= ' SCOTLAND'#0;
for i := 0 to 11 do
with InfoTxt[i] do begin
FrontPen := 1;
BackPen := 0;
DrawMode := JAM1;
LeftEdge := 0;
TopEdge := (9*i);
ITextFont := @MyFont;
IText := @InfoStrs[i,1];
if i < 11 then NextText := @InfoTxt[i+1] else NextText := NIL
end;
Tgs[0].ti_Tag := WA_Width;
Tgs[0].ti_Data := 335;
Tgs[1].ti_Tag := WA_Height;
Tgs[1].ti_Data := 125;
Tgs[2].ti_Tag := WA_Title;
Tgs[2].ti_Data := LONG(@WT[1]);
Tgs[3].ti_Tag := WA_IDCMP;
Tgs[3].ti_Data := IDCMP_CLOSEWINDOW OR IDCMP_REFRESHWINDOW
OR IDCMP_MOUSEBUTTONS;
Tgs[4].ti_Tag := WA_PubScreenName;
Tgs[4].ti_Data := LONG(@pubname[1]);
Tgs[5].ti_Tag := WA_CloseGadget;
Tgs[5].ti_Data := True_;
Tgs[6].ti_Tag := WA_DragBar;
Tgs[6].ti_Data := True_;
Tgs[7].ti_Tag := WA_SimpleRefresh;
Tgs[7].ti_Data := True_;
Tgs[8].ti_Tag := WA_RMBTrap;
Tgs[8].ti_Data := True_;
Tgs[9].ti_Tag := WA_Activate;
Tgs[9].ti_Data := True_;
Tgs[10].ti_Tag := WA_Left;
Tgs[10].ti_Data:= LeftEdge;
Tgs[11].ti_Tag := WA_Top;
Tgs[11].ti_Data:= TopEdge;
Tgs[12].ti_Tag := WA_PubScreenFallBack;
Tgs[12].ti_Data:= True_;
Tgs[13].ti_Tag := TAG_DONE;
TheWin := OpenWindowTaglist(NIL,@Tgs);
If TheWin = NIL Then
ErrExit('Failed to create window'#0, 206);
DrawImage(TheWin^.RPort, @PicImage, 12, Sizes[TBS]+3);
DrawBevelBoxA(TheWin^.RPort, 10, sizes[TBS]+2, 81, 30 ,@BevelTags);
PrintIText(TheWin^.RPort, @InfoTxt, 100, sizes[TBS]+2);
exitl := false;
While Not exitl Do Begin
dummy := Wait(BitMask(TheWin^.UserPort^.MP_SIGBIT));
Repeat
message := pIntuiMessage(GetMsg(TheWin^.userPort));
MsgClass := message^.Class;
Case MsgClass Of
IDCMP_REFRESHWINDOW : begin
GT_BeginRefresh(TheWin);
DrawImage(TheWin^.RPort, @PicImage, 12, Sizes[TBS]+6);
DrawBevelBoxA(TheWin^.RPort, 10, sizes[TBS]+5, 81, 30 ,@BevelTags);
PrintIText(TheWin^.RPort, @InfoTxt, 100, sizes[TBS]+2);
GT_EndRefresh(TheWin, True);
end;
IDCMP_MOUSEBUTTONS : begin
exitl := True;
end;
IDCMP_CLOSEWINDOW : begin
exitl := True;
end;
end; {CASE}
Until message = NIL;
End; (*while*)
CloseWindow(TheWin);
FreeMem_(ImageDataPtr, sizeof(tGrafixData));
ThirdGenAn := True;
end;
(* ===================================================================== *)