add support for MENU_ITEMFLAGS_SKIPINVERT

Able to test:
win/tty
win/win32
win/curses

Unable to test:
win/X11
win/Qt
win/Qt3
win/gem
win/gnome
This commit is contained in:
nhmall
2019-12-23 08:36:44 -05:00
parent c9bc2f5a2a
commit 7012e7046f
18 changed files with 63 additions and 35 deletions
+4 -2
View File
@@ -1447,7 +1447,7 @@ void NetHackQtWindow::CursorTo(int x,int y) { puts("unexpected CursorTo"); }
void NetHackQtWindow::PutStr(int attr, const char* text) { puts("unexpected PutStr"); }
void NetHackQtWindow::StartMenu() { puts("unexpected StartMenu"); }
void NetHackQtWindow::AddMenu(int glyph, const ANY_P* identifier, char ch, char gch, int attr,
const char* str, bool presel) { puts("unexpected AddMenu"); }
const char* str, unsigned itemflags) { puts("unexpected AddMenu"); }
void NetHackQtWindow::EndMenu(const char* prompt) { puts("unexpected EndMenu"); }
int NetHackQtWindow::SelectMenu(int how, MENU_ITEM_P **menu_list) { puts("unexpected SelectMenu"); return 0; }
void NetHackQtWindow::ClipAround(int x,int y) { puts("unexpected ClipAround"); }
@@ -2788,8 +2788,9 @@ NetHackQtMenuWindow::MenuItem::~MenuItem()
#define STR_MARGIN 4
void NetHackQtMenuWindow::AddMenu(int glyph, const ANY_P* identifier,
char ch, char gch, int attr, const char* str, bool presel)
char ch, char gch, int attr, const char* str, unsigned itemflags)
{
bool presel = (itemflags & MENU_ITEMFLAGS_SELECTED) != 0;
if (!ch && identifier->a_void!=0) {
// Supply a keyboard accelerator. Limited supply.
static char accel[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
@@ -2807,6 +2808,7 @@ void NetHackQtMenuWindow::AddMenu(int glyph, const ANY_P* identifier,
item[itemcount].attr=attr;
item[itemcount].str=strdup(str);
item[itemcount].selected=presel;
item[itemcount].itemflags=itemflags;
item[itemcount].count=-1;
++itemcount;
+4 -4
View File
@@ -258,7 +258,7 @@ class NetHackQtWindow
virtual void PutStr(int attr, const char *text);
virtual void StartMenu();
virtual void AddMenu(int glyph, const ANY_P *identifier, char ch,
char gch, int attr, const char *str, bool presel);
char gch, int attr, const char *str, unsigned itemflags);
virtual void EndMenu(const char *prompt);
virtual int SelectMenu(int how, MENU_ITEM_P **menu_list);
virtual void ClipAround(int x, int y);
@@ -550,7 +550,7 @@ class NetHackQtMenuWindow : public QTableView, public NetHackQtWindow
virtual void StartMenu();
virtual void AddMenu(int glyph, const ANY_P *identifier, char ch,
char gch, int attr, const char *str, bool presel);
char gch, int attr, const char *str, unsigned itemflags);
virtual void EndMenu(const char *prompt);
virtual int SelectMenu(int how, MENU_ITEM_P **menu_list);
@@ -699,7 +699,7 @@ class NetHackQtMenuOrTextWindow : public NetHackQtWindow
// Menu
virtual void StartMenu();
virtual void AddMenu(int glyph, const ANY_P *identifier, char ch,
char gch, int attr, const char *str, bool presel);
char gch, int attr, const char *str, unsigned itemflags);
virtual void EndMenu(const char *prompt);
virtual int SelectMenu(int how, MENU_ITEM_P **menu_list);
};
@@ -854,7 +854,7 @@ class NetHackQtBind : NetHackQtBindBase
static void qt_start_menu(winid wid);
static void qt_add_menu(winid wid, int glyph, const ANY_P *identifier,
CHAR_P ch, CHAR_P gch, int attr, const char *str,
unsigned int itemflags);
unsigned itemflags);
static void qt_end_menu(winid wid, const char *prompt);
static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
static void qt_update_inventory();