Qt prompt highlighting
When qt_yn_function() or qt_more() is asking for a single character response, typing anything will cause the prompt line in the message window to stop being highlighted. If they reject what's been typed, they beep (--More-- doesn't start beeping until second rejection); change both of them to also rehighlight the prompt line to give a visual indication that the question/acknowledgement is still being asked.
This commit is contained in:
@@ -588,6 +588,11 @@ char NetHackQtBind::qt_more()
|
|||||||
default:
|
default:
|
||||||
if (++complain > 1)
|
if (++complain > 1)
|
||||||
NetHackQtBind::qt_nhbell();
|
NetHackQtBind::qt_nhbell();
|
||||||
|
// typing anything caused the most recent message line
|
||||||
|
// (which happens to our prompt) from having highlighting
|
||||||
|
// be removed; put that back
|
||||||
|
if (mesgwin)
|
||||||
|
mesgwin->RehighlightPrompt();
|
||||||
retry = true;
|
retry = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -669,6 +674,13 @@ char NetHackQtBind::qt_yn_function(const char *question_,
|
|||||||
Strcpy(cbuf, visctrl(def));
|
Strcpy(cbuf, visctrl(def));
|
||||||
} else {
|
} else {
|
||||||
NetHackQtBind::qt_nhbell();
|
NetHackQtBind::qt_nhbell();
|
||||||
|
// typing anything caused the most recent message line
|
||||||
|
// (which happens to our prompt) from having highlighting
|
||||||
|
// be removed; put that back
|
||||||
|
NetHackQtMessageWindow
|
||||||
|
*mesgwin = main ? main->GetMessageWindow() : NULL;
|
||||||
|
if (mesgwin)
|
||||||
|
mesgwin->RehighlightPrompt();
|
||||||
// and try again...
|
// and try again...
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -184,6 +184,14 @@ void NetHackQtMessageWindow::AddToStr(const char *answer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// used when yn_function() or more() rejects player's input and tries again
|
||||||
|
void NetHackQtMessageWindow::RehighlightPrompt()
|
||||||
|
{
|
||||||
|
// selects most recent message, which causes it to be highlighted
|
||||||
|
if (list && list->count())
|
||||||
|
list->setCurrentRow(list->count() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
// are there any highlighted messages?
|
// are there any highlighted messages?
|
||||||
bool NetHackQtMessageWindow::hilit_mesgs()
|
bool NetHackQtMessageWindow::hilit_mesgs()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public:
|
|||||||
|
|
||||||
void setMap(NetHackQtMapWindow2*);
|
void setMap(NetHackQtMapWindow2*);
|
||||||
|
|
||||||
|
void RehighlightPrompt();
|
||||||
bool hilit_mesgs();
|
bool hilit_mesgs();
|
||||||
void unhighlight_mesgs();
|
void unhighlight_mesgs();
|
||||||
// for adding the answer for yn() to its prompt string
|
// for adding the answer for yn() to its prompt string
|
||||||
|
|||||||
Reference in New Issue
Block a user