86
86
System.Console.WriteLine ("Net stop");
93
mMoz.OpenStream ("file://" + Defines.APP_DATADIR + "/images/",
95
mMoz.AppendData (HtmlHeader());
97
if (currentItem.Text.Length > 0) {
98
mMoz.AppendData ("<table cellpadding=\"2\"><tr><td>");
99
mMoz.AppendData (EncodeUnicode(FixMarkup(currentItem.Text)));
100
mMoz.AppendData ("</td></tr></table>");
103
mMoz.AppendData (HtmlFooter());
91
Theme theme = Application.TheApp.ThemeManager.CurrentTheme;
93
string author = (!"".Equals(currentItem.Author)) ? String.Format(Catalog.GetString("by {0}"), currentItem.Author) : " ";
94
string link = Catalog.GetString("Show in browser");
95
string pubdate = (!currentItem.PubDate.Equals(DateTime.MinValue)) ? currentItem.PubDate.ToLongDateString() : " ";
96
string text = HtmlUtils.EncodeUnicode(HtmlUtils.FixMarkup(currentItem.Text));
97
string title = HtmlUtils.Escape(currentItem.Title);
98
string url = currentItem.Link;
100
mMoz.OpenStream ("file://" + theme.Path + "/", "text/html");
101
mMoz.AppendData (theme.Render(author, link, pubdate,
104
103
mMoz.CloseStream ();
116
115
args.RetVal = true;
119
private static string EncodeUnicode(string str)
121
StringBuilder output = new StringBuilder();
123
foreach (char c in str) {
126
output.Append(((int)c).ToString());
133
return output.ToString();
136
private string HtmlBox (string leftContent, string rightContent)
138
string html = "<table bgcolor=\"#333333\" border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">" +
140
" <td bgcolor=\"#ffffff\">" +
141
" <img src=\"blam-box-top-left.png\">" +
143
" <td colspan=2 width=\"100%\">" +
144
" <img src=\"blam-box-pad.png\">" +
146
" <td bgcolor=\"#ffffff\">" +
147
" <img src=\"blam-box-top-right.png\">" +
152
" <img src=\"blam-box-pad.png\">" +
154
" <td width=\"75%\" valign=\"top\">" +
157
" <td align=\"right\" valign=\"top\">" +
161
" <img src=\"blam-box-pad.png\">" +
165
" <td bgcolor=\"#ffffff\">" +
166
" <img src=\"blam-box-bottom-left.png\">" +
168
" <td colspan=2 width=\"100%\">" +
169
" <img src=\"blam-box-pad.png\">" +
171
" <td bgcolor=\"#ffffff\">" +
172
" <img src=\"blam-box-bottom-right.png\">" +
180
private string HtmlHeader ()
186
html = new StringBuilder ();
187
// Don't print the date if it's not set (avoid showing 0001 Jan 01)
188
// in the item header.
190
html.Append ("<html>" +
192
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" +
193
" <title>" + HtmlUtils.Escape(currentItem.Title) + "</title>"+
197
if (!currentItem.PubDate.Equals (DateTime.MinValue)) {
198
date = "<font color=\"#ffffff\" size=\"+1\">" +
199
currentItem.PubDate.ToString ("d MMM yyyy") +
205
title = "<font color=\"#ffffff\" size=\"+1\">" +
206
HtmlUtils.Escape(currentItem.Title) +
209
html.Append (HtmlBox (title, date));
210
return html.ToString ();
213
private string HtmlFooter()
215
StringBuilder str = new StringBuilder();
219
if (currentItem.Link != null && currentItem.Link.Equals ("") != true) {
220
link = String.Format("<a href=\"{0}\">" +
221
"<font color=\"#ffff00\">" +
222
Catalog.GetString ("Show in browser") +
227
if (currentItem.Author != null && currentItem.Author != "") {
228
string authorStr = String.Format (Catalog.GetString ("by {0}"), currentItem.Author);
230
author = "<font color=\"#aaaaaa\">" + authorStr + "</font>";
235
str.Append("<br><br>");
236
str.Append(HtmlBox(link, author));
237
str.Append("</body></html>");
239
return str.ToString();
242
private string FixMarkup(string str)
244
string tStr = str.Trim().Replace("</p>", "").Replace("</P>", "");
246
if (!tStr.StartsWith("<p>") && !tStr.StartsWith("<P>")) {
247
tStr = "<br/><br/>" + tStr;
250
return tStr.Replace("<p>", "<br/><br/>").Replace("<P>", "<br/><br/>");
253
118
private void SetFonts ()
255
120
string varFont = Conf.Get (Preference.VARIABLE_FONT, "Sans 12");