mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-30 01:47:13 +00:00
Add missing files from 2010-11-15T03:41:42Z!shadowm@wesnoth.org so Wesnoth compiles again
This commit is contained in:
parent
28768c71ef
commit
c31a9d36ed
56
src/gui/auxiliary/old_markup.cpp
Normal file
56
src/gui/auxiliary/old_markup.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
/*
|
||||||
|
Copyright (C) 2008 - 2010 by Mark de Wever <koraq@xs4all.nl>
|
||||||
|
Part of the Battle for Wesnoth Project http://www.wesnoth.org/
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY.
|
||||||
|
|
||||||
|
See the COPYING file for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gui/auxiliary/old_markup.hpp"
|
||||||
|
|
||||||
|
namespace gui2 {
|
||||||
|
|
||||||
|
legacy_menu_item::legacy_menu_item(const std::string& str)
|
||||||
|
: icon_(), label_(str), desc_(), default_(false)
|
||||||
|
{
|
||||||
|
// Handle selection.
|
||||||
|
if(!label_.empty() && label_[0] == '*') {
|
||||||
|
default_ = true;
|
||||||
|
label_.erase(0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the special case with an image.
|
||||||
|
std::string::size_type pos = label_.find('=');
|
||||||
|
if (pos != std::string::npos && (label_[0] == '&' || pos == 0)) {
|
||||||
|
if (pos) icon_ = label_.substr(1, pos - 1);
|
||||||
|
label_.erase(0, pos + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search for an '=' symbol that is not inside markup.
|
||||||
|
std::string::size_type prev = 0;
|
||||||
|
bool open = false;
|
||||||
|
while ((pos = label_.find('=', prev)) != std::string::npos) {
|
||||||
|
for (std::string::size_type i = prev; i != pos; ++i) {
|
||||||
|
switch (label_[i]) {
|
||||||
|
case '<': open = true; break;
|
||||||
|
case '>': open = false; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!open) break;
|
||||||
|
prev = pos + 1;
|
||||||
|
}
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
desc_ = label_.substr(pos + 1);
|
||||||
|
label_.erase(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
69
src/gui/auxiliary/old_markup.hpp
Normal file
69
src/gui/auxiliary/old_markup.hpp
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
/*
|
||||||
|
Copyright (C) 2008 - 2010 by Mark de Wever <koraq@xs4all.nl>
|
||||||
|
Part of the Battle for Wesnoth Project http://www.wesnoth.org/
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY.
|
||||||
|
|
||||||
|
See the COPYING file for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GUI_AUXILIARY_OLD_MARKUP_INCLUDED
|
||||||
|
#define GUI_AUXILIARY_OLD_MARKUP_INCLUDED
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace gui2
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements simple parsing of legacy GUI1 item markup.
|
||||||
|
*/
|
||||||
|
class legacy_menu_item
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Legacy options/menu items have some special markup:
|
||||||
|
* A line starting with a * is selected by default.
|
||||||
|
* A line starting with a & enables the following markup:
|
||||||
|
* - The part until the = is the name of an image.
|
||||||
|
* - The part until the second = is the first column.
|
||||||
|
* - The rest is the third column (the wiki only specifies two columns
|
||||||
|
* so only two of them are implemented).
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @todo This syntax looks like a bad hack, it would be nice to write
|
||||||
|
* a new syntax which doesn't use those hacks (also avoids the problem
|
||||||
|
* with special meanings for certain characters.
|
||||||
|
*/
|
||||||
|
public:
|
||||||
|
legacy_menu_item(const std::string& str);
|
||||||
|
|
||||||
|
const std::string& icon() const {
|
||||||
|
return icon_;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& label() const {
|
||||||
|
return label_;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& description() const {
|
||||||
|
return desc_;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_default() const {
|
||||||
|
return default_;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string icon_, label_, desc_;
|
||||||
|
bool default_;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user