diff options
author | Joshua Langley <joshlangley[at]optusnet.com.au> | 2007-08-21 15:11:19 +0000 |
---|---|---|
committer | Joshua Langley <joshlangley[at]optusnet.com.au> | 2007-08-21 15:11:19 +0000 |
commit | 0f8e80bcfe92ca39803f0443cf4b30e3f9171eb9 (patch) | |
tree | a07d923f09e8c9aa4a478e2bd572ab94edf09ae4 /src/gui/itemshortcutwindow.cpp | |
parent | 148b62c05337eaaaf3a1ead212b3792122812cee (diff) | |
download | mana-0f8e80bcfe92ca39803f0443cf4b30e3f9171eb9.tar.gz mana-0f8e80bcfe92ca39803f0443cf4b30e3f9171eb9.tar.bz2 mana-0f8e80bcfe92ca39803f0443cf4b30e3f9171eb9.tar.xz mana-0f8e80bcfe92ca39803f0443cf4b30e3f9171eb9.zip |
mantis id=118 - Added Item Shortcut Bar.
Diffstat (limited to 'src/gui/itemshortcutwindow.cpp')
-rw-r--r-- | src/gui/itemshortcutwindow.cpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/gui/itemshortcutwindow.cpp b/src/gui/itemshortcutwindow.cpp new file mode 100644 index 00000000..2ee2cfde --- /dev/null +++ b/src/gui/itemshortcutwindow.cpp @@ -0,0 +1,95 @@ +/* + * The Mana World + * Copyright 2007 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "itemshortcutwindow.h" + +#include "itemshortcutcontainer.h" +#include "scrollarea.h" + +static const int SCROLL_PADDING = 0; + +ItemShortcutWindow::ItemShortcutWindow() +{ + setWindowName("itemShortcut"); + // no title presented, title bar is padding so window can be moved. + gcn::Window::setTitleBarHeight(gcn::Window::getPadding()); + setShowTitle(false); + setResizable(true); + setDefaultSize(758, 174, 42, 426); + + mItems = new ItemShortcutContainer(); + + int border = (SCROLL_PADDING * 2) + (getPadding() * 2); + setMinWidth(mItems->getBoxWidth() + border); + setMinHeight(mItems->getBoxHeight() + border); + setMaxWidth(mItems->getBoxWidth() * mItems->getMaxItems() + border); + setMaxHeight(mItems->getBoxHeight() * mItems->getMaxItems() + border); + + mInvenScroll = new ScrollArea(mItems); + mInvenScroll->setPosition(SCROLL_PADDING, SCROLL_PADDING); + mInvenScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); + + add(mInvenScroll); + + loadWindowState(); +} + +ItemShortcutWindow::~ItemShortcutWindow() +{ + delete mItems; + delete mInvenScroll; +} + +void ItemShortcutWindow::logic() +{ + Window::logic(); +} + +void ItemShortcutWindow::mouseDragged(gcn::MouseEvent &event) +{ + const int tWidth = getWidth(), tHeight = getHeight(); + Window::mouseDragged(event); + if (getWidth() != tWidth || getHeight() != tHeight) + { + updateWidgets(); + } +} + +void ItemShortcutWindow::updateWidgets() +{ + const gcn::Rectangle area = getChildrenArea(); + + mInvenScroll->setSize(area.width - SCROLL_PADDING, + area.height - SCROLL_PADDING); +} + +void ItemShortcutWindow::loadWindowState() +{ + Window::loadWindowState(); + updateWidgets(); +} + +void ItemShortcutWindow::resetToDefaultSize() +{ + Window::resetToDefaultSize(); + updateWidgets(); +} |