home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 April / PCWorld_2003-04_cd.bin / Software / Topware / winamp / winamp3_0-full.exe / Lib / centerlayer.m next >
Text File  |  2002-05-30  |  2KB  |  48 lines

  1. // ----------------------------------------------------------------------
  2. // centerlayer.m
  3. // ----------------------------------------------------------------------
  4. // by Brennan
  5. // Use like this :
  6. // #define CENTER_VAR MyVar
  7. // Global MyVar;
  8. // #include "centerlayer.h"
  9. // Layout l = getContainer("containername").getLayout("layoutname");
  10. // MyVar = l.getObject("something");
  11. // _MyVarInit(Layer MyVar, Layout l, int centerx, int centery);
  12. // ----------------------------------------------------------------------
  13.  
  14. Global Layer _##CENTER_VAR##Layer;
  15. Global Layout _##CENTER_VAR##Layout;    // parent Layout to center in
  16. Global Int _##CENTER_VAR##centerx;    // should we center x?
  17. Global Int _##CENTER_VAR##centery;    // should we center y?
  18.  
  19. Function _##CENTER_VAR##Init(Layer _layer, Layout parentLayout, int centerx, int centery);
  20. Function _##CENTER_VAR##handleResize();
  21.  
  22. _##CENTER_VAR##Init(Layer _layer, Layout parentLayout, int centerx, int centery) {
  23.   _##CENTER_VAR##Layer = _layer;
  24.   _##CENTER_VAR##Layout = parentLayout;
  25.   _##CENTER_VAR##centerx = centerx;
  26.   _##CENTER_VAR##centery = centery;
  27.   _##CENTER_VAR##handleResize();
  28. }
  29.  
  30. _##CENTER_VAR##handleResize() {
  31.   int myw = _##CENTER_VAR##Layout.getWidth();
  32.   int myh = _##CENTER_VAR##Layout.getHeight();
  33.  
  34.   int layerw = _##CENTER_VAR##Layer.getWidth();
  35.   int layerh = _##CENTER_VAR##Layer.getHeight();
  36.  
  37.   int x = _##CENTER_VAR##Layer.getLeft();
  38.   int y = _##CENTER_VAR##Layer.getTop();
  39.   if (_##CENTER_VAR##centerx) x = (myw - layerw)/2;
  40.   if (_##CENTER_VAR##centery) y = (myh - layerh)/2;
  41.  
  42.   _##CENTER_VAR##Layer.resize(x, y, layerw, layerh);
  43. }
  44.  
  45. _##CENTER_VAR##Layout.onResize(int x, int y, int w, int h) {
  46.   _##CENTER_VAR##handleResize();
  47. }
  48.