Highlight changes to dungeon location or alignment in blue instead of green or red since neither the old value nor the new can be classified as better than the other. Likewise when changing between regular Hp and Xp (or Xp/Exp) to or from you-as-mon Hp and HD when polymorph or rehumanization takes place. When toggling Score On, start out highlighted in blue instead of green. When toggling it Off, don't highlight the blank space where it had been in red. At the moment there's a quirk here; if it is highlighted in green (from recent change) or blue (from having just been toggled on) at the time it gets toggled off, the space stays green or blue until that highlight times out. (It has occurred to me that the bogus red highlight might have been added to deliberately overwrite stale green highlights. If so, a better fix should be achievable.) For the title (plname and rank or plname and monster-species), capitalize the player name since core's botl() and at least some other interfaces do that. TODO: toggling Exp needs work. The field used for deciding up/down changes gets swapped and the update in progress compares apples and oranges. [This wasn't an issue in the original Qt implementation where Xp and Exp were two separate fields.]
65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
// Copyright (c) Warwick Allison, 1999.
|
|
// Qt4 conversion copyright (c) Ray Chason, 2012-2014.
|
|
// NetHack may be freely redistributed. See license for details.
|
|
|
|
// qt_icon.cpp -- a labelled icon
|
|
|
|
#ifndef QT4ICON_H
|
|
#define QT4ICON_H
|
|
|
|
namespace nethack_qt_ {
|
|
|
|
enum CompareMode {
|
|
NoCompare = -1, BiggerIsBetter = 0,
|
|
SmallerIsBetter = 1, NeitherIsBetter = 2
|
|
};
|
|
|
|
class NetHackQtLabelledIcon : public QWidget {
|
|
public:
|
|
NetHackQtLabelledIcon(QWidget *parent, const char *label);
|
|
NetHackQtLabelledIcon(QWidget *parent, const char *label,
|
|
const QPixmap &icon);
|
|
|
|
enum { NoNum = -99999L };
|
|
void setLabel(const QString &, bool lower=true); // string
|
|
void setLabel(const QString &, long, const QString &tail=""); // number
|
|
void setLabel(const QString &, long show_value,
|
|
long comparative_value, const QString &tail="");
|
|
void setIcon(const QPixmap &);
|
|
virtual void setFont(const QFont &);
|
|
//QString labelText() { return QString(this->label->text()); }
|
|
|
|
void highlightWhenChanging();
|
|
void setCompareMode(int newmode);
|
|
void dissipateHighlight();
|
|
void ForceResize();
|
|
|
|
virtual void show();
|
|
virtual QSize sizeHint() const;
|
|
virtual QSize minimumSizeHint() const;
|
|
|
|
QLabel *label;
|
|
QLabel *icon;
|
|
|
|
protected:
|
|
void resizeEvent(QResizeEvent*);
|
|
|
|
private:
|
|
void initHighlight();
|
|
void setAlignments();
|
|
void highlight(const QString& highlight);
|
|
void unhighlight();
|
|
|
|
int comp_mode; /* compareMode; default is BiggerIsBetter */
|
|
long prev_value;
|
|
long turn_count; /* last time the value changed */
|
|
|
|
QString hl_better;
|
|
QString hl_worse;
|
|
QString hl_changd;
|
|
};
|
|
|
|
} // namespace nethack_qt_
|
|
|
|
#endif
|