diff options
-rw-r--r-- | src/calcurse.c | 29 | ||||
-rw-r--r-- | src/calcurse.h | 1 | ||||
-rw-r--r-- | src/io.c | 23 |
3 files changed, 14 insertions, 39 deletions
diff --git a/src/calcurse.c b/src/calcurse.c index 00b7708..000436c 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -289,24 +289,23 @@ static inline void key_generic_import(void) static inline void key_generic_export() { - int key; + const char *export_msg = _("Export to (i)cal or (p)cal format?"); + const char *export_choices = _("[ip]"); + const int nb_export_choices = 2; wins_erase_status_bar(); - io_export_bar(); - while ((key = wgetch(win[STA].p)) != 'q') { - switch (key) { - case 'I': - case 'i': - io_export_data(IO_EXPORT_ICAL); - case 'p': - io_export_data(IO_EXPORT_PCAL); - break; - } - wins_reset(); - wins_update(FLAG_ALL); - wins_erase_status_bar(); - io_export_bar(); + + switch (status_ask_choice(export_msg, export_choices, nb_export_choices)) { + case 1: + io_export_data(IO_EXPORT_ICAL); + break; + case 2: + io_export_data(IO_EXPORT_PCAL); + break; + default: /* User escaped */ + break; } + inday = do_storage(0); wins_update(FLAG_ALL); } diff --git a/src/calcurse.h b/src/calcurse.h index 8b99c04..191dbfd 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -743,7 +743,6 @@ void io_check_file(char *, int *); int io_check_data_files(void); void io_startup_screen(int); void io_export_data(enum export_type); -void io_export_bar(void); void io_import_data(enum import_type, const char *); struct io_file *io_log_init(void); void io_log_print(struct io_file *, int, const char *); @@ -937,29 +937,6 @@ void io_export_data(enum export_type type) } } -/* Draws the export format selection bar */ -void io_export_bar(void) -{ - int smlspc, spc; - - smlspc = 2; - spc = 15; - - custom_apply_attr(win[STA].p, ATTR_HIGHEST); - mvwaddstr(win[STA].p, 0, 2, "Q"); - mvwaddstr(win[STA].p, 1, 2, "I"); - mvwaddstr(win[STA].p, 0, 2 + spc, "P"); - custom_remove_attr(win[STA].p, ATTR_HIGHEST); - - mvwaddstr(win[STA].p, 0, 2 + smlspc, _("Exit")); - mvwaddstr(win[STA].p, 1, 2 + smlspc, _("Ical")); - mvwaddstr(win[STA].p, 0, 2 + spc + smlspc, _("Pcal")); - - wnoutrefresh(win[STA].p); - wmove(win[STA].p, 0, 0); - wins_doupdate(); -} - static FILE *get_import_stream(enum export_type type) { FILE *stream; |