static int kpd_e_h(GWindow gw, GEvent *event) { if ( event->type==et_close ) { KPData *kpd = GDrawGetUserData(gw); kpd->done = true; } else if ( event->type == et_mousemove ) { kpdpopup(GDrawGetUserData(gw)); } else if ( event->type == et_expose ) { KPData *kpd = GDrawGetUserData(gw); GRect size, sbsize; GDrawGetSize(kpd->v,&size); GGadgetGetSize(GWidgetGetControl(kpd->gw,CID_ScrollBar),&sbsize); GDrawSetLineWidth(gw,0); GDrawDrawLine(gw,size.x,size.y-1,sbsize.x+sbsize.width-1,size.y-1,0x000000); GDrawDrawLine(gw,size.x,size.y+size.height,sbsize.x+sbsize.width-1,size.y+size.height,0x000000); GDrawDrawLine(gw,size.x-1,size.y-1,size.x-1,size.y+size.height,0x000000); } else if ( event->type == et_char ) { if ( event->u.chr.keysym == GK_F1 || event->u.chr.keysym == GK_Help ) { help("kernpairs.html"); return( true ); } if ( event->u.chr.chars[0]!='\0' && event->u.chr.chars[1]=='\0' ) { enum sortby sort = GGadgetGetFirstListSelectedItem(GWidgetGetControl(gw,CID_SortBy)); KPData *kpd = GDrawGetUserData(gw); if ( sort!=sb_kern ) { KPScrollTo(kpd,event->u.chr.chars[0],sort); return( true ); } else GDrawBeep(NULL); } return( false ); } else if ( event->type == et_resize && event->u.resize.sized ) { KP_Resize((KPData *) GDrawGetUserData(gw) ); } return( true ); }
static void AnchorD_NextPrev(AnchorDlg *a,int incr) { GGadget *g = GWidgetGetControl(a->gw,CID_Glyph); int len; GTextInfo **ti = GGadgetGetList(g,&len); int sel = GGadgetGetFirstListSelectedItem(g); for ( sel += incr; sel>0 && sel<len; sel+=incr ) { if ( !( ti[sel]->userdata == Add_Mark || ti[sel]->userdata == Add_Base || ti[sel]->line || ti[sel]->disabled )) break; } if ( sel==0 || sel>=len ) GDrawBeep(NULL); else { char *name = u2utf8_copy(ti[sel]->text); SplineChar *sc = SFGetChar(a->sc->parent,-1,name); free(name); GGadgetSelectOneListItem(g,sel); AnchorD_ChangeGlyph(a,sc,ti[sel]->userdata); } }