diff --git a/ChangeLog b/ChangeLog index d0fab07b..44bd956a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ -2015-11-05 Markus Gans +2015-11-07 Markus Gans * Improved menu focus handling + * Menu supports newfont 2015-11-05 Markus Gans * Menu bar navigation without menu drop down diff --git a/doc/newfont1.png b/doc/newfont1.png index 2eeb228b..bf148700 100644 Binary files a/doc/newfont1.png and b/doc/newfont1.png differ diff --git a/src/fmenu.cpp b/src/fmenu.cpp index 51602022..a7d997c9 100644 --- a/src/fmenu.cpp +++ b/src/fmenu.cpp @@ -433,17 +433,14 @@ void FMenu::drawBorder() // border right⎹ print (fc::NF_rev_border_line_right); } - if ( (flags & SHADOW) == 0 ) - { - gotoxy (x1, y2); - // lower left corner border ⎣ - print (fc::NF_border_corner_lower_left); - for (int x=1; x < width-1; x++) // low line _ - print (fc::NF_border_line_bottom); - gotoxy (x2, y2); - // lower right corner border ⎦ - print (fc::NF_rev_border_corner_lower_right); - } + gotoxy (x1, y2); + // lower left corner border ⎣ + print (fc::NF_border_corner_lower_left); + for (int x=1; x < width-1; x++) // low line _ + print (fc::NF_border_line_bottom); + gotoxy (x2, y2); + // lower right corner border ⎦ + print (fc::NF_rev_border_corner_lower_right); } else { @@ -602,10 +599,20 @@ inline void FMenu::drawSeparator(int y) setColor (wc.menu_active_fg, wc.menu_active_bg); if ( isMonochron() ) setReverse(true); - print(fc::BoxDrawingsVerticalAndRight); - FString line(width-2, wchar_t(fc::BoxDrawingsHorizontal)); - print (line); - print(fc::BoxDrawingsVerticalAndLeft); + if ( isNewFont() ) + { + print(fc::NF_border_line_vertical_right); + FString line(width-2, wchar_t(fc::BoxDrawingsHorizontal)); + print (line); + print(fc::NF_rev_border_line_vertical_left); + } + else + { + print(fc::BoxDrawingsVerticalAndRight); + FString line(width-2, wchar_t(fc::BoxDrawingsHorizontal)); + print (line); + print(fc::BoxDrawingsVerticalAndLeft); + } if ( isMonochron() ) setReverse(false); } diff --git a/src/fmenuitem.cpp b/src/fmenuitem.cpp index 819f37d2..baeb073d 100644 --- a/src/fmenuitem.cpp +++ b/src/fmenuitem.cpp @@ -445,9 +445,12 @@ bool FMenuItem::setFocus (bool on) if ( ! selected ) { FMenuList* menu_list = dynamic_cast(getSuperMenu()); - menu_list->unselectItem(); setSelected(); - menu_list->setSelectedItem(this); + if ( menu_list ) + { + menu_list->unselectItem(); + menu_list->setSelectedItem(this); + } if ( statusBar() ) statusBar()->drawMessage(); diff --git a/test/ui.cpp b/test/ui.cpp index e4035315..e824d5d0 100644 --- a/test/ui.cpp +++ b/test/ui.cpp @@ -706,7 +706,7 @@ void MyDialog::adjustSize() if ( X < 1 ) X = 1; setX (X, false); - myList->setHeight (getHeight() - 4, false); + myList->setHeight (getHeight() - 3, false); FDialog::adjustSize(); }