Add menu matcher for fullscreen property

This commit is contained in:
Jan
2021-11-01 10:25:15 +01:00
parent 6c5825de6d
commit 68945de51a
4 changed files with 47 additions and 1 deletions

View File

@ -0,0 +1,24 @@
#include "SequenceFullScreen.h"
#include "Parsing/Menu/MenuMatcherFactory.h"
using namespace menu;
SequenceFullScreen::SequenceFullScreen()
{
const MenuMatcherFactory create(this);
AddMatchers({
create.KeywordIgnoreCase("fullscreen"),
create.Numeric().Capture(CAPTURE_VALUE)
});
}
void SequenceFullScreen::ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const
{
assert(state->m_current_menu);
const auto nameValue = MenuMatcherFactory::TokenNumericIntValue(result.NextCapture(CAPTURE_VALUE));
state->m_current_menu->m_fullscreen = nameValue > 0;
}

View File

@ -0,0 +1,17 @@
#pragma once
#include "Parsing/Menu/MenuFileParser.h"
namespace menu
{
class SequenceFullScreen final : public MenuFileParser::sequence_t
{
static constexpr auto CAPTURE_VALUE = 1;
protected:
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override;
public:
SequenceFullScreen();
};
}