Add the option to add an icon to a toggle button...
...and wire that in for the mp selection dialog.
This commit is contained in:
parent
27e77fa3f9
commit
5230f12157
10 changed files with 228 additions and 39 deletions
|
@ -1,6 +1,7 @@
|
|||
###
|
||||
### Definition of the listbox text toggle button.
|
||||
### It's meant as line of text in a listbox
|
||||
### It's meant as line of text in a listbox note this
|
||||
### version doesn't support icons.
|
||||
###
|
||||
|
||||
# FIXME we should use a background image instead of a filled rect.
|
||||
|
|
148
data/gui/default/widget/toggle_button_listbox_text_with_icon.cfg
Normal file
148
data/gui/default/widget/toggle_button_listbox_text_with_icon.cfg
Normal file
|
@ -0,0 +1,148 @@
|
|||
###
|
||||
### Definition of the listbox text toggle button.
|
||||
### It's meant as line of text in a listbox note this
|
||||
### version supports icons with size 72 x 72.
|
||||
###
|
||||
|
||||
# FIXME we should use a background image instead of a filled rect.
|
||||
#define RECT BORDER_COLOUR FILL_COLOUR
|
||||
[rectangle]
|
||||
x = 0
|
||||
y = 0
|
||||
w = "(width)"
|
||||
h = "(height)"
|
||||
border_thickness = 1
|
||||
border_colour = {BORDER_COLOUR}
|
||||
fill_colour = {FILL_COLOUR}
|
||||
[/rectangle]
|
||||
#enddef
|
||||
|
||||
#define ICON
|
||||
[image]
|
||||
x = 4
|
||||
y = 4
|
||||
name = "(icon)"
|
||||
[/image]
|
||||
#enddef
|
||||
|
||||
#define TEXT
|
||||
[text]
|
||||
x = 80
|
||||
y = {TEXT_V_CENTRE}
|
||||
w = "(width - 80)"
|
||||
h = "(text_height)"
|
||||
font_size = {FONT_SIZE_NORMAL__NORMAL}
|
||||
colour = {FONT_COLOUR_ENABLED}
|
||||
text = "(text)"
|
||||
[/text]
|
||||
#enddef
|
||||
|
||||
[toggle_button_definition]
|
||||
|
||||
id = "listbox_text_with_icon"
|
||||
description = "This toggle button is meant to be used in a listbox and as list box with only text."
|
||||
|
||||
[resolution]
|
||||
|
||||
min_width = 100
|
||||
min_height = 80
|
||||
|
||||
default_width = 100
|
||||
default_height = 80
|
||||
|
||||
max_width = 0
|
||||
max_height = 80
|
||||
|
||||
text_extra_width = 80
|
||||
text_font_size = {FONT_SIZE_NORMAL__NORMAL}
|
||||
|
||||
[state_enabled]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "" "0, 0, 0, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_enabled]
|
||||
|
||||
[state_disabled]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "" "128, 128, 128, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_disabled]
|
||||
|
||||
[state_focussed]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "" "0, 0, 0, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_focussed]
|
||||
|
||||
###
|
||||
### Selected
|
||||
###
|
||||
|
||||
[state_enabled_selected]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "170, 136, 67, 255" "9, 33, 54, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_enabled_selected]
|
||||
|
||||
[state_disabled_selected]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "170, 136, 67, 255" "128, 128, 128, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_disabled_selected]
|
||||
|
||||
[state_focussed_selected]
|
||||
full_redraw = "true"
|
||||
|
||||
[draw]
|
||||
|
||||
{RECT "170, 136, 67, 255" "9, 33, 54, 255"}
|
||||
{ICON}
|
||||
{TEXT}
|
||||
|
||||
[/draw]
|
||||
|
||||
[/state_focussed_selected]
|
||||
|
||||
[/resolution]
|
||||
|
||||
[/toggle_button_definition]
|
||||
|
||||
|
||||
#undef RECT
|
||||
#undef ICON
|
||||
#undef TEXT
|
|
@ -114,7 +114,7 @@
|
|||
horizontal_grow = "true"
|
||||
|
||||
[toggle_button]
|
||||
definition = "listbox_text" # listbox_text_with_icon
|
||||
definition = "listbox_text_with_icon"
|
||||
[/toggle_button]
|
||||
|
||||
[/column]
|
||||
|
|
|
@ -80,7 +80,7 @@ msgid ""
|
|||
"(Expert level, 14 scenarios.)"
|
||||
msgstr ""
|
||||
"Für die Bewohner der Stadt Zwergenpforte barg das Leben ein hartes Los: "
|
||||
"Entweder schufteten sie als wertlose Sklaven der Orks bis ans Ende ihres "
|
||||
"Entweder schufteten sie als wertlose Sklaven der Orks bis am Ende ihres "
|
||||
"kurzen und jämmerlichen Lebens oder aber alles für die Freiheit zu riskieren "
|
||||
"und sich gegen ihre grausamen Unterdrücker zu erheben. Sie ahnten nicht, "
|
||||
"dass ihr Aufstand der Beginn großer Abenteuer wurde, die die Nordlande zu "
|
||||
|
@ -929,7 +929,7 @@ msgid ""
|
|||
"of them to hell! Oh, and just between me and you, it is actually good fun - "
|
||||
"more fun anyway then sitting on your backside studying all day..."
|
||||
msgstr ""
|
||||
"Indem ich jedem Ork, Troll oder Untoten der mit über den Weg lief, Feuer "
|
||||
"Indem ich jedem Ork, Troll oder Untoten der mir über den Weg lief, Feuer "
|
||||
"unter dem Hintern machte. Diese Missgeburten haben mein Lebenswerk "
|
||||
"geschändet, dafür sollen sie in der Hölle schmoren! Außerdem, aber behalte "
|
||||
"dass für dich, macht es unverschämt viel Spaß - mehr als nur herum zu sitzen "
|
||||
|
@ -1283,7 +1283,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Von Monstern befreit sind Tunnel und Höhle, und lauschend hört ich offenen "
|
||||
"Ohres zeternder Zwerge tobend Geschrei - nie tönte es mir lieblicher und "
|
||||
"süßer als heute. Los Männer, dies ist unserer Rettung. "
|
||||
"süßer als heute. Los Männer, dies ist unsere Rettung. "
|
||||
|
||||
#. [message]: role=Messenger
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/02_Infested_Caves.cfg:683
|
||||
|
@ -1356,8 +1356,8 @@ msgid ""
|
|||
"very wide berth by now. So just be polite, give him some room and you'll "
|
||||
"find he is relatively harmless..."
|
||||
msgstr ""
|
||||
"Wundert Euch nicht, das ist Camerin. Er war unser Schulmagier und er kam "
|
||||
"hier hoch um in der Einsamkeit zum Studieren. Seid der Invasion wurde er ein "
|
||||
"Wundert Euch nicht, dass ist Camerin. Er war unser Schulmagier und er kam "
|
||||
"hier hoch um in der?? needed Einsamkeit zum Studieren. Seit der Invasion wurde er ein "
|
||||
"wenig.., ähhh.. eigen. Ich glaube ja, dass einige Orks seine Unterlagen "
|
||||
"verbrannten. Auf jeden Fall nahm er das sehr übel und er warf seinen Zorn "
|
||||
"über diese Ungeheuer und vernichtet sie, wo er ihnen habhaft werden kann. "
|
||||
|
@ -1980,7 +1980,7 @@ msgstr "FLEIIIIIIISCH!"
|
|||
#. [message]: role=Supporter
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg:653
|
||||
msgid "Holly Lords of Light, what kind of vile creation are those things!"
|
||||
msgstr "Ihr Götter des Lichts - was ist das denn für eine üble Kreatur?"
|
||||
msgstr "Ihr Götter des Lichtes - was ist das denn für eine üble Kreatur?"
|
||||
|
||||
#. [message]: speaker=Camerin
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg:659
|
||||
|
@ -2845,7 +2845,7 @@ msgstr "800 Goldstücke! Wir sind reich!"
|
|||
#. [message]: speaker=unit
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg:1377
|
||||
msgid "What a hoard! 2 000 gold!"
|
||||
msgstr "Was für ein Schatz! 2.000 Goldstücke!"
|
||||
msgstr "Was für einen Schatz! 2.000 Goldstücke!"
|
||||
|
||||
#. [message]: speaker=unit
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg:1399
|
||||
|
@ -2971,7 +2971,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Dies, mein Junge, ist der Stab der Gerechtigkeit. Er ist alt, und war schon "
|
||||
"alt als ich ein kleiner Junge war. Die Götter selbst sollen ihn erschaffen "
|
||||
"haben und übereigneten ihn den Anführen der Menschen, auf das Friede, Glück "
|
||||
"haben und übereigneten ihn den Anführen der Menschen, auf dem Friede, Glück "
|
||||
"und als wichtigstes - Gerechtigkeit herrschen möge. Jahrhunderte des "
|
||||
"Wohlstands folgten, edle Anführer sprachen Recht im Namen des Volkes und für "
|
||||
"das Volk, und weder das Böse noch Kriege überzogen das glückliche Land."
|
||||
|
@ -3863,7 +3863,7 @@ msgstr "Verlockungen"
|
|||
#: data/campaigns/Northern_Rebirth/scenarios/05b_Compelled.cfg:9
|
||||
msgid "Note: The work on this branch of the campaign is in progress."
|
||||
msgstr ""
|
||||
"Hinweis: Die Arbeit an diesem Zweig der Kampagne ist noch nicht abgeschlossen"
|
||||
"Hinweis: Die Arbeit an diesem Zweig der Kampagne ist noch nicht abgeschlossen."
|
||||
|
||||
#. [part]
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/05b_Compelled.cfg:13
|
||||
|
@ -4695,7 +4695,7 @@ msgstr ".........."
|
|||
#: data/campaigns/Northern_Rebirth/scenarios/06b_Slave_of_the_Undead.cfg:302
|
||||
msgid "Tallin, break free! Don't let that lich control you!"
|
||||
msgstr ""
|
||||
"Tallin befreie dich von dem Bösen! Lass deinen Geist nicht von diesem Lich "
|
||||
"Tallin befreie dich vom Böse! Lass deinen Geist nicht von diesem Lich "
|
||||
"verwirren!"
|
||||
|
||||
#. [message]: speaker=Tallin
|
||||
|
@ -5689,7 +5689,7 @@ msgid ""
|
|||
"confusion. Your gryphons will be of use, but I think you should retain "
|
||||
"command of your trolls and ogres, until they are needed."
|
||||
msgstr ""
|
||||
"Habt Dank, Stalrag und Ro'Arthian. Derzeit habe befehlige ich ausreichende "
|
||||
"Habt Dank, Stalrag und Ro'Arthian. Derzeit befehlige ich ausreichende "
|
||||
"Truppen und ich denke, wir erzeugen nur Verwirrung, wenn wir die "
|
||||
"verschiedenen Streitkräfte unter ein einziges Kommando stellen würden. Eure "
|
||||
"Greifen werden sehr hilfreich sein, aber ich denke, dass ihr weiterhin die "
|
||||
|
@ -5732,7 +5732,7 @@ msgid ""
|
|||
"and hating what he had become - he received an urgent summons from his "
|
||||
"Master."
|
||||
msgstr ""
|
||||
"Tallin starrte ungläubig auf den Leichnam seines Freundes und hasste von "
|
||||
"Tallin starrte ungläubig auf dem Leichnam seines Freundes und hasste von "
|
||||
"ganzem Herzen das, was er geworden war. In diesem Moment spürte er den "
|
||||
"Hilferuf seines Meisters. "
|
||||
|
||||
|
@ -5757,10 +5757,10 @@ msgid ""
|
|||
"Tallin and his minions took up positions outside Malifor's study door."
|
||||
msgstr ""
|
||||
"Seine Seele bäumte sich wieder einmal auf, und doch banden Mallifors "
|
||||
"Zauberkräfte ihn immer noch an seinem dunklen Meister und er eilte ihm zu "
|
||||
"Zauberkräfte ihn immer noch an seinem dunklen Meister und er eilte ihm zum "
|
||||
"Hilfe. Die Außenposten waren durch schiere Zahl der Feinde überrannt und "
|
||||
"Malifor hatte sich in seinem Studierzimmer verschanzt. Ganz der dunkle "
|
||||
"Adept, warf sich Tallin mit seinen Gefolge zwischen Studierzimmer und Feind, "
|
||||
"Malifor hatte sich in seinem Studierzimmer verschanzt. Ganz der dunklen "
|
||||
"AdeptXXX, warf sich Tallin mit seinen Gefolge zwischen Studierzimmer und Feind, "
|
||||
"um den Meister zu schützen. "
|
||||
|
||||
#. [objective]: condition=win
|
||||
|
@ -6070,7 +6070,7 @@ msgid ""
|
|||
"weapons for the orcs, worse news for us."
|
||||
msgstr ""
|
||||
"In einem gebe ich euch jedoch recht, Stalrag. Das Lösegeld wird die orkische "
|
||||
"Kriegskasse füllen - mehr Truppen, besser Waffen - schlechte Neuigkeiten für "
|
||||
"Kriegskasse füllen - mehr Truppen, bessere Waffen - schlechte Neuigkeiten für "
|
||||
"uns."
|
||||
|
||||
#. [part]
|
||||
|
@ -6089,7 +6089,7 @@ msgid ""
|
|||
"wouldna ally themsel' with the likes o' us."
|
||||
msgstr ""
|
||||
"Verbündete? Hör ich recht? Wir stapfen also zu ihnen, und fragen, ob sie "
|
||||
"sich »geneigt sehen, uns zu helfen«, sofern wir ihr Prinzessin retten? Ihr "
|
||||
"sich »geneigt sehen, uns zu helfen«, sofern wir ihre Prinzessin retten? Ihr "
|
||||
"hörtet doch ihre Worte - diese Elfen tragen ihre Nasen so hoch, dass sie den "
|
||||
"Boden gar nicht mehr sehen! Die würden sich nie mit uns gemein machen!"
|
||||
|
||||
|
@ -6409,7 +6409,7 @@ msgid ""
|
|||
"within its depths, and he stumbled blindy towards the oblivion offered by "
|
||||
"both."
|
||||
msgstr ""
|
||||
"Der Tod schien ihm wie ein Befreiung, ein Gnade. Tallin zog seinen Dolch und "
|
||||
"Der Tod schien ihm wie eine Befreiung, eine Gnade. Tallin zog seinen Dolch und "
|
||||
"versenkte ihn mit einem Ruck tief in sein ehemals düsteres Herz. Doch es "
|
||||
"half nichts - sein zitternder Kadaver versagte ihm den letzten Gehorsam und "
|
||||
"weigerte sich, zu sterben. Selbstzerstörerisch suchte Tallin andere Wege zu "
|
||||
|
@ -6944,7 +6944,7 @@ msgid ""
|
|||
"Ah ha! That's what he is after. I bet he is having delusions of using it to "
|
||||
"conquer the world or something."
|
||||
msgstr ""
|
||||
"Aha! Darum geht es Ihm also! Ich wette, er spinnt sich eine Zukunft "
|
||||
"Aha! Darum geht es ihm also! Ich wette, er spinnt sich eine Zukunft "
|
||||
"zusammen, in der er die Welt erobert oder so was."
|
||||
|
||||
#. [message]: speaker=Hekkna
|
||||
|
@ -7097,7 +7097,7 @@ msgid ""
|
|||
"in line. I don't know why you bothered going down that passage in the first "
|
||||
"place - nothing there but a bunch of bats."
|
||||
msgstr ""
|
||||
"Wenn Ihr fertig seid, die Aussicht zu genießen, dann bekommt eure verkorkste "
|
||||
"Wenn ihr fertig seid, die Aussicht zu genießen, dann bekommt eure verkorkste "
|
||||
"Seele wieder ins Lot. Wozu rennt ihr überhaupt da hinunter? Da gibt es nur "
|
||||
"ein paar vertrocknete Fledermäuse. "
|
||||
|
||||
|
@ -7107,7 +7107,7 @@ msgid ""
|
|||
"I found a way to the surface - that is if you feel like climbing straight up "
|
||||
"for miles on end..."
|
||||
msgstr ""
|
||||
"Ich fand einen Weg an die Oberfläche, naja, sofern es euch zusagt, "
|
||||
"Ich fand einen Weg an der Oberfläche, naja, sofern es euch zusagt, "
|
||||
"meilenweit geradewegs nach oben zu laufen."
|
||||
|
||||
#. [message]: speaker=unit
|
||||
|
@ -8495,7 +8495,7 @@ msgstr ""
|
|||
#. [message]: speaker=Sister Theta
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/10a_Stolen_Gold.cfg:716
|
||||
msgid "Awww, what a darling!"
|
||||
msgstr "Was für ein Schatz!"
|
||||
msgstr "Was für einen Schatz!"
|
||||
|
||||
#. [message]: role=Supporter
|
||||
#: data/campaigns/Northern_Rebirth/scenarios/10a_Stolen_Gold.cfg:720
|
||||
|
@ -10582,7 +10582,7 @@ msgid ""
|
|||
"their fortitude, valor, and wisdom - brought the Northlands out of the "
|
||||
"darkness and restored them to their former glory."
|
||||
msgstr ""
|
||||
"So schufen die Einwohner der kleinen, versklavten Gemeinschaft von "
|
||||
"So schufen die Einwohner der kleinen versklavten Gemeinschaft von "
|
||||
"Zwergenpforte durch Tapferkeit, Klugheit und Ehre nicht nur eine große "
|
||||
"Stadt, sondern ließen die Nordlande wieder in alter Schönheit erstrahlen."
|
||||
|
||||
|
|
|
@ -51,9 +51,9 @@ void tmp_method_selection::show(CVideo& video)
|
|||
tlistbox* list = dynamic_cast<tlistbox*>(window.find_widget("method_list", false));
|
||||
VALIDATE(list, "No list defined.");
|
||||
|
||||
list->add_item("Join Official Server");
|
||||
list->add_item("Connect to Server");
|
||||
list->add_item("Local Game");
|
||||
list->add_item("Join Official Server", "icons/icon-server.png");
|
||||
list->add_item("Connect to Server", "icons/icon-serverother.png");
|
||||
list->add_item("Local Game", "icons/icon-hotseat.png");
|
||||
list->select_row(0);
|
||||
|
||||
window.recalculate_size();
|
||||
|
|
|
@ -410,11 +410,11 @@ const twidget* tlistbox::find_widget(const tpoint& coordinate, const bool must_b
|
|||
return result;
|
||||
}
|
||||
|
||||
void tlistbox::add_item(const t_string& label)
|
||||
void tlistbox::add_item(const t_string& label, const std::string& icon)
|
||||
{
|
||||
assert(list_builder_);
|
||||
|
||||
trow row(*list_builder_, label);
|
||||
trow row(*list_builder_, label, icon);
|
||||
assert(row.grid());
|
||||
|
||||
row.grid()->set_parent(this);
|
||||
|
@ -499,16 +499,16 @@ void tlistbox::set_row_active(const unsigned row, const bool active)
|
|||
rows_[row].grid()->set_active(active);
|
||||
}
|
||||
|
||||
tlistbox::trow::trow(const tbuilder_grid& list_builder_,const t_string& label) :
|
||||
tlistbox::trow::trow(const tbuilder_grid& list_builder_,const t_string& label, const std::string& icon) :
|
||||
grid_(dynamic_cast<tgrid*>(list_builder_.build())),
|
||||
height_(0),
|
||||
selected_(false)
|
||||
{
|
||||
assert(grid_);
|
||||
init_in_grid(grid_, label);
|
||||
init_in_grid(grid_, label, icon);
|
||||
}
|
||||
|
||||
void tlistbox::trow::init_in_grid(tgrid* grid, const t_string& label)
|
||||
void tlistbox::trow::init_in_grid(tgrid* grid, const t_string& label, const std::string& icon)
|
||||
{
|
||||
for(unsigned row = 0; row < grid->get_rows(); ++row) {
|
||||
for(unsigned col = 0; col < grid->get_cols(); ++col) {
|
||||
|
@ -522,8 +522,9 @@ void tlistbox::trow::init_in_grid(tgrid* grid, const t_string& label)
|
|||
if(btn) {
|
||||
btn->set_callback_mouse_left_click(callback_select_list_item);
|
||||
btn->set_label(label);
|
||||
btn->set_icon_name(icon);
|
||||
} else if(grid) {
|
||||
init_in_grid(child_grid, label);
|
||||
init_in_grid(child_grid, label, icon);
|
||||
} else {
|
||||
std::cerr << "Widget type " << typeid(*widget).name() << ".\n";
|
||||
assert(false);
|
||||
|
|
|
@ -106,7 +106,7 @@ public:
|
|||
*
|
||||
* Probably the hardcoded list will disappear as well at some point
|
||||
*/
|
||||
void add_item(const t_string& label);
|
||||
void add_item(const t_string& label, const std::string& icon = "");
|
||||
|
||||
unsigned get_item_count() const { return rows_.size(); }
|
||||
|
||||
|
@ -197,7 +197,8 @@ private:
|
|||
class trow {
|
||||
|
||||
public:
|
||||
trow(const tbuilder_grid& list_builder_, const t_string& label);
|
||||
trow(const tbuilder_grid& list_builder_,
|
||||
const t_string& label, const std::string& icon);
|
||||
|
||||
void select(const bool sel = true);
|
||||
|
||||
|
@ -221,7 +222,8 @@ private:
|
|||
|
||||
bool selected_;
|
||||
|
||||
void init_in_grid(tgrid* grid, const t_string& label);
|
||||
void init_in_grid(tgrid* grid,
|
||||
const t_string& label, const std::string& icon);
|
||||
|
||||
void select_in_grid(tgrid* grid, const bool sel);
|
||||
};
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
|
||||
#include "foreach.hpp"
|
||||
#include "gui/widgets/canvas.hpp"
|
||||
|
||||
#include "log.hpp"
|
||||
|
||||
#define DBG_G LOG_STREAM_INDENT(debug, gui)
|
||||
|
@ -114,5 +117,16 @@ void ttoggle_button::set_state(tstate state)
|
|||
}
|
||||
}
|
||||
|
||||
void ttoggle_button::set_canvas_text()
|
||||
{
|
||||
// Inherit.
|
||||
tcontrol::set_canvas_text();
|
||||
|
||||
// set icon in canvases
|
||||
foreach(tcanvas& canvas, tcontrol::canvas()) {
|
||||
canvas.set_variable("icon", variant(icon_name_));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace gui2
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@ public:
|
|||
ttoggle_button() :
|
||||
tcontrol(COUNT),
|
||||
state_(ENABLED),
|
||||
callback_mouse_left_click_(0)
|
||||
callback_mouse_left_click_(0),
|
||||
icon_name_()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -48,6 +49,13 @@ public:
|
|||
|
||||
void set_callback_mouse_left_click(void (*callback) (twidget*))
|
||||
{ callback_mouse_left_click_ = callback; }
|
||||
|
||||
/** Inherited from tcontrol. */
|
||||
void set_canvas_text();
|
||||
|
||||
void set_icon_name(const std::string& icon_name)
|
||||
{ icon_name_ = icon_name; set_canvas_text(); }
|
||||
const std::string& icon_name() const { return icon_name_; }
|
||||
|
||||
private:
|
||||
//! Note the order of the states must be the same as defined in settings.hpp.
|
||||
|
@ -64,6 +72,12 @@ private:
|
|||
/** This callback is used when the control gets a left click. */
|
||||
void (*callback_mouse_left_click_) (twidget*);
|
||||
|
||||
/**
|
||||
* The toggle button can contain an icon next to the text.
|
||||
* Maybe this will move the the tcontrol class if deemed needed.
|
||||
*/
|
||||
std::string icon_name_;
|
||||
|
||||
//! Inherited from tcontrol.
|
||||
const std::string& get_control_type() const
|
||||
{ static const std::string type = "toggle_button"; return type; }
|
||||
|
|
|
@ -215,12 +215,19 @@ public:
|
|||
*
|
||||
* A toggle button has no special fields.
|
||||
*
|
||||
* @start_table = config
|
||||
* icon (f_string = "") The name of the icon file to show.
|
||||
* @end_table
|
||||
*/
|
||||
tbuilder_toggle_button(const config& cfg) :
|
||||
tbuilder_control(cfg)
|
||||
tbuilder_control(cfg),
|
||||
icon_name_(cfg["icon"])
|
||||
{}
|
||||
|
||||
twidget* build () const;
|
||||
|
||||
private:
|
||||
std::string icon_name_;
|
||||
};
|
||||
|
||||
struct tbuilder_vertical_scrollbar : public tbuilder_control
|
||||
|
@ -927,6 +934,8 @@ twidget* tbuilder_toggle_button::build() const
|
|||
|
||||
init_control(toggle_button);
|
||||
|
||||
toggle_button->set_icon_name(icon_name_);
|
||||
|
||||
DBG_G << "Window builder: placed toggle button '" << id << "' with defintion '"
|
||||
<< definition << "'.\n";
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue