-
-
Notifications
You must be signed in to change notification settings - Fork 990
/
help.hpp
80 lines (64 loc) · 2.6 KB
/
help.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
Copyright (C) 2003 - 2014 by David White <dave@whitevine.net>
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 HELP_HPP_INCLUDED
#define HELP_HPP_INCLUDED
class config;
class display;
class gamemap;
class terrain_type;
class unit_type;
#include "hotkey/command_executor.hpp"
#include "construct_dialog.hpp"
namespace help {
struct help_manager {
help_manager(const config *game_config);
~help_manager();
};
struct section;
/// Open a help dialog using a toplevel other than the default. This
/// allows for complete customization of the contents, although not in a
/// very easy way.
void show_help(display &disp, const section &toplevel, const std::string& show_topic="",
int xloc=-1, int yloc=-1);
/// Open the help browser. The help browser will have the topic with id
/// show_topic open if it is not the empty string. The default topic
/// will be shown if show_topic is the empty string.
void show_help(display &disp, const std::string& show_topic="", int xloc=-1, int yloc=-1);
/// wrapper to add unit prefix and hiding symbol
void show_unit_help(display &disp, const std::string& unit_id, bool has_variations=false,
bool hidden = false, int xloc=-1, int yloc=-1);
/// wrapper to add variation prefix and hiding symbol
void show_variation_help(display &disp, const std::string &unit_id, const std::string &variation,
bool hidden = false, int xloc=-1, int yloc=-1);
/// wrapper to add terrain prefix and hiding symbol
void show_terrain_help(display &disp, const std::string& unit_id, bool hidden = false,
int xloc = -1, int yloc = -1);
class help_button : public gui::dialog_button, public hotkey::command_executor {
public:
help_button(display& disp, const std::string &help_topic);
~help_button();
int action(gui::dialog_process_info &info);
std::string topic() const { return topic_; }
void join();
void leave();
private:
void show_help();
bool can_execute_command(const hotkey::hotkey_command& command, int/*index*/ =-1) const;
display &disp_;
const std::string topic_;
hotkey::basic_handler *help_hand_;
};
void show_unit_description(const unit_type &t);
void show_unit_description(const unit &u);
void show_terrain_description(const terrain_type& t);
} // End namespace help.
#endif