aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/Lib/com/centerlayer.m
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/Lib/com/centerlayer.m')
-rw-r--r--Src/Wasabi/Lib/com/centerlayer.m84
1 files changed, 84 insertions, 0 deletions
diff --git a/Src/Wasabi/Lib/com/centerlayer.m b/Src/Wasabi/Lib/com/centerlayer.m
new file mode 100644
index 00000000..590f667c
--- /dev/null
+++ b/Src/Wasabi/Lib/com/centerlayer.m
@@ -0,0 +1,84 @@
+// ----------------------------------------------------------------------
+// centerlayer.m
+// ----------------------------------------------------------------------
+// by Brennan
+// Use like this :
+// #define CENTER_VAR MyVar
+// Global MyVar;
+// #include "centerlayer.h"
+// Group l = ;
+// MyVar = l.getObject("something");
+// _MyVarInit(Layer MyVar, Group l, int centerx, int centery);
+// ----------------------------------------------------------------------
+
+Global GuiObject _##CENTER_VAR##Layer;
+Global Group _##CENTER_VAR##Group; // parent Layout to center in
+Global Int _##CENTER_VAR##centerx; // should we center x?
+Global Int _##CENTER_VAR##centery; // should we center y?
+Global Int _##CENTER_VAR##addx = 0;
+Global Int _##CENTER_VAR##addy = 0;
+Global Int _##CENTER_VAR##addh = 0;
+Global Int _##CENTER_VAR##addw = 0;
+
+Function _##CENTER_VAR##Init(GuiObject _layer, Group parentLayout, int centerx, int centery);
+Function _##CENTER_VAR##handleResize();
+Function _##CENTER_VAR##setXSpace(int val);
+Function _##CENTER_VAR##setYSpace(int val);
+Function _##CENTER_VAR##setWSpace(int val);
+Function _##CENTER_VAR##setHSpace(int val);
+Function _##CENTER_VAR##sizeError(boolean iserror);
+
+_##CENTER_VAR##Init(GuiObject _layer, Group parentLayout, int centerx, int centery) {
+ _##CENTER_VAR##Layer = _layer;
+ _##CENTER_VAR##Group = parentLayout;
+ _##CENTER_VAR##centerx = centerx;
+ _##CENTER_VAR##centery = centery;
+ _##CENTER_VAR##handleResize();
+}
+
+_##CENTER_VAR##setXSpace(int val)
+{
+ _##CENTER_VAR##addx = val;
+}
+
+_##CENTER_VAR##setYSpace(int val)
+{
+ _##CENTER_VAR##addy = val;
+}
+_##CENTER_VAR##setHSpace(int val)
+{
+ _##CENTER_VAR##addh = val;
+}
+_##CENTER_VAR##setWSpace(int val)
+{
+ _##CENTER_VAR##addw = val;
+}
+
+_##CENTER_VAR##handleResize() {
+ int myw = _##CENTER_VAR##Group.getWidth();
+ int myh = _##CENTER_VAR##Group.getHeight();
+
+ int layerw = _##CENTER_VAR##Layer.getWidth();
+ int layerh = _##CENTER_VAR##Layer.getHeight();
+
+ int x = _##CENTER_VAR##Layer.getLeft();
+ int y = _##CENTER_VAR##Layer.getTop();
+
+ if (_##CENTER_VAR##centerx) _##CENTER_VAR##Layer.setXmlParam("x", integerToString((myw - layerw)/2 + _##CENTER_VAR##addx + _##CENTER_VAR##addw));
+ if (_##CENTER_VAR##centery) _##CENTER_VAR##Layer.setXmlParam("y", integerToString((myh - layerh)/2 + _##CENTER_VAR##addy + _##CENTER_VAR##addh));
+
+ if (myw < layerw + 2*_##CENTER_VAR##addx - _##CENTER_VAR##addw || myh < layerh + _##CENTER_VAR##addy - _##CENTER_VAR##addh)
+ {
+ _##CENTER_VAR##sizeError(TRUE);
+ }
+ else
+ {
+ _##CENTER_VAR##sizeError(FALSE);
+ }
+}
+
+_##CENTER_VAR##sizeError(boolean iserror) {}
+
+_##CENTER_VAR##Group.onResize(int x, int y, int w, int h) {
+ _##CENTER_VAR##handleResize();
+}