Consolidate some recently added duplicated code.
}
}
-// ENHANCED_PAPERDOLL - clicking on the PaperDoll runs #seeall
+// ENHANCED_PAPERDOLL - clicking on the PaperDoll runs #seeall ('*')
void NetHackQtInvUsageWindow::mousePressEvent(QMouseEvent *event UNUSED)
{
#ifdef ENHANCED_PAPERDOLL
- char cmdbuf[32];
- Strcpy(cmdbuf, "#");
- (void) cmdname_from_func(doprinuse, &cmdbuf[1], FALSE);
- // queue up #seeall as if user had typed it; we don't execute doprinuse()
- // directly because the program might not be ready for the next command
QWidget *main = NetHackQtBind::mainWidget();
- (static_cast <NetHackQtMainWindow *> (main))->DollClickToKeys(cmdbuf);
+ (static_cast <NetHackQtMainWindow *> (main))->FuncAsCommand(doprinuse);
#endif
}
}
#endif
+void NetHackQtMainWindow::doKeys(const char *cmds)
+{
+ keysink.Put(cmds);
+ qApp->exit();
+}
+
void NetHackQtMainWindow::doKeys(const QString& k)
{
/* [this should probably be using toLocal8Bit();
toAscii() is not offered as an alternative...] */
- keysink.Put(k.toLatin1().constData());
- qApp->exit();
+ doKeys(k.toLatin1().constData());
}
-// ENHANCED_PAPERDOLL - player clicked on PaperDoll window
-void NetHackQtMainWindow::DollClickToKeys(const char *cmds)
+// queue up the command name for a function, as if user had typed it
+void NetHackQtMainWindow::FuncAsCommand(int NDECL((*func)))
{
- keysink.Put(cmds);
- qApp->exit();
+ char cmdbuf[32];
+ Strcpy(cmdbuf, "#");
+ (void) cmdname_from_func(func, &cmdbuf[1], FALSE);
+ doKeys(cmdbuf);
}
void NetHackQtMainWindow::AddMessageWindow(NetHackQtMessageWindow* window)
void fadeHighlighting(bool before_key);
- // these are unconditional in case qt_main.h comes before qt_set.h
+ void FuncAsCommand(int NDECL((*func)));
+ // this is unconditional in case qt_main.h comes before qt_set.h
void resizePaperDoll(bool); // ENHANCED_PAPERDOLL
- void DollClickToKeys(const char *); // ENHANCED_PAPERDOLL
public slots:
void doMenuItem(QAction *);
void doAbout(bool);
void doQuit(bool);
//RLC void doGuidebook(bool);
+ void doKeys(const char *);
void doKeys(const QString&);
protected:
// clicking on status window runs #attributes (^X)
void NetHackQtStatusWindow::mousePressEvent(QMouseEvent *event UNUSED)
{
- // same code as NetHackQtInvUsageWindow::mousePressEvent except for func
- char cmdbuf[32];
- Strcpy(cmdbuf, "#");
- (void) cmdname_from_func(doattributes, &cmdbuf[1], FALSE);
- // queue up #attribues as if user had typed it; we don't execute
- // doattributes() directly because the program might not be ready
- // for a command right now
QWidget *main = NetHackQtBind::mainWidget();
- (static_cast <NetHackQtMainWindow *> (main))->DollClickToKeys(cmdbuf);
+ (static_cast <NetHackQtMainWindow *> (main))->FuncAsCommand(doattributes);
}
} // namespace nethack_qt_