Skip to content

Commit

Permalink
Merge branch 'loader'
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Johnston committed Oct 8, 2011
2 parents c5be27f + 4490ed5 commit d04bc09
Show file tree
Hide file tree
Showing 104 changed files with 857 additions and 517 deletions.
134 changes: 104 additions & 30 deletions build.xml
Expand Up @@ -2,7 +2,9 @@

<project name="PIE" default="build" basedir=".">

<property name="version" value="1.0beta5" />
<property name="version" value="1.0beta6-SNAPSHOT" />
<!-- 'http://cdnjs.cloudflare.com/ajax/libs/css3pie/${version}' -->
<property name="default_base_urls" value="['http://lojjic.github.com/PIE/files/builds/${version}']"/>
<property name="build_dir" value="./build" />
<property name="src_dir" value="./sources" />

Expand All @@ -12,7 +14,9 @@

<target name="build-uncompressed">
<mkdir dir="${build_dir}" />
<concat destfile="${build_dir}/script_uncompressed.js">

<concat destfile="${build_dir}/PIE_IE678_uncompressed.js">
<fileset file="${src_dir}/js_open.js" />
<fileset file="${src_dir}/PIE_open.js" />
<fileset file="${src_dir}/Util.js" />
<fileset file="${src_dir}/GradientUtil.js" />
Expand All @@ -38,46 +42,90 @@
<fileset file="${src_dir}/BoxShadowStyleInfo.js" />
<fileset file="${src_dir}/VisibilityStyleInfo.js" />
<fileset file="${src_dir}/RendererBase.js" />
<fileset file="${src_dir}/RendererBase_IE678.js" />
<fileset file="${src_dir}/RootRenderer.js" />
<fileset file="${src_dir}/BackgroundRenderer.js" />
<fileset file="${src_dir}/BorderRenderer.js" />
<fileset file="${src_dir}/BorderImageRenderer.js" />
<fileset file="${src_dir}/BoxShadowOutsetRenderer.js" />
<!--<fileset file="${src_dir}/BoxShadowInsetRenderer.js" />-->
<fileset file="${src_dir}/ImgRenderer.js" />
<fileset file="${src_dir}/Element.js" />
<fileset file="${src_dir}/PIE_API.js" />
<fileset file="${src_dir}/js_close.js" />
</concat>

<concat destfile="${build_dir}/PIE_IE9_uncompressed.js">
<fileset file="${src_dir}/js_open.js" />
<fileset file="${src_dir}/PIE_open.js" />
<fileset file="${src_dir}/Util.js" />
<fileset file="${src_dir}/GradientUtil.js" />
<fileset file="${src_dir}/Observable.js" />
<fileset file="${src_dir}/Heartbeat.js" />
<fileset file="${src_dir}/OnUnload.js" />
<fileset file="${src_dir}/OnResize.js" />
<fileset file="${src_dir}/OnScroll.js" />
<fileset file="${src_dir}/OnPrint.js" />
<fileset file="${src_dir}/OnMouseup.js" />
<fileset file="${src_dir}/Length.js" />
<fileset file="${src_dir}/BgPosition.js" />
<fileset file="${src_dir}/BgSize.js" />
<fileset file="${src_dir}/Angle.js" />
<fileset file="${src_dir}/Color.js" />
<fileset file="${src_dir}/Tokenizer.js" />
<fileset file="${src_dir}/BoundsInfo.js" />
<fileset file="${src_dir}/StyleInfoBase.js" />
<fileset file="${src_dir}/BackgroundStyleInfo.js" />
<fileset file="${src_dir}/BorderStyleInfo.js" />
<fileset file="${src_dir}/BorderImageStyleInfo.js" />
<fileset file="${src_dir}/RendererBase.js" />
<fileset file="${src_dir}/IE9RootRenderer.js" />
<fileset file="${src_dir}/IE9BackgroundRenderer.js" />
<fileset file="${src_dir}/IE9BorderImageRenderer.js" />
<fileset file="${src_dir}/Element.js" />
<fileset file="${src_dir}/PIE_API.js" />
<fileset file="${src_dir}/PIE_close.js" />
<fileset file="${src_dir}/js_close.js" />
</concat>

<concat destfile="${build_dir}/PIE_uncompressed.htc">
<fileset file="${src_dir}/htc_open.txt" />
<fileset file="${build_dir}/script_uncompressed.js" />
<fileset file="${src_dir}/htc_init.js" />
<fileset file="${src_dir}/htc_script.js" />
<fileset file="${src_dir}/htc_close.txt" />
</concat>

<concat destfile="${build_dir}/PIE_uncompressed.js">
<fileset file="${src_dir}/js_open.js" />
<fileset file="${build_dir}/script_uncompressed.js" />
<fileset file="${src_dir}/js_close.js" />
</concat>

<replace file="${build_dir}/PIE_uncompressed.htc" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE_uncompressed.js" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE_uncompressed.htc">
<replacefilter token="$Version$" value="${version}" />
<replacefilter token="$JSVariant$" value="_uncompressed" />
<replacefilter token="$DefaultBaseUrls$" value="${default_base_urls}" />
</replace>
<replace file="${build_dir}/PIE_IE678_uncompressed.js" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE_IE9_uncompressed.js" token="$Version$" value="${version}"/>
</target>

<target name="build-compressed" depends="build-uncompressed">
<exec executable="java">
<arg line='-jar tools/compiler.jar
--js ${build_dir}/script_uncompressed.js
--js ${src_dir}/htc_init.js
--js ${build_dir}/PIE_IE678_uncompressed.js
--module "PIE_IE678:1"
--module_output_path_prefix ${build_dir}/
--compilation_level ADVANCED_OPTIMIZATIONS
--externs ${src_dir}/closure_externs.js' />
</exec>

<exec executable="java">
<arg line='-jar tools/compiler.jar
--js ${build_dir}/PIE_IE9_uncompressed.js
--module "PIE_IE9:1"
--module_output_path_prefix ${build_dir}/
--compilation_level ADVANCED_OPTIMIZATIONS
--externs ${src_dir}/closure_externs.js' />
</exec>

<exec executable="java">
<arg line='-jar tools/compiler.jar
--js ${src_dir}/htc_script.js
--js ${src_dir}/closure_preservefunctions.js
--module "script_compressed:1"
--module "htc_init_compressed:1"
--module "htc_script_compressed:1"
--module "temp:1"
--module_output_path_prefix ${build_dir}/
--compilation_level ADVANCED_OPTIMIZATIONS
Expand All @@ -86,24 +134,20 @@

<concat destfile="${build_dir}/PIE.htc">
<fileset file="${src_dir}/htc_open.txt" />
<fileset file="${build_dir}/script_compressed.js" />
<fileset file="${build_dir}/htc_init_compressed.js" />
<fileset file="${build_dir}/htc_script_compressed.js" />
<fileset file="${src_dir}/htc_close.txt" />
</concat>

<concat destfile="${build_dir}/PIE.js">
<fileset file="${src_dir}/js_open.js" />
<fileset file="${build_dir}/script_compressed.js" />
<fileset file="${src_dir}/js_close.js" />
</concat>

<replace file="${build_dir}/PIE.htc" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE.js" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE.htc">
<replacefilter token="$Version$" value="${version}" />
<replacefilter token="$JSVariant$" value="" />
<replacefilter token="$DefaultBaseUrls$" value="${default_base_urls}" />
</replace>
<replace file="${build_dir}/PIE_IE678.js" token="$Version$" value="${version}"/>
<replace file="${build_dir}/PIE_IE9.js" token="$Version$" value="${version}"/>

<delete file="${build_dir}/temp.js" />
<delete file="${build_dir}/htc_init_compressed.js" />
<delete file="${build_dir}/script_uncompressed.js" />
<delete file="${build_dir}/script_compressed.js" />
<delete file="${build_dir}/htc_script_compressed.js" />
</target>


Expand All @@ -121,4 +165,34 @@
<zip destfile="${build_dir}/PIE.zip" basedir="${build_dir}"/>
</target>



<target name="deploy" depends="build" description="Builds and pushes the files to the gh-pages branch">
<!-- Clone repo into temp dir, checking out the gh-pages branch -->
<exec executable="git">
<arg line="clone --reference . --branch gh-pages git@github.com:lojjic/PIE.git ${build_dir}/temp-git-clone" />
</exec>

<!-- Copy built files into correct version dir -->
<copy todir="${build_dir}/temp-git-clone/files/builds/${version}" overwrite="true">
<fileset file="${build_dir}/PIE.htc" />
<fileset file="${build_dir}/PIE_IE678.js" />
<fileset file="${build_dir}/PIE_IE9.js" />
<fileset file="${build_dir}/PIE_uncompressed.htc" />
<fileset file="${build_dir}/PIE_IE678_uncompressed.js" />
<fileset file="${build_dir}/PIE_IE9_uncompressed.js" />
</copy>

<!-- Commit and push -->
<exec executable="git" dir="${build_dir}/temp-git-clone">
<arg line='commit -a -m "Update files for build ${version}"' />
</exec>
<exec executable="git" dir="${build_dir}/temp-git-clone">
<arg line='push origin gh-pages' />
</exec>

<!-- Cleanup -->
<delete dir="${build_dir}/temp-git-clone" />
</target>

</project>
2 changes: 2 additions & 0 deletions documentation/demos.html
Expand Up @@ -32,6 +32,8 @@ <h2>Example Sites</h2>
<li><a href="http://www.composite.net/">Composite C1 CMS</a></li>
<li><a href="http://www.cthealth.org/">Connecticut Health Foundation</a></li>
<li><a href="http://setup.dynguide.com/">DynDNS</a></li>
<li><a href="http://www.heidiklumfragrances.com/">Heidi Klum Fragrances</a></li>
<li><a href="http://www.hitreach.co.uk/">Hit Reach Web Design &amp; SEO</a></li>
<li><a href="http://www.journeyoutreach.org/">Journey Outreach</a></li>
<li><a href="http://www.kleinezeitung.at/">Kleine Zeitung</a></li>
<li><a href="http://sites.mckesson.com/betterhealth/">McKesson: For Better Health</a></li>
Expand Down
38 changes: 3 additions & 35 deletions sources/BackgroundRenderer.js
Expand Up @@ -131,8 +131,9 @@ PIE.BackgroundRenderer = PIE.RendererBase.newRenderer( {
// update executed, make sure that's not the case to avoid divide-by-zero error
if( elW && elH ) {
var fill = shape.fill,
bg = me.styleInfos.backgroundInfo.getProps().bgImages[ index ],
bgAreaSize = me.getBgAreaSize( bg.bgOrigin ),
bgInfo = me.styleInfos.backgroundInfo,
bg = bgInfo.getProps().bgImages[ index ],
bgAreaSize = bgInfo.getBgAreaSize( bg.bgOrigin, me.boundsInfo, me.styleInfos.borderInfo ),
adjustedImgSize = ( bg.bgSize || PIE.BgSize.DEFAULT ).pixels(
me.targetElement, bgAreaSize.w, bgAreaSize.h, imgSize.w, imgSize.h
),
Expand Down Expand Up @@ -173,39 +174,6 @@ PIE.BackgroundRenderer = PIE.RendererBase.newRenderer( {
},


/**
* For a given background-origin value, return the dimensions of the background area.
* @param {String} bgOrigin
*/
getBgAreaSize: function( bgOrigin ) {
var me = this,
el = me.targetElement,
bounds = me.boundsInfo.getBounds(),
elW = bounds.w,
elH = bounds.h,
w = elW,
h = elH,
borders, getLength, cs;

if( bgOrigin !== 'border-box' ) {
borders = me.styleInfos.borderInfo.getProps();
if( borders && ( borders = borders.widths ) ) {
w -= borders[ 'l' ].pixels( el ) + borders[ 'l' ].pixels( el );
h -= borders[ 't' ].pixels( el ) + borders[ 'b' ].pixels( el );
}
}

if ( bgOrigin === 'content-box' ) {
getLength = PIE.getLength;
cs = el.currentStyle;
w -= getLength( cs.paddingLeft ).pixels( el ) + getLength( cs.paddingRight ).pixels( el );
h -= getLength( cs.paddingTop ).pixels( el ) + getLength( cs.paddingBottom ).pixels( el );
}

return { w: w, h: h };
},


/**
* For a given background-origin value, return the x/y position of the origin
* from the top-left of the element bounds.
Expand Down
35 changes: 34 additions & 1 deletion sources/BackgroundStyleInfo.js
Expand Up @@ -103,7 +103,7 @@ PIE.BackgroundStyleInfo = PIE.StyleInfoBase.newStyleInfo( {
gradient.stops.push( stop );
}
if( gradient.stops.length > 1 ) {
PIE.Util.merge( image, gradient );
PIE.merge( image, gradient );
}
break;
}
Expand Down Expand Up @@ -353,6 +353,39 @@ PIE.BackgroundStyleInfo = PIE.StyleInfoBase.newStyleInfo( {
return el.style[ this.styleProperty ] || el.currentStyle.getAttribute( this.cssProperty );
} ),


/**
* For a given background-origin value, return the dimensions of the background area.
* @param {String} bgOrigin
* @param {PIE.BoundsInfo} boundsInfo
* @param {PIE.BorderStyleInfo} borderInfo
*/
getBgAreaSize: function( bgOrigin, boundsInfo, borderInfo ) {
var el = this.targetElement,
bounds = boundsInfo.getBounds(),
w = bounds.w,
h = bounds.h,
borders, getLength, cs;

if( bgOrigin !== 'border-box' ) {
borders = borderInfo.getProps();
if( borders && ( borders = borders.widths ) ) {
w -= borders[ 'l' ].pixels( el ) + borders[ 'l' ].pixels( el );
h -= borders[ 't' ].pixels( el ) + borders[ 'b' ].pixels( el );
}
}

if ( bgOrigin === 'content-box' ) {
getLength = PIE.getLength;
cs = el.currentStyle;
w -= getLength( cs.paddingLeft ).pixels( el ) + getLength( cs.paddingRight ).pixels( el );
h -= getLength( cs.paddingTop ).pixels( el ) + getLength( cs.paddingBottom ).pixels( el );
}

return { w: w, h: h };
},


/**
* Tests if style.PiePngFix or the -pie-png-fix property is set to true in IE6.
*/
Expand Down
13 changes: 6 additions & 7 deletions sources/BorderImageRenderer.js
Expand Up @@ -105,8 +105,8 @@ PIE.BorderImageRenderer = PIE.RendererBase.newRenderer( {
this.pieces = {};

for( i = 0; i < len; i++ ) {
piece = this.pieces[ pieceNames[i] ] = PIE.Util.createVmlElement( 'rect' );
piece.appendChild( PIE.Util.createVmlElement( 'imagedata' ) );
piece = this.pieces[ pieceNames[i] ] = this.createVmlElement( 'rect' );
piece.appendChild( this.createVmlElement( 'imagedata' ) );
s = piece.style;
s['behavior'] = 'url(#default#VML)';
s.position = "absolute";
Expand Down Expand Up @@ -134,12 +134,11 @@ PIE.BorderImageRenderer = PIE.RendererBase.newRenderer( {
rs.borderStyle = 'solid';

// If widths specified in border-image shorthand, override border-width
// NOTE px units needed here as this gets used by the IE9 renderer too
if ( widths ) {
rs.borderTopWidth = widths['t'].pixels( el ) + 'px';
rs.borderRightWidth = widths['r'].pixels( el ) + 'px';
rs.borderBottomWidth = widths['b'].pixels( el ) + 'px';
rs.borderLeftWidth = widths['l'].pixels( el ) + 'px';
rs.borderTopWidth = widths['t'].pixels( el );
rs.borderRightWidth = widths['r'].pixels( el );
rs.borderBottomWidth = widths['b'].pixels( el );
rs.borderLeftWidth = widths['l'].pixels( el );
}

// Make the border transparent
Expand Down
7 changes: 3 additions & 4 deletions sources/IE9BackgroundRenderer.js
Expand Up @@ -21,7 +21,8 @@ PIE.IE9BackgroundRenderer = PIE.RendererBase.newRenderer( {

draw: function() {
var me = this,
props = me.styleInfos.backgroundInfo.getProps(),
bgInfo = me.styleInfos.backgroundInfo,
props = bgInfo.getProps(),
bg, images, i = 0, img, bgAreaSize, bgSize;

if ( props ) {
Expand All @@ -31,7 +32,7 @@ PIE.IE9BackgroundRenderer = PIE.RendererBase.newRenderer( {
if ( images ) {
while( img = images[ i++ ] ) {
if (img.imgType === 'linear-gradient' ) {
bgAreaSize = me.getBgAreaSize( img.bgOrigin );
bgAreaSize = bgInfo.getBgAreaSize( bg.bgOrigin, me.boundsInfo, me.styleInfos.borderInfo ),
bgSize = ( img.bgSize || PIE.BgSize.DEFAULT ).pixels(
me.targetElement, bgAreaSize.w, bgAreaSize.h, bgAreaSize.w, bgAreaSize.h
),
Expand Down Expand Up @@ -60,8 +61,6 @@ PIE.IE9BackgroundRenderer = PIE.RendererBase.newRenderer( {
}).join(' ') : '0 0';
},

getBgAreaSize: PIE.BackgroundRenderer.prototype.getBgAreaSize,

getGradientSvg: function( info, bgWidth, bgHeight ) {
var el = this.targetElement,
stopsInfo = info.stops,
Expand Down
23 changes: 22 additions & 1 deletion sources/IE9BorderImageRenderer.js
Expand Up @@ -165,7 +165,28 @@ PIE.IE9BorderImageRenderer = PIE.RendererBase.newRenderer( {
}
})(),

prepareUpdate: PIE.BorderImageRenderer.prototype.prepareUpdate,
prepareUpdate: function() {
if (this.isActive()) {
var me = this,
el = me.targetElement,
rs = el.runtimeStyle,
widths = me.styleInfos.borderImageInfo.getProps().widths;

// Force border-style to solid so it doesn't collapse
rs.borderStyle = 'solid';

// If widths specified in border-image shorthand, override border-width
if ( widths ) {
rs.borderTopWidth = widths['t'].pixels( el ) + 'px';
rs.borderRightWidth = widths['r'].pixels( el ) + 'px';
rs.borderBottomWidth = widths['b'].pixels( el ) + 'px';
rs.borderLeftWidth = widths['l'].pixels( el ) + 'px';
}

// Make the border transparent
me.hideBorder();
}
},

destroy: function() {
var me = this,
Expand Down

0 comments on commit d04bc09

Please sign in to comment.