Esempio n. 1
0
void LoadEncodingFile(void) {
    static char filter[] = "*.{ps,PS,txt,TXT,enc,ENC}";
    char *fn;
    char *filename;

    fn = gwwv_open_filename(_("Load Encoding"), NULL, filter, NULL);
    if ( fn==NULL )
return;
    filename = utf82def_copy(fn);
    ParseEncodingFile(filename);
    free(fn); free(filename);
    DumpPfaEditEncodings();
}
Esempio n. 2
0
static int SD_Call(GGadget *g, GEvent *e) {
    if ( e->type==et_controlevent && e->u.control.subtype == et_buttonactivate ) {
	char *fn;
	unichar_t *insert;
    
	fn = gwwv_open_filename(_("Call Script"), NULL, "*",NULL);
	if ( fn==NULL )
return(true);
	insert = malloc((strlen(fn)+10)*sizeof(unichar_t));
	*insert = '"';
	utf82u_strcpy(insert+1,fn);
	uc_strcat(insert,"\"()");
	GTextFieldReplace(GWidgetGetControl(GGadgetGetWindow(g),CID_Script),insert);
	free(insert);
	free(fn);
    }
return( true );
}
Esempio n. 3
0
static char *UI_open_file(const char *title, const char *defaultfile,
	const char *initial_filter) {
return( gwwv_open_filename(title,defaultfile,initial_filter,NULL) );
}
struct cidmap *AskUserForCIDMap(void) {
    struct block block;
    struct cidmap *map = NULL;
    char buffer[200];
    char **choices;
    int i,ret;
    char *filename=NULL;
    char *reg, *ord, *pt;
    int supplement;

    memset(&block,'\0',sizeof(block));
    for ( map = cidmaps; map!=NULL; map = map->next ) {
        sprintf(buffer,"%s-%s-%d", map->registry, map->ordering, map->supplement);
        AddToBlock(&block,buffer,NULL);
    }
    FindMapsInDir(&block,".");
    FindMapsInDir(&block,GResourceProgramDir);
    FindMapsInNoLibsDir(&block,GResourceProgramDir);
    FindMapsInDir(&block,getFontForgeShareDir());
    FindMapsInDir(&block,"/usr/share/fontforge");

    choices = gcalloc(block.cur+2,sizeof(unichar_t *));
    choices[0] = copy(_("Browse..."));
    for ( i=0; i<block.cur; ++i )
        choices[i+1] = copy(block.maps[i]);
    ret = gwwv_choose(_("Find a cidmap file..."),(const char **) choices,i+1,0,_("Please select a CID ordering"));
    for ( i=0; i<=block.cur; ++i )
        free( choices[i] );
    free(choices);
    if ( ret==0 ) {
        filename = gwwv_open_filename(_("Find a cidmap file..."),NULL,
                                      "?*-?*-[0-9]*.cidmap",NULL);
        if ( filename==NULL )
            ret = -1;
    }
    if ( ret!=-1 ) {
        if ( filename!=NULL )
            /* Do nothing for now */;
        else if ( block.dirs[ret-1]!=NULL ) {
            filename = galloc(strlen(block.dirs[ret-1])+strlen(block.maps[ret-1])+3+8);
            strcpy(filename,block.dirs[ret-1]);
            strcat(filename,"/");
            strcat(filename,block.maps[ret-1]);
            strcat(filename,".cidmap");
        }
        if ( ret!=0 )
            reg = block.maps[ret-1];
        else {
            reg = strrchr(filename,'/');
            if ( reg==NULL ) reg = filename;
            else ++reg;
            reg = copy(reg);
        }
        pt = strchr(reg,'-');
        if ( pt==NULL )
            ret = -1;
        else {
            *pt = '\0';
            ord = pt+1;
            pt = strchr(ord,'-');
            if ( pt==NULL )
                ret = -1;
            else {
                *pt = '\0';
                supplement = strtol(pt+1,NULL,10);
            }
        }
        if ( ret == -1 )
            /* No map */;
        else if ( filename==NULL )
            map = FindCidMap(reg,ord,supplement,NULL);
        else {
            map = LoadMapFromFile(filename,reg,ord,supplement);
            free(filename);
        }
        if ( ret!=0 && reg!=block.maps[ret-1] )
            free(reg);
        /*free(filename);*/	/* Freed by loadmap */
    }
    for ( i=0; i<block.cur; ++i )
        free( block.maps[i]);
    free(block.maps);
    free(block.dirs);
    return( map );
}