diff options
Diffstat (limited to 'Src/Wasabi/Lib/com/centerlayer.m')
-rw-r--r-- | Src/Wasabi/Lib/com/centerlayer.m | 84 |
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(); +} |