summaryrefslogtreecommitdiff
path: root/src/gui/widgets/layout.h
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-10-21 11:20:55 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-10-21 11:20:55 +0000
commit59c3b69103bf9bc346f6a4337c2ede0f43bfb6bf (patch)
tree72ee20339fa7dec7934b8343bdddc29a633946b0 /src/gui/widgets/layout.h
parent4f6ebd0c62299e3ab2d4b4ef70fd2a27d5b4908c (diff)
downloadmana-client-59c3b69103bf9bc346f6a4337c2ede0f43bfb6bf.tar.gz
mana-client-59c3b69103bf9bc346f6a4337c2ede0f43bfb6bf.tar.bz2
mana-client-59c3b69103bf9bc346f6a4337c2ede0f43bfb6bf.tar.xz
mana-client-59c3b69103bf9bc346f6a4337c2ede0f43bfb6bf.zip
Made visible the resizable grip on inventory window.
Diffstat (limited to 'src/gui/widgets/layout.h')
-rw-r--r--src/gui/widgets/layout.h43
1 files changed, 32 insertions, 11 deletions
diff --git a/src/gui/widgets/layout.h b/src/gui/widgets/layout.h
index 05a84d53..ae03ed9d 100644
--- a/src/gui/widgets/layout.h
+++ b/src/gui/widgets/layout.h
@@ -82,14 +82,27 @@ class Cell
* from the widest widget of the column. An empty column has a FILL width,
* which means it will be extended so that the layout fits its minimum width.
*
- * The process is similar for table rows. By default, there is a padding of 4
- * pixels between rows and between columns.
+ * The process is similar for table rows. By default, there is a spacing of 4
+ * pixels between rows and between columns, and a margin of 6 pixels around the
+ * whole layout.
*/
class Layout
{
public:
- Layout(): mPadding(4), mX(0), mY(0), mW(0), mH(0) {}
+ Layout(): mSpacing(4), mMargin(6), mX(0), mY(0), mW(0), mH(0) {}
+
+ /**
+ * Gets the x-coordinate of the top left point of the layout.
+ */
+ int getX() const
+ { return mX; }
+
+ /**
+ * Gets the y-coordinate of the top left point of the layout.
+ */
+ int getY() const
+ { return mY; }
/**
* Sets the minimum width of a column.
@@ -123,10 +136,16 @@ class Layout
{ mH = h; }
/**
- * Sets the padding between cells.
+ * Sets the spacing between cells.
*/
- void setPadding(int p)
- { mPadding = p; }
+ void setSpacing(int p)
+ { mSpacing = p; }
+
+ /**
+ * Sets the margin around the layout.
+ */
+ void setMargin(int m)
+ { mMargin = m; }
/**
* Places a widget in a given cell.
@@ -134,9 +153,10 @@ class Layout
Cell &place(gcn::Widget *, int x, int y, int w, int h);
/**
- * Computes the positions of all the widgets.
+ * Computes the positions of all the widgets. Returns the size of the
+ * layout.
*/
- void reflow();
+ void reflow(int &nW, int &nH);
/**
* Reflows the current layout. Then starts a new layout just below with
@@ -154,7 +174,8 @@ class Layout
/**
* Gets the position and size of a widget along a given axis
*/
- void align(int &pos, int &size, int dim, Cell &cell, int *sizes);
+ void align(int &pos, int &size, int dim,
+ Cell const &cell, int *sizes) const;
/**
* Ensures the private vectors are large enough.
@@ -164,12 +185,12 @@ class Layout
/**
* Gets the column/row sizes along a given axis.
*/
- std::vector< int > compute(int dim, int upp);
+ std::vector< int > compute(int dim, int upp) const;
std::vector< int > mSizes[2];
std::vector< std::vector < Cell > > mCells;
- int mPadding;
+ int mSpacing, mMargin;
int mX, mY, mW, mH, mNW, mNH;
};