static int Goto_OK(GGadget *g, GEvent *e) { GWindow gw; GotoData *d; char *ret; int i; if ( e->type==et_controlevent && e->u.control.subtype == et_buttonactivate ) { gw = GGadgetGetWindow(g); d = GDrawGetUserData(gw); ret = GGadgetGetTitle8(GWidgetGetControl(gw,CID_Name)); if ( d->ranges!=NULL ) { for ( i=0; d->ranges[i].text!=NULL; ++i ) { if ( strcmp(ret,(char *) d->ranges[i].text)==0 ) { d->ret = (intpt) d->ranges[i].userdata; break; } } } if ( d->ret==-1 ) { d->ret = NameToEncoding(d->sf,d->map,ret); if ( d->ret<0 || (d->ret>=d->map->enccount && d->sf->cidmaster==NULL )) d->ret = -1; if ( d->ret==-1 ) { ff_post_notice(_("Goto"),_("Could not find the glyph: %.70s"),ret); } else d->done = true; } else d->done = true; } return( true ); }
static void ExecPython(GGadget *g, GEvent *e) { struct sd_data *sd = GDrawGetUserData(GGadgetGetWindow(g)); char *str; running_script = true; str = GGadgetGetTitle8(GWidgetGetControl(sd->gw,CID_Script)); PyFF_ScriptString((FontViewBase *) sd->fv,sd->sc,sd->layer,str); free(str); running_script = false; }
static int BdfP_FinishTextField(struct bdf_dlg *bd) { if ( bd->active ) { char *text = GGadgetGetTitle8(bd->tf); char *pt, *end; int val; struct bdf_dlg_font *cur = bd->cur; BDFFont *bdf = cur->bdf; for ( pt=text; *pt; ++pt ) if ( *pt&0x80 ) { ff_post_error(_("Not ASCII"),_("All characters in the value must be in ASCII")); free(text); return( false ); } val = strtol(text,&end,10); if ( NumericKey(bdf->props[cur->sel_prop].name) ) { if ( *end!='\0' ) { ff_post_error(_("Bad Number"),_("Must be a number")); free(text); return( false ); } } if ( (bdf->props[cur->sel_prop].type&~prt_property)==prt_string || (bdf->props[cur->sel_prop].type&~prt_property)==prt_atom ) free(bdf->props[cur->sel_prop].u.str); if ( UnknownKey(bdf->props[cur->sel_prop].name) ) { if ( *end!='\0' ) { bdf->props[cur->sel_prop].type = prt_string | prt_property; bdf->props[cur->sel_prop].u.str = copy(text); } else { if ( bdf->props[cur->sel_prop].type != (prt_uint | prt_property )) bdf->props[cur->sel_prop].type = prt_int | prt_property; bdf->props[cur->sel_prop].u.val = val; } } else if ( NumericKey(bdf->props[cur->sel_prop].name) ) { bdf->props[cur->sel_prop].type = KeyType(bdf->props[cur->sel_prop].name); bdf->props[cur->sel_prop].u.val = val; } else { bdf->props[cur->sel_prop].type = KeyType(bdf->props[cur->sel_prop].name); bdf->props[cur->sel_prop].u.str = copy(text); } free(text); bd->active = false; GGadgetSetVisible(bd->tf,false); } return( true ); }
static int Delta_OK(GGadget *g, GEvent *e) { if ( e->type==et_controlevent && e->u.control.subtype == et_buttonactivate ) { QGData *qg = GDrawGetUserData(GGadgetGetWindow(g)); int err=false; int dpi, depth; double within; char *sizes; within = GetReal8(qg->gw,CID_Within,_("Proximity"),&err); dpi = GetInt8(qg->gw,CID_DPI,_("DPI"),&err); if ( err ) return(true); if ( within<=0 || within>=.5 ) { ff_post_error(_("Bad Number"),_("The \"Proximity\" field must be more than 0 and less than a half.")); return( true ); } if ( dpi<10 || dpi>5000 ) { ff_post_error(_("Unreasonable DPI"),_("The \"DPI\" field must be more than 10 and less than 5000.")); return( true ); } depth = GGadgetIsChecked(GWidgetGetControl(qg->gw,CID_BW)) ? 1 : 8; sizes = GGadgetGetTitle8(GWidgetGetControl(qg->gw,CID_Sizes)); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Msg),true); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Ok),false); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Cancel),false); GDrawSetCursor(qg->gw,ct_watch); GDrawProcessPendingEvents(NULL); qg->within = within; qg->dpi = dpi; qg->pixelsizes = sizes; qg->depth = depth; TopFindQuestionablePoints(qg); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Msg),false); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Ok),true); GGadgetSetVisible(GWidgetGetControl(qg->gw,CID_Cancel),true); GDrawSetCursor(qg->gw,ct_pointer); GDrawProcessPendingEvents(NULL); if ( qg->error!=qg_ok ) { switch ( qg->error ) { case qg_notnumber: ff_post_error(_("Bad Number"),_("An entry in the \"Sizes\" field is not a number.")); break; case qg_badnumber: ff_post_error(_("Bad Number"),_("An entry in the \"Sizes\" field is unreasonable.")); break; case qg_badrange: ff_post_error(_("Bad Number"),_("An range in the \"Sizes\" field is incorrectly ordered.")); break; case qg_nofont: ff_post_error(_("FreeType unavailable"),_("FreeType unavailable.")); break; default: IError(_("Unexpected error")); break; } free(sizes); qg->cur = 0; return( true ); } free(delta_sizes); delta_within = within; delta_dpi = dpi; delta_depth = depth; delta_sizes = sizes; if ( qg->cur==0 ) { ff_post_error(_("Nothing found"),_("Nothng found.")); qg->done = true; return( true ); } if ( qg->cur >= qg->max ) qg->qg = realloc(qg->qg,(qg->max += 1) * sizeof(QuestionableGrid)); memset(qg->qg+qg->cur,0,sizeof(QuestionableGrid)); GDrawSetVisible(qg->gw,false); StartDeltaDisplay(qg); qg->done = true; } return( true ); }