Skip to content

Commit

Permalink
Menu|Controls|All Games: Improve control bindings menu layout
Browse files Browse the repository at this point in the history
Wrap bindings on multiple lines per menu item.
  • Loading branch information
skyjake committed Sep 24, 2018
1 parent 2c15190 commit 5c9f2d2
Show file tree
Hide file tree
Showing 10 changed files with 258 additions and 180 deletions.
Expand Up @@ -42,9 +42,9 @@ class CVarToggleWidget : public ButtonWidget
CVarToggleWidget(char const *cvarPath, int cvarValueMask = 0,
de::String const &downText = "Yes",
de::String const &upText = "No");
virtual ~CVarToggleWidget();
virtual ~CVarToggleWidget() override;

int handleCommand(menucommand_e command);
int handleCommand(menucommand_e command) override;

void setState(State newState);
State state() const;
Expand All @@ -63,6 +63,8 @@ class CVarToggleWidget : public ButtonWidget

void setStateChangeCallback(const std::function<void(State)> &stateChanged);

void pageActivated() override;

private:
DENG2_PRIVATE(d)
};
Expand Down
Expand Up @@ -40,16 +40,18 @@ class InputBindingWidget : public Widget

public:
InputBindingWidget();
virtual ~InputBindingWidget();
virtual ~InputBindingWidget() override;

void draw() const;
void updateGeometry();
int handleEvent_Privileged(event_t const &event);
int handleCommand(menucommand_e command);
void draw() const override;
void updateGeometry() override;
int handleEvent_Privileged(event_t const &event) override;
int handleCommand(menucommand_e command) override;

char const *controlName() const;
de::String bindContext() const;

void pageActivated() override;

private:
DENG2_PRIVATE(d)
};
Expand Down
Expand Up @@ -123,6 +123,8 @@ class ListWidget : public Widget

void updateVisibleSelection();

void pageActivated() override;

private:
DENG2_PRIVATE(d)
};
Expand Down
2 changes: 2 additions & 0 deletions doomsday/apps/plugins/common/include/menu/widgets/widget.h
Expand Up @@ -235,6 +235,8 @@ class Widget
float scrollingFadeout(int yTop, int yBottom) const;
de::Vector4f selectionFlashColor(const de::Vector4f &noFlashColor) const;

virtual void pageActivated();

private:
DENG2_PRIVATE(d)
};
Expand Down
8 changes: 4 additions & 4 deletions doomsday/apps/plugins/common/src/m_ctrl.cpp
Expand Up @@ -104,13 +104,13 @@ static controlconfig_t controlConfig[] =
#endif

#ifdef __JHERETIC__
{ (char const *) TXT_TXT_INV_INVULNERABILITY, 0, 0, "impulse invulnerability", 0 },
{ /* (char const *) TXT_TXT_INV_INVULNERABILITY */ "Invincibility", 0, 0, "impulse invulnerability", 0 },
{ (char const *) TXT_TXT_INV_INVISIBILITY, 0, 0, "impulse invisibility", 0 },
{ (char const *) TXT_TXT_INV_HEALTH, 0, 0, "impulse health", 0 },
{ (char const *) TXT_TXT_INV_SUPERHEALTH, 0, 0, "impulse superhealth", 0 },
{ (char const *) TXT_TXT_INV_TOMEOFPOWER, 0, 0, "impulse tome", 0 },
{ (char const *) TXT_TXT_INV_TORCH, 0, 0, "impulse torch", 0 },
{ (char const *) TXT_TXT_INV_FIREBOMB, 0, 0, "impulse firebomb", 0 },
{ /* (char const *) TXT_TXT_INV_FIREBOMB */ "Time Bomb", 0, 0, "impulse firebomb", 0 },
{ (char const *) TXT_TXT_INV_EGG, 0, 0, "impulse egg", 0 },
{ (char const *) TXT_TXT_INV_FLY, 0, 0, "impulse fly", 0 },
{ (char const *) TXT_TXT_INV_TELEPORT, 0, 0, "impulse teleport", 0 },
Expand Down Expand Up @@ -182,7 +182,7 @@ static controlconfig_t controlConfig[] =
{ "Smaller View", 0, 0, "sub view-size 1", CCF_REPEAT },
{ "Larger View", 0, 0, "add view-size 1", CCF_REPEAT },

{ "Message Refresh", 0, 0, "impulse msgrefresh", 0 },
{ "Msg Refresh", 0, 0, "impulse msgrefresh", 0 },

{ "Shortcuts", 0, 0, 0, 0 },
{ "Pause Game", 0, 0, "pause", 0 },
Expand All @@ -196,7 +196,7 @@ static controlconfig_t controlConfig[] =
{ "Quick Load", "shortcut", 0, "quickload", 0 },
{ "Sound Options", "shortcut", 0, "menu soundoptions", 0 },
{ "Toggle Messages", "shortcut", 0, "toggle msg-show", 0 },
{ "Gamma Correction", "shortcut", 0, "togglegamma", 0 },
{ "Gamma Adjust", "shortcut", 0, "togglegamma", 0 },
{ "Screenshot", "shortcut", 0, "screenshot", 0 },
{ "Quit", "shortcut", 0, "quit", 0 },

Expand Down
21 changes: 7 additions & 14 deletions doomsday/apps/plugins/common/src/menu/page.cpp
Expand Up @@ -714,21 +714,15 @@ void Page::activate()
// Reset page timer.
d->timer = 0;

if(d->children.isEmpty())
if (d->children.empty())
{
return; // Presumably the widgets will be added later...
}

// (Re)init widgets.
for(Widget *wi : d->children)
// Notify widgets on the page.
for (Widget *wi : d->children)
{
if(CVarToggleWidget *tog = maybeAs<CVarToggleWidget>(wi))
{
tog->setFlags(Widget::Active, tog->isDown()? SetFlags : UnsetFlags);
}
if(ListWidget *list = maybeAs<ListWidget>(wi))
{
// Determine number of potentially visible items.
list->updateVisibleSelection();
}
wi->pageActivated();
}

d->refocus();
Expand All @@ -742,11 +736,10 @@ void Page::activate()
void Page::tick()
{
// Call the ticker of each child widget.
for(Widget *wi : d->children)
for (Widget *wi : d->children)
{
wi->tick();
}

d->timer++;
}

Expand Down
Expand Up @@ -179,5 +179,11 @@ void CVarToggleWidget::setStateChangeCallback(const std::function<void (State)>
d->stateChangeCallback = stateChanged;
}

void CVarToggleWidget::pageActivated()
{
ButtonWidget::pageActivated();
setFlags(Active, isDown()? SetFlags : UnsetFlags);
}

} // namespace menu
} // namespace common

0 comments on commit 5c9f2d2

Please sign in to comment.