/* prf_swd.c */
/* V091 9-3-92 */

#include "prf.h"
#include <graphics/gfxbase.h>

#define WWIDTH_CHAR    39
#define WHEIGHT_CHAR   14
#define P_WWIDTH_CHAR    39
#define P_WHEIGHT_CHAR   14

#define LOCATE_X(n) (6 + (info->fw * n) + INTERWIDTH)
#define LOCATE_Y(n) (info->BarHeight + 2 + (info->fh * n) + (n * INTERHEIGHT))
#define LOCATE_W(s) ((info->fw * (1+strlen(s))) + (2 * INTERWIDTH))

struct TextAttr topaz8 = {
    ( STRPTR )"topaz.font", 8, 0x00, 0x01 };

struct TagItem    SwdTags[] = {
    WA_Left,          10,
    WA_Top,           15,
    WA_Width,         SWD_WIDTH,
    WA_Height,        SWD_HEIGHT,
    WA_IDCMP,         IDCMP_MOUSEBUTTONS|IDCMP_MOUSEMOVE|IDCMP_GADGETDOWN|IDCMP_GADGETUP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
    WA_Gadgets,       0l,
    WA_Title,         (ULONG)SWD_TITLE,
    WA_ScreenTitle,   (ULONG)SCREEN_TITLE,
    WA_MinWidth,      67,
    WA_MinHeight,     21,
    WA_MaxWidth,      640,
    WA_MaxHeight,     256,
    WA_AutoAdjust,    1l,
    TAG_DONE };

long __regargs OpenSwd(struct prf_info *info)
{
    struct NewGadget     ng;
    struct Gadget       *g;
    if(info->Swd) return (1L);
    if ( NOT( g = CreateContext( &info->SGlist ))) return( 0L );
        info->fh = GfxBase->DefaultFont->tf_YSize;
        info->fw = GfxBase->DefaultFont->tf_XSize;
        topaz8.ta_Name = GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
        topaz8.ta_YSize = info->fh;
    SwdTags[2].ti_Data = (info->fw * (WWIDTH_CHAR) + (2 * INTERWIDTH));
    SwdTags[3].ti_Data = LOCATE_Y(WHEIGHT_CHAR) + INTERHEIGHT;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(0);
    ng.ng_Width           =    LOCATE_W(GAD_PwdButton);
    ng.ng_Height          =    info->fh + INTERHEIGHT;
    ng.ng_GadgetText      =    GAD_PwdButton;
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_PwdButton;
    ng.ng_Flags           =    PLACETEXT_IN;
    ng.ng_VisualInfo      =    info->VisualInfo;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 0 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 3 - strlen(GAD_About)));
    ng.ng_Width           =    LOCATE_W(GAD_About);
    ng.ng_GadgetText      =    GAD_About;
    ng.ng_GadgetID        =    GD_About;
    ng.ng_Width           =    info->fw * strlen(GAD_About) + INTERWIDTH;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 1 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((1 + strlen(GAD_Headline)));
    ng.ng_TopEdge         =    LOCATE_Y(1);
    ng.ng_Width           =    25 * info->fw;
    ng.ng_GadgetText      =    GAD_Headline;
    ng.ng_GadgetID        =    GD_Headline;
    ng.ng_Flags           =    PLACETEXT_LEFT;

    g = CreateGadget( STRING_KIND, g, &ng, GTST_String,info->Headline,GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 2 ] = g;
    ng.ng_TopEdge         =    LOCATE_Y(2);
    ng.ng_GadgetText      =    GAD_Footline;
    ng.ng_GadgetID        =    GD_Footline;

    g = CreateGadget( STRING_KIND, g, &ng, GTST_String,info->Footline,GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 3 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(3);
    ng.ng_Width           =    LOCATE_W(GAD_Date);
    ng.ng_GadgetText      =    GAD_Date;
    ng.ng_GadgetID        =    GD_Date;
    ng.ng_Flags           =    PLACETEXT_RIGHT;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 4 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(10);
    ng.ng_Width           =    LOCATE_W(GAD_Time);
    ng.ng_GadgetText      =    GAD_Time;
    ng.ng_GadgetID        =    GD_Time;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 5 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 4 - strlen(GAD_Filename)));
    ng.ng_Width           =    LOCATE_W(GAD_Filename);
    ng.ng_GadgetText      =    GAD_Filename;
    ng.ng_GadgetID        =    GD_Filename;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 6 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(4);
    ng.ng_Width           =    LOCATE_W(GAD_Pagenumber);
    ng.ng_GadgetText      =    GAD_Pagenumber;
    ng.ng_GadgetID        =    GD_Pagenumber;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 7 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 4 - strlen(GAD_Linenumber)));
    ng.ng_Width           =    LOCATE_W(GAD_Linenumber);
    ng.ng_GadgetText      =    GAD_Linenumber;
    ng.ng_GadgetID        =    GD_Linenumber;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 8 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(5);
    ng.ng_Width           =    LOCATE_W(GAD_FFPAGE);
    ng.ng_GadgetText      =    GAD_FFPAGE;
    ng.ng_GadgetID        =    GD_FFPAGE;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 9 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 4 - strlen(GAD_FF)));
    ng.ng_Width           =    LOCATE_W(GAD_FF);
    ng.ng_GadgetText      =    GAD_FF;
    ng.ng_GadgetID        =    GD_FF;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 10 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(10);
    ng.ng_Width           =    ((WWIDTH_CHAR - 2) * info->fw);
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_Gadget11;
    ng.ng_Flags           =    0;

    g = CreateGadget( STRING_KIND, g,&ng,GTST_String,info->Insertline, GTST_MaxChars, 256, TAG_DONE );

    info->SGadgets[ 11 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(6);
    ng.ng_Height          =    LOCATE_Y(4);
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_List;

    g = CreateGadget( LISTVIEW_KIND, g, &ng,GTLV_Labels,&info->FileList, GTLV_ShowSelected, info->SGadgets[11], TAG_DONE );

    info->SGadgets[ 12 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(11) + (2 * INTERHEIGHT);
    ng.ng_Width           =    LOCATE_W(GAD_Filereq);
    ng.ng_Height          =    info->fh + INTERHEIGHT;
    ng.ng_GadgetText      =    GAD_Filereq;
    ng.ng_GadgetID        =    GD_Filereq;
    ng.ng_Flags           =    PLACETEXT_IN;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 13 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 5 - strlen(GAD_Remove)));
    ng.ng_Width           =    LOCATE_W(GAD_Remove);
    ng.ng_GadgetText      =    GAD_Remove;
    ng.ng_GadgetID        =    GD_Remove;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 14 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(12) + (3 * INTERHEIGHT);
    ng.ng_GadgetText      =    GAD_Print;
    ng.ng_GadgetID        =    GD_Print;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 15 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((WWIDTH_CHAR - 5 - strlen(GAD_quit)));
    ng.ng_GadgetText      =    GAD_quit;
    ng.ng_GadgetID        =    GD_quit;

    g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );

    info->SGadgets[ 16 ] = g;

    if ( NOT g ) return(0L);

    SwdTags[ 6 ].ti_Data = (ULONG)info->SGlist;

    if ( NOT( info->Swd = OpenWindowTagList( 0l,SwdTags )))
        return(0L);

    GT_RefreshWindow( info->Swd,0l);
    SetPrfSignals(info);
    RefreshSwd(info);
    return( 1L );
}

void __regargs CloseSwd(struct prf_info *info)
{
 if (info->Swd)
 {
  SwdTags[0].ti_Data = (ULONG)info->Swd->LeftEdge;
  SwdTags[1].ti_Data = (ULONG)info->Swd->TopEdge;
  strncpy(info->Headline,((struct StringInfo *)info->SGadgets[GD_Headline]->SpecialInfo)->Buffer,STR_SIZE);
  strncpy(info->Footline,((struct StringInfo *)info->SGadgets[GD_Footline]->SpecialInfo)->Buffer,STR_SIZE);
  CloseWindow(info->Swd);
  info->Swd = NULL;
 }
 if(info->SGlist)
 {
  FreeGadgets(info->SGlist);
  info->SGlist = NULL;
 }
 SetPrfSignals(info);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */


UBYTE         *QualityLabels[] = {
    GAD_Quality1,
    GAD_Quality2,
    0l };

UBYTE         *PitchLabels[] = {
    GAD_Pitch1,
    GAD_Pitch2,
    0L};

UBYTE         *cpiLabels[] = {
    GAD_CPI10,
    GAD_CPI12,
    GAD_CPI15,
    0l };

UBYTE         *IconsLabels[] = {
    GAD_ICON1,
    GAD_ICON2,
    GAD_ICON3,
    GAD_ICON4,
    0l };

UBYTE         *ProgsLabels[] = {
    GAD_PROG1,
    GAD_PROG2,
    GAD_PROG3,
    GAD_PROG4,
    0l };

struct IntuiText  IText[] = {
    2, 0, JAM1,54, 37, &topaz8, (UBYTE *)PWD_T1, &IText[1],
    2, 0, JAM1,199, 37, &topaz8, (UBYTE *)PWD_T2, &IText[2],
    2, 0, JAM1,67, 118, &topaz8, (UBYTE *)PWD_T3, NULL };

struct TagItem    PwdTags[] = {
    WA_Left,          261,
    WA_Top,           11,
    WA_Width,         330,
    WA_Height,        180,
    WA_IDCMP,         IDCMP_VANILLAKEY|IDCMP_GADGETDOWN|IDCMP_GADGETUP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
    WA_Gadgets,       0l,
    WA_Title,         (ULONG)PWD_TITLE,
    WA_ScreenTitle,   (ULONG)SCREEN_TITLE,
    WA_MinWidth,      67,
    WA_MinHeight,     21,
    WA_MaxWidth,      640,
    WA_MaxHeight,     256,
    WA_AutoAdjust,    1l,
    TAG_DONE };


long __regargs OpenPwd(struct prf_info *info)
{
    struct NewGadget     ng;
    struct Gadget       *g;
    if(info->Pwd) return (1L);

    if ( NOT( g = CreateContext( &info->PGlist )))
        return(0L);
    info->fh = GfxBase->DefaultFont->tf_YSize;
    info->fw = GfxBase->DefaultFont->tf_XSize;
    topaz8.ta_Name = GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
    topaz8.ta_YSize = info->fh;
    IText[0].TopEdge = LOCATE_Y(3) + GfxBase->DefaultFont->tf_Baseline;
    IText[1].TopEdge = LOCATE_Y(3) + GfxBase->DefaultFont->tf_Baseline;
    IText[2].TopEdge = LOCATE_Y(7) + GfxBase->DefaultFont->tf_Baseline;
    IText[0].LeftEdge = LOCATE_X(3);
    IText[1].LeftEdge = LOCATE_X((P_WWIDTH_CHAR - 2 - strlen(GAD_PROG1)));
    IText[2].LeftEdge = LOCATE_X(5);

    PwdTags[2].ti_Data = (info->fw * (P_WWIDTH_CHAR) + (2 * INTERWIDTH));
    PwdTags[3].ti_Data = LOCATE_Y(P_WHEIGHT_CHAR) + INTERHEIGHT;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(0);
    ng.ng_Width           =    LOCATE_X(4);
    ng.ng_Height          =    info->fh + INTERHEIGHT;
    ng.ng_GadgetText      =    NULL;
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_Quality;
    ng.ng_Flags           =    PLACETEXT_RIGHT;
    ng.ng_VisualInfo      =    info->VisualInfo;

    g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, QualityLabels, GT_Underscore, '_', TAG_DONE );

    info->PGadgets[ 0 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 4 - strlen(GAD_Pitch1)));
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_Pitch;

    g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, PitchLabels, GT_Underscore, '_', TAG_DONE );

    info->PGadgets[ 1 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(2);
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_cpi;

    g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, cpiLabels, GT_Underscore, '_', TAG_DONE );

    info->PGadgets[ 2 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((2 + strlen(GAD_CPI10)));
    ng.ng_GadgetText      =    GAD_Linesperpage;
    ng.ng_GadgetID        =    GD_Linesperpage;

    g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Lines, GTIN_MaxChars, 3, TAG_DONE );

    info->PGadgets[ 3 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(3);
    ng.ng_GadgetText      =    GAD_Lmargin;
    ng.ng_GadgetID        =    GD_Lmargin;

    g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Lmargin, GTIN_MaxChars, 3, TAG_DONE );

    info->PGadgets[ 4 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 8));
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_Rmargin;
    ng.ng_Flags           =    0;

    g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Rmargin, GTIN_MaxChars, 3, TAG_DONE );

    info->PGadgets[ 5 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(5);
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_Icons;
    ng.ng_Flags           =    PLACETEXT_RIGHT;

    g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, IconsLabels, GT_Underscore, '_', TAG_DONE );

    info->PGadgets[ 6 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 4 - strlen(GAD_PROG1)));
    ng.ng_GadgetText      =    0l;
    ng.ng_GadgetID        =    GD_Progs;

    g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, ProgsLabels, GT_Underscore, '_', TAG_DONE );

    info->PGadgets[ 7 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 5 - strlen(GAD_include_comment)));
    ng.ng_TopEdge         =    LOCATE_Y(13);
    ng.ng_Width           =    LOCATE_W(GAD_Saveprefs);
    ng.ng_GadgetText      =    GAD_Saveprefs;
    ng.ng_GadgetID        =    GD_Saveprefs;
    ng.ng_Flags           =    0;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 8 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_Width           =    LOCATE_W(GAD_PPrint);
    ng.ng_GadgetText      =    GAD_PPrint;
    ng.ng_GadgetID        =    GD_PPrint;

    g = CreateGadget( BUTTON_KIND, g, &ng,GT_Underscore,'_', TAG_DONE );

    info->PGadgets[ 9 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(9);
    ng.ng_GadgetText      =    GAD_include_comment;
    ng.ng_GadgetID        =    GD_include_comment;
    ng.ng_Flags           =    PLACETEXT_RIGHT;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 10 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(10);
    ng.ng_GadgetText      =    GAD_include_files;
    ng.ng_GadgetID        =    GD_include_files;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 11 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(11);
    ng.ng_GadgetText      =    GAD_include_window;
    ng.ng_GadgetID        =    GD_include_window;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 12 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 5 - strlen(GAD_include_comment)));
    ng.ng_TopEdge         =    LOCATE_Y(9);
    ng.ng_GadgetText      =    GAD_include_reset;
    ng.ng_GadgetID        =    GD_include_reset;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 13 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(10);
    ng.ng_GadgetText      =    GAD_include_print;
    ng.ng_GadgetID        =    GD_include_print;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 14 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X(0);
    ng.ng_TopEdge         =    LOCATE_Y(12);
    ng.ng_GadgetText      =    GAD_include_start;
    ng.ng_GadgetID        =    GD_include_start;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 15 ] = g;

    ng.ng_LeftEdge        =    LOCATE_X((P_WWIDTH_CHAR - 5 - strlen(GAD_include_comment)));
    ng.ng_TopEdge         =    LOCATE_Y(11);
    ng.ng_GadgetText      =    GAD_include_icon;
    ng.ng_GadgetID        =    GD_include_icon;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 16 ] = g;

    ng.ng_TopEdge         =    LOCATE_Y(12);
    ng.ng_GadgetText      =    GAD_include_lines;
    ng.ng_GadgetID        =    GD_include_lines;

    g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );

    info->PGadgets[ 17 ] = g;

    if ( NOT g )
        return( 0L );

    PwdTags[ 6 ].ti_Data = (ULONG)info->PGlist;

    if ( NOT( info->Pwd = OpenWindowTagList( 0l, PwdTags )))
        return( 0L );

    GT_RefreshWindow( info->Pwd, 0l );
    SetPrfSignals(info);
    RefreshPwd(info);
    return(1L);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
void __regargs ClosePwd(struct prf_info *info)
{
 if (info->Pwd)
 {
  PwdTags[0].ti_Data = (ULONG)info->Pwd->LeftEdge;
  PwdTags[1].ti_Data = (ULONG)info->Pwd->TopEdge;
  CloseWindow(info->Pwd);
  info->Pwd = NULL;
 }
 if(info->PGlist)
 {
  FreeGadgets(info->PGlist);
  info->PGlist = NULL;
 }
 SetPrfSignals(info);
}

void __regargs RefreshPwd(struct prf_info *info)
{
 if(info->Pwd)
 {
  if(info->flags.draft)    GT_SetGadgetAttrs(info->PGadgets[GD_Quality - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  if(info->flags.lq)       GT_SetGadgetAttrs(info->PGadgets[GD_Quality - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Pitch - PGD],info->Pwd,NULL,GTMX_Active,info->flags.pitch - 1,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_cpi - PGD],info->Pwd,NULL,GTMX_Active,info->flags.cpi - 1,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Rmargin - PGD],info->Pwd,NULL,GTIN_Number,info->Rmargin,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Lmargin - PGD],info->Pwd,NULL,GTIN_Number,info->Lmargin,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Linesperpage - PGD],info->Pwd,NULL,GTIN_Number,info->Lines,TAG_DONE);
  if(info->flags.print)
   GT_SetGadgetAttrs(info->PGadgets[GD_PPrint - PGD],info->Pwd,NULL,GA_Disabled,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_PPrint - PGD],info->Pwd,NULL,GA_Disabled,FALSE,TAG_DONE);
  if(info->flags.sp_comment)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_comment - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_comment - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_reset)
  GT_SetGadgetAttrs(info->PGadgets[GD_include_reset - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else GT_SetGadgetAttrs(info->PGadgets[GD_include_reset - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_files)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_files - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_files - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_window)
  GT_SetGadgetAttrs(info->PGadgets[GD_include_window - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else GT_SetGadgetAttrs(info->PGadgets[GD_include_window - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_print)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_print - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_print - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_icon)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_icon - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_icon - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_start)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_start - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_start - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.sp_lines)
   GT_SetGadgetAttrs(info->PGadgets[GD_include_lines - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
   else GT_SetGadgetAttrs(info->PGadgets[GD_include_lines - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Icons - PGD],info->Pwd,NULL,GTMX_Active,info->flags.icon,TAG_DONE);
  GT_SetGadgetAttrs(info->PGadgets[GD_Progs - PGD],info->Pwd,NULL,GTMX_Active,info->flags.prog,TAG_DONE);
  PrintIText( info->Pwd->RPort, IText, 0L,info->BarHeight );
 }
}

void __regargs RefreshSwd(struct prf_info *info)
{
 if(info->Swd)
 {
  GT_SetGadgetAttrs(info->SGadgets[GD_Headline],info->Swd,NULL,GTST_String,info->Headline,TAG_DONE);
  GT_SetGadgetAttrs(info->SGadgets[GD_Footline],info->Swd,NULL,GTST_String,info->Footline,TAG_DONE);
  if(info->flags.page)
   GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.line)
   GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.ffpage)
   GT_SetGadgetAttrs(info->SGadgets[GD_FFPAGE],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_FFPAGE],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.ff)
   GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.date)
   GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.time)
   GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.file)
   GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  else
   GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  if(info->flags.print)
   GT_SetGadgetAttrs(info->SGadgets[GD_Print],info->Swd,NULL,GA_Disabled,TRUE,TAG_DONE);
  AttachList(info);
 }
}

