2010-07-11 10:58:36 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# Copyright (c) 2008-2010 Raoul Snyman #
|
|
|
|
# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
|
2010-07-25 09:03:01 +00:00
|
|
|
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
|
|
|
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
|
|
|
# Carsten Tinggaard, Frode Woldsund #
|
2010-07-11 10:58:36 +00:00
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# This program is free software; you can redistribute it and/or modify it #
|
|
|
|
# under the terms of the GNU General Public License as published by the Free #
|
|
|
|
# Software Foundation; version 2 of the License. #
|
|
|
|
# #
|
|
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
|
|
# more details. #
|
|
|
|
# #
|
|
|
|
# You should have received a copy of the GNU General Public License along #
|
|
|
|
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
|
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
from openlp.core.lib import image_to_byte
|
|
|
|
|
|
|
|
HTMLSRC = u"""
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>OpenLP Display</title>
|
|
|
|
<style>
|
|
|
|
*{
|
|
|
|
margin: 0;
|
|
|
|
padding:0
|
|
|
|
}
|
|
|
|
%s
|
|
|
|
%s
|
|
|
|
%s
|
|
|
|
%s
|
2010-07-11 12:35:41 +00:00
|
|
|
%s
|
2010-07-19 18:03:00 +00:00
|
|
|
%s
|
2010-07-24 16:55:06 +00:00
|
|
|
%s
|
2010-07-11 10:58:36 +00:00
|
|
|
</style>
|
|
|
|
<script language="javascript">
|
|
|
|
var t = null;
|
2010-07-30 05:08:49 +00:00
|
|
|
var transition = %s;
|
2010-08-01 08:28:31 +00:00
|
|
|
|
2010-08-05 05:37:26 +00:00
|
|
|
function blankState(state){
|
|
|
|
var black = 'none';
|
|
|
|
var lyrics = '';
|
|
|
|
switch(state){
|
|
|
|
case 'theme':
|
|
|
|
lyrics = 'none';
|
|
|
|
break;
|
|
|
|
case 'black':
|
|
|
|
black = 'inline';
|
2010-08-05 19:01:24 +00:00
|
|
|
break;
|
2010-08-05 05:37:26 +00:00
|
|
|
}
|
|
|
|
document.getElementById('black').style.display = black;
|
|
|
|
document.getElementById('lyricsmain').style.display = lyrics;
|
|
|
|
document.getElementById('lyricsoutline').style.display = lyrics;
|
|
|
|
document.getElementById('lyricsshadow').style.display = lyrics;
|
|
|
|
document.getElementById('footer').style.display = lyrics;
|
|
|
|
}
|
|
|
|
|
2010-08-04 04:59:41 +00:00
|
|
|
function displayAlert(alerttext){
|
2010-08-01 13:11:54 +00:00
|
|
|
var text1 = document.getElementById('alertmain');
|
2010-08-04 04:59:41 +00:00
|
|
|
text1.innerHTML = alerttext;
|
2010-08-01 13:11:54 +00:00
|
|
|
}
|
|
|
|
|
2010-07-11 10:58:36 +00:00
|
|
|
function startfade(newtext){
|
2010-07-30 05:08:49 +00:00
|
|
|
var text1 = document.getElementById('lyricsmain');
|
|
|
|
var texto1 = document.getElementById('lyricsoutline');
|
|
|
|
var texts1 = document.getElementById('lyricsshadow');
|
|
|
|
if(!transition){
|
|
|
|
text1.innerHTML = newtext;
|
|
|
|
texto1.innerHTML = newtext;
|
|
|
|
texts1.innerHTML = newtext;
|
|
|
|
return;
|
2010-08-01 08:28:31 +00:00
|
|
|
}
|
2010-07-30 05:08:49 +00:00
|
|
|
var text2 = document.getElementById('lyricsmain2');
|
|
|
|
var texto2 = document.getElementById('lyricsoutline2');
|
|
|
|
var texts2 = document.getElementById('lyricsshadow2');
|
2010-07-11 10:58:36 +00:00
|
|
|
if(text2.style.opacity==''||parseFloat(text2.style.opacity) < 0.5){
|
|
|
|
text2.innerHTML = text1.innerHTML;
|
|
|
|
text2.style.opacity = text1.style.opacity;
|
2010-07-30 05:08:49 +00:00
|
|
|
texto2.innerHTML = text1.innerHTML;
|
|
|
|
texto2.style.opacity = text1.style.opacity;
|
|
|
|
texts2.innerHTML = text1.innerHTML;
|
|
|
|
texts2.style.opacity = text1.style.opacity;
|
2010-07-11 10:58:36 +00:00
|
|
|
}
|
|
|
|
text1.style.opacity = 0;
|
|
|
|
text1.innerHTML = newtext;
|
2010-07-30 05:08:49 +00:00
|
|
|
texto1.style.opacity = 0;
|
|
|
|
texto1.innerHTML = newtext;
|
|
|
|
texts1.style.opacity = 0;
|
|
|
|
texts1.innerHTML = newtext;
|
|
|
|
// temp:
|
|
|
|
texts2.style.opacity = 0;
|
|
|
|
// end temp
|
2010-07-11 10:58:36 +00:00
|
|
|
if(t!=null)
|
|
|
|
clearTimeout(t);
|
|
|
|
t = setTimeout('fade()', 50);
|
|
|
|
}
|
2010-08-06 05:09:32 +00:00
|
|
|
|
2010-07-11 10:58:36 +00:00
|
|
|
function fade(){
|
2010-07-30 05:08:49 +00:00
|
|
|
var text1 = document.getElementById('lyricsmain');
|
|
|
|
var texto1 = document.getElementById('lyricsoutline');
|
|
|
|
var texts1 = document.getElementById('lyricsshadow');
|
|
|
|
var text2 = document.getElementById('lyricsmain2');
|
|
|
|
var texto2 = document.getElementById('lyricsoutline2');
|
|
|
|
var texts2 = document.getElementById('lyricsshadow2');
|
|
|
|
if(parseFloat(text1.style.opacity) < 1){
|
|
|
|
text1.style.opacity = parseFloat(text1.style.opacity) + 0.1;
|
|
|
|
texto1.style.opacity = parseFloat(texto1.style.opacity) + 0.1;
|
|
|
|
//texts1.style.opacity = parseFloat(texts1.style.opacity) + 0.1;
|
|
|
|
}
|
|
|
|
if(parseFloat(text2.style.opacity) > 0){
|
|
|
|
text2.style.opacity = parseFloat(text2.style.opacity) - 0.1;
|
|
|
|
texto2.style.opacity = parseFloat(texto2.style.opacity) - 0.1;
|
|
|
|
//texts2.style.opacity = parseFloat(texts2.style.opacity) - 0.1;
|
|
|
|
}
|
2010-07-11 10:58:36 +00:00
|
|
|
if((parseFloat(text1.style.opacity) < 1)||(parseFloat(text2.style.opacity) > 0))
|
|
|
|
t = setTimeout('fade()', 50);
|
2010-07-30 05:08:49 +00:00
|
|
|
else{
|
|
|
|
text1.style.opacity = 1
|
|
|
|
texto1.style.opacity = 1
|
|
|
|
texts1.style.opacity = 1
|
|
|
|
text2.style.opacity = 0
|
|
|
|
texto2.style.opacity = 0
|
|
|
|
texts2.style.opacity = 0
|
|
|
|
}
|
2010-08-06 05:09:32 +00:00
|
|
|
}
|
|
|
|
|
2010-08-06 16:38:52 +00:00
|
|
|
function fadeFinished(){
|
|
|
|
return (document.getElementById('lyricsmain').style.opacity==1);
|
2010-07-11 10:58:36 +00:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body>
|
2010-07-30 05:08:49 +00:00
|
|
|
<table class="lyricstable lyricscommon">
|
2010-07-28 16:53:54 +00:00
|
|
|
<tr><td id="lyricsmain" class="lyrics"></td></tr>
|
|
|
|
</table>
|
2010-07-30 05:08:49 +00:00
|
|
|
<table class="lyricsoutlinetable lyricscommon">
|
|
|
|
<tr><td id="lyricsoutline" class="lyricsoutline lyrics"></td></tr>
|
|
|
|
</table>
|
|
|
|
<table class="lyricsshadowtable lyricscommon">
|
|
|
|
<tr><td id="lyricsshadow" class="lyricsshadow lyrics"></td></tr>
|
|
|
|
</table>
|
|
|
|
<table class="lyricstable lyricscommon">
|
|
|
|
<tr><td id="lyricsmain2" class="lyrics"></td></tr>
|
|
|
|
</table>
|
|
|
|
<table class="lyricsoutlinetable lyricscommon">
|
|
|
|
<tr><td id="lyricsoutline2" class="lyricsoutline lyrics"></td></tr>
|
|
|
|
</table>
|
|
|
|
<table class="lyricsshadowtable lyricscommon">
|
|
|
|
<tr><td id="lyricsshadow2" class="lyricsshadow lyrics"></td></tr>
|
2010-07-28 16:53:54 +00:00
|
|
|
</table>
|
2010-08-03 05:15:50 +00:00
|
|
|
<table class="alerttable">
|
2010-08-04 04:59:41 +00:00
|
|
|
<tr><td class="alertcell">
|
|
|
|
<div class="alert" id="alertmain"></div>
|
|
|
|
</td></tr>
|
2010-08-01 08:28:31 +00:00
|
|
|
</table>
|
2010-07-19 18:03:00 +00:00
|
|
|
<div id="footer" class="footer"></div>
|
2010-07-11 10:58:36 +00:00
|
|
|
<video id="video"></video>
|
2010-08-05 05:37:26 +00:00
|
|
|
<div id="black"></div>
|
2010-07-11 10:58:36 +00:00
|
|
|
%s
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
"""
|
2010-07-27 19:13:56 +00:00
|
|
|
|
2010-07-17 08:59:15 +00:00
|
|
|
def build_html(item, screen, alert):
|
2010-07-25 08:58:08 +00:00
|
|
|
"""
|
|
|
|
Build the full web paged structure for display
|
|
|
|
|
|
|
|
`item`
|
|
|
|
Service Item to be displayed
|
|
|
|
`screen`
|
|
|
|
Current display information
|
|
|
|
`alert`
|
|
|
|
Alert display display information
|
|
|
|
"""
|
2010-07-11 10:58:36 +00:00
|
|
|
width = screen[u'size'].width()
|
|
|
|
height = screen[u'size'].height()
|
2010-07-30 05:08:49 +00:00
|
|
|
theme = item.themedata
|
2010-07-17 08:59:15 +00:00
|
|
|
html = HTMLSRC % (build_video(width, height),
|
|
|
|
build_image(width, height),
|
2010-07-24 16:55:06 +00:00
|
|
|
build_lyrics(item),
|
|
|
|
build_footer(item),
|
2010-08-01 13:11:54 +00:00
|
|
|
build_alert(width, height, alert),
|
2010-07-17 08:59:15 +00:00
|
|
|
build_image(width, height),
|
2010-08-05 05:37:26 +00:00
|
|
|
build_black(width, height),
|
2010-08-03 04:56:21 +00:00
|
|
|
"true" if theme and
|
|
|
|
theme.display_slideTransition else "false",
|
2010-07-17 08:59:15 +00:00
|
|
|
build_image_src(item.bg_frame))
|
2010-07-11 10:58:36 +00:00
|
|
|
return html
|
|
|
|
|
2010-07-17 08:59:15 +00:00
|
|
|
def build_video(width, height):
|
2010-07-25 08:58:08 +00:00
|
|
|
"""
|
|
|
|
Build the video display div
|
|
|
|
|
|
|
|
`width`
|
|
|
|
Screen width
|
|
|
|
`height`
|
|
|
|
Screen height
|
|
|
|
"""
|
2010-07-11 10:58:36 +00:00
|
|
|
video = """
|
2010-07-26 16:42:19 +00:00
|
|
|
#video { position: absolute; left: 0px; top: 0px;
|
2010-08-05 19:01:24 +00:00
|
|
|
width: %spx; height: %spx; z-index:2; }
|
2010-07-11 10:58:36 +00:00
|
|
|
"""
|
2010-07-17 08:59:15 +00:00
|
|
|
return video % (width, height)
|
|
|
|
|
2010-08-05 05:37:26 +00:00
|
|
|
def build_black(width, height):
|
2010-07-25 08:58:08 +00:00
|
|
|
"""
|
2010-08-05 05:37:26 +00:00
|
|
|
Build the black display div
|
2010-07-25 08:58:08 +00:00
|
|
|
|
|
|
|
`width`
|
|
|
|
Screen width
|
|
|
|
`height`
|
|
|
|
Screen height
|
|
|
|
"""
|
2010-08-05 05:37:26 +00:00
|
|
|
black = """
|
|
|
|
#black { position: absolute; left: 0px; top: 0px;
|
2010-07-28 17:21:32 +00:00
|
|
|
width: %spx; height: %spx; z-index:10;
|
2010-08-05 05:37:26 +00:00
|
|
|
background-color: black; display: none;
|
2010-07-24 16:55:06 +00:00
|
|
|
}
|
|
|
|
"""
|
2010-08-05 05:37:26 +00:00
|
|
|
return black % (width, height)
|
2010-07-11 10:58:36 +00:00
|
|
|
|
2010-07-17 08:59:15 +00:00
|
|
|
def build_image(width, height):
|
2010-07-25 08:58:08 +00:00
|
|
|
"""
|
|
|
|
Build the image display div
|
|
|
|
|
|
|
|
`width`
|
|
|
|
Screen width
|
|
|
|
`height`
|
|
|
|
Screen height
|
|
|
|
"""
|
2010-07-11 10:58:36 +00:00
|
|
|
image = """
|
2010-07-28 17:21:32 +00:00
|
|
|
#image { position: absolute; left: 0px; top: 0px;
|
2010-08-05 19:01:24 +00:00
|
|
|
width: %spx; height: %spx; z-index:1;
|
2010-07-11 10:58:36 +00:00
|
|
|
}
|
|
|
|
"""
|
|
|
|
return image % (width, height)
|
|
|
|
|
2010-07-17 08:59:15 +00:00
|
|
|
def build_image_src(image):
|
2010-08-03 04:56:21 +00:00
|
|
|
"""
|
|
|
|
Build display for the backgroung image
|
|
|
|
|
|
|
|
`image`
|
|
|
|
Image to be displayed
|
|
|
|
"""
|
2010-07-11 10:58:36 +00:00
|
|
|
image_src = """
|
2010-07-26 16:42:19 +00:00
|
|
|
<img src="data:image/png;base64,%s">
|
2010-07-11 10:58:36 +00:00
|
|
|
"""
|
2010-07-12 19:36:42 +00:00
|
|
|
return image_src % image_to_byte(image)
|
2010-07-11 10:58:36 +00:00
|
|
|
|
2010-07-24 16:55:06 +00:00
|
|
|
def build_lyrics(item):
|
2010-07-25 08:58:08 +00:00
|
|
|
"""
|
|
|
|
Build the video display div
|
|
|
|
|
|
|
|
`item`
|
|
|
|
Service Item containing theme and location information
|
|
|
|
"""
|
2010-07-28 16:53:54 +00:00
|
|
|
style = """
|
2010-07-30 05:08:49 +00:00
|
|
|
.lyricscommon { position: absolute; %s }
|
|
|
|
.lyricstable { z-index:4; %s }
|
|
|
|
.lyricsoutlinetable { z-index:3; %s }
|
|
|
|
.lyricsshadowtable { z-index:2; %s }
|
2010-07-28 16:53:54 +00:00
|
|
|
.lyrics { %s }
|
2010-07-30 05:08:49 +00:00
|
|
|
.lyricsoutline { %s }
|
2010-08-01 08:28:31 +00:00
|
|
|
.lyricsshadow { %s }
|
2010-07-28 16:53:54 +00:00
|
|
|
table {border=0; margin=0; padding=0; }
|
2010-07-30 05:08:49 +00:00
|
|
|
"""
|
2010-07-17 08:59:15 +00:00
|
|
|
theme = item.themedata
|
2010-07-30 05:08:49 +00:00
|
|
|
lyricscommon = u''
|
|
|
|
lyricstable = u''
|
|
|
|
outlinetable = u''
|
|
|
|
shadowtable = u''
|
2010-07-28 16:53:54 +00:00
|
|
|
lyrics = u''
|
2010-07-30 05:08:49 +00:00
|
|
|
outline = u'display: none;'
|
|
|
|
shadow = u'display: none;'
|
2010-07-12 16:49:38 +00:00
|
|
|
if theme:
|
2010-07-30 05:08:49 +00:00
|
|
|
lyricscommon = u'width: %spx; height: %spx; ' \
|
|
|
|
u'font-family %s; font-size: %spx; color: %s; line-height: %d%%' % \
|
|
|
|
(item.main.width(), item.main.height(),
|
2010-08-01 08:28:31 +00:00
|
|
|
theme.font_main_name, theme.font_main_proportion,
|
2010-07-30 05:08:49 +00:00
|
|
|
theme.font_main_color, 100 + int(theme.font_main_line_adjustment))
|
|
|
|
lyricstable = u'left: %spx; top: %spx;' % \
|
|
|
|
(item.main.x(), item.main.y())
|
|
|
|
outlinetable = u'left: %spx; top: %spx;' % \
|
|
|
|
(item.main.x(), item.main.y())
|
|
|
|
shadowtable = u'left: %spx; top: %spx;' % \
|
|
|
|
(item.main.x() + float(theme.display_shadow_size),
|
|
|
|
item.main.y() + float(theme.display_shadow_size))
|
2010-07-18 18:01:35 +00:00
|
|
|
align = u''
|
|
|
|
if theme.display_horizontalAlign == 2:
|
2010-07-28 16:53:54 +00:00
|
|
|
align = u'text-align:center;'
|
2010-07-18 18:01:35 +00:00
|
|
|
elif theme.display_horizontalAlign == 1:
|
2010-07-28 16:53:54 +00:00
|
|
|
align = u'text-align:right;'
|
|
|
|
else:
|
|
|
|
align = u'text-align:left;'
|
2010-07-18 18:01:35 +00:00
|
|
|
if theme.display_verticalAlign == 2:
|
2010-07-27 19:13:56 +00:00
|
|
|
valign = u'vertical-align:bottom;'
|
2010-07-18 18:01:35 +00:00
|
|
|
elif theme.display_verticalAlign == 1:
|
2010-07-27 19:13:56 +00:00
|
|
|
valign = u'vertical-align:middle;'
|
2010-07-18 18:01:35 +00:00
|
|
|
else:
|
2010-07-27 19:13:56 +00:00
|
|
|
valign = u'vertical-align:top;'
|
2010-07-30 05:08:49 +00:00
|
|
|
lyrics = u'%s %s' % (align, valign)
|
2010-07-28 16:53:54 +00:00
|
|
|
if theme.display_outline:
|
2010-07-30 05:08:49 +00:00
|
|
|
outline = u'-webkit-text-stroke: %sem %s; ' % \
|
2010-07-28 16:53:54 +00:00
|
|
|
(float(theme.display_outline_size) / 16,
|
|
|
|
theme.display_outline_color)
|
2010-07-30 05:08:49 +00:00
|
|
|
if theme.display_shadow:
|
|
|
|
shadow = u'-webkit-text-stroke: %sem %s; ' % \
|
|
|
|
(float(theme.display_outline_size) / 16,
|
|
|
|
theme.display_shadow_color)
|
|
|
|
else:
|
|
|
|
if theme.display_shadow:
|
|
|
|
shadow = u'color: %s;' % (theme.display_shadow_color)
|
|
|
|
lyrics_html = style % (lyricscommon, lyricstable, outlinetable,
|
|
|
|
shadowtable, lyrics, outline, shadow)
|
2010-07-19 18:03:00 +00:00
|
|
|
print lyrics_html
|
|
|
|
return lyrics_html
|
|
|
|
|
2010-07-24 16:55:06 +00:00
|
|
|
def build_footer(item):
|
2010-08-03 04:56:21 +00:00
|
|
|
"""
|
|
|
|
Build the display of the item footer
|
|
|
|
|
|
|
|
`item`
|
|
|
|
Service Item to be processed.
|
|
|
|
"""
|
2010-07-19 18:03:00 +00:00
|
|
|
lyrics = """
|
2010-07-28 17:21:32 +00:00
|
|
|
#footer {position: absolute; %s z-index:5; %s; %s }
|
2010-07-19 18:03:00 +00:00
|
|
|
"""
|
|
|
|
theme = item.themedata
|
|
|
|
lyrics_html = u''
|
|
|
|
position = u''
|
|
|
|
font = u''
|
|
|
|
text = u''
|
|
|
|
if theme:
|
2010-07-24 16:55:06 +00:00
|
|
|
position = u' left: %spx; top: %spx; width: %spx; height: %spx; ' % \
|
|
|
|
(item.footer.x(), item.footer.y(), item.footer.width(),
|
|
|
|
item.footer.height())
|
|
|
|
font = u' font-family %s; font-size: %spx;' % \
|
2010-07-19 18:03:00 +00:00
|
|
|
(theme.font_footer_name, theme.font_footer_proportion)
|
|
|
|
align = u''
|
|
|
|
if theme.display_horizontalAlign == 2:
|
2010-07-27 19:13:56 +00:00
|
|
|
align = u'align:center;'
|
2010-07-19 18:03:00 +00:00
|
|
|
elif theme.display_horizontalAlign == 1:
|
2010-07-27 19:13:56 +00:00
|
|
|
align = u'align:right;'
|
2010-08-03 04:56:21 +00:00
|
|
|
text = u'color:%s; %s ' % (theme.font_footer_color, align)
|
2010-07-20 05:01:40 +00:00
|
|
|
lyrics_html = lyrics % (position, font, text)
|
2010-07-12 16:49:38 +00:00
|
|
|
return lyrics_html
|
2010-07-11 10:58:36 +00:00
|
|
|
|
2010-08-03 04:56:21 +00:00
|
|
|
def build_alert(width, height, alertTab):
|
|
|
|
"""
|
|
|
|
Build the display of the footer
|
2010-07-19 18:03:00 +00:00
|
|
|
|
2010-08-03 04:56:21 +00:00
|
|
|
`width`
|
|
|
|
Screen Width
|
|
|
|
`height`
|
|
|
|
Screen height
|
|
|
|
`alertTab`
|
|
|
|
Details from the Alert tab for fonts etc
|
|
|
|
"""
|
2010-08-01 08:28:31 +00:00
|
|
|
style = """
|
2010-08-03 18:30:38 +00:00
|
|
|
.alerttable { position: absolute; z-index:8; left 0px; top 0px; %s }
|
2010-08-04 04:59:41 +00:00
|
|
|
.alertcell { %s }
|
2010-08-01 08:28:31 +00:00
|
|
|
.alert { %s }
|
|
|
|
"""
|
2010-08-04 04:59:41 +00:00
|
|
|
alerttable = u''
|
|
|
|
alertcell = u''
|
|
|
|
alert = u''
|
2010-07-27 18:42:53 +00:00
|
|
|
if alertTab:
|
2010-08-01 08:28:31 +00:00
|
|
|
if alertTab.location == 2:
|
2010-08-04 04:59:41 +00:00
|
|
|
alertcell = u'vertical-align:bottom;'
|
2010-08-01 08:28:31 +00:00
|
|
|
elif alertTab.location == 1:
|
2010-08-04 04:59:41 +00:00
|
|
|
alertcell = u'vertical-align:middle;'
|
2010-08-01 08:28:31 +00:00
|
|
|
else:
|
2010-08-04 04:59:41 +00:00
|
|
|
alertcell = u'vertical-align:top;'
|
|
|
|
alerttable = u'width: %spx; height: %spx; ' % (width, height)
|
|
|
|
alert = u'font-family %s; font-size: %spx; color: %s; ' \
|
|
|
|
u'background-color: %s' % \
|
|
|
|
(alertTab.font_face, alertTab.font_size, alertTab.font_color,
|
|
|
|
alertTab.bg_color)
|
|
|
|
alert_html = style % (alerttable, alertcell, alert)
|
2010-08-01 08:28:31 +00:00
|
|
|
return alert_html
|