Advertisement
Guest User

Untitled

a guest
Oct 24th, 2010
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. string askForFilename(string defFilename) {
  2.     WINDOW* dialog;
  3.     FORM* form;
  4.     FIELD* fields[2];
  5.     int key = 0;
  6.    
  7.     //creating a form
  8.     fields[0] = new_field(1, 26, 0, 0, 0, 0);
  9.     fields[1] = 0;
  10.     set_field_buffer(fields[0], 0, defFilename.c_str());
  11.    
  12.     //options
  13.     form = new_form(fields);
  14.     set_field_back(fields[0], A_UNDERLINE);
  15.     //field_opts_off(fields[0], O_STATIC);
  16.     set_max_field(fields[0], 26);
  17.  
  18.     //creating a window
  19.     dialog = newwin(5, 30, 8, 25);
  20.     mvwaddstr(dialog, 1, 6, "Podaj nazwe pliku:");
  21.     keypad(dialog, true);
  22.     box(dialog, 0 , 0);
  23.     wrefresh(dialog);
  24.    
  25.     //binding
  26.     set_form_win(form, dialog);
  27.     set_form_sub(form, derwin(dialog, 1, 26, 3, 2));
  28.    
  29.     //running a form…
  30.     post_form(form);
  31.    
  32.     //…and driving it
  33.     while (key != 10) {
  34.         wrefresh(dialog);
  35.  
  36.         key = wgetch(dialog);
  37.  
  38.         switch(key) {
  39.             case KEY_LEFT: {
  40.                 form_driver(form, REQ_PREV_CHAR);
  41.                 break;
  42.             } case KEY_RIGHT: {
  43.                 form_driver(form, REQ_NEXT_CHAR);
  44.                 break;
  45.             } case KEY_BACKSPACE: {
  46.                 form_driver(form, REQ_DEL_PREV);
  47.                 break;
  48.             } case KEY_DC: {
  49.                 form_driver(form, REQ_DEL_CHAR);
  50.                 break;
  51.             } default: {
  52.                 form_driver(form, key);
  53.             }
  54.         }
  55.     }
  56.  
  57.     //saving a value
  58.     defFilename = stripSpace(field_buffer(fields[0], 0));
  59.  
  60.     //destroying window and form
  61.     unpost_form(form);
  62.     free_form(form);
  63.     free_field(fields[0]);
  64.     wclear(dialog);
  65.     wrefresh(dialog);
  66.     delwin(dialog);
  67.     refresh();
  68.    
  69.     return defFilename;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement