diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-01-11 02:12:47 +0000 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-01-11 02:12:47 +0000 |
commit | 440150cba3cd8441283d9914fc444358dee64495 (patch) | |
tree | 89ff0bb6b5229748861ba5364268e3c465a3b3a0 /src/gui/table.h | |
parent | ada99b0ff2395e4d0853016306564f471bfc1bc8 (diff) | |
download | mana-440150cba3cd8441283d9914fc444358dee64495.tar.gz mana-440150cba3cd8441283d9914fc444358dee64495.tar.bz2 mana-440150cba3cd8441283d9914fc444358dee64495.tar.xz mana-440150cba3cd8441283d9914fc444358dee64495.zip |
Cleanup GUI classes
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
Diffstat (limited to 'src/gui/table.h')
-rw-r--r-- | src/gui/table.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/src/gui/table.h b/src/gui/table.h deleted file mode 100644 index d1f445b3..00000000 --- a/src/gui/table.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2008 The Mana World Development Team - * - * This file is part of The Mana World. - * - * This program 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. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef TABLE_H -#define TABLE_H - -#include "tablemodel.h" - -#include <guichan/keylistener.hpp> -#include <guichan/mouselistener.hpp> -#include <guichan/widget.hpp> - -#include <vector> - -class GuiTableActionListener; - -/** - * A table, with rows and columns made out of sub-widgets. Largely inspired by - * (and can be thought of as a generalisation of) the guichan listbox - * implementation. - * - * Normally you want this within a ScrollArea. - * - * \ingroup GUI - */ -class GuiTable : public gcn::Widget, - public gcn::MouseListener, - public gcn::KeyListener, - public TableModelListener -{ - // so that the action listener can call distributeActionEvent - friend class GuiTableActionListener; - -public: - GuiTable(TableModel * initial_model = NULL, gcn::Color background = 0xffffff, - bool opacity = true); - - virtual ~GuiTable(); - - /** - * Retrieves the active table model - */ - TableModel *getModel() const; - - /** - * Sets the table model - * - * Note that actions issued by widgets returned from the model will update - * the table selection, but only AFTER any event handlers installed within - * the widget have been triggered. To be notified after such an update, add - * an action listener to the table instead. - */ - void setModel(TableModel *m); - - void setSelected(int row, int column); - - int getSelectedRow() const; - - int getSelectedColumn() const; - - void setSelectedRow(int selected); - - void setSelectedColumn(int selected); - - bool isWrappingEnabled() const {return mWrappingEnabled;} - - void setWrappingEnabled(bool wrappingEnabled) - {mWrappingEnabled = wrappingEnabled;} - - gcn::Rectangle getChildrenArea() const; - - /** - * Toggle whether to use linewise selection mode, in which the table selects - * an entire line at a time, rather than a single cell. - * - * Note that column information is tracked even in linewise selection mode; - * this mode therefore only affects visualisation. - * - * Disabled by default. - * - * \param linewise: Whether to enable linewise selection mode - */ - void setLinewiseSelection(bool linewise); - - // Inherited from Widget - virtual void draw(gcn::Graphics* graphics); - - virtual gcn::Widget *getWidgetAt(int x, int y) const; - - virtual void moveToTop(gcn::Widget *child); - - virtual void moveToBottom(gcn::Widget *child); - - virtual void _setFocusHandler(gcn::FocusHandler* focusHandler); - - // Inherited from KeyListener - virtual void keyPressed(gcn::KeyEvent& keyEvent); - - /** - * Sets the table to be opaque, that is sets the table - * to display its background. - * - * @param opaque True if the table should be opaque, false otherwise. - */ - virtual void setOpaque(bool opaque) {mOpaque = opaque;} - - /** - * Checks if the table is opaque, that is if the table area displays its - * background. - * - * @return True if the table is opaque, false otherwise. - */ - virtual bool isOpaque() const {return mOpaque;} - - // Inherited from MouseListener - virtual void mousePressed(gcn::MouseEvent& mouseEvent); - - virtual void mouseWheelMovedUp(gcn::MouseEvent& mouseEvent); - - virtual void mouseWheelMovedDown(gcn::MouseEvent& mouseEvent); - - virtual void mouseDragged(gcn::MouseEvent& mouseEvent); - - // Constraints inherited from TableModelListener - virtual void modelUpdated(bool); - -protected: - /** Frees all action listeners on inner widgets. */ - virtual void uninstallActionListeners(); - /** Installs all action listeners on inner widgets. */ - virtual void installActionListeners(); - - virtual int getRowHeight() const; - virtual int getColumnWidth(int i) const; - -private: - int getRowForY(int y) const; // -1 on error - int getColumnForX(int x) const; // -1 on error - void recomputeDimensions(); - bool mLinewiseMode; - bool mWrappingEnabled; - bool mOpaque; - - static float mAlpha; - - /** - * Holds the background color of the table. - */ - gcn::Color mBackgroundColor; - - TableModel *mModel; - - int mSelectedRow; - int mSelectedColumn; - - /** Number of frames to skip upwards when drawing the selected widget. */ - int mPopFramesNr; - - /** If someone moves a fresh widget to the top, we must display it. */ - gcn::Widget *mTopWidget; - - /** Vector for compactness; used as a list in practice. */ - std::vector<GuiTableActionListener *> mActionListeners; -}; - - -#endif // TABLE_H |