src/js/layout.js
author hamidouk
Fri, 21 Oct 2011 11:21:35 +0200
branchpopcorn-port
changeset 111 df08c7f9535c
child 113 ebfd0d17e427
permissions -rw-r--r--
added a basic layout manager.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
111
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     1
/* layout.js - very basic layout management */
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     2
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     3
/*
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     4
  a layout manager manages a div and the layout of objects
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     5
  inside it.
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     6
*/
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     7
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     8
IriSP.LayoutManager = function(options) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
     9
    this._Popcorn = null;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    10
    this._widgets = [];
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    11
    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    12
    this._div = "#LdtPlayer";
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    13
    this._width = 640;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    14
    this._height = 480;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    15
    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    16
    if (options === undefined) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    17
      options = {};
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    18
      console.error("The options parameter is undefined.");
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    19
    };
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    20
    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    21
    if (options.hasOwnProperty('divId')) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    22
      this._div = options.divId;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    23
    }
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    24
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    25
    if (options.hasOwnProperty('width')) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    26
      this._width = options.width;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    27
    }    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    28
    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    29
    if (options.hasOwnProperty('height')) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    30
      this._height = options.height;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    31
    } 
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    32
    
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    33
    IriSP.jQuery(this._div).css("width", this._width);
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    34
    IriSP.jQuery(this._div).css("height", this._height);
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    35
};
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    36
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    37
/* we need this special setter because of a chicken and egg problem :
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    38
   we want the manager to use popcorn but the popcorn div will be managed
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    39
   by the manager. So we need a way to set the instance the manager uses
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    40
*/
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    41
   
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    42
IriSP.LayoutManager.prototype.setPopcornInstance = function(popcorn) {
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    43
    this._Popcorn = popcorn;
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    44
    /* FIXME - don't forget to add the popcorn messages handlers there */
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    45
}
df08c7f9535c added a basic layout manager.
hamidouk
parents:
diff changeset
    46