示例#1
0
void init_dlgs(t_x11 *x11, t_gmx *gmx)
{
    static t_dlginit di[] = {
        { edExport,   "export.dlg",   ExportCB },
        { edBonds,    "bonds.dlg",    BondsCB  }
    };
    static t_mbinit mi[emNR] = {
        { emQuit,       quit_mb,    QuitCB     },
        { emHelp,       help_mb,    MBCallback },
        { emAbout,      about_mb,   MBCallback },
        { emNotImplemented, ni_mb,      MBCallback }
    };
    int i;

    snew(gmx->dlgs, edNR);
    for (i = 0; (i < asize(di)); i++)
    {
        gmx->dlgs[i] = ReadDlg(x11, gmx->wd->self, di[i].dlgfile,
                               x11->fg, x11->bg, di[i].dlgfile,
                               0, 0, TRUE, FALSE, di[i].cb, gmx);
    }

    gmx->dlgs[edFilter] = select_filter(x11, gmx);

    snew(gmx->mboxes, emNR);
    for (i = 0; (i < emNR); i++)
    {
        gmx->mboxes[i] = mi[i].mmb(x11, gmx);
    }
    gmx->which_mb = -1;
}
示例#2
0
void init_dlgs(t_x11 *x11, t_gmx *gmx)
{
    static t_dlginit di[] = {
        { "export.dlg",   ExportCB },
        { "bonds.dlg",    BondsCB  }
    };
    static t_mmb *mi[emNR] = { quit_mb,    help_mb,    about_mb,   ni_mb };
    unsigned int i;

    snew(gmx->dlgs, edNR);
    for (i = 0; (i < asize(di)); i++)
    {
        gmx->dlgs[i] = ReadDlg(x11, gmx->wd->self, di[i].dlgfile,
                               di[i].dlgfile,
                               0, 0, true, false, di[i].cb, gmx);
    }

    gmx->dlgs[edFilter] = select_filter(x11, gmx);

    snew(gmx->mboxes, emNR);
    for (i = 0; (i < emNR); i++)
    {
        gmx->mboxes[i] = mi[i](x11, gmx);
    }
    gmx->which_mb = -1;
}
示例#3
0
int main(int argc, char *argv[])
{
  t_x11 *x11;
  t_dlg *dlg;

  if ((x11=GetX11(&argc,argv))==NULL) {
    fprintf(stderr,"No X!\n");
    exit(1);
  }
  if (argc > 1) {
    dlg=ReadDlg(x11,0,x11->title,x11->fg,x11->bg,argv[1],100,100,TRUE,
		TRUE,NULL,NULL);
    ShowDlg(dlg);
    x11->MainLoop(x11);
  }
  else 
    fprintf(stderr,"Usage: %s [ X options ] infile\n",argv[0]);

  x11->CleanUp(x11);

  return 0;
}
示例#4
0
t_dlg *select_filter(t_x11 *x11, t_gmx *gmx)
{
    static const char *title = "Group";
    static const char *dummy = "\"FALSE\"";
    static const char *ok    = "\"Ok\"";
    FILE              *tmp;
    t_dlg             *dlg;
    char               tmpfile[STRLEN];
    int                i, j, k, len, tlen, ht, ncol, nrow, x0;

    len = strlen(title);
    for (i = 0; (i < (int)gmx->filter->grps->nr); i++)
    {
        len = std::max(len, (int)strlen(gmx->filter->grpnames[i]));
    }
    len += 2;

    ncol = 1+(gmx->filter->grps->nr / 15);
    nrow = gmx->filter->grps->nr/ncol;
    if (nrow*ncol < gmx->filter->grps->nr)
    {
        nrow++;
    }
    if (ncol > 1)
    {
        ht = 1+(nrow+1)*2+3;
    }
    else
    {
        ht = 1+(gmx->filter->grps->nr+1)*2+3;
    }
    strcpy(tmpfile, "filterXXXXXX");
    gmx_tmpnam(tmpfile);
#ifdef DEBUG
    fprintf(stderr, "file: %s\n", tmpfile);
#endif
    if ((tmp = fopen(tmpfile, "w")) == NULL)
    {
        sprintf(tmpfile, "%ctmp%cfilterXXXXXX", DIR_SEPARATOR, DIR_SEPARATOR);
        gmx_tmpnam(tmpfile);
        if ((tmp = fopen(tmpfile, "w")) == NULL)
        {
            gmx_fatal(FARGS, "Can not open tmp file %s", tmpfile);
        }
    }
    tlen = 1+ncol*(1+len);
    fprintf(tmp, "grid %d %d {\n\n", tlen, ht);

    for (k = j = 0, x0 = 1; (j < ncol); j++, x0 += len+1)
    {
        fprintf(tmp, "group \"%s-%d\" %d 1 %d %d {\n", title, j+1, x0, len, ht-5);
        for (i = 0; (i < nrow) && (k < gmx->filter->grps->nr); i++, k++)
        {
            if (!gmx->filter->bDisable[k])
            {
                fprintf(tmp, "checkbox \"%s\" \"%d\" %s %s %s\n",
                        gmx->filter->grpnames[k], k, dummy, dummy, dummy);
            }
            else
            {
                fprintf(tmp, "statictext { \"  %s\" } \"%d\" %s %s %s\n",
                        gmx->filter->grpnames[k], k, dummy, dummy, dummy);
            }
        }
        fprintf(tmp, "}\n\n");
    }
    fprintf(tmp, "simple 1 %d %d 2 {\n", ht-3, tlen-2);
    fprintf(tmp, "defbutton %s %s %s %s %s\n", ok, ok, dummy, dummy, dummy);
    fprintf(tmp, "}\n\n}\n");
    fclose(tmp);

    dlg = ReadDlg(x11, gmx->wd->self, title, tmpfile,
                  0, 0, true, false, FilterCB, gmx);

    remove(tmpfile);

    return dlg;
}