85 lines
2.6 KiB
Mathematica
85 lines
2.6 KiB
Mathematica
|
// ----------------------------------------------------------------------
|
||
|
// 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();
|
||
|
}
|