Subversion Repositories SvarDOS

Rev

Rev 1362 | Rev 1364 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1362 Rev 1363
Line 752... Line 752...
752
  }
752
  }
753
}
753
}
754
 
754
 
755
 
755
 
756
enum MENU_ACTION {
756
enum MENU_ACTION {
757
  MENU_NONE = 0,
757
  MENU_OPEN   = 0,
758
  MENU_OPEN = 1,
758
  MENU_SAVE   = 1,
759
  MENU_SAVE = 2,
759
  MENU_SAVEAS = 2,
760
  MENU_SAVEAS = 3,
760
  MENU_CLOSE  = 3,
761
  MENU_CLOSE = 4,
761
  MENU_CHGEOL = 4,
762
  MENU_CHGEOL = 5,
762
  MENU_QUIT   = 5,
763
  MENU_QUIT = 6
763
  MENU_NONE   = 0xff
764
};
764
};
765
 
765
 
766
static enum MENU_ACTION ui_menu(void) {
766
static enum MENU_ACTION ui_menu(void) {
767
  unsigned short i, curchoice, attr, x, slen;
767
  unsigned short i, curchoice, attr, x, slen;
768
  uidirty.from = 0;
768
  uidirty.from = 0;
Line 777... Line 777...
777
  }
777
  }
778
 
778
 
779
  curchoice = MENU_OPEN;
779
  curchoice = MENU_OPEN;
780
  for (;;) {
780
  for (;;) {
781
    /* render menu */
781
    /* render menu */
782
    for (i = MENU_NONE; i <= MENU_QUIT + 1; i++) {
782
    for (i = MENU_OPEN; i <= MENU_QUIT + 1; i++) {
783
      mdr_cout_char_rep(i, 0, ' ', SCHEME_MENU, slen+4);
783
      mdr_cout_char_rep(i, 0, ' ', SCHEME_MENU, slen+3);
784
      if (i == curchoice) {
784
      if (i == curchoice) {
785
        attr = SCHEME_MENU_CUR;
785
        attr = SCHEME_MENU_CUR;
786
        mdr_cout_char(i, 1, '>', SCHEME_MENU_SEL);
786
        mdr_cout_char(i, 0, '>', SCHEME_MENU_SEL);
787
      } else {
787
      } else {
788
        attr = SCHEME_MENU;
788
        attr = SCHEME_MENU;
789
      }
789
      }
790
      x = mdr_cout_str(i, 2, svarlang_str(8, i), attr, slen);
790
      x = mdr_cout_str(i, 1, svarlang_str(8, i), attr, slen);
791
      if (i == curchoice) {
791
      if (i == curchoice) {
792
        mdr_cout_char_rep(i, x + 2, ' ', SCHEME_MENU_SEL, slen - x + 1);
792
        mdr_cout_char_rep(i, x + 1, ' ', SCHEME_MENU_SEL, slen - x + 1);
793
        mdr_cout_locate(i, x + 2);
793
        mdr_cout_locate(i, x + 1);
794
      }
794
      }
795
    }
795
    }
796
    /* wait for key */
796
    /* wait for key */
797
    switch (keyb_getkey()) {
797
    switch (keyb_getkey()) {
798
      case '\r': return(curchoice); /* ENTER */
798
      case '\r': return(curchoice); /* ENTER */