Browse Source

surface LayoutMode constructor

pull/563/head
David DeSandro 12 years ago
parent
commit
d80a0b3522
  1. 16
      isotope.js
  2. 42
      layout-mode.js
  3. 6
      layout-modes/cells-by-column.js
  4. 6
      layout-modes/cells-by-row.js
  5. 6
      layout-modes/fit-columns.js
  6. 6
      layout-modes/fit-rows.js
  7. 6
      layout-modes/horizontal.js
  8. 4
      layout-modes/masonry-horizontal.js
  9. 6
      layout-modes/masonry.js
  10. 6
      layout-modes/vertical.js

16
isotope.js

@ -39,14 +39,14 @@ var getText = docElem.textContent ?
// -------------------------- isotopeDefinition -------------------------- // // -------------------------- isotopeDefinition -------------------------- //
// used for AMD definition and requires // used for AMD definition and requires
function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode ) { function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, LayoutMode ) {
// create an Outlayer layout class // create an Outlayer layout class
var Isotope = Outlayer.create( 'isotope', { var Isotope = Outlayer.create( 'isotope', {
sortAscending: true sortAscending: true
}); });
Isotope.Item = Isotope.prototype.settings.item = Item; Isotope.Item = Isotope.prototype.settings.item = Item;
Isotope.layoutMode = layoutMode; Isotope.LayoutMode = LayoutMode;
Isotope.prototype._create = function() { Isotope.prototype._create = function() {
this.itemGUID = 0; this.itemGUID = 0;
@ -56,7 +56,7 @@ function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode
// create layout modes // create layout modes
this.modes = {}; this.modes = {};
// create from registered layout modes // create from registered layout modes
for ( var name in layoutMode.modes ) { for ( var name in LayoutMode.modes ) {
this._initLayoutMode( name ); this._initLayoutMode( name );
} }
// functions that sort items // functions that sort items
@ -86,14 +86,14 @@ function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode
// -------------------------- layout -------------------------- // // -------------------------- layout -------------------------- //
Isotope.prototype._initLayoutMode = function( name ) { Isotope.prototype._initLayoutMode = function( name ) {
var LayoutMode = layoutMode.modes[ name ]; var Mode = LayoutMode.modes[ name ];
// set mode options // set mode options
// HACK extend initial options, back-fill in default options // HACK extend initial options, back-fill in default options
var initialOpts = this.options[ name ] || {}; var initialOpts = this.options[ name ] || {};
this.options[ name ] = LayoutMode.options ? this.options[ name ] = Mode.options ?
extend( LayoutMode.options, initialOpts ) : initialOpts; extend( Mode.options, initialOpts ) : initialOpts;
// init layout mode instance // init layout mode instance
this.modes[ name ] = new LayoutMode( this ); this.modes[ name ] = new Mode( this );
}; };
Isotope.prototype.layout = function( opts ) { Isotope.prototype.layout = function( opts ) {
@ -385,7 +385,7 @@ if ( typeof define === 'function' && define.amd ) {
window.getSize, window.getSize,
window.matchesSelector, window.matchesSelector,
window.Isotope.Item, window.Isotope.Item,
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

42
layout-mode.js

@ -6,11 +6,6 @@
function layoutModeDefinition( getSize, Outlayer ) { function layoutModeDefinition( getSize, Outlayer ) {
var layoutMode = {};
layoutMode.modes = {};
layoutMode.create = function( namespace, options ) {
// layout mode class // layout mode class
function LayoutMode( isotope ) { function LayoutMode( isotope ) {
this.isotope = isotope; this.isotope = isotope;
@ -24,16 +19,6 @@ layoutMode.create = function( namespace, options ) {
} }
} }
// default options
if ( options ) {
LayoutMode.options = options;
}
LayoutMode.prototype.namespace = namespace;
// register in Isotope
layoutMode.modes[ namespace ] = LayoutMode;
/** /**
* some methods should just defer to default Outlayer method * some methods should just defer to default Outlayer method
* and reference the Isotope instance as `this` * and reference the Isotope instance as `this`
@ -117,13 +102,32 @@ layoutMode.create = function( namespace, options ) {
this.size = this.isotope.size; this.size = this.isotope.size;
}; };
// ----- ----- // // -------------------------- create -------------------------- //
return LayoutMode; LayoutMode.modes = {};
LayoutMode.create = function( namespace, options ) {
function Mode() {
LayoutMode.apply( this, arguments );
}
Mode.prototype = new LayoutMode();
// default options
if ( options ) {
Mode.options = options;
}
Mode.prototype.namespace = namespace;
// register in Isotope
LayoutMode.modes[ namespace ] = Mode;
return Mode;
}; };
return layoutMode; return LayoutMode;
} }
@ -137,7 +141,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
window.Isotope = window.Isotope || {}; window.Isotope = window.Isotope || {};
window.Isotope.layoutMode = layoutModeDefinition( window.Isotope.LayoutMode = layoutModeDefinition(
window.getSize, window.getSize,
window.Outlayer window.Outlayer
); );

6
layout-modes/cells-by-column.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function cellsByColumnDefinition( layoutMode ) { function cellsByColumnDefinition( LayoutMode ) {
var CellsByColumn = layoutMode.create( 'cellsByColumn' ); var CellsByColumn = LayoutMode.create( 'cellsByColumn' );
CellsByColumn.prototype._resetLayout = function() { CellsByColumn.prototype._resetLayout = function() {
// reset properties // reset properties
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
cellsByColumnDefinition( cellsByColumnDefinition(
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

6
layout-modes/cells-by-row.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function cellsByRowDefinition( layoutMode ) { function cellsByRowDefinition( LayoutMode ) {
var CellsByRow = layoutMode.create( 'cellsByRow' ); var CellsByRow = LayoutMode.create( 'cellsByRow' );
CellsByRow.prototype._resetLayout = function() { CellsByRow.prototype._resetLayout = function() {
// reset properties // reset properties
@ -48,7 +48,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
cellsByRowDefinition( cellsByRowDefinition(
window.Isotope.layoutMode, window.Isotope.LayoutMode,
window.getSize window.getSize
); );
} }

6
layout-modes/fit-columns.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function fitColumnsDefinition( layoutMode ) { function fitColumnsDefinition( LayoutMode ) {
var FitColumns = layoutMode.create('fitColumns'); var FitColumns = LayoutMode.create('fitColumns');
FitColumns.prototype._resetLayout = function() { FitColumns.prototype._resetLayout = function() {
this.x = 0; this.x = 0;
@ -53,7 +53,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
fitColumnsDefinition( fitColumnsDefinition(
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

6
layout-modes/fit-rows.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function fitRowsDefinition( layoutMode ) { function fitRowsDefinition( LayoutMode ) {
var FitRows = layoutMode.create( 'fitRows', { var FitRows = LayoutMode.create( 'fitRows', {
foo: 'bar' foo: 'bar'
}); });
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
fitRowsDefinition( fitRowsDefinition(
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

6
layout-modes/horizontal.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function horizontalDefinition( layoutMode ) { function horizontalDefinition( LayoutMode ) {
var Horizontal = layoutMode.create( 'horizontal', { var Horizontal = LayoutMode.create( 'horizontal', {
verticalAlignment: 0 verticalAlignment: 0
}); });
@ -42,7 +42,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
horizontalDefinition( horizontalDefinition(
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

4
layout-modes/masonry-horizontal.js

@ -22,7 +22,7 @@ var indexOf = Array.prototype.indexOf ?
function masonryHorizontalDefinition( getSize, layoutMode ) { function masonryHorizontalDefinition( getSize, layoutMode ) {
// create an Outlayer layout class // create an Outlayer layout class
var MasonryHorizontal = layoutMode.create('masonryHorizontal'); var MasonryHorizontal = LayoutMode.create('masonryHorizontal');
MasonryHorizontal.prototype._resetLayout = function() { MasonryHorizontal.prototype._resetLayout = function() {
this.getRowHeight(); this.getRowHeight();
@ -138,7 +138,7 @@ if ( typeof define === 'function' && define.amd ) {
// browser global // browser global
masonryHorizontalDefinition( masonryHorizontalDefinition(
window.getSize, window.getSize,
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

6
layout-modes/masonry.js

@ -21,9 +21,9 @@ function extend( a, b ) {
// -------------------------- masonryDefinition -------------------------- // // -------------------------- masonryDefinition -------------------------- //
// used for AMD definition and requires // used for AMD definition and requires
function masonryDefinition( layoutMode, Masonry ) { function masonryDefinition( LayoutMode, Masonry ) {
// create an Outlayer layout class // create an Outlayer layout class
var MasonryMode = layoutMode.create('masonry'); var MasonryMode = LayoutMode.create('masonry');
// save on to these methods // save on to these methods
var _getElementOffset = MasonryMode.prototype._getElementOffset; var _getElementOffset = MasonryMode.prototype._getElementOffset;
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
masonryDefinition( masonryDefinition(
window.Isotope.layoutMode, window.Isotope.LayoutMode,
window.Masonry window.Masonry
); );
} }

6
layout-modes/vertical.js

@ -2,9 +2,9 @@
'use strict'; 'use strict';
function verticalDefinition( layoutMode ) { function verticalDefinition( LayoutMode ) {
var Vertical = layoutMode.create( 'vertical', { var Vertical = LayoutMode.create( 'vertical', {
horizontalAlignment: 0 horizontalAlignment: 0
}); });
@ -38,7 +38,7 @@ if ( typeof define === 'function' && define.amd ) {
} else { } else {
// browser global // browser global
verticalDefinition( verticalDefinition(
window.Isotope.layoutMode window.Isotope.LayoutMode
); );
} }

Loading…
Cancel
Save