summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAngelo Castellani <udp.castellani@gmail.com>2011-05-12 01:25:29 -0400
committerStefan Dombrowski <stefan@uni-bonn.de>2011-05-13 11:06:00 +0200
commit9641f4c6c24656a73ee759f7c176ba682ae01acf (patch)
tree27836da80454d51c35c9b16b8e6191e3827406c7 /src
parent1d6311a5ffde800ece8d3085fb5fe7c2c9c50a58 (diff)
downloadmana-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).
Diffstat (limited to 'src')
-rw-r--r--src/defaults.cpp1
-rw-r--r--src/gui/gui.cpp17
-rw-r--r--src/gui/gui.h5
-rw-r--r--src/gui/setup_keyboard.cpp16
-rw-r--r--src/gui/widgets/listbox.h13
-rw-r--r--src/keyboardconfig.cpp9
6 files changed, 54 insertions, 7 deletions
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;
}
}