void create_device_name_form(void) { fields[0] = new_field(1, 32, 1, 1, 0, 0); if (!fields[0]) fatal_error("cannot create field"); field_opts_off(fields[0], O_ACTIVE); field_opts_off(fields[0], O_EDIT); set_field_fore(fields[0], attr_textbox); set_field_back(fields[0], attr_textbox); set_field_buffer(fields[0], 0, _("Device name:")); fields[1] = new_field(1, 32, 2, 1, 0, 0); if (!fields[1]) fatal_error("cannot create field"); field_opts_off(fields[1], O_AUTOSKIP); field_opts_off(fields[1], O_NULLOK); field_opts_off(fields[1], O_STATIC); set_field_fore(fields[1], attr_textfield); set_field_back(fields[1], attr_textfield); set_field_buffer(fields[1], 0, mixer_device_name); form = new_form(fields); if (!form) fatal_error("cannot create form"); if (!create()) return; post_form(form); }
/* * add a field to the form */ void wdg_input_add(wdg_t *wo, size_t x, size_t y, const char *caption, char *buf, size_t len, size_t lines) { WDG_WO_EXT(struct wdg_input_handle, ww); ww->nfields += 2; WDG_SAFE_REALLOC(ww->fields, ww->nfields * sizeof(FIELD *)); /* remember the pointer to the real buffer (to be used in consolidate) */ WDG_SAFE_REALLOC(ww->buffers, (ww->nfields/2 + 1) * sizeof(char *)); ww->buffers[ww->nfields/2 - 1] = buf; ww->buffers[ww->nfields/2] = NULL; /* create the caption */ ww->fields[ww->nfields - 2] = new_field(1, strlen(caption), y, x, 0, 0); set_field_buffer(ww->fields[ww->nfields - 2], 0, caption); field_opts_off(ww->fields[ww->nfields - 2], O_ACTIVE); set_field_fore(ww->fields[ww->nfields - 2], COLOR_PAIR(wo->focus_color)); /* and the modifiable field */ ww->fields[ww->nfields - 1] = new_field(lines, len, y, x + strlen(caption) + 2, 0, 0); set_field_back(ww->fields[ww->nfields - 1], A_UNDERLINE); field_opts_off(ww->fields[ww->nfields - 1], O_WRAP); set_field_buffer(ww->fields[ww->nfields - 1], 0, buf); set_field_fore(ww->fields[ww->nfields - 1], COLOR_PAIR(wo->window_color)); /* null terminate the array */ WDG_SAFE_REALLOC(ww->fields, (ww->nfields + 1) * sizeof(FIELD *)); ww->fields[ww->nfields] = NULL; }
/* * Define each field with an extra one, for reflecting "actual" text. */ static FIELD * make_field(int frow, int fcol, int rows, int cols) { FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1); if (f) { FieldAttrs *ptr; set_field_back(f, A_UNDERLINE); /* * If -j and -d options are combined, -j loses. It is documented in * "Character User Interface Programming", page 12-15 that setting * O_STATIC off makes the form library ignore justification. */ set_field_just(f, j_value); if (d_option) { if (has_colors()) { set_field_fore(f, (chtype) COLOR_PAIR(2)); set_field_back(f, A_UNDERLINE | COLOR_PAIR(3)); } else { set_field_fore(f, A_BOLD); } /* * The field_opts_off() call dumps core with Solaris curses, * but that is a known bug in Solaris' form library -TD */ field_opts_off(f, O_STATIC); set_max_field(f, m_value); } /* * The userptr is used in edit_field.c's inactive_field(). */ ptr = (FieldAttrs *) field_userptr(f); if (ptr == 0) { ptr = typeCalloc(FieldAttrs, 1); ptr->background = field_back(f); } set_field_userptr(f, (void *) ptr); if (t_value) set_field_buffer(f, 0, t_value); } return (f); }
void init_term_gui(void) { /* Fix ESC key */ set_escdelay(25); initscr(); start_color(); cbreak(); noecho(); if (can_change_color()) { init_color(XS_COLOR_BLUE, 43, 180, 349); init_color(XS_COLOR_RED, 886, 27, 124); init_pair(XS_COLOR_PAIR_1, COLOR_WHITE, XS_COLOR_RED); init_pair(XS_COLOR_PAIR_2, COLOR_WHITE, XS_COLOR_BLUE); } else{ init_pair(XS_COLOR_PAIR_1, COLOR_WHITE, COLOR_RED); init_pair(XS_COLOR_PAIR_2, COLOR_WHITE, COLOR_BLUE); } /* int max_rows; */ /* int max_cols; */ /* getmaxyx(stdscr, max_rows, max_cols); */ show_recent_apps(); prepare_for_new_results(False); mvprintw(0, 0, "$"); mvwprintw(window, MAX_Y - 2, 0, "Loading paths..."); refresh(); field[0] = new_field( 1, // columns 20, // width 0, // pos y 2, // pos x 0, 0 ); /* Hide cursor */ curs_set(0); set_field_fore(field[0], COLOR_PAIR(XS_COLOR_PAIR_2)); field[1] = NULL; form = new_form(field); post_form(form); wrefresh(window); }
void viper_form_colorize(FORM *form,chtype field_active,chtype field_normal, chtype text_active,chtype text_normal) { FIELD **fields; fields=form_fields(form); while(*fields!=NULL) { if(*fields==current_field(form)) { set_field_fore(*fields,text_active); set_field_back(*fields,field_active); } else { set_field_fore(*fields,text_normal); set_field_back(*fields,field_normal); } fields++; } return; }
int main() { FIELD *f1[2]; FORM *frm1; chtype ch; int error; HOOK fptr=getbuf; initscr(); f1[0]=new_field(24,80,0,0,1,1); assert(f1[0]!=NULL); f1[1]=NULL; frm1=new_form(f1); assert(frm1!=NULL); set_field_fore(f1[0],A_REVERSE); field_opts_off(f1[0],O_STATIC); //set_field_buffer(f1[0],0,"Sajid"); set_field_type(f1[0],TYPE_ALPHA,80); set_field_term(f1[0],fptr); post_form(frm1); wrefresh(stdscr); keypad(stdscr,TRUE); while((ch=getch())!=KEY_F(3)) { switch(ch) { case KEY_LEFT: error=form_driver(frm1,REQ_PREV_CHAR); if(error==E_REQUEST_DENIED) form_driver(frm1,REQ_SCR_BCHAR); break; case KEY_RIGHT: form_driver(frm1,REQ_NEXT_CHAR); break; default: form_driver(frm1,ch); break; } } unpost_form(frm1); free_form(frm1); free_field(f1[0]); getch(); printw(ptr); endwin(); }
int kullanici_onayla() { FIELD *field[3]; FORM *my_form; int ch; touchwin(ana_win); wrefresh(ana_win); init_pair(1, COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_WHITE, COLOR_BLUE); /*calisma yili 4 karakter*/ field[0] = new_field(1, 10, 18, 42, 0, 0); /*firma 2 karakter*/ field[1] = new_field(1, 10, 20, 42, 0, 0); field[2] = NULL; set_field_fore(field[0], COLOR_PAIR(1)); set_field_fore(field[1], COLOR_PAIR(1)); /*geri plan rengi olsun*/ set_field_back(field[0], COLOR_PAIR(2)); set_field_back(field[1], COLOR_PAIR(2)); /* set_field_type(field[0], TYPE_INTEGER); set_field_type(field[1], TYPE_INTEGER); */ field_opts_off(field[0], O_AUTOSKIP); field_opts_off(field[1], O_AUTOSKIP); /*sifre alani olan ikinci field password biçiminde olmali/ field_opts_off(field[1], O_PUBLIC); /*geri plan rengi olmasin*/ /* set_field_back(field[0], A_UNDERLINE); set_field_back(field[1], A_UNDERLINE); */ my_form = new_form(field); post_form(my_form); refresh(); set_current_field(my_form, field[0]); mvprintw(18, 25, _("User name :") ); mvprintw(20, 25, _("Password :"******"This application under GPL license.") ); attroff(A_BLINK); attroff(A_BOLD); attron(A_BOLD); mvprintw(LINES-3, 5, _("F2-> Begin ESC-> Cancel") ); mvprintw(18, 5, _("F5-> Settings") ); attroff(A_BOLD); mvprintw(7,3, _(" Acik ")); mvprintw(8,3," _| _| _| "); mvprintw(9,3," _|_|_| _| _|_| _|_|_|_| _|_|_| _|_| _|_| "); mvprintw(10,3," _| _|_| _| _|_|_|_| _| _| _| _| _|_|_|_| "); mvprintw(11,3," _| _|_| _| _| _| _| _| _| _| "); mvprintw(12,3," _| _|_|_| _| _|_|_| _|_| _| _| _| _|_|_| "); refresh(); while((ch = getch()) ) { switch(ch) { case 8: /*KEY_BACKSPACE hatali kod vermekte 8 dogru olandir konsolda 8 xterm key_backspace*/ form_driver(my_form, REQ_PREV_CHAR); form_driver(my_form, REQ_DEL_CHAR); break; case KEY_BACKSPACE: form_driver(my_form, REQ_PREV_CHAR); form_driver(my_form, REQ_DEL_CHAR); break; case 9: /*TAB tusuna basýlmasý durumunda sonraki field konumlan*/ form_driver(my_form, REQ_NEXT_FIELD); form_driver(my_form, REQ_END_LINE); break; case 10: /*ENTER tuþuna basýlmasý durumunda sonraki feild gececek*/ form_driver(my_form, REQ_NEXT_FIELD); form_driver(my_form, REQ_END_LINE); break; case KEY_DC: /*del tusu*/ form_driver(my_form,REQ_DEL_CHAR); break; case KEY_HOME: form_driver(my_form,REQ_BEG_LINE); break; case KEY_END: form_driver(my_form,REQ_END_LINE); break; case KEY_DOWN: form_driver(my_form, REQ_NEXT_FIELD); form_driver(my_form, REQ_END_LINE); break; case KEY_UP: form_driver(my_form, REQ_PREV_FIELD); form_driver(my_form, REQ_END_LINE); break; case KEY_LEFT: form_driver(my_form,REQ_LEFT_CHAR); break; case KEY_RIGHT: form_driver(my_form,REQ_RIGHT_CHAR); break; case 27: /*esc durumunda*/ unpost_form(my_form); free_form(my_form); free_field(field[0]); free_field(field[1]); endwin(); exit(0); break; case KEY_F(5): /*ayarlara gecis*/ ayarlar(); unpost_form(my_form); free_form(my_form); free_field(field[0]); free_field(field[1]); endwin(); exit (0); break; case KEY_F(2): /*f2 durumunda*/ form_driver(my_form, REQ_PREV_FIELD); strcpy(query, "select kullanici, sifre, haklar from kullanicilar"); if ( pgsql_sorgula(query) ==1 ) { mesaj(sql_sorgulama_hatasi); return 1;} for (i=0;i<pgsql_row_miktar;i++) { sprintf(kullanici,"%s", pgsql_kayit_field() ); sprintf(sifre,"%s", pgsql_kayit_field() ); sprintf(haklar,"%s", pgsql_kayit_field() ); if ( strcmp(g_strstrip(field_buffer(field[0],0)), kullanici) ==NULL ) { if ( (sifre_kripto_coz( g_strstrip(field_buffer(field[1],0)) , sifre) == 0) || (strcmp(g_strstrip(field_buffer(field[1],0)), sifre) == NULL ) ) { //kullanýcý root ise haklar full olmalý //databaseden degistirme ihtimali olabilir if ( strstr( kullanici, "root") ) {sprintf(haklar,"%s", "1111111111111111111111111111111111111111111111111111111111111111");} beep(); unpost_form(my_form); free_form(my_form); free_field(field[0]); free_field(field[1]); touchwin(ana_win); wrefresh(ana_win); return; } else { set_field_buffer(field[0],0," "); set_field_buffer(field[1],0," "); refresh(); //beep sesi beep(); } } } break; default: form_driver(my_form, ch); break; } } return 0; /*son*/ }
int main(int argc, const char *argv[]) { initscr(); keypad(stdscr,TRUE); cbreak(); colores(); FIELD *campos[2]; FIELD *campo=new_field(1,15,4,18,0,0); FIELD *campo_dos=new_field(1,10,6,18,0,0); campos[0]=campo; campos[1]=campo_dos; campos[2]=NULL; set_field_fore(campos[0],COLOR_PAIR(1)); set_field_back(campos[0],COLOR_PAIR(2)); // set_field_opts(campos[0],O_ACTIVE); set_field_back(campos[0],A_UNDERLINE); //field_opts_off(campos[0],O_AUTOSKIP); set_field_back(campos[1],A_UNDERLINE); // field_opts_off(campos[1],O_AUTOSKIP); FORM *formulario=new_form(campos); // noecho(); box(stdscr,0,0); set_form_win(formulario,stdscr); post_form(formulario); refresh(); mvprintw(4, 10, "Value 1:"); mvprintw(6, 10, "Value 1:"); //------ while((ch = getch()) != KEY_F(1)) { switch(ch) { case KEY_DOWN: /* Go to next field */ form_driver(formulario, REQ_NEXT_FIELD); /* Go to the end of the present buffer */ /* Leaves nicely at the last character */ form_driver(formulario, REQ_END_LINE); break; case KEY_UP: /* Go to previous field */ form_driver(formulario, REQ_PREV_FIELD); form_driver(formulario, REQ_END_LINE); break; default: /* If this is a normal character, it gets */ /* Printed */ form_driver(formulario, ch); break; } } //------ //respuesta(formulario); //getch(); endwin(); return 0; }
/* setup ballistic coefficient calculation */ void calc_bc(void) { int i; /* use global form handler function */ handler = FORM_HANDLER; /* setup background */ formbg(); /* set changable field attributes */ set_field_fore(NULL, COLOR_PAIR(MENU_PAIR) | A_STANDOUT | A_DIM); set_field_back(NULL, COLOR_PAIR(MENU_PAIR) | A_REVERSE | A_DIM); /* field_opts_off(NULL, O_BLANK); */ /* create float form items */ set_field_type(NULL, TYPE_NUMERIC, FORM_FIELD_WIDTH, 0.0, 5000.0); field_items_ptr[0] = new_field(1,FORM_FIELD_WIDTH,1,1,0,0); /* X0 */ field_items_ptr[1] = new_field(1,FORM_FIELD_WIDTH,2,1,0,0); /* V0 */ field_items_ptr[2] = new_field(1,FORM_FIELD_WIDTH,4,1,0,0); /* X1 */ field_items_ptr[3] = new_field(1,FORM_FIELD_WIDTH,5,1,0,0); /* V1 */ /* create field labels */ set_field_fore(NULL, COLOR_PAIR(BG_PAIR)); set_field_back(NULL, COLOR_PAIR(BG_PAIR)); field_items_ptr[4] = new_field(1,CALC_BC_WIDTH,1,10,0,0); field_items_ptr[5] = new_field(1,CALC_BC_WIDTH,2,10,0,0); field_items_ptr[6] = new_field(1,CALC_BC_WIDTH,4,10,0,0); field_items_ptr[7] = new_field(1,CALC_BC_WIDTH,5,10,0,0); /* done button */ set_field_fore(NULL, COLOR_PAIR(BG_PAIR) | A_REVERSE | A_DIM); set_field_back(NULL, COLOR_PAIR(BG_PAIR) | A_REVERSE | A_DIM); field_items_ptr[8] = new_field(1,8,7,10,0,0); done_field = 8; /* end of items */ field_items_ptr[9] = NULL; /* set input field options */ for(i=0; i<4; i++) field_opts_off(field_items_ptr[i], O_NULLOK); /* put labels into the items */ if(calcparam.units == ENGLISH) { for(i=4; i <= 7; i++) { set_field_buffer(field_items_ptr[i],0,calc_bc_e[i-4]); field_opts_off(field_items_ptr[i], O_ACTIVE | O_EDIT); } } else { for(i=4; i <= 7; i++) { set_field_buffer(field_items_ptr[i],0,calc_bc_m[i-4]); field_opts_off(field_items_ptr[i], O_ACTIVE | O_EDIT); } } set_field_buffer(field_items_ptr[done_field],0,done_str); /* create new form */ form_ptr = new_form(field_items_ptr); /* setup form handler functions */ set_form_init(form_ptr, calc_bc_form_init); set_form_term(form_ptr, calc_bc_form_term); /* set place to return when form is done */ set_form_userptr(form_ptr,show_calc_bc); }
int main(void) { int ch, i; initscr(); atexit(quit); clear(); noecho(); cbreak(); keypad(stdscr, TRUE); start_color(); init_pair(1, COLOR_YELLOW, COLOR_BLUE); init_pair(2, COLOR_BLACK, COLOR_WHITE); bkgd(COLOR_PAIR(1)); fi = (FIELD **)calloc(4, sizeof(FIELD *)); fi[0] = new_field(1, 10, 2, 3, 0, 0); fi[1] = new_field(1, 10, 2, 18, 0, 0); fi[2] = new_field(1, 15, 2, 33, 0, 0); fi[3] = 0; for(i=0; i<3; i++) { set_field_fore(fi[i], COLOR_PAIR(2)); set_field_back(fi[i], COLOR_PAIR(2)); } fo = new_form(fi); post_form(fo); mvaddstr(2, 15, "+"); mvaddstr(2, 30, "="); mvaddstr(5, 3, "Programm mittels F1-Funktionstaste beenden"); refresh(); while((ch=getch()) != KEY_F(1)) { switch(ch) { case KEY_RIGHT: { char str[20]; form_driver(fo, REQ_NEXT_FIELD); if(field_index(current_field(fo)) == 2) { snprintf(str, 20, "%s%s", field_buffer(fi[0], 0), field_buffer(fi[1], 0)); set_field_buffer(fi[2], 0, str); refresh(); } break; } case KEY_LEFT: form_driver(fo, REQ_PREV_FIELD); break; default: /* Feldeingabe */ form_driver(fo, ch); } } return (0); }
/* setup modify bullet menu */ void modify_parameters(void) { int i; /* set correct handler */ handler = FORM_HANDLER; /* setup background */ formbg(); /* set changable field attributes */ set_field_fore(NULL, COLOR_PAIR(FORM_FIELD_PAIR) | A_NORMAL); set_field_back(NULL, COLOR_PAIR(FORM_FIELD_PAIR) | A_REVERSE); /* create float form items */ set_field_type(NULL, TYPE_NUMERIC, 4, 0.0, 0.0); /* 10 fields, numbered as follows: 0. B.C. 1. bullet weight 2. wind 3. muzzle velocity 4. sight height 5. zero distance 6. elevation angle 7. starting range 8. ending range 9. step size */ for (i=0; i<10; i++) field_items_ptr[i] = new_field(1,8,i+1,1,0,0); /* B.C. */ /* create field labels */ set_field_fore(NULL, COLOR_PAIR(BG_PAIR)); set_field_back(NULL, COLOR_PAIR(BG_PAIR)); for (i=10; i<20; i++) field_items_ptr[i] = new_field(1,PARAMETERS_WIDTH,i-9,10,0,0); /* done button */ set_field_fore(NULL, COLOR_PAIR(BG_PAIR) | A_REVERSE | A_DIM); set_field_back(NULL, COLOR_PAIR(BG_PAIR) | A_REVERSE | A_DIM); field_items_ptr[20] = new_field(1,8,12,10,0,0); done_field = 20; field_items_ptr[21] = NULL; /* set input field options */ for(i=0; i<9; i++) field_opts_off(field_items_ptr[i], O_NULLOK); /* put labels onto the items */ if(calcparam.units == ENGLISH) { for(i=10; i <= 19; i++) { set_field_buffer(field_items_ptr[i],0,calculation_parameters_e[i-10]); field_opts_off(field_items_ptr[i], O_ACTIVE | O_EDIT); } } else { for(i=10; i <= 19; i++) { set_field_buffer(field_items_ptr[i],0,calculation_parameters_m[i-10]); field_opts_off(field_items_ptr[i], O_ACTIVE | O_EDIT); } } /* label done button */ set_field_buffer(field_items_ptr[20],0,done_str); field_opts_off(field_items_ptr[20], O_EDIT); /* create new form */ form_ptr = new_form(field_items_ptr); /* setup form handler functions */ set_form_init(form_ptr, modify_parameters_form_init); set_form_term(form_ptr, modify_parameters_form_term); /* go to main menu when form is done */ set_form_userptr(form_ptr,create_mainmenu); }
int eq_run (kr_client_t *client, char *sysname) { WINDOW *eq_win,*tmpw; PANEL *eq_mainpan,*eq_subpan,*ctrl_subp; FORM *eq_form; FIELD **field; FIELD **ctrl_field; FORM *ctrl_form; /* Panels Structs */ ctrls_show_t *ctrls; eq_port_t *eqport; db_show_t *db; hz_show_t *hz; bw_show_t *bw; eq_saved_val_t *vals; int i; int max_co,subx,suby,gap; int offs = 0; int field_idx; int in_ctrl = 0; int nbands = KRAD_EQ_MAX_BANDS; int showed_bands = 1; int idx; char num[3]; int ch; int res; int bandn; clear (); char *fieldname[3] = {"Power","Frequency","Bandwidth"}; int nctrls = 3; eq_win = newwin (0,0,0,0); field = calloc (nbands+1,sizeof (FIELD*)); ctrl_field = calloc (nctrls+1,sizeof (FIELD*)); max_co = getmaxx (eq_win); gap = floor ((max_co) / nbands); vals = NULL; bandn = 0; ch = 0; for (i=0;i<nbands;i++) { field[i] = new_field (1,2,1, offs, 0, 0); set_field_just (field[i], JUSTIFY_CENTER); itoa (i,num,digits (i) + 1 ); set_field_buffer (field[i], 0, num); field_opts_off (field[i], O_AUTOSKIP | O_EDIT); offs += gap; } field[nbands] = NULL; offs = 0; gap = floor ((max_co ) / nctrls); for (i=0;i<nctrls;i++) { ctrl_field[i] = new_field (1,strlen (fieldname[i]),1, offs, 0, 0); set_field_just (ctrl_field[i], JUSTIFY_CENTER); set_field_buffer (ctrl_field[i], 0, fieldname[i]); field_opts_off (ctrl_field[i], O_AUTOSKIP | O_EDIT); offs += gap; } /* Controls generation */ ctrls = eq_ctrls_gen (eq_win,showed_bands); vals = calloc (1,sizeof (eq_saved_val_t)); eqport = calloc (1,sizeof (eq_port_t)); db = ctrls->db; hz = ctrls->hz; bw = ctrls->bw; eqport->name = sysname; eqport->vals = vals; eqport->ctrls = ctrls; /* Eq form init */ eq_form = new_form (field); wattron (eq_win,COLOR_PAIR (2) | A_BOLD); mvwprintw (eq_win,getmaxy (eq_win) * 0.05,floor ((max_co/2)-((strlen (sysname)+14)/2)),"Equalizer for %s",sysname); wattroff (eq_win,COLOR_PAIR (2) | A_BOLD); set_form_win (eq_form, eq_win); scale_form (eq_form, &suby, &subx); set_form_sub (eq_form, derwin (eq_win,suby, subx , getmaxy (eq_win) * 0.10 , (max_co - subx) / 2 )); eq_mainpan = new_panel (eq_win); eq_subpan = new_panel (form_sub (eq_form)); top_panel (eq_mainpan); top_panel (eq_subpan); post_form (eq_form); keypad (eq_win, TRUE); set_current_field (eq_form,field[0]); set_field_fore (current_field (eq_form),A_BOLD | COLOR_PAIR (3)); /* Eq ctrls form init */ ctrl_form = new_form (ctrl_field); set_form_win (ctrl_form, eq_win); scale_form (ctrl_form, &suby, &subx); set_form_sub (ctrl_form, derwin (eq_win,suby, subx , getmaxy (eq_win) * 0.90 , (max_co - subx) / 2 )); ctrl_subp = new_panel (form_sub (ctrl_form)); top_panel (ctrl_subp); post_form (ctrl_form); field_idx = field_index (current_field (eq_form)); /* Let's show controls! */ kr_mixer_portgroups (client); show_all_panels (ctrls,showed_bands); update_panels (); doupdate (); while (ch != 'q') { res = krm_poll (client,-1); switch (res) { case 0: continue; case 1: ch = getch (); break; case 2: eqport->band = bandn; kr_delivery_recv (client); eq_delivery_handler (client,eqport); continue; case -1: continue; } switch (ch) { case KEY_LEFT: if (in_ctrl) { set_field_fore (current_field (ctrl_form),A_NORMAL); form_driver (ctrl_form, REQ_PREV_FIELD); set_field_fore (current_field (ctrl_form),A_BOLD | COLOR_PAIR (1)); idx = field_index (current_field (ctrl_form)); } else { set_field_fore (current_field (eq_form),A_NORMAL); form_driver (eq_form, REQ_PREV_FIELD); set_field_fore (current_field (eq_form),A_BOLD | COLOR_PAIR (3)); bandn = field_index (current_field (eq_form)); kr_mixer_portgroups (client); } break; case KEY_RIGHT: if (in_ctrl) { set_field_fore (current_field (ctrl_form),A_NORMAL); form_driver (ctrl_form, REQ_NEXT_FIELD); set_field_fore (current_field (ctrl_form),A_BOLD | COLOR_PAIR (1)); idx = field_index (current_field (ctrl_form)); } else { set_field_fore (current_field (eq_form),A_NORMAL); form_driver (eq_form, REQ_NEXT_FIELD); set_field_fore (current_field (eq_form),A_BOLD | COLOR_PAIR (3)); bandn = field_index (current_field (eq_form)); kr_mixer_portgroups (client); } break; case KEY_UP: if (in_ctrl) { switch (idx) { case 0: vals->db += 0.50; kr_mixer_set_effect_control (client, sysname, 0, bandn, "db", vals->db, 0, 0); break; case 1: vals->hz += 5; kr_mixer_set_effect_control (client, sysname, 0, bandn, "hz", vals->hz, 0, 0); break; case 2: vals->bw += 0.10; kr_mixer_set_effect_control (client, sysname, 0, bandn, "bw", vals->bw, 0, 0); break; } } break; case KEY_DOWN: if (in_ctrl) { switch (idx) { case 0: vals->db -= 0.5; kr_mixer_set_effect_control (client, sysname, 0, bandn, "db", vals->db, 0, 0); break; case 1: vals->hz -= 5; kr_mixer_set_effect_control (client, sysname, 0, bandn, "hz", vals->hz, 0, 0); break; case 2: vals->bw -= 0.10; kr_mixer_set_effect_control (client, sysname, 0, bandn, "bw", vals->bw, 0, 0); break; } } break; case 'w': if (in_ctrl) { switch (idx) { case 0: vals->db += 0.10; kr_mixer_set_effect_control (client, sysname, 0, bandn, "db", vals->db, 0, 0); break; case 1: vals->hz += 1; kr_mixer_set_effect_control (client, sysname, 0, bandn, "hz", vals->hz, 0, 0); break; case 2: break; } } break; case 's': if (in_ctrl) { switch (idx) { case 0: vals->db -= 0.10; kr_mixer_set_effect_control (client, sysname, 0, bandn, "db", vals->db, 0, 0); break; case 1: vals->hz -= 1; kr_mixer_set_effect_control (client, sysname, 0, bandn, "hz", vals->hz, 0, 0); break; case 2: break; } } break; case 9: if (in_ctrl) { idx = field_index (current_field (ctrl_form)); set_field_fore (ctrl_field[idx],A_NORMAL); /* ncurses bug I suppose */ form_driver (ctrl_form, REQ_NEXT_FIELD); form_driver (ctrl_form, REQ_PREV_FIELD); set_current_field (eq_form,field[field_idx]); in_ctrl = 0; } else { field_idx = field_index (current_field (eq_form)); set_current_field (ctrl_form,ctrl_field[0]); set_field_fore (ctrl_field[0],A_BOLD | COLOR_PAIR (1)); /* ncurses bug I suppose */ form_driver (ctrl_form, REQ_NEXT_FIELD); form_driver (ctrl_form, REQ_PREV_FIELD); idx = 0; in_ctrl = 1; } break; default: break; } update_panels (); doupdate (); } /* CLEANUP */ for (i=0;i<showed_bands;i++) { tmpw = panel_window (db->slider_p[i]); del_panel (db->slider_p[i]); delwin (tmpw); tmpw = panel_window (db->bar_p[i]); del_panel (db->bar_p[i]); delwin (tmpw); tmpw = panel_window (hz->cell_p[i]); del_panel (hz->cell_p[i]); delwin (tmpw); tmpw = panel_window (bw->bar_p[i]); del_panel (bw->bar_p[i]); delwin (tmpw); tmpw = panel_window (bw->slider_p[i]); del_panel (bw->slider_p[i]); delwin (tmpw); tmpw = panel_window (bw->cell_p[i]); del_panel (bw->cell_p[i]); delwin (tmpw); } free (db->bar_w); free (db->slider_w); free (hz->cell_w); free (bw->bar_w); free (bw->slider_w); free (bw->cell_w); free (db->bar_p); free (db->slider_p); free (hz->cell_p); free (bw->bar_p); free (bw->slider_p); free (bw->cell_p); tmpw = panel_window (db->pan); del_panel (db->pan); delwin (tmpw); tmpw = panel_window (hz->pan); del_panel (hz->pan); delwin (tmpw); tmpw = panel_window (bw->pan); del_panel (bw->pan); delwin (tmpw); free (ctrls); free (db); free (hz); free (bw); free (vals); free (eqport); tmpw = form_sub (ctrl_form); unpost_form (ctrl_form); free_form (ctrl_form); for (i=0;i<nctrls;i++) { free_field (ctrl_field[i]); } free (ctrl_field); del_panel (ctrl_subp); delwin (tmpw); tmpw = form_sub (eq_form); unpost_form (eq_form); free_form (eq_form); for (i=0;i<nbands;i++) { free_field (field[i]); } free (field); del_panel (eq_subpan); del_panel (eq_mainpan); delwin (tmpw); delwin (eq_win); return 0; }