Previous 199869 Revisions Next

r34225 Tuesday 6th January, 2015 at 17:52:33 UTC by Fabio Priuli
(MESS) ui: fixed for real the wrong confirmation menu being
prompted when leaving file creation. also, better backspace
support in the file creation menu (so that it work on Mac too).
nw.
[src/emu/imagedev]floppy.c
[src/emu/ui]filesel.c filesel.h imgcntrl.c imgcntrl.h

trunk/src/emu/imagedev/floppy.c
r242736r242737
980980         break;
981981
982982      case ui_menu_select_rw::WRITE_OTHER:
983         ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_file_create(machine(), container, image, current_directory, current_file)));
984         state = CREATE_FILE;
983         ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_file_create(machine(), container, image, current_directory, current_file, &create_ok)));
984         state = CHECK_CREATE;
985985         break;
986986
987987      case -1:
trunk/src/emu/ui/filesel.c
r242736r242737
5454{
5555   size_t buflen = strlen(buffer);
5656
57   if ((unichar == 8) && (buflen > 0))
57   if ((unichar == 8 || unichar == 0x7f) && (buflen > 0))
5858   {
5959      *(char *)utf8_previous_char(&buffer[buflen]) = 0;
6060   }
r242736r242737
6565   }
6666}
6767
68
6968//-------------------------------------------------
7069//  extra_text_draw_box - generically adds header
7170//  or footer text
r242736r242737
220219//  ctor
221220//-------------------------------------------------
222221
223ui_menu_file_create::ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file)
222ui_menu_file_create::ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file, bool *ok)
224223   : ui_menu(machine, container),
225224      m_current_directory(current_directory),
226225      m_current_file(current_file)
227226{
228227   m_image = image;
228   m_ok = ok;
229   *m_ok = true;
229230}
230231
231232
r242736r242737
328329               reset(UI_MENU_RESET_REMEMBER_POSITION);
329330            }
330331            break;
332         case IPT_UI_CANCEL:
333            *m_ok = false;
334            break;
331335      }
332336   }
333337}
334338
335
336
337339/***************************************************************************
338340    FILE SELECTOR MENU
339341***************************************************************************/
trunk/src/emu/ui/filesel.h
r242736r242737
3434class ui_menu_file_create : public ui_menu
3535{
3636public:
37   ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file);
37   ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file, bool *ok);
3838   virtual ~ui_menu_file_create();
3939   virtual void populate();
4040   virtual void handle();
r242736r242737
4646   astring &                       m_current_file;
4747   const image_device_format *     m_current_format;
4848   char                            m_filename_buffer[1024];
49
50protected:
51   bool *                          m_ok;
4952};
5053
5154
trunk/src/emu/ui/imgcntrl.c
r242736r242737
276276         break;
277277
278278      case ui_menu_file_selector::R_CREATE:
279         ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_file_create(machine(), container, image, current_directory, current_file)));
280         state = CREATE_FILE;
279         ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_file_create(machine(), container, image, current_directory, current_file, &create_ok)));
280         state = CHECK_CREATE;
281281         break;
282282
283283      case ui_menu_file_selector::R_SOFTLIST:
r242736r242737
309309      break;
310310   }
311311
312   case CREATE_CONFIRM: {
312   case CREATE_CONFIRM:
313313      state = create_confirmed ? DO_CREATE : START_FILE;
314314      handle();
315315      break;
316   }
317316
317   case CHECK_CREATE:
318      state = create_ok ? CREATE_FILE : START_FILE;
319      handle();
320      break;
321         
318322   case DO_CREATE: {
319323      astring path;
320324      zippath_combine(path, current_directory, current_file);
trunk/src/emu/ui/imgcntrl.h
r242736r242737
2525
2626protected:
2727   enum {
28      START_FILE, START_OTHER_PART, START_SOFTLIST, SELECT_PARTLIST, SELECT_ONE_PART, SELECT_OTHER_PART, SELECT_FILE, CREATE_FILE, CREATE_CONFIRM, DO_CREATE, SELECT_SOFTLIST,
28      START_FILE, START_OTHER_PART, START_SOFTLIST,
29      SELECT_PARTLIST, SELECT_ONE_PART, SELECT_OTHER_PART,
30      SELECT_FILE, CREATE_FILE, CREATE_CONFIRM, CHECK_CREATE, DO_CREATE, SELECT_SOFTLIST,
2931      LAST_ID
3032   };
3133
r242736r242737
3941   // methods
4042   virtual void hook_load(astring filename, bool softlist);
4143
44   bool create_ok;
45
4246private:
4347   // instance variables
4448   bool create_confirmed;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team