GUI2: taddon_description: merge 2/2
This commit is contained in:
parent
e7b7abe209
commit
979f2e4e69
4 changed files with 214 additions and 84 deletions
|
@ -15,6 +15,8 @@
|
|||
[row]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
|
||||
[image]
|
||||
|
@ -25,28 +27,9 @@
|
|||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
vertical_alignment = "top"
|
||||
|
||||
[label]
|
||||
id = "title"
|
||||
definition = "title"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[row]
|
||||
|
||||
{GUI_FILLER}
|
||||
|
||||
[column]
|
||||
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[grid]
|
||||
|
||||
[row]
|
||||
|
@ -55,23 +38,11 @@
|
|||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Version:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
id = "version"
|
||||
definition = "default"
|
||||
id = "title"
|
||||
definition = "title"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
@ -79,60 +50,167 @@
|
|||
[/row]
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Description:"
|
||||
[/label]
|
||||
[grid]
|
||||
|
||||
[/column]
|
||||
[row]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[scroll_label]
|
||||
id = "description"
|
||||
definition = "default"
|
||||
[/scroll_label]
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Author:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
vertical_alignment = "top"
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
[label]
|
||||
id = "author"
|
||||
definition = "default"
|
||||
[/label]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
[/column]
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Translations:"
|
||||
[/label]
|
||||
[/row]
|
||||
|
||||
[/column]
|
||||
[row]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[scroll_label]
|
||||
id = "translations"
|
||||
definition = "default"
|
||||
[/scroll_label]
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Version:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
id = "version"
|
||||
definition = "default"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Size:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
id = "size"
|
||||
definition = "default"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Description:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[scroll_label]
|
||||
id = "description"
|
||||
definition = "default"
|
||||
label = _ "No description available."
|
||||
[/scroll_label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[label]
|
||||
definition = "default"
|
||||
label = _ "Translations:"
|
||||
[/label]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[scroll_label]
|
||||
id = "translations"
|
||||
definition = "default"
|
||||
label = _ "translations^None"
|
||||
[/scroll_label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[/grid]
|
||||
|
||||
[/column]
|
||||
|
||||
|
|
|
@ -1167,12 +1167,14 @@ namespace {
|
|||
|
||||
addon_info inf;
|
||||
|
||||
inf.sizestr = sizef;
|
||||
|
||||
addons.push_back(name);
|
||||
versions.push_back(c["version"]);
|
||||
uploads.push_back(c["uploads"]);
|
||||
descriptions.push_back(c["description"]);
|
||||
|
||||
inf.description = c["description"];
|
||||
inf.description = c["description"].str();
|
||||
|
||||
types.push_back(type_str);
|
||||
|
||||
|
@ -1192,6 +1194,7 @@ namespace {
|
|||
std::string version = c["version"], author = c["author"];
|
||||
|
||||
inf.version = version;
|
||||
inf.author = author;
|
||||
|
||||
//add negative sizes to reverse the sort order
|
||||
sizes.push_back(-size);
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include "language.hpp"
|
||||
|
||||
namespace {
|
||||
t_string langcode_to_tstring(const std::string& lcode)
|
||||
std::string langcode_to_string(const std::string& lcode)
|
||||
{
|
||||
foreach(const language_def& ld, get_languages()) {
|
||||
if(ld.localename == lcode) {
|
||||
|
@ -37,27 +37,75 @@ namespace {
|
|||
|
||||
namespace gui2 {
|
||||
|
||||
/*WIKI
|
||||
* @page = GUIWindowDefinitionWML
|
||||
* @order = 2_addon_description
|
||||
*
|
||||
* == Add-on description ==
|
||||
*
|
||||
* Add-on description and details for the add-ons manager interface.
|
||||
*
|
||||
* @begin{table}[dialog_widgets]
|
||||
*
|
||||
* image & & control & m &
|
||||
* Label for displaying the add-on icon, in a 72x72 area. $
|
||||
*
|
||||
* title & & control & m &
|
||||
* Dialog title label, corresponding to the add-on name. $
|
||||
*
|
||||
* version & & control & m &
|
||||
* Label for displaying the add-on version number. $
|
||||
*
|
||||
* author & & control & m &
|
||||
* Label for displaying the add-on author/maintainer name. $
|
||||
*
|
||||
* size & & control & m &
|
||||
* Label for displaying the add-on package size. $
|
||||
*
|
||||
* description & & control & m &
|
||||
* Text label for displaying the add-on's description. $
|
||||
*
|
||||
* translations & & control & m &
|
||||
* Label for displaying a list of translations provided by the add-on. $
|
||||
*
|
||||
* @end{table}
|
||||
*/
|
||||
|
||||
REGISTER_WINDOW(addon_description)
|
||||
|
||||
void taddon_description::pre_show(CVideo& /*video*/, twindow& window)
|
||||
{
|
||||
const std::string fixed_icon = ainfo_.icon + "~SCALE(72,72)";
|
||||
find_widget<tcontrol>(&window, "image", false).set_label(fixed_icon);
|
||||
|
||||
find_widget<tcontrol>(&window, "image", false).set_label(fixed_icon);
|
||||
find_widget<tcontrol>(&window, "title", false).set_label(ainfo_.name);
|
||||
find_widget<tcontrol>(&window, "description", false).set_label(ainfo_.description);
|
||||
find_widget<tcontrol>(&window, "version", false).set_label(ainfo_.version);
|
||||
find_widget<tcontrol>(&window, "author", false).set_label(ainfo_.author);
|
||||
find_widget<tcontrol>(&window, "size", false).set_label(ainfo_.sizestr);
|
||||
|
||||
// Validate widget presence in either path
|
||||
tcontrol& ctl_description = find_widget<tcontrol>(&window, "description", false);
|
||||
if(ainfo_.description.empty() == false) {
|
||||
ctl_description.set_label(ainfo_.description);
|
||||
}
|
||||
|
||||
std::string languages;
|
||||
|
||||
foreach(const std::string& lc, ainfo_.translations) {
|
||||
if(languages.empty() == false) {
|
||||
languages += ", ";
|
||||
const std::string& langlabel = langcode_to_string(lc);
|
||||
if(langlabel.empty() == false) {
|
||||
if(languages.empty() == false) {
|
||||
languages += ", ";
|
||||
}
|
||||
languages += langlabel;
|
||||
}
|
||||
languages += langcode_to_tstring(lc);
|
||||
}
|
||||
|
||||
find_widget<tcontrol>(&window, "translations", false).set_label(languages);
|
||||
// Validate widget presence in either path
|
||||
tcontrol& ctl_languages = find_widget<tcontrol>(&window, "translations", false);
|
||||
if(languages.empty() == false) {
|
||||
ctl_languages.set_label(languages);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,16 +17,17 @@
|
|||
#define GUI_DIALOGS_ADDON_DESCRIPTION_HPP_INCLUDED
|
||||
|
||||
#include "gui/dialogs/dialog.hpp"
|
||||
#include "tstring.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
||||
struct addon_info
|
||||
{
|
||||
t_string name;
|
||||
t_string description;
|
||||
std::string name;
|
||||
std::string description;
|
||||
std::string icon;
|
||||
std::string version;
|
||||
std::string author;
|
||||
std::string sizestr;
|
||||
std::vector<std::string> translations;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue