{$if not def AP_OBERFL_H}
   
CONST
  AP_OBERFL_H = 0;

{ ** Modifiziert die Koordinaten eines Gadgets so, daß sie sich fontsensitiv
     anpassen ** }
PROCEDURE SensitivGadget(VAR ng:NewGadget);
BEGIN
  ng.ng_LeftEdge := ComputeX(ng.ng_LeftEdge)+xoff;
  ng.ng_TopEdge  := ComputeY(ng.ng_TopEdge)+yoff;
  ng.ng_Width    := ComputeX(ng.ng_Width);
  ng.ng_Height   := ComputeY(ng.ng_Height);
END;

{ -- Zeichnet eine BevelBox -- }
PROCEDURE Rahmen(VAR wo : p_Window; x,y,b,h : INTEGER; recessed : BOOLEAN);
BEGIN
  t[1] := TagItem(GT_VisualInfo,LONG(vi));
  t[2] := TagItem(GTBB_Recessed, LONG(recessed));
  t[3].ti_Tag := TAG_DONE;

  DrawBevelBoxA(wo^.RPort,xoff+ComputeX(x),yoff+ComputeY(y),ComputeX(b),ComputeY(h),^t);
END;

FUNCTION GetString(VAR g:p_Gadget) : STR;
VAR
  si : p_StringInfo;
BEGIN
  IF (g^.GadgetType AND GTYP_STRGADGET)=0 THEN EXIT;
  si := g^.SpecialInfo;
  GetString := si^.Buffer;
END;   

PROCEDURE GhostGadget(VAR gad:p_Gadget; VAR wp:p_Window; status:BOOLEAN);
BEGIN
  t[1] := TagItem(GA_Disabled, ORD(status));
  t[2].ti_Tag := TAG_DONE;
  GT_SetGadgetAttrsA(gad, wp, NIL, ^t);
END;


 PROCEDURE raster(win:p_window,x,y,b,h:INTEGER); 
 { zeichnet ein Raster }
 { Thanks And Greetings To PackMAN !!!!!!!!!!!! ....... }
 VAR   pattern : array[0..1] of word;
       rp:p_rastport;

BEGIN
 rp:=win^.rport;
 b:=computex(b+x)+xoff;
 h:=computey(h+y)+yoff;
 x:=computex(x)+xoff;
 y:=computey(y)+yoff;
 pattern[0]:=$AAAA;                { Pattern ausfüllen    }
 pattern[1]:=$5555;
 SetAfPt(RP,^pattern,1);           { Pattern setzen       }
 SetAPen(RP,2);                    { Farben für Raster    } 
 SetBPen(RP,0);
 SetDrMd(RP,JAM2);                 { Schreibmodus setzen  }
 RectFill(RP,x,y,b,h);
 SetAfPt(RP,NIL,0);                { Pattern zurücksetzen }
END;

PROCEDURE clearq(win:p_window;x,y,b,h:INTEGER);
  {löscht einen Quadratischen ähm rechteckigen Bereich} 

VAR rp:p_rastport;

 BEGIN
  rp:=win^.rport;
  b:=computex(b+x)+xoff;  { bis ich hier die richtige Formel hatte! Sche°@}
  h:=computey(h+y)+yoff;
  x:=Computex(x)+xoff;
  y:=Computey(y)+yoff;
  SetApen(rp,0);
  Setdrmd(rp,JAM2);
  rectfill(rp,x,y,b,h);
 END;

{ -- Die Editgadgets definieren -- }
PROCEDURE SetEditGads;
BEGIN
  ComputeFont(EditWinWidth,EditWinHeight);
  ww := ComputeX(EditWinWidth);
  wh := ComputeY(EditWinHeight);
  gl1 := NIL;
  gl1 := CreateContext(^gl1);

  t[1] := TagItem(GT_Underscore,LONG("_"));
  t[2] := TagItem(GTST_MaxChars,namelength-1);
  t[3] := TagItem(GTST_String, LONG(^nbuf));
  t[4].ti_Tag := TAG_DONE;

  ng := NewGadget(100,4,405,14,
                  "_Name",mytattr,
                  1,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  egad[1] := CreateGadgetA(STRING_KIND,gl1,^ng,^t);

  ng := NewGadget(100,19,405,14,
                  "_Vorname",MyTattr,
                  2,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := vnamelength-1;
  t[3].ti_Data := LONG(^vbuf);
  egad[2] := CreateGadgetA(STRING_KIND,egad[1],^ng,^t);

  ng := NewGadget(100,34,405,14,
                  "Str_aße",MyTattr,
                  3,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := strasselength-1;
  t[3].ti_Data := LONG(^sbuf);
  egad[3] := CreateGadgetA(STRING_KIND,egad[2],^ng,^t);


  ng := NewGadget(100,49,100,14,
                  "_PLZ",MyTattr,
                  4,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);

  t[2].ti_Data := plzlength-1;
  t[3].ti_Data := LONG(^pbuf);
  egad[4] := CreateGadgetA(STRING_KIND,egad[3],^ng,^t);

  ng := NewGadget(245,49,260,14,
                  "_Ort",MyTattr,
                  5,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := ortlength-1;
  t[3].ti_Data := LONG(^obuf);
  egad[5] := CreateGadgetA(STRING_KIND,egad[4],^ng,^t);

  ng := NewGadget(100,64,150,14,
                  "_Telefon",MyTattr,
                  6,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := tellength-1;
  t[3].ti_Data := LONG(^tbuf);
  egad[6] := CreateGadgetA(STRING_KIND,egad[5],^ng,^t);

  ng := NewGadget(320,64,150,14,
                  "_Fax",MyTattr,
                  7,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := faxlength-1;
  t[3].ti_Data := LONG(^fbuf);
  egad[7] := CreateGadgetA(STRING_KIND,egad[6],^ng,^t);

  ng := NewGadget(100,79,150,14,
                  "_Geburtst.",MyTattr,
                  8,PLACETEXT_LEFT,
                  vi,NIL);
  SensitivGadget(ng);
  t[2].ti_Data := geblength-1;
  t[3].ti_Data := LONG(^gbuf);
  egad[8] := CreateGadgetA(STRING_KIND,egad[7],^ng,^t);

  ng := NewGadget(100,94,150,14,
                  "EMail _1",MyTattr,
      9,PLACETEXT_LEFT,
      vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GTST_String, LONG(^em1buf));
  t[2] := TagItem(GTST_MaxChars, EMailLength-1);
  t[3] := TagItem(GT_Underscore, LONG("_"));
  t[4].ti_Tag := TAG_DONE;
  egad[9] := CreateGadgetA(STRING_KIND,egad[8],^ng,^t);      

  ng := NewGadget(320,94,150,14,
                  "EMail _2",MyTattr,
      10,PLACETEXT_LEFT,
      vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GTST_String, LONG(^em2buf));
  t[2] := TagItem(GTST_MaxChars, EMailLength-1);
  t[3] := TagItem(GT_Underscore, LONG("_"));
  t[4].ti_Tag := TAG_DONE;
  egad[10] := CreateGadgetA(STRING_KIND,egad[9],^ng,^t);      
  
  ng := NewGadget(100,109,405,14,
                  "_Kommentar:",MyTattr,
                  11,PLACETEXT_LEFT,
                  vi,NIL);
  sensitivgadget(ng);
  t[1] := TagItem(GTST_String, LONG(^kombuf));
  t[2] := TagItem(GTST_MaxChars, komlength-1);
  egad[11] := CreateGadgetA(STRING_KIND,egad[10],^ng,^t);                  

  ng := NewGadget(5,158,150,14,
                  "_Übernehmen",^tattr,
                  12,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GT_Underscore, LONG("_"));
  t[2].ti_Tag := TAG_DONE;
  egad[12] := CreateGadgetA(BUTTON_KIND,egad[11],^ng,^t);
  ng := NewGadget(468,158,150,14,
                  "A_bbruch",MyTattr,
                  13,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  egad[13] := CreateGadgetA(BUTTON_KIND,egad[12],^ng,^t);

  j := 7;
  k := 128;
  FOR i := 1 TO 10 DO
  BEGIN
    ng := NewGadget(j,k,27,CHECKBOX_HEIGHT,
                    SelectTexte[i],MyTattr,
                    i+13,PLACETEXT_RIGHT,
                    vi,NIL);
    SensitivGadget(ng);
    t[1] := TagItem(GTCB_Checked,0);
    t[2] := TagItem(GTCB_Scaled,1);
    t[3].ti_Tag := TAG_DONE;
    egad[i+13] := CreateGadgetA(CHECKBOX_KIND,egad[i+12],^ng,^t);
    j := j + 124;
    IF j > 620 THEN
    BEGIN
      j := 7;
      k := k + 13;
    END;
  END;
  MXLabels[1] := "Firma (_3)";
  MXLabels[2] := "Herrn (_4)";
  MXLabels[3] := "Frau  (_5)";
  MXLabels[4] := "_#";
  MXLabels[5] := NIL;
  ng := NewGadget(520,5,MX_WIDTH,fontx,
                  NIL,MyTattr,
                  24,PLACETEXT_RIGHT,
                  vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GTMX_Labels, LONG(^MXLabels));
  t[2] := TagItem(GTMX_Scaled, 1);
  t[3] := TagItem(GTMX_Spacing, 2);
  t[4] := TagItem(GTMX_Active, anrede_z);
  t[5] := TagItem(GT_Underscore, LONG("_"));
  t[6].ti_Tag := TAG_DONE;
  egad[24] := CreateGadgetA(MX_KIND,egad[23],^ng,^t);      
  
{**}  ng := NewGadget(520,{10}49,
                  80,14,
                  NIL,mytattr,
                  25,0,
                  vi,NIL);
  SensitivGadget(ng);
{  ng.ng_TopEdge := ng.ng_TopEdge + egad[24]^.Height;}
  t[1] := TagItem(GTST_String,LONG(^anredebuf));
  t[2] := TagItem(GTST_MaxChars, 9);
  t[3].ti_Tag := TAG_DONE;
  IF anrede_z < 3 THEN t[3] := TagItem(GA_Disabled, 1);
  t[4].ti_Tag := TAG_DONE;
  egad[25] := CreateGadgetA(STRING_KIND,egad[24],^ng,^t);
END;

PROCEDURE SortierenOberfläche;
BEGIN
  ComputeFont(276,80);
  ww := ComputeX(276);
  wh := ComputeY(80);

  gl2 := NIL;
  gl2 := CreateContext(^gl2); 

  MXLabels[1] := "_Name";
  MXLabels[2] := "_Vorname";
  MXLabels[3] := "Stra_ße";
  MXLabels[4] := "_Postleitzahl";
  MXLabels[5] := "_Ort";
  MXLabels[6] := "_Telefon";
  MXLabels[7] := "_Fax";
  MXLabels[8] := NIL;
  ng := NewGadget(15,7,MX_WIDTH,fontx,
                  NIL,MyTattr,
                  1,PLACETEXT_RIGHT,
                  vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GT_Underscore, LONG("_"));
  t[2] := TagItem(GTMX_Scaled, 1);
  t[3] := TagItem(GTMX_Spacing, 2);
  t[4] := TagItem(GTMX_Active, 0);
  t[5] := TagItem(GTMX_Labels, LONG(^MXLabels));
  t[6].ti_Tag := TAG_DONE;
  egad[1] := CreateGadgetA(MX_KIND,gl2,^ng,^t);      

    
            
  ng := NewGadget(150,4,120,12,
                  '_Aufwärts',MyTattr,
                  2,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  t[2].ti_tag := TAG_DONE;
  egad[2] := CreateGadgetA(BUTTON_KIND,egad[1],^ng,^t);

  ng := NewGadget(150,18,120,12,
                  'Ab_wärts',MyTattr,
                  3,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  egad[3] := CreateGadgetA(BUTTON_KIND,egad[2],^ng,^t);

  ng := NewGadget(150,32,120,12,
                  'Ab_bruch (Esc)',MyTattr,
                  4,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  egad[4] := CreateGadgetA(BUTTON_KIND,egad[3],^ng,^t);  
END;

PROCEDURE SuchenOberfläche;
BEGIN
  ComputeFont(322,149);
  ww := ComputeX(322);
  wh := ComputeY(149);

  gl2 := NIL;
  gl2 := CreateContext(^gl2); 

  ng := NewGadget(110,8,200,14,
                  "_Suchstring:",MyTattr,
                  1,PLACETEXT_LEFT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[1] := TagItem(GT_UNDERSCORE,LONG('_'));
  t[2] := TagItem(GTST_String,LONG(^suchbuf));
  t[3] := TagItem(GTST_MaxChars,39);
  t[4].ti_Tag := TAG_DONE;
  sgad[1] := CreateGadgetA(STRING_KIND,gl2,^ng,^t);
  
  ng := NewGadget(18,25,26,CHECKBOX_HEIGHT,
                  '_Name',MyTattr,
                  2,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[2] := TagItem(GTCB_SCALED,1);
  t[3] := TagItem(GTCB_CHECKED,1);
  
  sgad[2] := CreateGadgetA(CHECKBOX_KIND,sgad[1],^ng,^t);
  
  ng := NewGadget(18,38,26,CHECKBOX_HEIGHT,
                  '_Vorname',MyTattr,
                  3,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[3].ti_Tag := TAG_DONE;  
  sgad[3] := CreateGadgetA(CHECKBOX_KIND,sgad[2],^ng,^t);
  
  ng := NewGadget(18,51,26,CHECKBOX_HEIGHT,
                  'Stra_ße',MyTattr,
                  4,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[4] := CreateGadgetA(CHECKBOX_KIND,sgad[3],^ng,^t);

  ng := NewGadget(18,64,26,CHECKBOX_HEIGHT,
                  '_Plz',MyTattr,
                  5,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[5] := CreateGadgetA(CHECKBOX_KIND,sgad[4],^ng,^t);
    
  ng := NewGadget(18,77,26,CHECKBOX_HEIGHT,
                  '_Ort',MyTattr,
                  6,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[6] := CreateGadgetA(CHECKBOX_KIND,sgad[5],^ng,^t);

  ng := NewGadget(18,90,26,CHECKBOX_HEIGHT,
                  '_Telefon',MyTattr,
                  7,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[7] := CreateGadgetA(CHECKBOX_KIND,sgad[6],^ng,^t);

  ng := NewGadget(18,103,26,CHECKBOX_HEIGHT,
                  'G_eburtstag',MyTattr,
                  8,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[8] := CreateGadgetA(CHECKBOX_KIND,sgad[7],^ng,^t);

  ng := NewGadget(18,116,26,CHECKBOX_HEIGHT,
                  '_Fax',MyTattr,
                  9,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[9] := CreateGadgetA(CHECKBOX_KIND,sgad[8],^ng,^t);

  ng := NewGadget(150,25,26,CHECKBOX_HEIGHT,
                  'Email _1',MyTattr,
                  10,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[10] := CreateGadgetA(CHECKBOX_KIND,sgad[9],^ng,^t);

  ng := NewGadget(150,38,26,CHECKBOX_HEIGHT,
                  'Email _2',MyTattr,
                  11,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[11] := CreateGadgetA(CHECKBOX_KIND,sgad[10],^ng,^t);

  ng := NewGadget(150,51,26,CHECKBOX_HEIGHT,
                  'Ko_mmentar',MyTattr,
                  12,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[12] := CreateGadgetA(CHECKBOX_KIND,sgad[11],^ng,^t);

  ng:=NewGadget(150,64,26,CHECKBOX_HEIGHT,'_Alle aktivieren',mytattr,
                13,PLACETEXT_RIGHT,
                vi,NIL);
  sensitivgadget(ng);
  sgad[13]:=CreateGadgetA(CHECKBOX_KIND,sgad[12],^ng,^t);

{  ng:=NewGadget(231,64,78,12,'_Keine',mytattr,
                14,PLACETEXT_IN,
                vi,NIL);
  sensitivgadget(ng);
  sgad[14]:=CreateGadgetA(BUTTON_KIND,sgad[13],^ng,^t);}

  ng := NewGadget(150,77,26,CHECKBOX_HEIGHT,
                  '_genau ',MyTattr,
                  15,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[15] := CreateGadgetA(CHECKBOX_KIND,sgad[13],^ng,^t);
                              
  ng := NewGadget(150,90,26,CHECKBOX_HEIGHT,
                  'G/k _ignorieren',MyTattr,
                  16,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[2] := TagItem(GTCB_SCALED,1);
  t[3] := TagItem(GTCB_CHECKED,1);
  t[4].ti_Tag := TAG_DONE;  
  sgad[16] := CreateGadgetA(CHECKBOX_KIND,sgad[15],^ng,^t);

  ng := NewGadget(150,103,26,CHECKBOX_HEIGHT,
                  'von Anfang _.',MyTattr,
                  17,PLACETEXT_RIGHT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[3].ti_Tag := TAG_DONE;  
  sgad[17] := CreateGadgetA(CHECKBOX_KIND,sgad[16],^ng,^t);

  ng:=NewGadget(150,116,140,12,'Datensatz _zeigen',mytattr,
                18,PLACETEXT_IN,
                vi,NIL);
  sensitivgadget(ng);
  sgad[18]:=CreateGadgetA(BUTTON_KIND,sgad[17],^ng,^t);

  ng:=NewGadget(6,134,140,15,'S_uchen',mytattr,
                19,PLACETEXT_IN,
                vi,NIL);
  sensitivgadget(ng);
  sgad[19]:=CreateGadgetA(BUTTON_KIND,sgad[18],^ng,^t);

  ng:=NewGadget(179,134,140,15,'Ab_bruch (Esc)',mytattr,
                 20 ,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  sgad[20]:=CreateGadgetA(BUTTON_KIND,sgad[19],^ng,^t);  
END;


FUNCTION speichernalsOberfläche:BOOLEAN;

 TYPE labels=ARRAY[0..12] OF STR;
 VAR CYCLELABELS:labels;
     zustand:INTEGER;
  
 PROCEDURE kram;
  BEGIN
    t[2] := TagItem(GTCB_SCALED,1);
    t[3] := TagItem(GTCB_CHECKED,1);
    t[4].ti_Tag := TAG_DONE;
    IF ((sgad[2]^.flags AND selected) = SELECTED) THEN t[3].ti_data:=0;
    GT_SetGadgetAttrsA(sgad[2],wp2,NIL,^t);  
    si:=sgad[1]^.specialinfo;
    passwort:=si^.buffer;
    t[2]:=TagItem(GTST_Maxchars,200);
    t[3]:=TagItem(GTST_String,LONG(^passwort)); 
    t[4]:=TagItem(GA_DISABLED,1);
    IF ((sgad[2]^.flags AND selected) = SELECTED) THEN t[4].ti_data:=0;
    t[5].ti_tag:=TAG_DONE;
    GT_SetGadgetAttrsA(sgad[1],wp2,NIL,^t);  
  END;
  
 BEGIN
  Cyclelabels:=labels('Aktueller Datensatz',
                      'Alle Datensätze',
                      Selecttexte[1],
                      Selecttexte[2],
                      Selecttexte[3],
                      Selecttexte[4],
                      Selecttexte[5],
                      Selecttexte[6],
                      Selecttexte[7],
                      Selecttexte[8],
                      Selecttexte[9],
                      Selecttexte[10],NIL);  
  dummy:=FALSE;
  Computefont(460,64);
  ww:=computeX(460);
  wh:=computeY(64);
  gl1:=NIL;
  gl1:=CreateContext(^gl1);
 
  t[1]:=TAGITEM(GT_UNDERSCORE,LONG('_'));  
  t[2]:=TagItem(GTST_Maxchars,200);
  t[3]:=TagItem(GTST_String,LONG(^passwort)); 
  t[4]:=TagItem(GA_DISABLED,1);
  t[5].ti_tag:=TAG_DONE;
  
  ng:=NewGadget(86,8,200,15,'_Passwort',mytattr,
                1,PLACETEXT_LEFT,
                vi,NIL);
  sensitivgadget(ng);
  sgad[1]:=CreateGadgetA(STRING_KIND,^gl1,^ng,^t);
  t[2].ti_tag:=TAG_DONE;  

  t[2] := TagItem(GTCB_SCALED,1);
  t[3] := TagItem(GTCB_CHECKED,0);
  t[4].ti_tag:=TAG_DONE;

  ng:=NewGadget(418,9,26,CHECKBOX_HEIGHT,'_Verschlüsseln',mytattr,
                2,PLACETEXT_LEFT,
                vi,NIL);
  sensitivgadget(ng);
  sgad[2]:=CreateGadgetA(CHECKBOX_KIND,sgad[1],^ng,^t);


  zustand:=1;
  t[2]:=TagItem(GTCY_ACTIVE,zustand);
  t[3]:=TagItem(GTCY_Labels,LONG(^Cyclelabels)); 
  t[4].ti_tag:=TAG_DONE;

  ng:=NewGadget(104,26,200,14,'Date_nsätze',mytattr,
                3,PLACETEXT_LEFT,
                vi,NIL);
  sensitivgadget(ng);
  sgad[3]:=CreateGadgetA(CYCLE_KIND,sgad[2],^ng,^t);

  t[2].ti_tag:=TAG_DONE;  

  ng:=NewGadget(6,47,160,15,'_Speichern (Return)',mytattr,
                4,PLACETEXT_IN,
                vi,NIL);
  sensitivgadget(ng);
  sgad[4]:=CreateGadgetA(BUTTON_KIND,sgad[3],^ng,^t);

  ng:=NewGadget(334,47,120,15,'A_bbruch (Esc)',mytattr,
                5,PLACETEXT_IN,
                vi,NIL);
  sensitivgadget(ng);
  sgad[5]:=CreateGadgetA(BUTTON_KIND,sgad[4],^ng,^t);


  t[1] := TagItem(WA_Innerwidth,ww);
  t[2] := TagItem(WA_Innerheight,wh);
  t[3] := Tagitem(WA_Top,druckwintop);
  t[4] := TagItem(WA_Left,druckwinleft);
  t[5].ti_Tag := WA_Title;
  t[5].ti_Data := "AddiPro - Speichern als ...";
  t[6] := TagItem(WA_Idcmp,IDCMP_CLOSEWINDOW+IDCMP_GADGETUP+IDCMP_RAWKEY);
  t[7] := TagItem(WA_Flags,WFLG_CLOSEGADGET+WFLG_DRAGBAR+WFLG_ACTIVATE+WFLG_DEPTHGADGET+
                  WFLG_RMBTRAP+WFLG_SMART_REFRESH+WFLG_NOCAREREFRESH);
  t[8].ti_Tag := TAG_DONE;
  IF pubname <> "" THEN
  BEGIN
    t[8] := TagItem(WA_PubScreenFallBack, 1);
    t[9] := TagItem(WA_PubScreenName, LONG(pubname));
    t[10].ti_Tag := TAG_DONE;
  END;

  wp2 := OpenWindowTagList(NIL,^t);
  IF wp2=NIL THEN exit;
{*}   raster(wp2,0,1,459,63{-1});
   clearq(wp2,6,4,448,39);
   Rahmen(wp2,6,4,448,40,TRUE);
   l:=addgList(wp2,gl1,0,-1,NIL);
   refreshglist(wp2^.firstgadget,wp2,NIL,-1);
   GT_Refreshwindow(wp2,NIL);
   dummy:=FALSE;
   REPEAT
   GetMessage(wp2,class,code,qual,gadnum);
    CASE Class OF

    IDCMP_CLOSEWINDOW: dummy:=TRUE;
  
    IDCMP_RAWKEY:
     IF qual in [32768,32769,32770,32772] THEN
      BEGIN
       CASE code OF
        53,69:BEGIN {B, ESC}  
               Butselecter(wp2,sgad[5]);
               dummy:=TRUE;
               speichernalsoberfläche:=FALSE;
              END;    
        33,68 : BEGIN {S,CR}
              Butselecter(wp2,sgad[4]);
              dummy:=TRUE;
              speichernalsoberfläche:=TRUE;
             END;
        52 : BEGIN {V}
              kram;             
             END;
        25 : BEGIN {P}
              IF ((sgad[1]^.flags AND gadgdisabled) = GADGDISABLED) THEN kram;
              ok:=ActivateGadget(sgad[1],wp2,NIL)
             END;
         54 : BEGIN {N}
              changecycler(wp2,sgad[3],PTR(^Cyclelabels),12,zustand);
             END;
        ELSE END;
      END;

     IDCMP_GadgetUP:
        CASE gadnum OF
          2: BEGIN
              si:=sgad[1]^.specialinfo;
              passwort:=si^.buffer;
              t[2]:=TagItem(GTST_Maxchars,200);
              t[3]:=TagItem(GTST_String,LONG(^passwort)); 
              t[4]:=TagItem(GA_DISABLED,0);
              t[5].ti_tag:=TAG_DONE;
              IF ((sgad[2]^.flags AND selected) <> SELECTED) THEN t[4].ti_data:=1;
              GT_SetGadgetAttrsA(sgad[1],wp2,NIL,^t);  
           END;
          3:IF zustand<12 THEN inc(zustand)
                          ELSE zustand:=0;
          4:BEGIN
             dummy:=TRUE;
             speichernalsoberfläche:=TRUE;
            END;
          5:BEGIN
             dummy:=TRUE;
             speichernalsoberfläche:=FALSE;
            END;
        ELSE END;      
      ELSE END;
  
  UNTIL dummy;
  dummy:=FALSE;
  si:=sgad[1]^.specialinfo;
  passwort:=si^.buffer;
  druckwintop:=wp2^.topedge;
  druckwinleft:=wp2^.leftedge;
  IF ((sgad[2]^.flags AND selected) = SELECTED) THEN verschluesseln:=TRUE
                                                ELSE verschluesseln:=FALSE;
  j:=Cyclezustand(wp2,sgad[3],zustand);
  err:=removegList(wp2,wp2^.firstgadget,-1);
  Fenster_zu(wp2);
  Freegadgets(gl2);  
  ComputeFont(MainWinWidth,MainWinHeight);
 END;
 
FUNCTION passwortladenOberfläche:BOOLEAN;
 BEGIN
  ComputeFont(308,44);
  ww := ComputeX(308);
  wh := ComputeY(44);

  gl2 := NIL;
  gl2 := CreateContext(^gl2); 

  ng := NewGadget(94,8,200,14,
                  "_Passwort:",MyTattr,
                  1,PLACETEXT_LEFT,
                  vi,NIL); 
  SensitivGadget(ng);
  t[1] := TagItem(GT_UNDERSCORE,LONG('_'));
  t[2] := TagItem(GTST_String,LONG(^passwort));
  t[3] := TagItem(GTST_MaxChars,39);
  t[4].ti_Tag := TAG_DONE;
  sgad[1] := CreateGadgetA(STRING_KIND,gl2,^ng,^t);
  
  ng := NewGadget(6,29,120,12,
                  '_Laden',MyTattr,
                  2,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  t[2].ti_Tag:=TAG_DONE
  
  sgad[2] := CreateGadgetA(BUTTON_KIND,sgad[1],^ng,^t);
  
  ng := NewGadget(182,29,120,12,
                  'A_bbruch (ESC)',MyTattr,
                  3,PLACETEXT_IN,
                  vi,NIL); 
  SensitivGadget(ng);
  t[3].ti_Tag := TAG_DONE;  
  sgad[3] := CreateGadgetA(BUTTON_KIND,sgad[2],^ng,^t);
    t[1] := TagItem(WA_Innerwidth,ww);
  t[2] := TagItem(WA_Innerheight,wh);
  t[3] := Tagitem(WA_Top,druckwintop);
  t[4] := TagItem(WA_Left,druckwinleft);
  t[5].ti_Tag := WA_Title;
  t[5].ti_Data := "Datei ist passwortgeschützt !";
  t[6] := TagItem(WA_Idcmp,IDCMP_CLOSEWINDOW+IDCMP_GADGETUP+IDCMP_GADGETDOWN+IDCMP_RAWKEY);
  t[7] := TagItem(WA_Flags,WFLG_CLOSEGADGET+WFLG_DRAGBAR+WFLG_ACTIVATE+WFLG_DEPTHGADGET+
                  WFLG_RMBTRAP+WFLG_SMART_REFRESH+WFLG_NOCAREREFRESH);
  t[8].ti_Tag := TAG_DONE;
  IF pubname <> "" THEN
  BEGIN
    t[8] := TagItem(WA_PubScreenFallBack, 1);
    t[9] := TagItem(WA_PubScreenName, LONG(pubname));
    t[10].ti_Tag := TAG_DONE;
  END;

  wp2 := OpenWindowTagList(NIL,^t);
  IF wp2=NIL THEN exit;
   raster(wp2,0,1,307,43{-1});
   clearq(wp2,6,4,296,21);
   Rahmen(wp2,6,4,296,22,TRUE);
   l:=addgList(wp2,gl2,0,-1,NIL);
   refreshglist(wp2^.firstgadget,wp2,NIL,-1);
   GT_Refreshwindow(wp2,NIL);
   dummy:=FALSE;
   REPEAT
   GetMessage(wp2,class,code,qual,gadnum);
     CASE Class OF

    IDCMP_CLOSEWINDOW: dummy:=TRUE;
  
    IDCMP_RAWKEY:
     IF qual in [32768,32769,32770,32772] THEN
      BEGIN
       CASE code OF
        53,69:BEGIN {B, ESC}  
               Butselecter(wp2,sgad[3]);
               dummy:=TRUE;
                        passwortladenoberfläche:=FALSE;
              END;    
        40 : BEGIN {A}
              Butselecter(wp2,sgad[2]);
              dummy:=TRUE;
              passwortladenoberfläche:=TRUE;
             END;
        25 : ok:=activateGadget(sgad[1],wp2,NIL);
           ELSE END;
      END;

     IDCMP_GadgetUP,IDCMP_GADGETDOWN:
        CASE gadnum OF
           
           2 : BEGIN
                dummy:=TRUE;
                passwortladenoberfläche:=FALSE;
               END;
           3 : BEGIN
                dummy:=TRUE;
                passwortladenoberfläche:=TRUE;
               END;
        ELSE END;      
      ELSE END;
  
  UNTIL dummy;
  si:=sgad[1]^.specialinfo;
  passwort:=si^.buffer;
  druckwintop:=wp2^.topedge;
  druckwinleft:=wp2^.leftedge;
  err:=removegList(wp2,wp2^.firstgadget,-1);
  Fenster_zu(wp2);
  Freegadgets(gl2);  
  ComputeFont(MainWinWidth,MainWinHeight);
 END;

 VAR popi:p_propinfo;STATIC;
     popigad:p_gadget;STATIC;

  
PROCEDURE SetMainGads;
BEGIN
  gl:=NIL;
  gl:=CreateContext(^gl);
                   {2}
  ng := NewGadget(3,47,452,100,
                  NIL,MyTattr,
                  M_LV,0,
                  vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GTLV_Labels, LONG(PList));
  t[2] := TagItem(GTLV_ReadOnly, LONG(FALSE));
  t[3] := TagItem(GTLV_ShowSelected, 0);
  t[4] := TagItem(GTLV_Selected, 0);
  IF iconified THEN t[4].ti_data:=aktuellgewählt;
  t[5].ti_Tag := TAG_DONE;
  mgad[1] := CreateGadgetA(LISTVIEW_KIND,gl,^ng,^t);

     popigad:=gl^.nextgadget^.nextgadget; { welches denn nun? Falk? }
     
        {-------- OS2 <--> OS3 Gadtools-Inkompatibilität ---------}

      IF NOT OS39
       THEN WHILE (popigad^.Nextgadget<>NIL) DO  popigad:=popigad^.NextGadget;

      {---------------------------------------------------------}
   
     POPI:=NIL;
     PopI:=popigad^.SpecialInfo;
     IF POPI<>NIL THEN PopI^.Flags:= PopI^.Flags+PROPNEWLOOK;
   
     { ----- stolen from PackMANs ZMore --- THANKS !!! }


  ng := NewGadget(3,2,150,14,
                  "_Neuer Eintrag",MyTattr,
                  M_NEU,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  t[1] := TagItem(GT_Underscore,LONG("_"));
  t[2].ti_Tag := TAG_DONE;
  mgad[2] := CreateGadgetA(BUTTON_KIND,mgad[1],^ng,^t);
                     { 17 }
  ng := NewGadget(154,2,150,14,
                  "Eintrag _ändern",MyTattr,
                  M_ÄNDERN,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  IF AktuellePerson = NIL THEN
  BEGIN
    t[2] := TagItem(GA_Disabled,LONG(TRUE));
    t[3].ti_Tag := TAG_DONE;
  END;
  mgad[3] := CreateGadgetA(BUTTON_KIND,mgad[2],^ng,^t);

  t[2].ti_Tag := TAG_DONE;
  IF AktuellePerson = NIL THEN
  BEGIN
    t[2] := TagItem(GA_Disabled,LONG(TRUE));
    t[3].ti_Tag := TAG_DONE;
  END;
                     { 32 }
  ng := NewGadget(305,2,150,14,
                  "Eintrag l_öschen",^tattr,
                  M_LÖSCHEN,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  mgad[4] := CreateGadgetA(BUTTON_KIND,mgad[3],^ng,^t);

  t[2].ti_Tag := TAG_DONE;
                     { 47 }
  ng := NewGadget(3,17,150,14,
                  "Su_chen",MyTattr,
                  M_SUCHEN,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);

  mgad[5] := CreateGadgetA(BUTTON_KIND,mgad[4],^ng,^t);

  t[2].ti_Tag := TAG_DONE;
                     {92}
  ng := NewGadget(154,17,150,14,
                  "S_ortieren",MyTattr,
                  M_SORTIEREN,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  mgad[M_SORTIEREN] := CreateGadgetA(BUTTON_KIND,mgad[5],^ng,^t);
                     {77}
  ng := NewGadget(305,17,150,14,
                  "_Blättern",MyTattr,
                  M_BLÄTTERN,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  IF Anzahl = 0 THEN
  BEGIN
    t[2] := TagItem(GA_Disabled, LONG(TRUE));
    t[3].ti_Tag := TAG_DONE;
  END;
  mgad[M_BLÄTTERN] := CreateGadgetA(BUTTON_KIND,mgad[M_SORTIEREN],^ng,^t);
  t[2].ti_Tag := TAG_DONE
                     
  ng := NewGadget(3,32,150,14,
                  "_Serienbriefdruck",MyTattr,
                  M_SERIENDRUCK,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  
  mgad[M_SERIENDRUCK] := CreateGadgetA(BUTTON_KIND,mgad[M_BLÄTTERN],^ng,^t);

  ng := NewGadget(154,32,150,14,
                  "_Formulardruck",MyTattr,
                  M_FORMULARDRUCK,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  mgad[M_FORMULARDRUCK] := CreateGadgetA(BUTTON_KIND,mgad[M_SERIENDRUCK],^ng,^t);

  ng := NewGadget(305,32,150,14,
                  "_Listendruck",MyTattr,
                  M_LISTENDRUCK,PLACETEXT_IN,
                  vi,NIL);
  SensitivGadget(ng);
  mgad[M_LISTENDRUCK] := CreateGadgetA(BUTTON_KIND,mgad[M_FORMULARDRUCK],^ng,^t);
  
END;

{$endif}
