diff options
author | Angelo Castellani <udp.castellani@gmail.com> | 2011-05-12 01:25:29 -0400 |
---|---|---|
committer | Stefan Dombrowski <stefan@uni-bonn.de> | 2011-05-13 11:06:00 +0200 |
commit | 9641f4c6c24656a73ee759f7c176ba682ae01acf (patch) | |
tree | 27836da80454d51c35c9b16b8e6191e3827406c7 | |
parent | 1d6311a5ffde800ece8d3085fb5fe7c2c9c50a58 (diff) | |
download | mana-9641f4c6c24656a73ee759f7c176ba682ae01acf.tar.gz mana-9641f4c6c24656a73ee759f7c176ba682ae01acf.tar.bz2 mana-9641f4c6c24656a73ee759f7c176ba682ae01acf.tar.xz mana-9641f4c6c24656a73ee759f7c176ba682ae01acf.zip |
Made the setup keyboard tab prettier.
Incidentally I added support for a monospaced font (which may come in handy).
-rw-r--r-- | data/fonts/dejavusans-mono.ttf | bin | 0 -> 333636 bytes | |||
-rw-r--r-- | src/defaults.cpp | 1 | ||||
-rw-r--r-- | src/gui/gui.cpp | 17 | ||||
-rw-r--r-- | src/gui/gui.h | 5 | ||||
-rw-r--r-- | src/gui/setup_keyboard.cpp | 16 | ||||
-rw-r--r-- | src/gui/widgets/listbox.h | 13 | ||||
-rw-r--r-- | src/keyboardconfig.cpp | 9 |
7 files changed, 54 insertions, 7 deletions
diff --git a/data/fonts/dejavusans-mono.ttf b/data/fonts/dejavusans-mono.ttf Binary files differnew file mode 100644 index 00000000..7260bd65 --- /dev/null +++ b/data/fonts/dejavusans-mono.ttf diff --git a/src/defaults.cpp b/src/defaults.cpp index 87f7953e..443795a8 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -144,6 +144,7 @@ DefaultsData* getBrandingDefaults() AddDEF(brandingData, "theme", ""); AddDEF(brandingData, "font", "fonts/dejavusans.ttf"); AddDEF(brandingData, "boldFont", "fonts/dejavusans-bold.ttf"); + AddDEF(brandingData, "monoFont", "fonts/dejavusans-mono.ttf"); return brandingData; } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index d1c18ab2..593bed10 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -50,6 +50,9 @@ SDLInput *guiInput = 0; // Bolded font gcn::Font *boldFont = 0; +// Mono font +gcn::Font *monoFont = 0; + class GuiConfigListener : public EventListener { public: @@ -136,6 +139,19 @@ Gui::Gui(Graphics *graphics): std::string("': ") + e.getMessage()); } + // Set mono font + fontFile = branding.getValue("monoFont", "fonts/dejavusans-mono.ttf"); + path = resman->getPath(fontFile); + try + { + monoFont = new TrueTypeFont(path, fontSize); + } + catch (gcn::Exception e) + { + logger->error(std::string("Unable to load '") + fontFile + + std::string("': ") + e.getMessage()); + } + gcn::Widget::setGlobalFont(mGuiFont); // Initialize mouse cursor and listen for changes to the option @@ -153,6 +169,7 @@ Gui::~Gui() delete mGuiFont; delete boldFont; + delete monoFont; delete mInfoParticleFont; delete getTop(); diff --git a/src/gui/gui.h b/src/gui/gui.h index fa7102fe..6b40282f 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -129,4 +129,9 @@ extern SDLInput *guiInput; /**< GUI input */ */ extern gcn::Font *boldFont; +/** + * Monospaced text font + */ +extern gcn::Font *monoFont; + #endif // GUI_H diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp index 57a21270..31fd6e39 100644 --- a/src/gui/setup_keyboard.cpp +++ b/src/gui/setup_keyboard.cpp @@ -24,6 +24,7 @@ #include "keyboardconfig.h" +#include "gui/gui.h" #include "gui/okdialog.h" #include "gui/widgets/button.h" @@ -79,6 +80,7 @@ Setup_Keyboard::Setup_Keyboard(): refreshKeys(); mKeyList->addActionListener(this); + mKeyList->setFont(monoFont); ScrollArea *scrollArea = new ScrollArea(mKeyList); scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); @@ -176,9 +178,17 @@ void Setup_Keyboard::action(const gcn::ActionEvent &event) void Setup_Keyboard::refreshAssignedKey(int index) { std::string caption; - char *temp = SDL_GetKeyName( - (SDLKey) keyboard.getKeyValue(index)); - caption = keyboard.getKeyCaption(index) + ": " + toString(temp); + if (keyboard.getKeyValue(index) == keyboard.KEY_NO_VALUE) + caption = keyboard.getKeyCaption(index) + ": "; + else + { + char *temp = SDL_GetKeyName( + (SDLKey) keyboard.getKeyValue(index)); + + caption = strprintf("%-25s", + (keyboard.getKeyCaption(index) + ": ").c_str()) + toString(temp); + + } mKeyListModel->setElementAt(index, caption); } diff --git a/src/gui/widgets/listbox.h b/src/gui/widgets/listbox.h index 92505c15..4984a3ce 100644 --- a/src/gui/widgets/listbox.h +++ b/src/gui/widgets/listbox.h @@ -41,6 +41,16 @@ class ListBox : public gcn::ListBox ~ListBox(); /** + * Sets the font to render the text in. + * + * @param font the font to use. + */ + inline void setFont(gcn::Font *font) + { + mFont = font; + } + + /** * Draws the list box. */ void draw(gcn::Graphics *graphics); @@ -62,6 +72,9 @@ class ListBox : public gcn::ListBox void mouseDragged(gcn::MouseEvent &event); + private: + gcn::Font *mFont; + protected: static float mAlpha; }; diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp index ec2bf6ed..08ee8896 100644 --- a/src/keyboardconfig.cpp +++ b/src/keyboardconfig.cpp @@ -162,7 +162,8 @@ bool KeyboardConfig::hasConflicts() continue; // Allow collisions between shortcut and emote keys - if ((i >= KEY_SHORTCUT_1 && i <= KEY_SHORTCUT_12) && (j >= KEY_EMOTE_1 && j <= KEY_EMOTE_12)) + if ((i >= KEY_SHORTCUT_1 && i <= KEY_SHORTCUT_12) && + (j >= KEY_EMOTE_1 && j <= KEY_EMOTE_12)) continue; // Why? @@ -181,9 +182,9 @@ bool KeyboardConfig::hasConflicts() if (mKey[i].value == mKey[j].value) { mBindError = strprintf(_("Conflict \"%s\" and \"%s\" keys. " - "Resolve them, or gameplay may result" - " in strange behaviour."), - mKey[i].caption.c_str(), mKey[j].caption.c_str()); + "Resolve them, or gameplay may result" + " in strange behaviour."), + mKey[i].caption.c_str(), mKey[j].caption.c_str()); return true; } } |