startups 0.0.3.3 → 0.0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/rails_generators/startup/USAGE +11 -0
- data/rails_generators/startup/startup_generator.rb +23 -0
- data/rails_generators/startup_content/USAGE +11 -0
- data/rails_generators/startup_content/startup_content_generator.rb +41 -0
- data/rails_generators/startup_content/templates/content_controller.rb +7 -0
- data/rails_generators/startup_content/templates/content_controller_test.rb +14 -0
- data/rails_generators/startup_content/templates/content_helper.rb +3 -0
- data/rails_generators/startup_content/templates/example.html.erb +3 -0
- data/rails_generators/startup_content/templates/help.html.erb +3 -0
- data/rails_generators/startup_content/templates/home.html.erb +4 -0
- data/rails_generators/startup_layout/USAGE +11 -0
- data/rails_generators/startup_layout/startup_layout_generator.rb +48 -0
- data/rails_generators/startup_layout/templates/app/helpers/layout_helper.rb +71 -0
- data/rails_generators/startup_layout/templates/app/views/layouts/_startup_layout_footer.html.erb +6 -0
- data/rails_generators/startup_layout/templates/app/views/layouts/_startup_layout_header.html.erb +4 -0
- data/rails_generators/startup_layout/templates/app/views/layouts/startup_layout.html.erb +54 -0
- data/rails_generators/startup_layout/templates/public/images/blank.gif +0 -0
- data/rails_generators/startup_layout/templates/public/javascripts/startup_application.js +42 -0
- data/rails_generators/startup_layout/templates/public/javascripts/startup_iepngfix.js +173 -0
- data/rails_generators/startup_layout/templates/public/javascripts/startup_imgSizer.js +61 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout.css +21 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout_ie6.css +13 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout_ie7.css +5 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout_iepngfix.htc +198 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout_master.css +293 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_layout_reset.css +47 -0
- data/rails_generators/startup_layout/templates/public/stylesheets/startup_white.css +23 -0
- data/rails_generators/startup_nav/USAGE +12 -0
- data/rails_generators/startup_nav/startup_nav_generator.rb +35 -0
- data/rails_generators/startup_nav/templates/_nav.html.erb +7 -0
- data/rails_generators/startup_nav/templates/nav.css +36 -0
- data/rails_generators/startup_nav/templates/nav_helper.rb +76 -0
- data/startups.gemspec +2 -2
- metadata +35 -3
@@ -0,0 +1,11 @@
|
|
1
|
+
Description:
|
2
|
+
The startup generator runs all of the startup generators, creating a ready-to-go wireframe layout with navigation and example files.
|
3
|
+
|
4
|
+
Examples:
|
5
|
+
script/generate startup
|
6
|
+
|
7
|
+
|
8
|
+
#TODO UPDATE THIS OUTPUT
|
9
|
+
Template: app/views/layouts/application.html.erb
|
10
|
+
Stylesheet: public/stylesheets/startup.css
|
11
|
+
Helper: app/helpers/startup_helper.rb
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'startups'
|
2
|
+
|
3
|
+
class StartupGenerator < Rails::Generator::Base
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
record do |m|
|
7
|
+
m.generate('startup_content')
|
8
|
+
m.generate('startup_layout')
|
9
|
+
m.generate('startup_nav')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def banner
|
16
|
+
<<-EOS
|
17
|
+
Runs all of the startup generators, creating a ready-to-go wireframe layout with navigation and example files.
|
18
|
+
|
19
|
+
USAGE: #{$0} #{spec.name}
|
20
|
+
EOS
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Description:
|
2
|
+
The startup_content generator creates a content controller for home and other non-rest pages.
|
3
|
+
|
4
|
+
Examples:
|
5
|
+
script/generate startup_content
|
6
|
+
|
7
|
+
|
8
|
+
#TODO UPDATE THIS OUTPUT
|
9
|
+
Template: app/views/layouts/application.html.erb
|
10
|
+
Stylesheet: public/stylesheets/startup.css
|
11
|
+
Helper: app/helpers/startup_helper.rb
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'startups'
|
2
|
+
|
3
|
+
class StartupContentGenerator < Rails::Generator::Base
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
record do |m|
|
7
|
+
m.directory 'app/helpers'
|
8
|
+
m.directory 'app/controllers'
|
9
|
+
m.directory 'app/views/content'
|
10
|
+
m.directory 'test/functional'
|
11
|
+
|
12
|
+
m.file "content_controller.rb", "app/controllers/content_controller.rb"
|
13
|
+
m.file "home.html.erb", "app/views/content/home.html.erb"
|
14
|
+
m.file "help.html.erb", "app/views/content/help.html.erb"
|
15
|
+
m.file "example.html.erb", "app/views/content/example.html.erb"
|
16
|
+
m.file "content_helper.rb", "app/helpers/content_helper.rb"
|
17
|
+
m.file "content_controller_test.rb", "test/functional/content_controller_test.rb"
|
18
|
+
|
19
|
+
m.route %{
|
20
|
+
map.with_options(:controller => "content") do |content_map|
|
21
|
+
content_map.help 'help', :action => 'help'
|
22
|
+
content_map.placeholder 'placeholder/:name', :action => 'placeholder'
|
23
|
+
end }
|
24
|
+
m.route 'map.root :controller => "content", :action => "home"'
|
25
|
+
|
26
|
+
# example
|
27
|
+
# m.route :name => 'version', :controller => 'version', :action => 'display_version'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
def banner
|
34
|
+
<<-EOS
|
35
|
+
Creates content controller for home and other non-rest pages.
|
36
|
+
|
37
|
+
USAGE: #{$0} #{spec.name}
|
38
|
+
EOS
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Description:
|
2
|
+
The startup_layout generator creates a basic layout with the necessary helpers, stylesheet etc.
|
3
|
+
For now, the startup_nav startup is a prerequisite.
|
4
|
+
|
5
|
+
Examples:
|
6
|
+
script/generate startup_layout
|
7
|
+
|
8
|
+
#TODO UPDATE THIS OUTPUT
|
9
|
+
Template: app/views/layouts/application.html.erb
|
10
|
+
Stylesheet: public/stylesheets/startup.css
|
11
|
+
Helper: app/helpers/startup_helper.rb
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'startups'
|
2
|
+
|
3
|
+
class StartupLayoutGenerator < Rails::Generator::Base
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
record do |m|
|
7
|
+
m.directory 'public/stylesheets'
|
8
|
+
m.directory 'public/javascripts'
|
9
|
+
m.directory 'app/helpers'
|
10
|
+
m.directory 'app/views/layouts'
|
11
|
+
|
12
|
+
m.file "app/helpers/layout_helper.rb", "app/helpers/layout_helper.rb"
|
13
|
+
|
14
|
+
#TODO add checks here for other startups so the layout can include eg. the nav stuff, etc.
|
15
|
+
#TODO possibly add shway versions of things as well.
|
16
|
+
m.template "app/views/layouts/startup_layout.html.erb", "app/views/layouts/application.html.erb"#, :assigns => { :foo => 'foo' }
|
17
|
+
m.file "app/views/layouts/_startup_layout_footer.html.erb", "app/views/layouts/_footer.html.erb"
|
18
|
+
m.file "app/views/layouts/_startup_layout_header.html.erb", "app/views/layouts/_header.html.erb"
|
19
|
+
|
20
|
+
m.file "public/stylesheets/startup_layout_reset.css", "public/stylesheets/reset.css"
|
21
|
+
m.file "public/stylesheets/startup_layout.css", "public/stylesheets/application.css"
|
22
|
+
m.file "public/stylesheets/startup_white.css", "public/stylesheets/white.css"
|
23
|
+
m.file "public/stylesheets/startup_layout_master.css", "public/stylesheets/master.css"
|
24
|
+
m.file "public/stylesheets/startup_layout_ie6.css", "public/stylesheets/global-ie6.css"
|
25
|
+
m.file "public/stylesheets/startup_layout_ie7.css", "public/stylesheets/global-ie7.css"
|
26
|
+
m.file "public/styelsheets/startup_layout_iepngfix.htc", "public/stylesheets/iepngfix.htc"
|
27
|
+
|
28
|
+
m.file "public/javascripts/startup_application.js", "public/javascripts/application.js"
|
29
|
+
m.file "public/javascripts/startup_imgSizer.js", "public/javascripts/imgSizer.js"
|
30
|
+
m.file "public/javascripts/startup_iepngfix.js", "public/javascripts/iepngfix_tilebg.js"
|
31
|
+
|
32
|
+
m.file "public/images/blank.gif", "public/images/blank.gif"
|
33
|
+
|
34
|
+
m.rm 'public/index.html'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
def banner
|
41
|
+
<<-EOS
|
42
|
+
Creates a basic layout with the necessary helpers, stylesheet etc.
|
43
|
+
|
44
|
+
USAGE: #{$0} #{spec.name}
|
45
|
+
EOS
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module LayoutHelper
|
2
|
+
|
3
|
+
attr_accessor :title, :heading, :heading_image, :body_class, :crumbs
|
4
|
+
|
5
|
+
#for any options that match setter methods, set them. Raise errors for the rest.
|
6
|
+
def layout_options(options={})
|
7
|
+
return if options.blank?
|
8
|
+
options = options.clone
|
9
|
+
options.keys.each do |key|
|
10
|
+
#if there is a layout_ version of the setter, call it
|
11
|
+
layout_setter = "layout_#{key}=".intern
|
12
|
+
if self.respond_to? layout_setter
|
13
|
+
self.send layout_setter, options.delete(key)
|
14
|
+
next
|
15
|
+
end
|
16
|
+
setter = "#{key}=".intern
|
17
|
+
#if there is a setter, call it
|
18
|
+
if self.respond_to? setter
|
19
|
+
self.send setter, options.delete(key)
|
20
|
+
next
|
21
|
+
end
|
22
|
+
#if there is a no setter, but there is a method, call it with *args
|
23
|
+
#TODO write some tests for varying method signatures
|
24
|
+
if self.respond_to?(key) && (method(key).arity == 1 || method(key).arity <= -2)
|
25
|
+
self.send key, *options.delete(key)
|
26
|
+
next
|
27
|
+
end
|
28
|
+
#if there was no setter and no method available, raise
|
29
|
+
raise "No setter or method was found for the layout_option: #{key}"
|
30
|
+
end
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
|
34
|
+
def layout_title
|
35
|
+
#NOTE: @selected_nav_title may get set by the nav startup if it's installed. Using the instance var makes it easier to mix and match the startups.
|
36
|
+
@title || @selected_nav_title || @heading || 'Default Title (CHANGEME)'
|
37
|
+
end
|
38
|
+
|
39
|
+
def layout_heading(text=@heading,options={})
|
40
|
+
options[:img] = @heading_image unless options.has_key? :img
|
41
|
+
if options[:img].blank?
|
42
|
+
text.blank? ? nil : %{<h1>#{text}</h1>}
|
43
|
+
#TODO make sifrd an option
|
44
|
+
# text.blank? ? nil : %{<h1 class="sifrd">#{text}</h1>}
|
45
|
+
else
|
46
|
+
%{<h1>#{image_tag(options[:img], :alt => text)}</h1>} unless text.blank?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def layout_crumbs
|
51
|
+
return if @crumbs.blank?
|
52
|
+
html = []
|
53
|
+
html << '<div class="crumbs">'
|
54
|
+
@crumbs.each do |crumb|
|
55
|
+
html << crumb
|
56
|
+
html << '<span>»</span>'
|
57
|
+
end
|
58
|
+
html << '</div>'
|
59
|
+
html.join
|
60
|
+
end
|
61
|
+
|
62
|
+
def layout_body_tag
|
63
|
+
class_att = body_class ? %{ class="#{body_class}"} : nil
|
64
|
+
if @layout_nav
|
65
|
+
%{<body id="#{@layout_nav}"#{class_att}>}
|
66
|
+
else
|
67
|
+
'<body>'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
data/rails_generators/startup_layout/templates/app/views/layouts/_startup_layout_footer.html.erb
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
<div id="footer">
|
2
|
+
<div id="footer_content">
|
3
|
+
<%# NOTE: the const_defined? check is here to allow this to function if the nav startup wasn't installed, and should be removed after the initial setup. %>
|
4
|
+
<%= render :partial => 'layouts/footer_nav' if Object.const_defined? :NavHelper %>
|
5
|
+
</div>
|
6
|
+
</div>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
|
6
|
+
<title><%%= layout_title %></title>
|
7
|
+
|
8
|
+
<meta name="distribution" content="all" />
|
9
|
+
<meta name="robots" content="all" />
|
10
|
+
<meta name="resource-type" content="document" />
|
11
|
+
<meta name="MSSmartTagsPreventParsing" content="true" />
|
12
|
+
<meta http-equiv="imagetoolbar" content="no" />
|
13
|
+
|
14
|
+
<meta http-equiv="cache-control" content="no-cache"> <!-- tells browser not to cache -->
|
15
|
+
<meta http-equiv="expires" content="0"> <!-- says that the cache expires 'now' -->
|
16
|
+
<meta http-equiv="pragma" content="no-cache"> <!-- says not to use cached stuff, if there is any -->
|
17
|
+
|
18
|
+
<%%= stylesheet_link_tag 'application' %>
|
19
|
+
<!-- http://www.quirksmode.org/css/condcom.html for MSIE Conditional Statements -->
|
20
|
+
<!--[if lt IE 7]><%%= stylesheet_link_tag 'global-ie6', :media => 'screen, projector' %><![endif]-->
|
21
|
+
<!--[if IE 7]><%%= stylesheet_link_tag 'global-ie7', :media => 'screen, projector' %><![endif] -->
|
22
|
+
<%%= stylesheet_link_tag 'nav' if Object.const_defined? :NavHelper %>
|
23
|
+
|
24
|
+
<%%= javascript_include_tag :defaults %>
|
25
|
+
<%%= javascript_include_tag 'imgSizer' %>
|
26
|
+
|
27
|
+
<%%= csrf_meta_tag %>
|
28
|
+
</head>
|
29
|
+
|
30
|
+
<%%= layout_body_tag %>
|
31
|
+
<div id="all">
|
32
|
+
<%%= render :partial => 'layouts/header' unless @omit_header %>
|
33
|
+
<div id="content">
|
34
|
+
<%%= layout_crumbs %>
|
35
|
+
<%%= layout_heading %>
|
36
|
+
<%% if flash[:notice] %>
|
37
|
+
<div class="notice confirm">
|
38
|
+
<%%= flash[:notice] %>
|
39
|
+
</div>
|
40
|
+
<%% end %>
|
41
|
+
<%% if flash[:error ] %>
|
42
|
+
<div class='notice error'>
|
43
|
+
<%%= flash[:error ]%>
|
44
|
+
</div>
|
45
|
+
<%% end %>
|
46
|
+
<%%#= fancy_heading unless @heading.blank? && @right_heading.blank? %>
|
47
|
+
<%%= yield %>
|
48
|
+
</div>
|
49
|
+
<%%= render :partial => 'layouts/footer' %>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
</body>
|
53
|
+
|
54
|
+
</html>
|
Binary file
|
@@ -0,0 +1,42 @@
|
|
1
|
+
// Place your application-specific JavaScript functions and classes here
|
2
|
+
// This file is automatically included by javascript_include_tag :defaults
|
3
|
+
|
4
|
+
// Calls a Safari specific stylesheet if you really need to hack directly
|
5
|
+
function isSafari(){
|
6
|
+
var app = navigator.userAgent;
|
7
|
+
if (app.indexOf('Safari') != -1) {
|
8
|
+
document.write(" <link href=\"/stylesheets/safari.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" /> ");
|
9
|
+
}
|
10
|
+
}
|
11
|
+
isSafari();
|
12
|
+
|
13
|
+
// Force Opera to reload when using the back button
|
14
|
+
// http://dev.opera.com/forums/topic/224464
|
15
|
+
function OperaReload() {
|
16
|
+
try {
|
17
|
+
var headElement = document.getElementsByTagName("head")[0];
|
18
|
+
if (headElement && headElement.innerHTML)
|
19
|
+
headElement.innerHTML += "<meta http-equiv=\"refresh\" content=\"1\">";
|
20
|
+
}
|
21
|
+
catch (e) {}
|
22
|
+
}
|
23
|
+
|
24
|
+
// Load Event
|
25
|
+
|
26
|
+
function addLoadEvent(func) {
|
27
|
+
var oldonload = window.onload;
|
28
|
+
if (typeof window.onload != 'function') {
|
29
|
+
window.onload = func;
|
30
|
+
} else {
|
31
|
+
window.onload = function() {
|
32
|
+
if (oldonload) {
|
33
|
+
oldonload();
|
34
|
+
}
|
35
|
+
func();
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
addLoadEvent(function() {
|
40
|
+
img.Sizer.collate();
|
41
|
+
});
|
42
|
+
|
@@ -0,0 +1,173 @@
|
|
1
|
+
// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
|
2
|
+
// (c) 2008-2009 Angus Turnbull http://www.twinhelix.com
|
3
|
+
|
4
|
+
// This is licensed under the GNU LGPL, version 2.1 or later.
|
5
|
+
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
6
|
+
|
7
|
+
var IEPNGFix = window.IEPNGFix || {};
|
8
|
+
|
9
|
+
IEPNGFix.tileBG = function(elm, pngSrc, ready) {
|
10
|
+
// Params: A reference to a DOM element, the PNG src file pathname, and a
|
11
|
+
// hidden "ready-to-run" passed when called back after image preloading.
|
12
|
+
|
13
|
+
var data = this.data[elm.uniqueID],
|
14
|
+
elmW = Math.max(elm.clientWidth, elm.scrollWidth),
|
15
|
+
elmH = Math.max(elm.clientHeight, elm.scrollHeight),
|
16
|
+
bgX = elm.currentStyle.backgroundPositionX,
|
17
|
+
bgY = elm.currentStyle.backgroundPositionY,
|
18
|
+
bgR = elm.currentStyle.backgroundRepeat;
|
19
|
+
|
20
|
+
// Cache of DIVs created per element, and image preloader/data.
|
21
|
+
if (!data.tiles) {
|
22
|
+
data.tiles = {
|
23
|
+
elm: elm,
|
24
|
+
src: '',
|
25
|
+
cache: [],
|
26
|
+
img: new Image(),
|
27
|
+
old: {}
|
28
|
+
};
|
29
|
+
}
|
30
|
+
var tiles = data.tiles,
|
31
|
+
pngW = tiles.img.width,
|
32
|
+
pngH = tiles.img.height;
|
33
|
+
|
34
|
+
if (pngSrc) {
|
35
|
+
if (!ready && pngSrc != tiles.src) {
|
36
|
+
// New image? Preload it with a callback to detect dimensions.
|
37
|
+
tiles.img.onload = function() {
|
38
|
+
this.onload = null;
|
39
|
+
IEPNGFix.tileBG(elm, pngSrc, 1);
|
40
|
+
};
|
41
|
+
return tiles.img.src = pngSrc;
|
42
|
+
}
|
43
|
+
} else {
|
44
|
+
// No image?
|
45
|
+
if (tiles.src) ready = 1;
|
46
|
+
pngW = pngH = 0;
|
47
|
+
}
|
48
|
+
tiles.src = pngSrc;
|
49
|
+
|
50
|
+
if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
|
51
|
+
bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
// Convert English and percentage positions to pixels.
|
56
|
+
var pos = {
|
57
|
+
top: '0%',
|
58
|
+
left: '0%',
|
59
|
+
center: '50%',
|
60
|
+
bottom: '100%',
|
61
|
+
right: '100%'
|
62
|
+
},
|
63
|
+
x,
|
64
|
+
y,
|
65
|
+
pc;
|
66
|
+
x = pos[bgX] || bgX;
|
67
|
+
y = pos[bgY] || bgY;
|
68
|
+
if (pc = x.match(/(\d+)%/)) {
|
69
|
+
x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
|
70
|
+
}
|
71
|
+
if (pc = y.match(/(\d+)%/)) {
|
72
|
+
y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
|
73
|
+
}
|
74
|
+
x = parseInt(x);
|
75
|
+
y = parseInt(y);
|
76
|
+
|
77
|
+
// Handle backgroundRepeat.
|
78
|
+
var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
|
79
|
+
repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
|
80
|
+
if (repeatX) {
|
81
|
+
x %= pngW;
|
82
|
+
if (x > 0) x -= pngW;
|
83
|
+
}
|
84
|
+
if (repeatY) {
|
85
|
+
y %= pngH;
|
86
|
+
if (y > 0) y -= pngH;
|
87
|
+
}
|
88
|
+
|
89
|
+
// Go!
|
90
|
+
this.hook.enabled = 0;
|
91
|
+
if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
|
92
|
+
elm.style.position = 'relative';
|
93
|
+
}
|
94
|
+
var count = 0,
|
95
|
+
xPos,
|
96
|
+
maxX = repeatX ? elmW : x + 0.1,
|
97
|
+
yPos,
|
98
|
+
maxY = repeatY ? elmH : y + 0.1,
|
99
|
+
d,
|
100
|
+
s,
|
101
|
+
isNew;
|
102
|
+
if (pngW && pngH) {
|
103
|
+
for (xPos = x; xPos < maxX; xPos += pngW) {
|
104
|
+
for (yPos = y; yPos < maxY; yPos += pngH) {
|
105
|
+
isNew = 0;
|
106
|
+
if (!tiles.cache[count]) {
|
107
|
+
tiles.cache[count] = document.createElement('div');
|
108
|
+
isNew = 1;
|
109
|
+
}
|
110
|
+
var clipR = Math.max(0, xPos + pngW > elmW ? elmW - xPos : pngW),
|
111
|
+
clipB = Math.max(0, yPos + pngH > elmH ? elmH - yPos : pngH);
|
112
|
+
d = tiles.cache[count];
|
113
|
+
s = d.style;
|
114
|
+
s.behavior = 'none';
|
115
|
+
s.left = (xPos - parseInt(elm.currentStyle.paddingLeft)) + 'px';
|
116
|
+
s.top = yPos + 'px';
|
117
|
+
s.width = clipR + 'px';
|
118
|
+
s.height = clipB + 'px';
|
119
|
+
s.clip = 'rect(' +
|
120
|
+
(yPos < 0 ? 0 - yPos : 0) + 'px,' +
|
121
|
+
clipR + 'px,' +
|
122
|
+
clipB + 'px,' +
|
123
|
+
(xPos < 0 ? 0 - xPos : 0) + 'px)';
|
124
|
+
s.display = 'block';
|
125
|
+
if (isNew) {
|
126
|
+
s.position = 'absolute';
|
127
|
+
s.zIndex = -999;
|
128
|
+
if (elm.firstChild) {
|
129
|
+
elm.insertBefore(d, elm.firstChild);
|
130
|
+
} else {
|
131
|
+
elm.appendChild(d);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
this.fix(d, pngSrc, 0);
|
135
|
+
count++;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
while (count < tiles.cache.length) {
|
140
|
+
this.fix(tiles.cache[count], '', 0);
|
141
|
+
tiles.cache[count++].style.display = 'none';
|
142
|
+
}
|
143
|
+
|
144
|
+
this.hook.enabled = 1;
|
145
|
+
|
146
|
+
// Cache so updates are infrequent.
|
147
|
+
tiles.old = {
|
148
|
+
w: elmW,
|
149
|
+
h: elmH,
|
150
|
+
x: bgX,
|
151
|
+
y: bgY,
|
152
|
+
r: bgR
|
153
|
+
};
|
154
|
+
};
|
155
|
+
|
156
|
+
|
157
|
+
IEPNGFix.update = function() {
|
158
|
+
// Update all PNG backgrounds.
|
159
|
+
for (var i in IEPNGFix.data) {
|
160
|
+
var t = IEPNGFix.data[i].tiles;
|
161
|
+
if (t && t.elm && t.src) {
|
162
|
+
IEPNGFix.tileBG(t.elm, t.src);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
};
|
166
|
+
IEPNGFix.update.timer = 0;
|
167
|
+
|
168
|
+
if (window.attachEvent && !window.opera) {
|
169
|
+
window.attachEvent('onresize', function() {
|
170
|
+
clearTimeout(IEPNGFix.update.timer);
|
171
|
+
IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100);
|
172
|
+
});
|
173
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/* Dan Cederholm's resizing method for images in Internet Explorer so they don't look god awful. */
|
2
|
+
|
3
|
+
var imgSizer= {
|
4
|
+
Config : {
|
5
|
+
spacer : "/images/spacer.gif",
|
6
|
+
imgCache : []
|
7
|
+
}
|
8
|
+
|
9
|
+
,collate : function(oScope) {
|
10
|
+
if (document.all && !window.opera) {
|
11
|
+
var c = imgSizer;
|
12
|
+
var imgCache = c.Config.imgCache;
|
13
|
+
|
14
|
+
var images = (oScope && oScope.length) ? oScope : document.getElementsByTagName("img");
|
15
|
+
for (var i = 0; i < images.length; i++) {
|
16
|
+
images[i].origWidth = images[i].offsetWidth;
|
17
|
+
images[i].origHeight = images[i].offsetHeight;
|
18
|
+
|
19
|
+
imgCache.push(images[i]);
|
20
|
+
c.ieAlpha(images[i]);
|
21
|
+
images[i].style.width = "100%";
|
22
|
+
}
|
23
|
+
|
24
|
+
if(imgCache.length) {
|
25
|
+
c.resize(function() {
|
26
|
+
for (var i = 0; i < imgCache.length; i++) {
|
27
|
+
var ratio = (imgCache[i].offsetWidth imgCache[i].origWidth);
|
28
|
+
imgCache[i].style.height = (imgCache[i].origHeight * ratio) + "px";
|
29
|
+
}
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
,ieAlpha : function(img) {
|
36
|
+
var c = imgSizer;
|
37
|
+
if (img.oldSrc) {
|
38
|
+
img.src = img.oldSrc;
|
39
|
+
}
|
40
|
+
var src = img.src
|
41
|
+
img.style.width = img.offsetWidth + "px";
|
42
|
+
img.style.height = img.offsetHeight + "px";
|
43
|
+
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale)"
|
44
|
+
img.oldSrc = src;
|
45
|
+
img.src = c.Config.spacer;
|
46
|
+
}
|
47
|
+
|
48
|
+
,resize : function(func) {
|
49
|
+
var oldonresize = window.onresize;
|
50
|
+
if (typeof window.onresize != 'function') {
|
51
|
+
window.onresize = func;
|
52
|
+
} else {
|
53
|
+
window.onresize = function() {
|
54
|
+
if (oldonresize) {
|
55
|
+
oldonresize();
|
56
|
+
}
|
57
|
+
func();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/*
|
2
|
+
Title: Screen styles and MSIE patches
|
3
|
+
Author: John Athayde for Infoether
|
4
|
+
*/
|
5
|
+
|
6
|
+
/* import stylesheets and hide from IE/Mac \*/
|
7
|
+
@import url("reset.css") screen; /* Reset browsers */
|
8
|
+
|
9
|
+
/* Startups stylesheet would go here */
|
10
|
+
|
11
|
+
@import url("master.css") screen;
|
12
|
+
@import url("white.css") screen; /* This contains the infoether basic style for a no design app */
|
13
|
+
|
14
|
+
/* Plugin stylesheets */
|
15
|
+
/*@import url("uniform.default.css") screen;*/
|
16
|
+
/*@import url("buttons.css") screen;*/
|
17
|
+
|
18
|
+
|
19
|
+
/* end import/hide */
|
20
|
+
|
21
|
+
/* If there are any styles that we want IE5/Mac to see, we put them after this */
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/* ### PNG Fix ### */
|
2
|
+
* html #selector {
|
3
|
+
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='img/image.png');
|
4
|
+
background-image: none;
|
5
|
+
background-repeat: no-repeat;
|
6
|
+
background-color: transparent;
|
7
|
+
}
|
8
|
+
|
9
|
+
/* ### IE6 Clearfix ### */
|
10
|
+
|
11
|
+
* html .group {
|
12
|
+
height: 1%;
|
13
|
+
}
|