void RAW_eraseall(FORM* form, CONTROL* control) { unsigned char x; x=msgbox(50,BC_YesNo | BC_DefaultButton2,"Moechten Sie wirklich\nalle gespeicherten\nCodes loeschen?\n"); if(x == BC_Yes) { for(x=0;x<4;x++) BFS_DeleteFile(BFS_ID_RAWslot0 + x); } form_draw(form); }
void RAW_allkeyserase(FORM* form, CONTROL* control) { unsigned char x; x=msgbox(50,BC_YesNo | BC_DefaultButton2,"Moechten Sie wirklich\nalle Tasten loeschen?\n"); if(x == BC_Yes) { for(x=0;x<38;x++) { clear_cmd(&(((struct RAWset_*)(form->tag))->RAWcmd[x])); } } /* unsigned long y; unsigned char* z; z=(struct RAWset_*)(form->tag); for(y=0;y<sizeof(struct RAWset_);y++) z[y]=y & 0xff; ((struct RAWset_*)(form->tag))->name[0] = 0; */ form_draw(form); }
void RAW_keyerase(FORM* form, CONTROL* control) { unsigned char x; x=msgbox(50,BC_nobuttons,"\nZu loeschende Taste\ndruecken.\n"); waitKeyDown(); x=getKeynum(); if(x>3) { /* unsigned short y; unsigned char* z; z=&((struct RAWset_*)(form->tag))->RAWcmd[x-4]; for(y=0;y<sizeof(struct RAWcmd_);y++) { z[y]=x; }*/ clear_cmd(&(((struct RAWset_*)(form->tag))->RAWcmd[x-4])); } form_draw(form); }
void RAW_editset(FORM* form, CONTROL* control) { struct RAWset_ RAWset; const BUTTON button1 = {BC_Button,0,15,120,15,SMALLFONT,0,"Anlernen/Testen",RAW_learnset}; const BUTTON button2 = {BC_Button,0,35,120,15,SMALLFONT,0,"Taste loeschen",RAW_keyerase}; const BUTTON button3 = {BC_Button,0,55,120,15,SMALLFONT,0,"Alle Tasten loeschen",RAW_allkeyserase}; const LABEL label1 = {BC_Labelnotab,0,80,60,10,BOLDFONT,0,"Bezeichnung",0}; TXTBOX txtbox1 = {BC_Txtbox,0,90,120,10,SMALLFONT,20,0,(char*)RAWset.name,0}; CONTROL* controls[5] = { (CONTROL*)&button1, (CONTROL*)&button2, (CONTROL*)&button3, (CONTROL*)&label1, (CONTROL*)&txtbox1}; FORM form2 = {"RAW Set bearbeiten",0,0,0,0,controls,0,5}; unsigned long x; x = (unsigned long)BFS_LoadFileAddr(BFS_ID_RAWslot0 + ((LABEL*)control)->tag); draw_hexW(0,100,x,3,DRAW_PUT); if(x) memcpy(&RAWset,(void *)x,sizeof(struct RAWset_)); else RAWset.id[0] = 0xff; x=memcmp(&RAWset,"RC01",4); if(x) { for(x=0;x<RAWnamelen;x++) RAWset.name[x]=0xff; for(x=0;x<38;x++) { clear_cmd(&RAWset.RAWcmd[x]); } BFS_SaveFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset); } if(RAWset.name[0]==0xff) memcpy(&RAWset.name[0],(char*)string_unknown,len_string_unknown); form2.tag =(unsigned long)&RAWset; form_exec(&form2); if(!memcmp(&RAWset.name[0],string_unknown,len_string_unknown)) for(x=0;x<len_string_unknown;x++) RAWset.name[x] = 0xff; if(BFS_CmpFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) { x=msgbox(50,BC_YesNo | BC_DefaultButton1,"Sollen die Aenderungen\ngespeichert werden?\n"); if(x == BC_Yes) { memcpy(&RAWset.id[0],"RC01",4); BFS_SaveFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset); if(BFS_CmpFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) { msgbox(50,BC_OKOnly | BC_DefaultButton1,"Fehler\n"); } } } form_draw(form); }
void RAW_learnset(FORM* form, CONTROL* control) { RAW_learn((struct RAWset_*)(form->tag)); form_draw(form); }
/* ------------------ */ void set_font(void) { register int eo, i, font_nr, font_height; int tst_x, tst_y, xy[4], dummy; int minADE, maxADE, distance[5], effects[3], maxw; char font_names[4][34]; set_eline(); font_nr = akt_font; font_height = akt_fheight; rsrc_gaddr(ROOT, SET_FONT, &form_adr); for (i = 0; i < 4; i++) form_adr[FONT_1B + i].ob_spec.tedinfo->te_ptext = font_names[i]; form_adr[FONT_S].ob_state &= ~SELECTED; for (i = 0; i < 4; i++) { form_adr[FONT_1B + i].ob_state &= ~SELECTED; if (tfont_names[akt_id][i][0]) { strcpy(font_names[i], tfont_names[akt_id][i]); form_adr[FONT_1B + i].ob_state &= ~DISABLED; } else { strcpy(font_names[i], "-- Unbelegt --"); form_adr[FONT_1B + i].ob_state |= DISABLED; } } form_adr[FONT_S + font_nr - 1].ob_state |= SELECTED; form_draw(); objc_offset(form_adr, TST_FLD, &tst_x, &tst_y); xy[0] = tst_x; xy[1] = tst_y; xy[2] = xy[0] + form_adr[TST_FLD].ob_width - 2; xy[3] = xy[1] + form_adr[TST_FLD].ob_height - 2; vs_clip(vdi_handle, TRUE, xy); vswr_mode(vdi_handle, 1); vst_effects(vdi_handle, NORMAL); vst_alignment(vdi_handle, 0, 5, &dummy, &dummy); do { show_testtext(tst_x, tst_y, font_nr, font_height); vqt_fontinfo(vdi_handle, &minADE, &maxADE, distance, &maxw, effects); if (distance[4] < font_height) font_height = distance[4]; eo = form_do(form_adr, 0); switch(eo & 0x7FFF) { case FONT_S: case FONT_1B: case FONT_2B: case FONT_3B: case FONT_4B: if ((form_adr[eo & 0x7FFF].ob_state & DISABLED) || ((eo & 0x8000) && (eo & 0x7FFF) != FONT_S)) { eo &= 0x7FFF; if (load_font(eo - FONT_S + 1)) { font_nr = eo - FONT_S + 1; vqt_name(vdi_handle, 2, tfont_names[akt_id][eo - FONT_1B]); strcpy(font_names[eo - FONT_1B], tfont_names[akt_id][eo - FONT_1B]); form_adr[eo].ob_state &= ~DISABLED; for (i = 0; i < 5; i++) form_adr[FONT_S + i].ob_state &= ~SELECTED; form_adr[eo].ob_state |= SELECTED; strcpy(txt_fonts[akt_id][font_nr - 2], rindex(font_path, '\\') + 1); } objc_draw(form_adr, ROOT, MAX_DEPTH, fx, fy, fw, fh); } else font_nr = eo - FONT_S + 1; break; case GRT_UP: if (font_height > distance[4] - distance[2]) font_height--; break; case GRT_DWN: font_height++; break; } eo &= 0x7FFF; }while(eo != FONT_OK && eo != FONT_CNC); form_adr[eo & 0x7FFF].ob_state &= ~SELECTED; f_dial(FMD_SHRINK); f_dial(FMD_FINISH); get_eline(); if (eo == FONT_OK) { set_fontd(font_nr, font_height); akt_font = font_nr; akt_fheight = font_height; } vst_alignment(vdi_handle, 0, 3, &dummy, &dummy); }