00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "gui/shortcutwindow.h"
00023
00024 #include "gui/shortcutcontainer.h"
00025
00026 #include "gui/widgets/layout.h"
00027 #include "gui/widgets/scrollarea.h"
00028
00029 #include "configuration.h"
00030
00031 static const int SCROLL_PADDING = 0;
00032
00033 int ShortcutWindow::mInstances = 0;
00034
00035 ShortcutWindow::ShortcutWindow(const std::string &title,
00036 ShortcutContainer *content, bool defaultVisible)
00037 {
00038 setWindowName(title);
00039
00040 gcn::Window::setTitleBarHeight(gcn::Window::getPadding());
00041 setShowTitle(false);
00042 setResizable(true);
00043 setDefaultVisible(defaultVisible);
00044 setSaveVisible(true);
00045
00046 mItems = content;
00047
00048 const int border = SCROLL_PADDING * 2 + getPadding() * 2;
00049 setMinWidth(mItems->getBoxWidth() + border);
00050 setMinHeight(mItems->getBoxHeight() + border);
00051 setMaxWidth(mItems->getBoxWidth() * mItems->getMaxItems() + border);
00052 setMaxHeight(mItems->getBoxHeight() * mItems->getMaxItems() + border);
00053
00054 setDefaultSize(mItems->getBoxWidth() + border, (mItems->getBoxHeight() *
00055 mItems->getMaxItems()) + border, ImageRect::LOWER_RIGHT,
00056 mInstances * mItems->getBoxWidth(), 0);
00057
00058 mInstances++;
00059
00060 mScrollArea = new ScrollArea(mItems);
00061 mScrollArea->setPosition(SCROLL_PADDING, SCROLL_PADDING);
00062 mScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER);
00063 mScrollArea->setOpaque(false);
00064
00065 place(0, 0, mScrollArea, 5, 5).setPadding(0);
00066
00067 Layout &layout = getLayout();
00068 layout.setRowHeight(0, Layout::AUTO_SET);
00069 layout.setMargin(0);
00070
00071 loadWindowState();
00072 }
00073
00074 ShortcutWindow::~ShortcutWindow()
00075 {
00076 delete mItems;
00077 }
00078