Show
Ignore:
Timestamp:
01/10/09 01:18:19 (6 years ago)
Author:
lieutar
Message:

refactored ...

Location:
lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite
Files:
7 added
1 removed
21 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Abstract.js

    r28056 r28224  
    1717  name: this.$meta.NAME, 
    1818  abstractClass: true, 
    19   abstractMethods: ['initElement'] 
     19  abstractMethods: ['initElement', 
     20                    'removeNode', 
     21                    'appearNode'] 
    2022  }, 
    2123  function(){ 
     
    4345    this.initSprite = function(opt){} 
    4446 
    45     this.dispose = function(){} 
     47    this.dispose = function(){ 
     48      this.dispatchEvent({type: 'dispose', source: this}); 
     49      this.removeNode(); 
     50    } 
    4651 
    4752    this.dispatchEvent = function(e, ev){ 
     
    8388    this.moveTo            = function(){}; 
    8489    this.resizeTo          = function(){}; 
    85     this.focus             = function(){ this.__wm.registerFocused(this); }; 
    86     this.blur              = function(){ this.__wm.dropFocused(this); }; 
     90    this.focus             = function(){ 
     91      this.__wm.registerFocused(this); 
     92      this.dispatchEvent({type: 'focus', source: this}); 
     93    }; 
     94    this.blur              = function(){ 
     95      this.__wm.dropFocused(this); 
     96      this.dispatchEvent({type: 'blur', source: this}); 
     97    }; 
    8798    this.hasLayers         = function(){ return false; } 
    8899    this.adjustLayers      = function(){} 
     
    124135    this.getBelongingLayerName = function(){  return 'sprite'; } 
    125136    this.getLayerByName        = function(name){ return null;  } 
     137    this.getDisplay            = function(){ return 'block'; } 
    126138 
    127139    this.setRectangle     = function(){}; 
    128140    this.getOrigin        = function(){ return {x:0, y:0}; } 
    129141    this.getRectangle     = function(){ return null; }; 
     142 
     143    this.getRawSize       = function(){ return {width: null, height: null} }; 
    130144    this.getSpecifiedSize = function(){ return {width: null, height: null} }; 
    131145    this.getMaximumSize   = function(){ return {width: null, height: null} }; 
    132146    this.getPreferredSize = function(){ return {width: null, height: null} }; 
    133147    this.getMinimumSize   = function(){ return {width: null, height: null} }; 
    134     this.specifySize      = function(){}; 
     148 
     149    this.checkResized             = function(){ return false; } 
     150    this.checkStaticLayerResized  = function(){ return this.checkResized(); } 
     151 
     152    this.setArea     = function(){}; 
     153    this.getAreaExp  = function(){ return {x: 0, y: 0, 
     154                                           width: null, height: null, 
     155                                           align: 'top', valign: 'left'} }; 
    135156    this.setMinimumSize   = function(){}; 
    136157    this.setMaximumSize   = function(){}; 
     
    144165    this.getChildrenCount = function(){ return 0; }; 
    145166    this.eachChildren     = function(){}; 
    146     this.removeChild      = function(s){ s.hide(); }; 
     167    this.removeChild      = function(s){ }; 
    147168 
    148169    this.getPosition      = function(){ return 'absolute'; }; 
    149170    this.getSpriteMan     = function(){ return this.getWM().getSpriteMan(); }; 
     171 
     172    this.getWindowRectangle = function(){ 
     173      return this.__wm.getWindowRectangle(); 
     174    }; 
    150175 
    151176    this.getScrolledPosition = function(opt){ 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Arrangeable.js

    r27653 r28224  
    4141    }; 
    4242 
     43 
    4344    this.marginChanged = function(ev){}; 
    4445    this.frameChanged  = function(ev){ this.arrange(); }; 
     
    4849 
    4950    this.withLockRearrange = function(action){ 
    50       if( this.__lock ) return; 
     51      if( this.__lock ){ 
     52        return; 
     53      } 
    5154      this.__lock = true; 
    5255      action(); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Bordered.js

    r27841 r28224  
    66          'KaeL.DTK.Area.ManPlug.Border', 
    77          'KaeL.DTK.Effect.makeResizable', 
    8           'KaeL.Commons.Util.AGENT']} , 
     8          'KaeL.Commons.Util.AGENT'] 
     9} , 
    910function(Layout, 
    1011         BorderAreaMan, 
     
    5152      if(children[place]){ 
    5253        delete this.__childOpt[children[place].__ID__]; 
    53         this.removeChild(children[type]); 
     54        this.removeChild(children[place]); 
    5455      } 
    5556      this.__childOpt[child.__ID__] = opt; 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Container.js

    r27653 r28224  
    5656    } 
    5757 
    58     this.initSprite = function(opt){ 
    59       SUPER.initSprite.apply( this, [opt] ); 
    60     }; 
    61  
    6258    this.dispose = function(){ 
    6359      SUPER.dispose.apply(this,[]); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/Container.js

    r27841 r28224  
    6363        oldContainer.removeChild( o ); 
    6464      }else{ 
    65         o.hide(); 
     65        o.removeNode(); 
    6666      } 
    6767 
    6868      o.setContainer(owner) 
    69       o.show(); 
     69      o.appearNode(); 
     70 
     71      if(o.getBelongingLayerName() == 'static'){ 
     72        owner.checkStaticLayerResized(); 
     73      } 
    7074 
    7175      this.__children.add( o ); 
     
    9599 
    96100      this.__children.remove(child); 
    97       child.hide(); 
     101      child.removeNode(); 
    98102      child.setContainer(null); 
    99103      this.__owner.dispatchEvent({type: 'removechild', 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/Content.js

    r28056 r28224  
    44 VERSION: '0.01', 
    55 USE: ['KaeL.Commons.Class.gen', 
    6        'KaeL.DTK.CONSTANTS', 
    7        'KaeL.Commons.Event.Listener'] 
     6       'KaeL.DTK.CONSTANTS'] 
    87}, 
    98function(classGen, 
    10          CONST, 
    11          Listener){ 
     9         CONST){ 
    1210 
    1311  var LAYERS = CONST.LAYERS.DIC; 
     
    1917      this.__owner              = owner; 
    2018      this.__container          = null; 
     19      this.__hidden             = null; 
    2120      this.__spriteMan          = owner.getSpriteMan(); 
    22       this.__shown              = false; 
     21      this.__availableNode      = false; 
    2322      this.__belongingLayerName = 'sprite'; 
    2423    }; 
     
    3433                                  source: this.__owner, 
    3534                                  container: newContainer}); 
    36  
    37       this.__container         = newContainer; 
     35      this.__container = newContainer; 
    3836      return null; 
    3937    }; 
    40  
    4138 
    4239    this.getBelongingLayerName = function(){ 
     
    4946        throw new Error('unknown layer name:' + name); 
    5047      } 
    51       this.__owner.hide(); 
     48      this.__owner.removeNode(); 
    5249      this.__belongingLayerName = name; 
    53       this.__owner.show(); 
     50      this.__owner.appearNode(); 
    5451    }; 
    5552 
     
    7673 
    7774    this.getParentElement = function(){ 
    78       var c = this.__owner.getContainer(); 
    79       return c.getLayerByName(this.__owner.getBelongingLayerName()); 
     75      var owner = this.__owner; 
     76      var c  = owner.getContainer(); 
     77      return c.getLayerByName(owner.getBelongingLayerName()); 
    8078    }; 
     79 
     80 
    8181 
    8282    /* 
    8383 
    84 =item show():void 
     84=item show():void,  hide():void 
    8585 
    8686=cut 
     
    8888     */ 
    8989 
    90     this.show = function(opt){ 
     90    this.visible = function(){ return ( this.__availableNode && 
     91                                        !this.__hidden ); } 
     92 
     93    this.show = function(){ 
     94      this.appearNode(); 
     95      if(false === this.__hidden) return; 
     96      var owner = this.__owner; 
     97      this.__hidden = false; 
     98      owner.moveTo(null, null, {suppressEvents: true, 
     99                                suppressModification: true, 
     100                                comment: 'show'}); 
     101      owner.dispatchEvent( {type:'show', source: owner}); 
     102    }; 
     103 
     104    this.hide = function(){ 
     105      if(true === this.__hidden) return; 
     106      var owner = this.__owner; 
     107      owner.moveTo(-65000, -65000, {suppressEvents: true, 
     108                                    suppressModification: true}); 
     109      this.__hidden = true; 
     110      owner.dispatchEvent({type:'hide', source: owner}); 
     111    }; 
     112 
     113 
     114    this.appearNode = function(opt){ 
    91115      opt = opt || {}; 
     116      if( this.__availableNode ) return; 
    92117      var elem   = this.__owner.getElement(); 
    93118      var parent = this.__owner.getParentElement(); 
    94       if( this.__shown ) return; 
    95119      parent.appendChild( elem ); 
    96       this.__shown = true; 
     120      this.__availableNode = true; 
    97121      if(opt.suppressEvents) return; 
    98       this.__owner.dispatchEvent( {type:'show', source: this.__owner}); 
    99122    }; 
    100123 
    101     /* 
    102124 
    103 =item hide():void 
    104  
    105 =cut 
    106  
    107      */ 
    108  
    109     this.hide = function(opt){ 
     125    this.removeNode = function(opt){ 
    110126      opt = opt || {}; 
    111       var elem = this.__owner.getElement(); 
    112       var parent = this.__owner.getParentElement(); 
    113       if( !this.__shown ) return; 
    114       this.__shown = false; 
     127      var owner = this.__owner; 
     128      var elem = owner.getElement(); 
     129      var parent = owner.getParentElement(); 
     130      if( !this.__availableNode ) return; 
     131      this.__availableNode = false; 
    115132      parent.removeChild( elem ); 
    116133      if(opt.suppressEvents) return; 
    117       this.__owner.dispatchEvent( {type:'hide', source: this.__owner}); 
     134      owner.dispatchEvent({type:'hide', source: owner}); 
    118135    }; 
    119  
    120     this.visible = function(){ 
    121       return this.__shown; 
    122     } 
    123136 
    124137 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/ContentsMan.js

    r27841 r28224  
    1818      owner.getLayerByName('static').innerHTML = html;  
    1919      if(opt.suppressEvents) return; 
    20       owner.checkResized(); 
     20      owner.checkStaticLayerResized(); 
    2121    }; 
    2222 
     
    2929      elem.normalize(); 
    3030      if(opt.suppressEvents) return; 
    31       owner.checkResized(); 
     31      owner.checkStaticLayerResized(); 
    3232    }; 
    3333 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/EventMan.js

    r27653 r28224  
    99      'KaeL.DHTML.Event.addListener', 
    1010      'KaeL.DHTML.Event.removeListener', 
    11       'KaeL.DHTML.Event.canceler', 
    1211      'KaeL.Commons.Object.delegate' 
    1312      ] 
     
    1817         addEventListener, 
    1918         removeListener, 
    20          canceler, 
    2119         delegate){ 
     20 
     21  var canceler = function(e){ 
     22    e.stopPropagation(); 
     23    e.preventDefault(); 
     24  } 
     25 
    2226 
    2327  return classGen( this.$meta.NAME, function(){ 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/GeomMan.js

    r28056 r28224  
    1212        'KaeL.DHTML.Elem.getRectangle', 
    1313        'KaeL.Commons.Util.AGENT', 
    14         'KaeL.DTK.Geom.Rectangle' 
     14        'KaeL.DTK.Geom.Rectangle', 
     15        'KaeL.Commons.Event.Listener' 
     16        ,'KaeL.Commons.Util.getStacktrace' 
    1517  ] 
    1618}, 
     
    2426         getElementRectangle, 
    2527         AGENT, 
    26          Rectangle){ 
    27  
    28   return classGen(function(){ 
     28         Rectangle, 
     29         Listener 
     30         ,getStacktrace 
     31         ){ 
     32 
     33  return classGen(this.$meta.NAME, function(){ 
    2934    this.initialize = function(opt){ 
    3035      var owner = opt.owner; 
    31       this.__owner = owner; 
    32  
     36      this.__owner             = owner; 
    3337      this.__area              = { align: 'left', valign: 'top', 
    3438                                   width: null, 
    3539                                   height: null, 
    3640                                   x: null, y: null }; 
    37  
    3841      this.__minimumSize       = { width: null, height: null }; 
    3942      this.__maximimSize       = { width: null, height: null }; 
    40       this.__specifiedSize     = { width: null, height: null }; 
    41       this.__previousRectangle = { rectangle: null }; 
     43      this.__previousRectangle = { width: -1, height: -1 }; 
    4244      this.__specifiedPosition = { x: null, y: null }; 
     45      this.__resizedTimer      = null; 
     46      this.__listener          = null; 
     47      owner.addEventListener('setcontainer', function(ev){ 
     48        if(this.__listener) this.__listener.removeAllListeners(); 
     49        var lsnr = new Listener({dispatcher: ev.source.getContainer()}); 
     50        lsnr.addEventListener('resize', function(){ owner.adjustByArea(); }); 
     51      }); 
    4352    } 
    4453 
     
    5766      this.__previousRectangle = current; 
    5867      if( pre.width  == current.width && 
    59           pre.height == current.height ) return false; 
    60       var self = this; 
    61       setTimeout(function(){ 
    62         self.__owner.dispatchEvent('resize', { type: 'resize', 
    63                                                source: self.__owner, 
    64                                                prerect: pre}); 
    65       }, 0); 
     68          pre.height == current.height ){ 
     69        return false; 
     70      } 
     71 
     72      this.__generation++; 
     73      var generation = this.__generation; 
     74      var self  = this; 
     75      var owner = this._owner; 
     76      self.__owner.dispatchEvent('resize', { type: 'resize', 
     77                                           source: owner, 
     78                                          prerect: pre}); 
    6679      return true; 
    6780    }; 
     
    6982    this.getOrigin = function(){ return {x:0, y:0}; } 
    7083 
    71  
    72  
    73     /* 
    74  
    75  
    76      */ 
    77     this.specifySize = function(w, h, opt){ 
    78       var size = {  width: isNaN(w) ? null : w, 
    79                    height: isNaN(h) ? null : h} 
    80       this.__specifiedSize = size; 
    81       this.__owner.dispatchEvent({type: 'sizespecified', 
    82                                   size: size}); 
    83  
    84       this.resizeTo(w, h, opt); 
    85     }; 
     84    //////////////////////////////////////////////////////////// 
    8685 
    8786    /* 
    8887     */ 
    8988    this.innerSizeToOuterSize = function(size){ 
    90       var cs    = this.__owner.getComputedSizes(); 
    91       var width =  size.width; 
    92       var height = size.height; 
    93       if(width !== null && !isNaN(width)){ 
    94         width += ( cs.borderLeftWidth + cs.borderRightWidth + 
    95                    cs.paddingLeft + cs.paddingRight ); 
    96       } 
    97  
    98       if(height !== null && !isNaN(height)){ 
    99         height +=  ( cs.borderTopWidth + cs.borderBottomWidth + 
    100                      cs.paddingTop     + cs.paddingBottom ); 
    101       } 
    102  
    103       return {width: isNaN(width) ? null : width,  
    104               height: isNaN(height) ? null : height}; 
    105     }; 
    106  
    107     this.outerSizeToInnerSize = function(size){ 
    108       var cs    = this.__owner.getComputedSizes(); 
    109       var width =  size.width; 
    110       var height = size.height; 
    111       if(width !== null && !isNaN(width)){ 
    112         width -= ( cs.borderLeftWidth + cs.borderRightWidth + 
    113                    cs.paddingLeft + cs.paddingRight ); 
    114       } 
    115  
    116       if(height !== null && !isNaN(height)){ 
    117         height -=  ( cs.borderTopWidth + cs.borderBottomWidth + 
    118                      cs.paddingTop     + cs.paddingBottom ); 
    119       } 
    120  
    121       return {width: isNaN(width) ? null : width,  
    122               height: isNaN(height) ? null : height}; 
    123     }; 
     89      var s = {x: null, y: null, width: size.width, height:size.height}; 
     90      this._filterInputRectangle(s, {inner: true, 
     91                                     suppressModification: true}); 
     92      return {width: s.width, height: s.height}; 
     93    }; 
     94 
    12495 
    12596 
     
    12899      var w = size.width; 
    129100      var h = size.height; 
    130       var ret  = {width: isNaN(w) ? null: w, 
    131                   height: isNaN(h) ? null: h}; 
    132       if(opt.inner){ 
    133         return this.outerSizeToInnerSize(ret); 
    134       } else { 
    135         return ret; 
    136       } 
     101      var rect = this._filterOutputRectangle({width: isNaN(w) ? null: w, 
     102                                             height: isNaN(h) ? null: h}, 
     103                                             opt); 
     104      return {width: rect.width, 
     105              height: rect.height}; 
    137106    } 
    138107 
     
    144113    }; 
    145114 
    146  
    147     this.setMinimumSize = function(w,h){ 
     115    //////////////////////////////////////////////////////////// 
     116    this.setArea = function(area, opt){ 
     117      opt = opt || {}; 
     118      var a = this.__area; 
     119      if('width'  in area) a.width  = area.width; 
     120      if('height' in area) a.height = area.height; 
     121      if('valign' in area) a.valign = area.valign; 
     122      if('align'  in area) a.align  = area.align; 
     123      if('x'      in area) a.x      = area.x || 0; 
     124      if('y'      in area) a.y      = area.y || 0; 
     125      opt.suppressModificationAboutArea = true; 
     126      if(!opt.suppressAdjusting) this.adjustByArea( opt ); 
     127    }; 
     128 
     129    this.getAreaExp = function(){ 
     130      var ret = {}; 
     131      var a = this.__area; 
     132      for(var f in a) ret[f] = a[f]; 
     133      return ret; 
     134    } 
     135 
     136    this.setMinimumSize = function(w,h, opt){ 
    148137      var ms = this.__minimumSize; 
    149       if(!isNaN(w) && w !== null) ms.width = w; 
     138      if(!isNaN(w) && w !== null) ms.width  = w; 
    150139      if(!isNaN(h) && h !== null) ms.height = h; 
    151     } 
    152  
    153     this.setMaximumSize = function(w, h){ 
     140      var r = this.getRectangle(); 
     141      var W = null; 
     142      var H = null; 
     143      if(r.width < w) W = w; 
     144      if(r.height < h) H = h; 
     145      this.resizeTo(W, H, opt); 
     146    } 
     147 
     148    this.setMaximumSize = function(w, h, opt){ 
    154149      var ms = this.__maximumSize; 
    155150      if(!isNaN(w) && w !== null) ms.width = w; 
    156151      if(!isNaN(h) && h !== null) ms.height = h; 
    157     } 
    158  
    159     this.getMinimumSize = sizegetter(function(){ return this.__minimumSize }); 
     152      var r = this.getRectangle(); 
     153      var W = null; 
     154      var H = null; 
     155      if(r.width > w) W = w; 
     156      if(r.height > h) H = h; 
     157      this.resizeTo(W, H, opt); 
     158    } 
    160159 
    161160    this.getPreferredSize = sizegetter(function(){ 
     
    184183      return {width: w, height: h}; 
    185184    }); 
    186     this.getMaximumSize   = sizegetter(function(){ return this.__maximumSize }); 
    187     this.getSpecifiedSize = sizegetter(function(){ return this.__specifiedSize}); 
     185 
     186    this.getMinimumSize   = 
     187      sizegetter(function(){ 
     188        var ss = this.getSpecifiedSize(); 
     189        var ms = this.__minimumSize; 
     190        return {width:   ss.width !== null ? ss.width : ms.width, 
     191                height: ss.height !== null ? ss.height : ms.height } 
     192      }); 
     193 
     194    this.getMaximumSize   = 
     195      sizegetter(function(){ 
     196        var ss = this.getSpecifiedSize(); 
     197        var ms = this.__maximumSize; 
     198        return {width:   ss.width !== null ? ss.width : ms.width, 
     199                height: ss.height !== null ? ss.height : ms.height } 
     200 
     201      }); 
     202 
     203    this.getContainerRectangle = function(){ 
     204      var owner = this.__owner; 
     205      return ( owner.getPosition() == 'fixed' 
     206               ? owner.getContainer().getWindowRectangle() 
     207               : owner.getContainer().getRectangle() ); 
     208    } 
     209 
     210    this.getSpecifiedSize = sizegetter(function(){ 
     211      var owner = this.__owner; 
     212      var crect = this.getContainerRectangle(); 
     213      var rect  = crect.getRectangle(owner.getAreaExp(), {nullSizeIs:null}); 
     214      return rect; 
     215    }); 
    188216 
    189217    this.dropRawWidth = function(opt){ 
     
    210238 
    211239 
     240 
     241    //////////////////////////////////////////////////////////// 
     242 
     243 
     244 
     245 
    212246    /* 
    213247 
    214 =item resizeTo( w, h ):void 
     248=item getRectangle( option ) 
    215249 
    216250=cut 
     
    218252     */ 
    219253 
    220     this._preResize = function(w, h, opt){ 
    221       var resize = false; 
    222       var ss = this.__specifiedSize; 
    223  
    224       var ignoreSpecification = opt.ignoreSpecification; 
    225       delete opt.ignoreSpecification; 
    226  
    227       if(w !== null && !isNaN(w)){ 
    228         resize = true; 
    229         if(!ignoreSpecification && ss.width  !== null && !isNaN(ss.width)){ 
    230           ss.width = w; 
    231         } 
    232       } 
    233  
    234       if( h !== null && !isNaN(h)){ 
    235         resize = true; 
    236         if(!ignoreSpecification && ss.height !== null && !isNaN(ss.height)){ 
    237           ss.height = h; 
    238         } 
    239       } 
    240  
    241       return resize; 
    242     } 
    243  
    244     this._postResize = function(w, h, opt){ 
    245       if(!opt.suppressEvents) this.checkResized(); 
    246     }; 
    247  
    248     this.resizeTo = function( w, h, opt ){ 
    249       opt = opt || {}; 
    250       var preresize = this._preResize(w, h, opt); 
    251       var owner     = this.__owner; 
    252       if(!preresize) return; 
    253       setElementSize(opt, owner.getElement(), w, h); 
    254       owner.adjustLayers(); 
    255       this._postResize(w, h, opt); 
    256     }; 
     254    this.getRectangle = function( opt ){ 
     255      opt = opt || {}; 
     256      var rect = getElementRectangle({local: opt.local ? true : false}, 
     257                                       this.__owner.getElement() ); 
     258      return this._filterOutputRectangle(rect, opt); 
     259    }; 
     260 
     261 
    257262 
    258263    //////////////////////////////////////////////////////////// 
    259     /* 
    260  
    261 =item moveTo( x, y, z):void 
    262  
    263 =cut 
    264  
    265      */ 
    266  
    267  
    268     this.moveTo = function( x, y, z, opt ){ 
    269       opt = opt || {}; 
    270       setElementPosition(opt, this.__owner.getElement(), x, y); 
    271       if( !isNaN(z) ) { 
    272         this.__owner.getElement().style.zIndex = z; 
    273       } 
    274  
    275       if(!opt.suppressEvents){ 
    276         this.__owner.dispatchEvent('move', {type:'move', 
    277                                             source: this.__owner}); 
    278       } 
    279     }; 
    280  
    281  
    282  
    283     /* 
    284  
    285 =item getRectangle( option ) 
    286  
    287 =cut 
    288  
    289      */ 
    290  
    291     this.rectangle = function(){ 
    292       return this.getRectangle.apply(this, arguments); 
    293     } 
    294  
    295     this.getRectangle = function( opt ){ 
    296       opt = opt || {}; 
    297       var rect = getElementRectangle( opt,  this.__owner.getElement() ); 
     264    this._filterOutputRectangle = function(rect, opt){ 
     265 
     266      opt = opt || {}; 
     267 
     268      var sp   = this.__specifiedPosition; 
     269      var owner = this.__owner; 
     270 
     271      if(!owner.visible()){ 
     272        rect.x = sp.x; 
     273        rect.y = sp.y; 
     274 
     275        if(!opt.local){ 
     276          var con = owner.getContainer(); 
     277          if(con){ 
     278            var conrect = con.getRectangle(); 
     279            rect.x += conrect.x; 
     280            rect.y += conrect.y; 
     281          } 
     282        } 
     283      } 
     284 
    298285      switch( opt.position ){ 
    299286      case 'fixed': 
     
    312299        break; 
    313300      } 
     301 
     302      var cs = null; 
     303      if(opt.margin){ 
     304 
     305         cs      = owner.getComputedSizes(); 
     306         if(!isNaN(rect.x) && rect.x !== null) rect.x -= cs.marginLeft; 
     307         if(!isNaN(rect.y) && rect.y !== null) rect.y -= cs.martinTop; 
     308         if(rect.width !== null && !isNaN(rect.width)){ 
     309           rect.width +=  cs.marginLeft + cs.marginRight; 
     310         } 
     311         if(rect.height !== null && !isNaN(rect.height)){ 
     312           rect.height -=  cs.marginTop + cs.marginBottom ; 
     313         } 
     314 
     315      } else if(opt.inborder){ 
     316 
     317         cs         = owner.getComputedSizes(); 
     318         if(!isNaN(rect.x) && rect.x !== null) rect.x += cs.borderLeftWidth; 
     319         if(!isNaN(rect.y) && rect.y !== null) rect.y += cs.borderTopWidth; 
     320         if(rect.width !== null && !isNaN(rect.width)){ 
     321           rect.width -= ( cs.borderLeftWidth + cs.borderRightWidth ); 
     322         } 
     323         if(rect.height !== null && !isNaN(rect.height)){ 
     324           rect.height -=  ( cs.borderTopWidth + cs.borderBottomWidth ); 
     325         } 
     326 
     327      } else if(opt.inner){ 
     328 
     329        cs         = owner.getComputedSizes(); 
     330        if(!isNaN(rect.x) && rect.x !== null){ 
     331          rect.x += cs.borderLeftWidth + cs.paddingLeft; 
     332        } 
     333        if(!isNaN(rect.y) && rect.y !== null){ 
     334          rect.y += cs.borderTopWidth  + cs.paddingTop; 
     335        } 
     336        if(rect.width !== null && !isNaN(rect.width)){ 
     337          rect.width -= ( cs.borderLeftWidth + cs.borderRightWidth + 
     338                          cs.paddingLeft + cs.paddingRight ); 
     339        } 
     340        if(rect.height !== null && !isNaN(rect.height)){ 
     341          rect.height -=  ( cs.borderTopWidth + cs.borderBottomWidth + 
     342                            cs.paddingTop     + cs.paddingBottom ); 
     343        } 
     344      } 
     345 
    314346      return new Rectangle(rect); 
    315347    }; 
    316348 
    317     this.setRectangle = function( rect , opt ){ 
    318       opt = opt || {}; 
    319       var owner = this.__owner; 
     349    //////////////////////////////////////////////////////////// 
     350 
     351    this._filterInputRectangle = function(rect,opt){ 
     352 
     353      opt = opt ||{}; 
     354      var sp    = this.__specifiedPosition; 
     355      var owner = this.__owner; 
     356      var cs    = null; 
     357     
     358      if(rect.x === null || rect.x === undefined) rect.x = NaN; 
     359      if(rect.y === null || rect.y === undefined) rect.y = NaN; 
     360      if(rect.width === null || rect.width === undefined) rect.width = NaN; 
     361      if(rect.height === null || rect.height === undefined) rect.height = NaN; 
     362      if(opt.margin){ 
     363 
     364        cs = owner.getComputedSizes(); 
     365        rect.x      += cs.marginLeft; 
     366        rect.y      += cs.marginTop; 
     367        rect.width  -= cs.marginLeft + cs.marginRight; 
     368        rect.height -= cs.marginTop + cs.marginBottom; 
     369 
     370      } else if(opt.inborder){ 
     371 
     372        cs = owner.getComputedSizes(); 
     373        rect.x      -= cs.borderLeftWidth; 
     374        rect.y      -= cs.borderTopWidth; 
     375        rect.width  += cs.borderLeftWidth + cs.borderRightWidth; 
     376        rect.height += cs.borderTopWidth  + cs.borderBottomWidth; 
     377 
     378      } else if(opt.inner){ 
     379 
     380        cs = owner.getComputedSizes(); 
     381        rect.x -= cs.borderLeftWidth + cs.paddingLeft; 
     382        rect.y -= cs.borderTopWidth  + cs.paddingTop; 
     383        rect.width  += ( cs.borderLeftWidth + cs.borderRightWidth + 
     384                        cs.paddingLeft + cs.paddingRight); 
     385        rect.height += ( cs.borderTopWidth  + cs.borderBottomWidth + 
     386                        cs.paddingTop + cs.paddingBottom ); 
     387 
     388      } 
     389 
    320390      if('position' in opt){ 
    321391        switch(opt.position){ 
     392 
    322393        case 'fixed': 
    323394          if(owner.getPosition() == 'absolute'){ 
     
    327398          } 
    328399          break; 
     400 
    329401        case 'absolute': 
    330402          if(owner.getPosition() == 'fixed'){ 
     
    337409      } 
    338410 
    339       var prr = this._preResize(rect.width, rect.height, opt); 
     411      delete opt.position; 
     412      delete opt.margin; 
     413      delete opt.inborder; 
     414      delete opt.inner; 
     415 
     416      if(isNaN(rect.x) || rect.x == null) rect.x = sp.x; 
     417      if(isNaN(rect.y) || rect.y == null) rect.y = sp.y; 
     418      if(isNaN(rect.width)) rect.width = null; 
     419      if(isNaN(rect.height)) rect.height = null; 
     420 
     421      if(!opt.suppressModification){ 
     422        sp.x  = rect.x; 
     423        sp.y  = rect.y; 
     424      } 
     425 
     426      if(!owner.visible()){ 
     427        rect.x = -65000; 
     428        rect.y = -65000; 
     429      } 
     430    }; 
     431 
     432    //////////////////////////////////////////////////////////// 
     433    this._moved = function(opt){ 
     434 
     435      if( opt.suppressModificationAboutArea || 
     436          opt.suppressModification ){ 
     437            return; 
     438          } 
     439 
     440      var owner   = this.__owner; 
     441      var rect    = owner.getRectangle({local: true}); 
     442      var aexp    = owner.getAreaExp(); 
     443 
     444      var newArea = {x: aexp.x, y:aexp.y}; 
     445      var cr      = null; 
     446 
     447      switch(aexp.align){ 
     448      case 'center': 
     449        cr = cr || this.getContainerRectangle(); 
     450        newArea.x = rect.x - (cr.width / 2 - rect.width / 2); 
     451        break; 
     452 
     453      case 'right': 
     454        cr = cr || this.getContainerRectangle(); 
     455        newArea.x = cr.width - rect.width - rect.x; 
     456        break; 
     457 
     458      default: 
     459        newArea.x = rect.x; 
     460      } 
     461 
     462      switch(aexp.valign){ 
     463        case 'middle': 
     464        cr = cr || this.getContainerRectangle(); 
     465        newArea.y = rect.y -  (cr.height / 2 - rect.height / 2); 
     466        break; 
     467 
     468        case 'bottom': 
     469        cr = cr || this.getContainerRectangle(); 
     470        newArea.y = cr.height - rect.height - rect.y; 
     471        break; 
     472 
     473        default: 
     474        newArea.y = rect.y; 
     475      } 
     476 
     477      owner.setArea(newArea, {suppressAdjusting: true}); 
     478    } 
     479 
     480    this._resized = function(rect, opt){ 
     481      var owner = this.__owner; 
     482 
     483      if(!(opt.suppressModification || opt.suppressModificationAboutArea)){ 
     484 
     485        var w                   = rect.width; 
     486        var h                   = rect.height; 
     487 
     488        var ca                  = owner.getAreaExp(); 
     489        var newArea             = {width: ca.width, height: ca.height}; 
     490        var ignoreSpecification = opt.ignoreSpecification; 
     491        var resized             = false; 
     492        var cr                  = null; 
     493 
     494        if(w !== null && !isNaN(w)){ 
     495          resized = true; 
     496          if(ca.width === null){ 
     497            /**/ 
     498          } else if(isNaN(ca.width)){ 
     499            cr = cr || this.getContainerRectangle(); 
     500            newArea.width = (100 * w / cr.width) + '%'; 
     501          } else if(0 > ca.width){ 
     502            cr = cr || this.getContainerRectangle(); 
     503            newArea.width = -(cr.width - w); 
     504          } else { 
     505            newArea.width = w; 
     506          } 
     507        } 
     508 
     509        if( h !== null && !isNaN(h)){ 
     510          resized = true; 
     511          if(ca.height === null){ 
     512            /**/ 
     513          } else if(isNaN(ca.height)){ 
     514            cr = cr || this.getContainerRectangle(); 
     515            newArea.height = (100 * h / cr.height) + '%'; 
     516          } else if(0 > ca.height){ 
     517            cr = cr || this.getContainerRectangle(); 
     518            newArea.height = -( cr.height - h ); 
     519          } else { 
     520            newArea.height = h; 
     521          } 
     522        } 
     523 
     524        owner.setArea(  newArea, {suppressAdjusting: true} ); 
     525      } 
     526 
     527      if(!opt.suppressEvents && resized){ 
     528        this.checkResized(); 
     529      } 
     530    }; 
     531 
     532    //////////////////////////////////////////////////////////// 
     533 
     534 
     535 
     536    this.moveTo = function( x, y, opt ){ 
     537 
     538      var warn = false; 
     539 
     540      if(arguments.length == 4){ 
     541        opt = arguments[3]; 
     542        warn = true; 
     543      } else if( 'number' ===  typeof opt){ 
     544        opt = null; 
     545        warn = true; 
     546      } 
     547 
     548      if(warn){ 
     549        debugger; 
     550        $mod.warn('z - index is not supported'); 
     551      } 
     552 
     553      opt = opt || {}; 
     554 
     555      var pos = {x:x, y:y}; 
     556      this._filterInputRectangle(pos, opt); 
     557      var owner = this.__owner; 
     558      setElementPosition({}, owner.getElement(), pos.x, pos.y); 
     559 
     560      this._moved( opt ); 
     561 
     562      if(!opt.suppressEvents){ 
     563        this.__owner.dispatchEvent('move', {type:'move', source: owner}); 
     564      } 
     565    }; 
     566 
     567 
     568    this.setRectangle = function( rect , opt ){ 
     569      opt = opt || {}; 
     570      var owner = this.__owner; 
     571      this._filterInputRectangle(rect, opt); 
    340572      setElementRectangle(opt, owner.getElement(), rect); 
    341573      owner.adjustLayers(); 
    342  
    343       if(!((isNaN(rect.x) || rect.x === null )&& 
     574      this._moved( opt ); 
     575      if(!opt.suppressEvents && 
     576         !((isNaN(rect.x) || rect.x === null )&& 
    344577           (isNaN(rect.y) || rect.y === null ))){ 
    345578        owner.dispatchEvent('move', {type: 'move', source: owner}); 
    346579      } 
    347       if(prr) this._postResize(rect.width, rect.height, opt); 
    348     }; 
    349  
    350   }); 
    351      
     580      this._resized(rect, opt); 
     581    }; 
     582 
     583    this.resizeTo = function( w, h, opt ){ 
     584      opt = opt || {}; 
     585      var owner     = this.__owner; 
     586      var rect     = {width: w, height: h}; 
     587      this._filterInputRectangle(rect, opt); 
     588      setElementSize(opt, owner.getElement(), rect.width, rect.height); 
     589      owner.adjustLayers(); 
     590      this._resized(rect, opt); 
     591    }; 
     592 
     593    this.adjustByArea = function(opt){ 
     594      opt = opt || {}; 
     595      var owner = this.__owner; 
     596      var crect = null; 
     597 
     598      if(owner.getPosition() == 'fixed'){ 
     599        crect = owner.getContainer().getWindowRectangle(); 
     600      } else {  
     601        crect = owner.getContainer().getRectangle(); 
     602      } 
     603 
     604      var aexp  = owner.getAreaExp(); 
     605      var rect  = crect.getRectangle( aexp,{nullSizeIs:null, local: true}); 
     606      opt.suppressModificationAboutArea = true; 
     607      opt.comment = 'adjustByArea'; 
     608      owner.setRectangle(rect, opt); 
     609    } 
     610 
     611  });     
    352612}); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/LayerMan/Base.js

    r28056 r28224  
    55 USE: ['KaeL.Commons.Class.gen', 
    66       'KaeL.DHTML.Elem.setPosition', 
    7        'KaeL.DHTML.Elem.setRectangle'] 
     7       'KaeL.DHTML.Elem.setRectangle', 
     8       'KaeL.DHTML.Elem.getSize'] 
    89}, 
    910function(classGen, 
    1011         setElementPosition, 
    11          setElementRectangle){ 
     12         setElementRectangle, 
     13         getElementSize){ 
    1214 
    1315  var LAYERCSS = ['width: 0px;', 
     
    3840    } 
    3941 
     42    this.checkStaticLayerResized = function(){ 
     43      var owner = this.__owner; 
     44      var stlay = owner.getLayerByName('static'); 
     45      var size  = getElementSize(stlay); 
     46      owner.resizeTo(size.width, size.height, {inner: true}); 
     47    }; 
     48 
    4049    this.adjustLayers = function(){ 
    41       var owner  = this.__owner; 
    42       var orect  = owner.getRectangle(); 
    43       var bgr = owner.getRectangle({inborder: true}); 
    44       var fgr = owner.getRectangle({inner:    true}); 
    45       $mod.log(bgr); 
    46       var bg = owner.getLayerByName('background'); 
     50      var owner = this.__owner; 
     51      var orect = owner.getRectangle(); 
     52      var bgr   = owner.getRectangle({inborder: true}); 
     53      var fgr   = owner.getRectangle({inner:    true}); 
     54      var bg    = owner.getLayerByName('background'); 
    4755      if(bg) setElementRectangle(bg, orect.makeLocal(bgr)); 
    4856      var fg = owner.getLayerByName('static'); 
     57      fg.style.height = ''; 
     58      fgr.height = null; 
    4959      if(fg) setElementRectangle(fg, orect.makeLocal(fgr)); 
    5060    } 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/LayerMan/Window.js

    r28056 r28224  
    4747      elem.appendChild(abs); 
    4848      elem.appendChild(fix); 
     49      fix.style.position = 'fixed'; 
    4950    }; 
    5051 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Feature/StyleMan.js

    r28056 r28224  
    6161      var rw = raw.width; 
    6262      var rh = raw.height; 
     63 
    6364      if(!(isNaN(rw) || rw === null)) w = null; 
    6465      if(!(isNaN(rh) || rh === null)) h = null; 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/HBox.js

    r27841 r28224  
    2828      switch( opt.source.align || this.align ){ 
    2929      case 'middle': 
    30         y += (height - content.rectangle().height) / 2; 
     30        y += (height - content.getRectangle().height) / 2; 
    3131        break; 
    3232      case 'bottom': 
    33         y += height  - content.rectangle().height; 
     33        y += height  - content.getRectangle().height; 
    3434        break; 
    3535      default: 
     
    4040 
    4141    this.resizeContent =  function(content, width, height, opt){ 
    42       height = (( '__filler' in opt ? opt.__filler : false || 
    43                   '__spacer' in opt ? opt.__spacer : false ) 
    44                 ? height : null); 
    4542      content.resizeTo(width, height, {'#comment': 'resizeContent'}); 
    4643    }; 
    4744 
    4845    this.expandSelf = function(width, height){ 
    49       this.resizeTo(width, height, {inner: true}); 
     46      this.resizeTo(width, height, {inner: true, suppressEvents: true}); 
    5047    }; 
    5148 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Label.js

    r28056 r28224  
    7373      if(this.__textWidth == null){ 
    7474        var width = 0; 
    75         var text  = this.__text; 
     75        var text  = this.__text || ''; 
    7676        var noLatin = text.replace(LATINCHARS, ''); 
    7777        width += text.length - noLatin.length; 
     
    109109      var size = this.getMinimumInnerSize(); 
    110110      if(opt.inner) return size; 
    111       return this.innerSizeToOuterSize(size); 
     111      return this.sizeOutputFilter(this.innerSizeToOuterSize(size)); 
    112112    }; 
    113113 
     
    139139      var s = this.getElement().style; 
    140140      s.lineHeight = height + 'px'; 
    141       s.fontSize   = this.getJustifiedFontSize() + 'px'; 
     141      var fs = this.getJustifiedFontSize(); 
     142      if(!isNaN(fs))s.fontSize   = fs  + 'px'; 
    142143    }; 
    143144 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/MoreSimple.js

    r28056 r28224  
    1919  return AbstractSprite.subClass( this.$meta.NAME, function( SUPER ){ 
    2020 
    21     delegate(this, Content. prototype,  '__content'); 
     21    delegate(this, Content.   prototype,  '__content'); 
    2222    delegate(this, GeomMan.   prototype,  '__geomMan'); 
    2323    delegate(this, StyleMan.  prototype,  '__styleMan'); 
     
    3838      if('className' in opt) elem.className = opt.className; 
    3939      elem.style.position = 'absolute'; 
     40      elem.style.top      = '-65000px'; 
     41      elem.style.left     = '-65000px'; 
    4042      return elem; 
    4143    } 
     
    4345    this.initSprite = function(opt){ 
    4446      SUPER.initSprite.apply(this, [opt]); 
    45       if('layer' in opt) this.belongToLayer(opt.layer); 
     47      if('layer' in opt){ 
     48        this.belongToLayer(opt.layer); 
     49      } 
    4650      var container = opt.container || this.getRootSprite(); 
    4751      container.addChild(this); 
    48       this.moveTo((isNaN(opt.x) ? 0    : opt.x), 
    49                   (isNaN(opt.y) ? 0    : opt.y)); 
    50       //if(window.HOGE) $mod.log('>>>>', this.getElement().style.left, this.getElement().style.top); 
    5152      if(opt.style) this.applyStyle(opt.style, {suppressEvents: true}); 
    52       this.specifySize( opt.width,  opt.height ); 
    53       //if(window.HOGE) $mod.log('!!>>>>', this.getElement().style.left, this.getElement().style.top); 
     53      if(opt.width === undefined) opt.width = null; 
     54      if(opt.height === undefined) opt.height = null; 
     55      this.setArea( { width: opt.width, 
     56                     height: opt.height, 
     57                          x: opt.x || 0, 
     58                          y: opt.y || 0, 
     59                      align: opt.align  || 'left', 
     60                     valign: opt.valign || 'top'} ); 
     61 
     62      if(opt.visible){ 
     63        this.show(); 
     64      } else { 
     65        this.hide(); 
     66      } 
     67 
    5468    } 
    5569 
    56     this.dispose       = function(){ 
    57       SUPER.dispose.apply(this, arguments); 
    58       this.hide(); 
    59     } 
     70    this.dispose = function(){ SUPER.dispose.apply(this, arguments); }; 
     71 
    6072 
    6173  }); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/MouseRange.js

    r27841 r28224  
    44 VERSION: '0.01', 
    55     USE: [ 
    6            'KaeL.DTK.Sprite.Abstract', 
    7            'KaeL.Commons.Object.delegate', 
    8            'KaeL.DTK.Sprite.Feature.GeomMan', 
    9            'KaeL.DHTML.Elem.opacity', 
    10            'KaeL.Commons.Util.AGENT' 
     6           'KaeL.DTK.Sprite.MoreSimple', 
     7           'KaeL.DHTML.Elem.opacity' 
    118           ] 
    129            }, 
    13 function( AbstractSprite, 
    14           delegate, 
    15           GeomMan, 
    16           opacity, 
    17           AGENT){ 
     10function( MoreSimple, 
     11          opacity){ 
    1812 
    19   return AbstractSprite.subClass( this.$meta.NAME, function( SUPER ){ 
    20  
    21     delegate(this, GeomMan.prototype,   '__geomMan'); 
    22  
    23     this.initialize = function(){ SUPER.initialize.apply(this, arguments) }; 
    24  
    25     this.dispatchEvent = function(){ return true; }; 
    26  
    27     this.initFeatures = function ( opt ){ 
    28       SUPER.initFeatures.apply(this, [opt]); 
    29       this.__geomMan  = new GeomMan({owner: this}); 
    30     } 
     13  return MoreSimple.subClass( this.$meta.NAME, function( SUPER ){ 
    3114 
    3215    this.initElement = function( opt ){ 
     
    4225    } 
    4326 
    44     this.initSprite = function( opt ){ 
    45       SUPER.initSprite.apply( this, [opt] ); 
    46       opt = opt || {}; 
    47       this.show(); 
    48       this.moveTo((isNaN(opt.x) ? 0 : opt.x), 
    49                   (isNaN(opt.y) ? 0 : opt.y), 
    50                   (isNaN(opt.z) ? 9999 : opt.z), 
    51                   {suppressEvent: true}); 
    52     }; 
    53  
    54     this.getBelongingLayerName = function(){ 
    55       return 'mouserange'; 
    56     } 
    57  
    58     this.getParentElement = function(){ 
    59       return this.getRootSprite().getLayerByName('mouserange'); 
    60     } 
    61  
    62     this.show = function(){ 
    63       this.getParentElement().appendChild(this.__elem); 
    64     } 
    65  
    66     this.hide = function(){ 
    67       this.getParentElement().removeChild(this.__elem); 
    68     } 
    69  
    70     this.getPosition = function(){ return 'fixed'; } 
    71     this.dispose = function(){ 
    72       SUPER.dispose.apply(this, arguments); 
    73       this.hide(); 
    74     } 
    75  
    76     this.getElement   = function(){ return this.__elem; }; 
     27    this.dispatchEvent         = function(){ return true; }; 
     28    this.applyStyle            = function(){}; 
     29    this.getBelongingLayerName = function(){ return 'mouserange'; } 
     30    this.getContainer          = function(){ return this.getRootSprite(); } 
     31    this.getPosition           = function(){ return 'fixed'; } 
    7732 
    7833  }); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Root.js

    r28056 r28224  
    44 VERSION: '0.01', 
    55 USE: ['KaeL.DTK.Sprite.Abstract', 
     6       'KaeL.DTK.Area.Manager', 
    67       'KaeL.DTK.Sprite.MoreSimple', 
    78       'KaeL.DTK.Sprite.Feature.Container', 
    89       'KaeL.DTK.Sprite.Feature.LayerMan.Window', 
    910       'KaeL.Commons.Object.delegate', 
    10        'KaeL.DHTML.Document.getSize'] 
     11       'KaeL.DHTML.Document.getSize', 
     12       'KaeL.DTK.Geom.Rectangle', 
     13       'KaeL.DHTML.Elem.getSize'] 
    1114 }, 
    1215function(AbstractSprite, 
     16         AreaMan, 
    1317         MoreSimple, 
    1418         Container, 
    1519         LayerMan, 
    1620         delegate, 
    17          getDocumentSize){ 
     21         getDocumentSize, 
     22         Rectangle, 
     23         getElementSize){ 
    1824  return AbstractSprite.subClass(this.$meta.NAME, function(SUPER){ 
    1925 
     26    delegate(this, AreaMan.prototype,   '__areaMan', 'getArea'); 
    2027    delegate(this, Container.prototype, '__container'); 
    21     delegate(this, LayerMan.prototype, '__layerMan'); 
     28    delegate(this, LayerMan.prototype,  '__layerMan'); 
    2229 
    2330    this.initialize = function(){ SUPER.initialize.apply(this, arguments) }; 
    2431 
    2532    this.initFeatures = function(opt){ 
    26       this.__layerMan = new LayerMan({owner: this}); 
     33      this.__layerMan      = new LayerMan({owner: this}); 
    2734      SUPER.initFeatures.apply(this, [opt]); 
    28       this.__container = new Container({owner: this}); 
    29       this.__lockInfo  = null; 
     35      this.__areaMan       = new AreaMan({owner: this}); 
     36      this.__container     = new Container({owner: this}); 
     37      this.__lockInfo      = null; 
    3038    } 
     39 
    3140 
    3241    this.initSprite = function(opt){ 
    3342      this.initLayers(); 
     43      var self = this; 
     44      this.addEventListener('resize', function(){ 
     45        self.adjustLayers(); 
     46      }); 
     47 
    3448      SUPER.initSprite.apply(this, [opt]); 
    35       var self = this; 
    36       this.__wm.addEventListener('scroll', function(e){ 
     49 
     50      var wm = this.getWM(); 
     51      wm.addEventListener('scroll', function(e){ 
    3752        self.dispatchEvent(e); 
    3853      }); 
    39       this.getLayerByName('*fixed*').style.position = 'fixed'; 
     54      wm.addEventListener('resize', function(e){ 
     55        self.dispatchEvent(e); 
     56      }); 
     57 
     58      this.addEventListener('mousedown', function(ev){ 
     59        if(ev.source === self){ 
     60          self.focus(); 
     61        } 
     62      }); 
     63 
     64      this.__hidden = false; 
    4065    } 
    41  
    4266 
    4367    this.lock = function(){ 
     
    5478 
    5579    this.initElement = function(){ return this.getWM().getBody(); } 
    56  
    5780 
    5881    this.dispatchEvent = function(type, ev){ 
     
    7194 
    7295    this.getRectangle     = function(){ 
    73       var ds = getDocumentSize(); 
     96      var layer = this.getLayerByName('static'); 
     97      var s = getElementSize( layer ); 
    7498      return new Rectangle({x: 0, 
    7599                            y: 0, 
    76                         width: ds.width, 
    77                        height: ds.height}); 
     100                        width: s.width, 
     101                       height: s.height}); 
    78102    }; 
    79103 
    80104    this.getRootSprite    = function(){ return this; } 
     105 
    81106    this.getContainer     = function(){ return null; } 
     107 
    82108    this.visible          = function(){ return true; } 
    83109 
     
    86112    } 
    87113 
     114    this.appearNode = function(){}; 
     115 
     116    this.removeNode = function(){}; 
     117 
    88118    this.hide = function(){ 
     119      if(this.__hidden) return; 
     120      this.__hidden = true; 
    89121      this.getElement().style.display = 'none'; 
    90122    } 
    91123 
    92124    this.show = function(){ 
     125      if(!this.__hidden) return; 
     126      this.__hidden = false; 
    93127      this.getElement().style.display = 'block'; 
    94128    } 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Simple.js

    r28056 r28224  
    2323  return MoreSimple.subClass( this.$meta.NAME, function(SUPER){ 
    2424 
    25     delegate(this, AreaMan. prototype,  '__areaMan', 'getArea'); 
     25    delegate(this, AreaMan.prototype,  '__areaMan', 'getArea'); 
    2626    delegate(this, LayerMan.prototype, '__layerMan'); 
    2727    delegate(this, ContentsMan.prototype, '__contentsMan'); 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/Static/Simple.js

    r28056 r28224  
    77        'KaeL.DTK.WM', 
    88        'KaeL.DTK.Sprite.Feature.ContentsMan', 
    9         'KaeL.DTK.Sprite.Feature.StyleMan', 
    10         'KaeL.DTK.Sprite.Feature.GeomMan.Static', 
     9        'KaeL.DTK.Sprite.Static.Feature.Content', 
     10        'KaeL.DTK.Sprite.Static.Feature.GeomMan', 
     11        'KaeL.DTK.Sprite.Static.Feature.StyleMan', 
     12        'KaeL.DTK.Sprite.Static.Feature.TearOff', 
    1113        'KaeL.DTK.Sprite.Feature.EventMan', 
    12         'KaeL.DHTML.Elem.getRectangle', 
     14        'KaeL.DTK.Area.Manager', 
     15        'KaeL.Commons.Event.Listener', 
     16        'KaeL.DHTML.Elem.getComputedStyle' 
    1317        ] 
    1418}, 
     
    1721         WM, 
    1822         ContentsMan, 
     23         Content, 
     24         GeomMan, 
    1925         StyleMan, 
    20          GeomMan, 
     26         TearOff, 
    2127         EventMan, 
    22          getElementRectangle){ 
     28         AreaMan, 
     29         Listener, 
     30         getStyle){ 
    2331 
    2432  var Static =  Abstract.subClass(this.$meta.NAME,function(SUPER){ 
    2533 
     34    delegate(this, Content.prototype,     '__content'); 
     35    delegate(this, AreaMan.prototype,     '__areaMan', 'getArea'); 
    2636    delegate(this, ContentsMan.prototype, '__contentsMan'); 
    2737    delegate(this, StyleMan.prototype,    '__styleMan'); 
    28     delegate(this, GeomMan.prototype, '__geomMan'); 
     38    delegate(this, GeomMan.prototype,     '__geomMan'); 
     39    delegate(this, TearOff.prototype,     '__tearOff'); 
    2940 
    3041    this.initialize = function(opt){ 
     
    3445    }; 
    3546 
     47    this.getAreaMan = function(){ return this.__areaMan; }; 
     48 
    3649    this.initFeatures = function(opt){ 
    3750      SUPER.initFeatures.apply(this, [opt]); 
     51      this.__content     = new Content({owner: this}); 
    3852      this.__areaMan     = new AreaMan({owner: this}); 
     53      this.__geomMan     = new GeomMan({owner: this}); 
    3954      this.__styleMan    = new StyleMan({owner: this}); 
    4055      this.__contentsMan = new ContentsMan({owner: this}); 
    41       this.__geomMan     = new GeoMman({owner: this}); 
    4256      this.__eventMan    = new EventMan({owner: this}); 
     57      this.__tearOff     = new TearOff({owner: this}); 
    4358    } 
    4459 
    4560    this.initSprite = function(opt){ 
    4661      this.getSpriteMan().registerSprite(this); 
    47       this.initLayers(); 
    4862      SUPER.initSprite.apply(this, arguments); 
    49       this.__eventMan.manage(this.getElement()); 
    5063      this.__eventMan.manage(this.getElement()); 
    5164      if('text' in opt){ 
     
    6073      SUPER.dispolse.apply(this, []); 
    6174      this.__eventMan.dispolse(); 
     75      this.__tearOff.dispolse(); 
    6276      this.getSpriteMan().unregisterSprite(this); 
    6377    } 
     
    6579    this.initElement = function(opt){ 
    6680      var elem = opt.elem || this.genElem('div'); 
    67       elem.style.position = 'relative'; 
     81      elem.style.position = 'static'; 
    6882      return elem; 
    6983    } 
    7084 
    71     this.getBelongingLayerName = function(){ return 'static'; } 
    72  
    73     this.getPosition  = function(){ return 'relative'; } 
     85    this.getBelongingLayerName = function(){ return 'static'; }; 
     86    this.getPosition           = function(){ return 'static'; }; 
    7487 
    7588    this.getLayerByName = function(name){ 
     
    7891    } 
    7992 
    80     this.addChild = function(s){ 
    81       if(!(s instanceof Static)){ 
    82       } 
    83     } 
     93    this.getDisplay = function(){ 
     94      return getStyle(this.getElement(), 'display').display; 
     95    }; 
    8496 
    85     this.paste = function(s){ 
    86       if(!(s instanceof Abstract)){ 
    87       } 
    8897 
    89       if(s instanceof Static){ 
    90       } 
    91  
    92     } 
    9398  }); 
    9499 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/TeXBox.js

    r28056 r28224  
    7474 
    7575    this.calcOption = function(c, opt){ 
     76 
    7677      if(!c.visible()){ 
    7778        opt.__visible   = false; 
     
    8384 
    8485        var spacer    = opt.spacer || false; 
    85         var mrect     = c.rectangle({margin: true}); 
     86        var mrect     = c.getMinimumSize({margin: true}); 
    8687        var specified = c.getPreferredSize(); 
    8788        var sA        = specified[A]; 
     
    9192        opt.__minB    = mrect[B]; 
    9293        this.__minB   = Math.max(opt.__minB, this.__minB); 
     94        this.__prB    = Math.max(opt.__prB,  this.__prB); 
    9395 
    9496        if(opt.__spacer){ 
     
    158160 
    159161    this.doArrange = function(){ 
    160  
     162       
    161163      var self     = this; 
    162164      var AB       = this.AB; 
     
    166168      var arrangeB = 0; 
    167169      var minAB    = this.getMinimumAB(); 
    168  
    169170      var minA     = minAB.A; 
    170171      var minB     = minAB.B; 
     172 
     173       
    171174      this.__paddings = this.getComputedSizes('paddingTop', 
    172175                                              'paddingLeft'); 
     
    219222      } 
    220223 
     224 
    221225      if(!(exA === null && exB === null)){ 
    222226        this.expandSelf(exA, exB); 
    223227      } 
     228 
    224229 
    225230      /// 
     
    275280          } 
    276281 
    277           self.resizeContent( child, null, arrangeB, opt); 
     282          if(opt.__filler){ 
     283            self.resizeContent( child, 
     284                                null, 
     285                                arrangeB, 
     286                                opt); 
     287          } 
    278288          self.moveContent( child, pos, arrangeB, opt ); 
    279289          pos += child.getRectangle()[A]; 
  • lang/javascript/dollar-mod.js/KaeL.DTK/trunk/lib/KaeL/DTK/Sprite/VBox.js

    r28056 r28224  
    3838 
    3939    this.resizeContent =  function(content, height, width, opt){ 
    40       width = (( '__filler' in opt ? opt.__filler : false || 
    41                  '__spacer' in opt ? opt.__spacer : false ) 
    42                ? width : null); 
    4340      content.resizeTo(width, height, {'#comment': 'resizeContent'}); 
    4441    }; 
    4542 
    4643    this.expandSelf = function(height, width){ 
    47       this.resizeTo(width, height, {inner: true}); 
     44      this.resizeTo(width, height, {inner: true, 
     45                                    suppressEvents: true}); 
     46 
    4847    }; 
    4948