void SCReGridFit(SplineChar *sc,int layer) { CharView *cv; for ( cv=(CharView *) (sc->views); cv!=NULL; cv=(CharView *) (cv->b.next) ) if ( cv->show_ft_results ) { if ( cv->show_ft_results && CVLayer((CharViewBase *) cv)==layer ) { SplinePointListsFree(cv->b.gridfit); cv->b.gridfit = NULL; FreeType_FreeRaster(cv->raster); cv->raster = NULL; CVGridFitChar(cv); } } }
static void QGMouse( QGData *qg, GEvent *e) { int l = qg->loff_top + e->u.mouse.y/qg->fh; struct navigate where; if ( (e->type == et_mousedown) && (e->u.mouse.button==1)) { memset(&where,0,sizeof(where)); QG_FindLine(&qg->list,l,&where); if ( where.parent==NULL ) return; if ( where.offset==-1 ) { where.parent->open = !where.parent->open; QG_Remetric(qg); GDrawRequestExpose(qg->v,NULL,false); return; } else { QuestionableGrid *q = &where.parent->first[where.offset]; CharView *cv; if ( qg->inprocess ) return; cv = qg->cv; if ( cv==NULL && qg->fv!=NULL ) { qg->inprocess = true; cv = qg->cv = CharViewCreate(q->sc,(FontView *) (qg->fv),qg->fv->map->backmap[q->sc->orig_pos]); if ( qg->layer == ly_fore ) { cv->b.drawmode = dm_fore; } else { cv->b.layerheads[dm_back] = &qg->sc->layers[qg->layer]; cv->b.drawmode = dm_back; } cv->qg = qg; qg->inprocess = false; } else if ( qg->cv==NULL ) return; else if ( qg->cv->b.sc != q->sc ) { CVChangeSC(qg->cv,q->sc); } cv->ft_pointsizex = cv->ft_pointsizey = q->size; cv->ft_ppemy = cv->ft_ppemx = rint(q->size*qg->dpi/72.0); cv->ft_dpi = qg->dpi; cv->ft_depth = qg->depth; cv->note_x = q->x; cv->note_y = q->y; cv->show_ft_results = true; cv->showgrids = true; CVGridFitChar(cv); } } }
static int FtPpem_OK(GGadget *g, GEvent *e) { if ( e->type==et_controlevent && e->u.control.subtype == et_buttonactivate ) { FtSizeData *fsd = GDrawGetUserData(GGadgetGetWindow(g)); int _dpi, _depth; real ptsize, ptsizex; int err = 0; CharView *cv = fsd->cv; ptsize = GetReal8(fsd->gw,CID_PointSize,_("Pointsize Y"),&err); if ( GGadgetIsChecked(GWidgetGetControl(fsd->gw,CID_SameAs)) ) ptsizex = ptsize; else ptsizex = GetReal8(fsd->gw,CID_PointSizeX,_("Pointsize X"),&err); _dpi = GetInt8(fsd->gw,CID_DPI,_("DPI"),&err); _depth = GGadgetIsChecked(GWidgetGetControl(fsd->gw,CID_BW)) ? 1 : 8; if ( err ) return(true); last_fpgm = GGadgetIsChecked(GWidgetGetControl(fsd->gw,CID_Debugfpgm)); cv->ft_pointsizey = ptsize; cv->ft_dpi = _dpi; cv->ft_depth = _depth; cv->ft_pointsizex = ptsizex; cv->ft_ppemy = rint(cv->ft_pointsizey*cv->ft_dpi/72.0); cv->ft_ppemx = rint(cv->ft_pointsizex*cv->ft_dpi/72.0); gridfit_dpi = _dpi; gridfit_pointsizey = ptsize; gridfit_depth = _depth; gridfit_pointsizex = ptsizex; gridfit_x_sameas_y = GGadgetIsChecked(GWidgetGetControl(fsd->gw,CID_SameAs)); SavePrefs(true); SplinePointListsFree(cv->b.gridfit); cv->b.gridfit = NULL; FreeType_FreeRaster(cv->raster); cv->raster = NULL; if ( fsd->debug ) CVDebugReInit(cv,true,last_fpgm); else { cv->show_ft_results = true; CVGridFitChar(cv); } CVLayersSet(cv); fsd->done = true; SCRefreshTitles(cv->b.sc); } return( true ); }
void CVGridHandlePossibleFitChar(CharView *cv) { if( cv->show_ft_results_live_update ) CVGridFitChar(cv); }