diff options
-rw-r--r-- | src/gui/confirm_dialog.cpp | 53 | ||||
-rw-r--r-- | src/gui/equipmentwindow.cpp | 11 | ||||
-rw-r--r-- | src/gui/inventorywindow.cpp | 12 | ||||
-rw-r--r-- | src/gui/itempopup.cpp | 47 | ||||
-rw-r--r-- | src/gui/label.cpp | 1 | ||||
-rw-r--r-- | src/gui/label.h | 1 | ||||
-rw-r--r-- | src/gui/ok_dialog.cpp | 38 | ||||
-rw-r--r-- | src/gui/ok_dialog.h | 3 | ||||
-rw-r--r-- | src/gui/popup.cpp | 6 | ||||
-rw-r--r-- | src/gui/storagewindow.cpp | 17 | ||||
-rw-r--r-- | src/gui/storagewindow.h | 4 | ||||
-rw-r--r-- | src/gui/window.cpp | 11 | ||||
-rw-r--r-- | src/net/playerhandler.cpp | 6 |
13 files changed, 84 insertions, 126 deletions
diff --git a/src/gui/confirm_dialog.cpp b/src/gui/confirm_dialog.cpp index f4b49251..4c08eb73 100644 --- a/src/gui/confirm_dialog.cpp +++ b/src/gui/confirm_dialog.cpp @@ -48,47 +48,38 @@ ConfirmDialog::ConfirmDialog(const std::string &title, const std::string &msg, mTextBox->setTextWrapped(msg, 260); - int numRows = mTextBox->getNumberOfRows(); - int width = getFont()->getWidth(title); - int inWidth = yesButton->getWidth() + noButton->getWidth() + 5; + const int numRows = mTextBox->getNumberOfRows(); + const int inWidth = yesButton->getWidth() + noButton->getWidth() + + (2 * getPadding()); const int fontHeight = getFont()->getHeight(); + const int height = numRows * fontHeight; + int width = getFont()->getWidth(title); - if (numRows > 1) - { - // fontHeight == height of each line of text (based on font heights) - // 14 == row top + bottom graphic pixel heights - setContentSize(mTextBox->getMinWidth() + fontHeight, ((numRows + 1) * - fontHeight) + noButton->getHeight()); - mTextArea->setDimension(gcn::Rectangle(4, 5, mTextBox->getMinWidth() + 5, - 3 + (numRows * fontHeight))); - } - else - { - if (width < getFont()->getWidth(msg)) - width = getFont()->getWidth(msg); - if (width < inWidth) - width = inWidth; - setContentSize(width + fontHeight, (2 * fontHeight) + - noButton->getHeight()); - mTextArea->setDimension(gcn::Rectangle(4, 5, width + 5, 17)); - } + if (width < mTextBox->getMinWidth()) + width = mTextBox->getMinWidth(); + if (width < inWidth) + width = inWidth; - yesButton->setPosition( - (mTextBox->getMinWidth() - inWidth) / 2, - ((numRows - 1) * fontHeight) + noButton->getHeight() + 2); - noButton->setPosition( - yesButton->getX() + yesButton->getWidth() + 5, - ((numRows - 1) * fontHeight) + noButton->getHeight() + 2); + setContentSize(mTextBox->getMinWidth() + fontHeight, height + fontHeight + + noButton->getHeight()); + mTextArea->setDimension(gcn::Rectangle(4, 5, width + 2 * getPadding(), + height + getPadding())); + + // 8 is the padding that GUIChan adds to button widgets + // (top and bottom combined) + yesButton->setPosition((width - inWidth) / 2, height + 8); + noButton->setPosition(yesButton->getX() + inWidth - noButton->getWidth(), + height + 8); add(mTextArea); add(yesButton); add(noButton); + setLocationRelativeTo(getParent()); + if (getParent()) - { - setLocationRelativeTo(getParent()); getParent()->moveToTop(this); - } + setVisible(true); yesButton->requestFocus(); } diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 31fe3b8b..168ae22f 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -122,7 +122,7 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) // Set color to the highligh color g->setColor(gcn::Color(color.r, color.g, color.b, getGuiAlpha())); g->fillRectangle(gcn::Rectangle(mEquipBox[i].posX, mEquipBox[i].posY, - BOX_WIDTH, BOX_HEIGHT)); + BOX_WIDTH, BOX_HEIGHT)); } // Set color black. @@ -200,13 +200,8 @@ void EquipmentWindow::mousePressed(gcn::MouseEvent& mouseEvent) gcn::Rectangle tRect(mEquipBox[i].posX, mEquipBox[i].posY, BOX_WIDTH, BOX_HEIGHT); - if (tRect.isPointInRect(x, y)) - { - if (item) - { - mSelected = i; - } - } + if (tRect.isPointInRect(x, y) && item) + mSelected = i; } } else if (mouseEvent.getButton() == gcn::MouseEvent::RIGHT) diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index b72a6ff0..fef55b6c 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -122,8 +122,7 @@ void InventoryWindow::logic() const int usedSlots = player_node->getInventory()->getNumberOfSlotsUsed(); if (mMaxWeight != player_node->mMaxWeight || - mTotalWeight != player_node->mTotalWeight || - mUsedSlots != usedSlots) + mTotalWeight != player_node->mTotalWeight || mUsedSlots != usedSlots) { mTotalWeight = player_node->mTotalWeight; mMaxWeight = player_node->mMaxWeight; @@ -131,25 +130,18 @@ void InventoryWindow::logic() // Weight Bar coloration if (mTotalWeight < (mMaxWeight / 3)) - { mWeightBar->setColor(0, 0, 255); // Blue - } else if (mTotalWeight < ((mMaxWeight / 3) * 2)) - { mWeightBar->setColor(255, 255, 0); // Yellow - } else - { mWeightBar->setColor(255, 0, 0); // Red - } // Adjust progress bars mSlotsBar->setProgress((float) mUsedSlots / mMaxSlots); mWeightBar->setProgress((float) mTotalWeight / mMaxWeight); mSlotsBar->setText(strprintf("%d/%d", mUsedSlots, mMaxSlots)); - mWeightBar->setText(strprintf("%dg/%dg", mTotalWeight, - mMaxWeight)); + mWeightBar->setText(strprintf("%dg/%dg", mTotalWeight, mMaxWeight)); } } diff --git a/src/gui/itempopup.cpp b/src/gui/itempopup.cpp index 2ebe6645..f2ac374a 100644 --- a/src/gui/itempopup.cpp +++ b/src/gui/itempopup.cpp @@ -68,7 +68,8 @@ ItemPopup::ItemPopup(): mItemEffectScroll->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); mItemEffectScroll->setDimension(gcn::Rectangle(0, 0, 196, getFont()->getHeight())); mItemEffectScroll->setOpaque(false); - mItemEffectScroll->setPosition(2, (2 * getFont()->getHeight()) + 5); + mItemEffectScroll->setPosition(2, (2 * getFont()->getHeight()) + + (2 * getPadding())); // Item Weight mItemWeight = new TextBox(); @@ -79,7 +80,8 @@ ItemPopup::ItemPopup(): mItemWeightScroll->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); mItemWeightScroll->setDimension(gcn::Rectangle(0, 0, 196, getFont()->getHeight())); mItemWeightScroll->setOpaque(false); - mItemWeightScroll->setPosition(2, (3 * getFont()->getHeight()) + 10); + mItemWeightScroll->setPosition(2, (3 * getFont()->getHeight()) + + (4 * getPadding())); add(mItemName); add(mItemDescScroll); @@ -125,43 +127,36 @@ void ItemPopup::setItem(const ItemInfo &item) minWidth += 8; setWidth(minWidth); - int numRowsDesc = mItemDesc->getNumberOfRows(); - int numRowsEffect = mItemEffect->getNumberOfRows(); - int numRowsWeight = mItemWeight->getNumberOfRows(); + const int numRowsDesc = mItemDesc->getNumberOfRows(); + const int numRowsEffect = mItemEffect->getNumberOfRows(); + const int numRowsWeight = mItemWeight->getNumberOfRows(); + const int height = getFont()->getHeight(); - mItemDescScroll->setDimension(gcn::Rectangle(2, 0, minWidth, - numRowsDesc * getFont()->getHeight())); + mItemDescScroll->setDimension(gcn::Rectangle(2, 0, minWidth, numRowsDesc * + height)); - mItemEffectScroll->setDimension(gcn::Rectangle(2, 0, minWidth, - numRowsEffect * getFont()->getHeight())); + mItemEffectScroll->setDimension(gcn::Rectangle(2, 0, minWidth, numRowsEffect + * height)); - mItemWeightScroll->setDimension(gcn::Rectangle(2, 0, minWidth, - numRowsWeight * getFont()->getHeight())); + mItemWeightScroll->setDimension(gcn::Rectangle(2, 0, minWidth, numRowsWeight + * height)); if (item.getEffect().empty()) { - setContentSize(minWidth, (numRowsDesc * getFont()->getHeight() + - (3 * getFont()->getHeight()))); + setContentSize(minWidth, (numRowsDesc + 3) * height); - mItemWeightScroll->setPosition(2, - (numRowsDesc * getFont()->getHeight()) + - (2 * getFont()->getHeight())); + mItemWeightScroll->setPosition(2, (numRowsDesc + 2) * height); } else { - setContentSize(minWidth, (numRowsDesc * getFont()->getHeight()) + - (numRowsEffect * getFont()->getHeight()) + - (3 * getFont()->getHeight())); - - mItemWeightScroll->setPosition(2, - (numRowsDesc * getFont()->getHeight()) + - (numRowsEffect * getFont()->getHeight()) + - (2 * getFont()->getHeight())); + setContentSize(minWidth, (numRowsDesc + numRowsEffect + 3) * height); + + mItemWeightScroll->setPosition(2, (numRowsDesc + numRowsEffect + 2) * + height); } mItemDescScroll->setPosition(2, 20); - mItemEffectScroll->setPosition(2, (numRowsDesc * getFont()->getHeight()) + - (2 * getFont()->getHeight())); + mItemEffectScroll->setPosition(2, (numRowsDesc + 2) * height); } void ItemPopup::updateColors() diff --git a/src/gui/label.cpp b/src/gui/label.cpp index e8d72ace..f3e7bd04 100644 --- a/src/gui/label.cpp +++ b/src/gui/label.cpp @@ -1,6 +1,5 @@ /* * Aethyra - * Copyright (c) 2004 - 2008 Olof Naessén and Per Larsson * Copyright (c) 2009 Aethyra Development Team * * This file is part of Aethyra based on original code diff --git a/src/gui/label.h b/src/gui/label.h index 961286e0..4a9bb805 100644 --- a/src/gui/label.h +++ b/src/gui/label.h @@ -1,6 +1,5 @@ /* * Aethyra - * Copyright (c) 2004 - 2008 Olof Naessén and Per Larsson * Copyright (c) 2009 Aethyra Development Team * * This file is part of Aethyra based on original code diff --git a/src/gui/ok_dialog.cpp b/src/gui/ok_dialog.cpp index d3e7bec6..84fa20ea 100644 --- a/src/gui/ok_dialog.cpp +++ b/src/gui/ok_dialog.cpp @@ -31,7 +31,7 @@ #include "../utils/gettext.h" OkDialog::OkDialog(const std::string &title, const std::string &msg, - Window *parent): + Window *parent): Window(title, true, parent) { mTextBox = new TextBox(); @@ -47,30 +47,24 @@ OkDialog::OkDialog(const std::string &title, const std::string &msg, mTextBox->setTextWrapped(msg, 260); - int numRows = mTextBox->getNumberOfRows(); + const int numRows = mTextBox->getNumberOfRows(); const int fontHeight = getFont()->getHeight(); + const int height = numRows * fontHeight; + int width = getFont()->getWidth(title); - if (numRows > 1) - { - // 14 == row top + bottom graphic pixel heights - setContentSize(mTextBox->getMinWidth() + fontHeight, ((numRows + 1) * - fontHeight) + okButton->getHeight()); - mTextArea->setDimension(gcn::Rectangle(4, 5, - mTextBox->getMinWidth() + 5, 3 + (numRows * fontHeight))); - } - else - { - int width = getFont()->getWidth(title); - if (width < getFont()->getWidth(msg)) - width = getFont()->getWidth(msg); - if (width < okButton->getWidth()) - width = okButton->getWidth(); - setContentSize(width + fontHeight, 30 + okButton->getHeight()); - mTextArea->setDimension(gcn::Rectangle(4, 5, width + 5, 17)); - } + if (width < mTextBox->getMinWidth()) + width = mTextBox->getMinWidth(); + if (width < okButton->getWidth()) + width = okButton->getWidth(); + + setContentSize(mTextBox->getMinWidth() + fontHeight, height + + fontHeight + okButton->getHeight()); + mTextArea->setDimension(gcn::Rectangle(4, 5, width + 2 * getPadding(), + height + getPadding())); - okButton->setPosition((mTextBox->getMinWidth() - okButton->getWidth()) / 2, - ((numRows - 1) * fontHeight) + okButton->getHeight() + 2); + // 8 is the padding that GUIChan adds to button widgets + // (top and bottom combined) + okButton->setPosition((width - okButton->getWidth()) / 2, height + 8); add(mTextArea); add(okButton); diff --git a/src/gui/ok_dialog.h b/src/gui/ok_dialog.h index c84cf4c4..6cfe0798 100644 --- a/src/gui/ok_dialog.h +++ b/src/gui/ok_dialog.h @@ -35,7 +35,8 @@ class TextBox; * * \ingroup GUI */ -class OkDialog : public Window, public gcn::ActionListener { +class OkDialog : public Window, public gcn::ActionListener +{ public: /** * Constructor. diff --git a/src/gui/popup.cpp b/src/gui/popup.cpp index 6d57081f..85ba3b7a 100644 --- a/src/gui/popup.cpp +++ b/src/gui/popup.cpp @@ -20,8 +20,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include <climits> - #include <guichan/exception.hpp> #include "gui.h" @@ -45,8 +43,8 @@ Popup::Popup(const std::string& name, Window *parent, mDefaultSkinPath(skin), mMinWidth(100), mMinHeight(40), - mMaxWidth(INT_MAX), - mMaxHeight(INT_MAX) + mMaxWidth(graphics->getWidth()), + mMaxHeight(graphics->getHeight()) { logger->log("Popup::Popup(\"%s\")", name.c_str()); diff --git a/src/gui/storagewindow.cpp b/src/gui/storagewindow.cpp index 5036fc15..eb0cbc12 100644 --- a/src/gui/storagewindow.cpp +++ b/src/gui/storagewindow.cpp @@ -48,7 +48,6 @@ #include "../utils/gettext.h" #include "../utils/strprintf.h" -#include "../utils/stringutils.h" StorageWindow::StorageWindow(Network *network, int invSize): Window(_("Storage")), @@ -72,7 +71,7 @@ StorageWindow::StorageWindow(Network *network, int invSize): mInvenScroll = new ScrollArea(mItems); mInvenScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); - mUsedSlots = toString(player_node->getStorage()->getNumberOfSlotsUsed()); + mUsedSlots = player_node->getStorage()->getNumberOfSlotsUsed(); mSlotsLabel = new Label(_("Slots: ")); @@ -105,14 +104,15 @@ void StorageWindow::logic() Window::logic(); - if (mUsedSlots != toString(player_node->getStorage()->getNumberOfSlotsUsed())) + const int usedSlots = player_node->getInventory()->getNumberOfSlotsUsed(); + + if (mUsedSlots != usedSlots) { - mUsedSlots = toString(player_node->getStorage()->getNumberOfSlotsUsed()); + mUsedSlots = usedSlots; - mSlotsBar->setProgress((float) - player_node->getStorage()->getNumberOfSlotsUsed() / mMaxSlots); + mSlotsBar->setProgress((float) mUsedSlots / mMaxSlots); - mSlotsBar->setText(strprintf("%s/%d", mUsedSlots.c_str(), mMaxSlots)); + mSlotsBar->setText(strprintf("%d/%d", mUsedSlots, mMaxSlots)); } } @@ -164,7 +164,8 @@ void StorageWindow::mouseClicked(gcn::MouseEvent &event) { Item *item = mItems->getSelectedItem(); - if (!item) { + if (!item) + { mRetrieveButton->setEnabled(false); return; } diff --git a/src/gui/storagewindow.h b/src/gui/storagewindow.h index 8f02a618..6a1c2cdb 100644 --- a/src/gui/storagewindow.h +++ b/src/gui/storagewindow.h @@ -90,8 +90,8 @@ class StorageWindow : public Window, gcn::ActionListener, gcn::SelectionListener Network *mNetwork; ItemContainer *mItems; - std::string mSlots; - std::string mUsedSlots; + int mSlots; + int mUsedSlots; gcn::Button *mStoreButton, *mRetrieveButton; gcn::ScrollArea *mInvenScroll; diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 642fdeb8..f64f1caf 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -20,9 +20,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include <cassert> -#include <climits> - #include <guichan/exception.hpp> #include "gui.h" @@ -55,8 +52,8 @@ Window::Window(const std::string& caption, bool modal, Window *parent, const std mSticky(false), mMinWinWidth(100), mMinWinHeight(40), - mMaxWinWidth(INT_MAX), - mMaxWinHeight(INT_MAX) + mMaxWinWidth(graphics->getWidth()), + mMaxWinHeight(graphics->getHeight()) { logger->log("Window::Window(\"%s\")", caption.c_str()); @@ -64,9 +61,7 @@ Window::Window(const std::string& caption, bool modal, Window *parent, const std throw GCN_EXCEPTION("Window::Window(): no windowContainer set"); if (instances == 0) - { skinLoader = new SkinLoader(); - } instances++; @@ -114,9 +109,7 @@ Window::~Window() mSkin->instances--; if (instances == 0) - { delete skinLoader; - } } void Window::setWindowContainer(WindowContainer *wc) diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp index 9afbc5f0..3dd2bad2 100644 --- a/src/net/playerhandler.cpp +++ b/src/net/playerhandler.cpp @@ -174,7 +174,7 @@ void PlayerHandler::handleMessage(MessageIn *msg) case SMSG_PLAYER_STAT_UPDATE_1: { int type = msg->readInt16(); - Uint32 value = msg->readInt32(); + int value = msg->readInt32(); switch (type) { @@ -195,8 +195,8 @@ void PlayerHandler::handleMessage(MessageIn *msg) break; case 0x0018: if (value >= player_node->mMaxWeight / 2 && - player_node->mTotalWeight < - player_node->mMaxWeight / 2) + player_node->mTotalWeight < + player_node->mMaxWeight / 2) { weightNotice = new OkDialog(_("Message"), _("You are carrying more than " |