~ubuntu-branches/ubuntu/trusty/manaplus/trusty-proposed

« back to all changes in this revision

Viewing changes to src/gui/setup_theme.cpp

  • Committer: Package Import Robot
  • Author(s): Patrick Matthäi, Andrei Karas, Patrick Matthäi
  • Date: 2013-05-18 21:06:29 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130518210629-3trtowluum0tekob
Tags: 1.3.5.12-1
[ Andrei Karas ]
* Add new files to copyright file.

[ Patrick Matthäi ]
* New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
    { }
79
79
};
80
80
 
81
 
const int maxFontSizes = 11;
 
81
const int maxFontSizes = 16;
82
82
 
83
83
const char *SIZE_NAME[maxFontSizes] =
84
84
{
 
85
    // TRANSLATORS: font size
 
86
    N_("Very small (8)"),
 
87
    // TRANSLATORS: font size
85
88
    N_("Very small (9)"),
 
89
    // TRANSLATORS: font size
86
90
    N_("Tiny (10)"),
 
91
    // TRANSLATORS: font size
87
92
    N_("Small (11)"),
 
93
    // TRANSLATORS: font size
88
94
    N_("Medium (12)"),
 
95
    // TRANSLATORS: font size
89
96
    N_("Normal (13)"),
 
97
    // TRANSLATORS: font size
90
98
    N_("Large (14)"),
91
 
    N_("Very large (15)"),
92
 
    N_("Big (16)"),
93
 
    N_("Very big (17)"),
94
 
    N_("Huge (18)"),
95
 
    N_("Very huge (19)"),
 
99
    // TRANSLATORS: font size
 
100
    N_("Large (15)"),
 
101
    // TRANSLATORS: font size
 
102
    N_("Large (16)"),
 
103
    // TRANSLATORS: font size
 
104
    N_("Big (17)"),
 
105
    // TRANSLATORS: font size
 
106
    N_("Big (18)"),
 
107
    // TRANSLATORS: font size
 
108
    N_("Big (19)"),
 
109
    // TRANSLATORS: font size
 
110
    N_("Very big (20)"),
 
111
    // TRANSLATORS: font size
 
112
    N_("Very big (21)"),
 
113
    // TRANSLATORS: font size
 
114
    N_("Very big (22)"),
 
115
    // TRANSLATORS: font size
 
116
    N_("Huge (23)"),
96
117
};
97
118
 
98
119
class FontSizeChoiceListModel final : public gcn::ListModel
107
128
    virtual std::string getElementAt(int i)
108
129
    {
109
130
        if (i >= getNumberOfElements() || i < 0)
110
 
            return _("???");
 
131
            return "???";
111
132
 
112
133
        return gettext(SIZE_NAME[i]);
113
134
    }
124
145
 
125
146
const Language LANG_NAME[langs_count] =
126
147
{
 
148
    // TRANSLATORS: language
127
149
    {N_("(default)"), "", ""},
 
150
    // TRANSLATORS: language
128
151
    {N_("Chinese (China)"), "zh_CN", "cn.png"},
 
152
    // TRANSLATORS: language
129
153
    {N_("Czech"), "cs_CZ", "cz.png"},
 
154
    // TRANSLATORS: language
130
155
    {N_("English"), "C", "en.png"},
 
156
    // TRANSLATORS: language
131
157
    {N_("Finnish"), "fi_FI", "fi.png"},
 
158
    // TRANSLATORS: language
132
159
    {N_("French"), "fr_FR", "fr.png"},
 
160
    // TRANSLATORS: language
133
161
    {N_("German"), "de_DE", "de.png"},
 
162
    // TRANSLATORS: language
134
163
    {N_("Indonesian"), "id_ID", "id.png"},
 
164
    // TRANSLATORS: language
135
165
    {N_("Italian"), "it_IT", "it.png"},
 
166
    // TRANSLATORS: language
136
167
    {N_("Polish"), "pl_PL", "pl.png"},
 
168
    // TRANSLATORS: language
137
169
    {N_("Japanese"), "ja_JP", "jp.png"},
 
170
    // TRANSLATORS: language
138
171
    {N_("Dutch (Belgium/Flemish)"), "nl_BE", "nl_BE.png"},
 
172
    // TRANSLATORS: language
139
173
    {N_("Portuguese"), "pt_PT", "pt.png"},
 
174
    // TRANSLATORS: language
140
175
    {N_("Portuguese (Brazilian)"), "pt_BR", "pt_BR.png"},
 
176
    // TRANSLATORS: language
141
177
    {N_("Russian"), "ru_RU", "ru.png"},
 
178
    // TRANSLATORS: language
142
179
    {N_("Spanish (Castilian)"), "es_ES", "es.png"},
 
180
    // TRANSLATORS: language
143
181
    {N_("Turkish"), "tr_TR", "tr.png"}
144
182
};
145
183
 
174
212
    std::string getElementAt(int i) override A_WARN_UNUSED
175
213
    {
176
214
        if (i >= getNumberOfElements() || i < 0)
177
 
            return _("???");
 
215
            return "???";
178
216
 
179
217
        return gettext(LANG_NAME[i].name.c_str());
180
218
    }
191
229
 
192
230
Setup_Theme::Setup_Theme(const Widget2 *const widget) :
193
231
    SetupTab(widget),
 
232
    // TRANSLATORS: theme settings label
194
233
    mThemeLabel(new Label(this, _("Gui theme"))),
195
234
    mThemesModel(new ThemesModel),
196
235
    mThemeDropDown(new DropDown(this, mThemesModel)),
197
236
    mTheme(config.getStringValue("theme")),
 
237
    mInfo(Theme::loadInfo(mTheme)),
198
238
    mFontsModel(new FontsModel),
 
239
    // TRANSLATORS: theme settings label
199
240
    mFontLabel(new Label(this, _("Main Font"))),
200
241
    mFontDropDown(new DropDown(this, mFontsModel)),
201
242
    mFont(config.getStringValue("font")),
202
243
    mLangListModel(new LangListModel),
 
244
    // TRANSLATORS: theme settings label
203
245
    mLangLabel(new Label(this, _("Language"))),
204
246
    mLangDropDown(new DropDown(this, mLangListModel, true)),
205
247
    mLang(config.getStringValue("lang")),
 
248
    // TRANSLATORS: theme settings label
206
249
    mBoldFontLabel(new Label(this, _("Bold font"))),
207
250
    mBoldFontDropDown(new DropDown(this, mFontsModel)),
208
251
    mBoldFont(config.getStringValue("boldFont")),
 
252
    // TRANSLATORS: theme settings label
209
253
    mParticleFontLabel(new Label(this, _("Particle font"))),
210
254
    mParticleFontDropDown(new DropDown(this, mFontsModel)),
211
255
    mParticleFont(config.getStringValue("particleFont")),
 
256
    // TRANSLATORS: theme settings label
212
257
    mHelpFontLabel(new Label(this, _("Help font"))),
213
258
    mHelpFontDropDown(new DropDown(this, mFontsModel)),
214
259
    mHelpFont(config.getStringValue("helpFont")),
 
260
    // TRANSLATORS: theme settings label
215
261
    mSecureFontLabel(new Label(this, _("Secure font"))),
216
262
    mSecureFontDropDown(new DropDown(this, mFontsModel)),
217
263
    mSecureFont(config.getStringValue("secureFont")),
 
264
    // TRANSLATORS: theme settings label
218
265
    mJapanFontLabel(new Label(this, _("Japanese font"))),
219
266
    mJapanFontDropDown(new DropDown(this, mFontsModel)),
220
267
    mJapanFont(config.getStringValue("japanFont")),
221
268
    mFontSizeListModel(new FontSizeChoiceListModel),
 
269
    // TRANSLATORS: theme settings label
222
270
    mFontSizeLabel(new Label(this, _("Font size"))),
223
271
    mFontSize(config.getIntValue("fontSize")),
224
272
    mFontSizeDropDown(new DropDown(this, mFontSizeListModel)),
225
273
    mNpcFontSizeListModel(new FontSizeChoiceListModel),
 
274
    // TRANSLATORS: theme settings label
226
275
    mNpcFontSizeLabel(new Label(this, _("Npc font size"))),
227
276
    mNpcFontSize(config.getIntValue("npcfontSize")),
228
277
    mNpcFontSizeDropDown(new DropDown(this, mNpcFontSizeListModel)),
230
279
    mInfoButton(new Button(this, _("i"), ACTION_INFO, this)),
231
280
    mThemeInfo()
232
281
{
 
282
    // TRANSLATORS: theme settings tab name
233
283
    setName(_("Theme"));
234
284
 
235
285
    mThemeDropDown->setActionEventId(ACTION_THEME);
318
368
 
319
369
Setup_Theme::~Setup_Theme()
320
370
{
 
371
    delete mInfo;
 
372
    mInfo = nullptr;
 
373
 
321
374
    delete mThemesModel;
322
375
    mThemesModel = nullptr;
323
376
 
336
389
 
337
390
void Setup_Theme::updateInfo()
338
391
{
339
 
    ThemeInfo *info = Theme::loadInfo(mTheme);
340
 
    if (info)
 
392
    mInfo = Theme::loadInfo(mTheme);
 
393
    if (mInfo)
341
394
    {
342
 
        mThemeInfo = std::string("Name: ").append(info->name)
343
 
            .append("\nCopyright:\n").append(info->copyright);
 
395
        mThemeInfo = std::string("Name: ").append(mInfo->name)
 
396
            .append("\nCopyright:\n").append(mInfo->copyright);
344
397
    }
345
398
    else
346
399
    {
348
401
    }
349
402
    replaceAll(mThemeInfo, "\\n", "\n");
350
403
    mInfoButton->setEnabled(!mThemeInfo.empty());
351
 
    delete info;
352
404
}
353
405
 
354
406
void Setup_Theme::action(const gcn::ActionEvent &event)
396
448
    }
397
449
    else if (eventId == ACTION_INFO)
398
450
    {
 
451
        // TRANSLATORS: theme info dialog header
399
452
        new OkDialog(_("Theme info"), mThemeInfo, DIALOG_OK,
400
453
            false, true, nullptr, 600);
401
454
    }
413
466
    mJapanFont = getFileName(config.getStringValue("japanFont"));
414
467
}
415
468
 
 
469
#define updateField(name1, name2) if (!mInfo->name1.empty()) \
 
470
    name2 = mInfo->name1;
 
471
 
416
472
void Setup_Theme::apply()
417
473
{
418
474
    if (config.getStringValue("theme") != mTheme)
419
475
    {
 
476
        // TRANSLATORS: theme message dialog
420
477
        new OkDialog(_("Theme Changed"), _("Restart your client for "
421
478
            "the change to take effect."));
422
479
    }
423
480
 
424
481
    config.setValue("selectedSkin", "");
 
482
    if (config.getStringValue("theme") != mTheme && mInfo)
 
483
    {
 
484
        updateField(font, mFont);
 
485
        updateField(boldFont, mBoldFont);
 
486
        updateField(particleFont, mParticleFont);
 
487
        updateField(helpFont, mHelpFont);
 
488
        updateField(secureFont, mSecureFont);
 
489
        updateField(japanFont, mJapanFont);
 
490
        if (mInfo->fontSize)
 
491
        {
 
492
            const int size = mInfo->fontSize - 9;
 
493
            if (size >= 0)
 
494
                mFontSizeDropDown->setSelected(size);
 
495
        }
 
496
        if (mInfo->npcfontSize)
 
497
        {
 
498
            const int size = mInfo->npcfontSize - 9;
 
499
            if (size >= 0)
 
500
                mNpcFontSizeDropDown->setSelected(size);
 
501
        }
 
502
    }
425
503
    config.setValue("theme", mTheme);
426
504
    config.setValue("lang", mLang);
427
505
    if (config.getValue("font", "dejavusans.ttf") != mFont
447
525
        gui->updateFonts();
448
526
    }
449
527
}
 
528
 
 
529
#undef updateField