Index: eab-contact-display.c
===================================================================
--- eab-contact-display.c (revision 34764)
+++ eab-contact-display.c (working copy)
@@ -325,11 +325,24 @@
{
char *value = e_text_to_html (str, html_flags);
- gtk_html_stream_printf (html_stream, "
");
- if (icon)
- gtk_html_stream_printf (html_stream, " ", icon);
- gtk_html_stream_printf (html_stream, " | %s: | %s |
", label, value);
+ if(gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL)
+ {
+ gtk_html_stream_printf (html_stream, "| %s | %s: | ", value, label);
+ gtk_html_stream_printf (html_stream, "");
+ if (icon)
+ gtk_html_stream_printf (html_stream, " |
", icon);
+ else /* filler for RTL */
+ gtk_html_stream_printf (html_stream, " ", icon);
+ }
+ else
+ {
+ gtk_html_stream_printf (html_stream, "");
+ if (icon)
+ gtk_html_stream_printf (html_stream, " ", icon);
+ gtk_html_stream_printf (html_stream, " | %s: | %s |
", label, value);
+
+ }
g_free (value);
}
@@ -350,15 +363,22 @@
{
EContactAddress *adr;
const char *label;
+ gboolean is_rtl = (gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL);
label = e_contact_get_const (contact, label_field);
if (label) {
char *html = e_text_to_html (label, E_TEXT_TO_HTML_CONVERT_NL);
#ifdef mapping_works
- g_string_append_printf (gstr, " | %s: %s | %s |
", html_label, _("(map)"), html);
+ if(is_rtl)
+ g_string_append_printf (gstr, "| %s | %s %s: | |
", html, _("(map)"), html_label);
+ else
+ g_string_append_printf (gstr, " | %s: %s | %s |
", html_label, _("(map)"), html);
#else
- g_string_append_printf (gstr, " | %s: | %s |
", html_label, html);
+ if(is_rtl)
+ g_string_append_printf (gstr, "| %s | %s: | |
", html, html_label);
+ else
+ g_string_append_printf (gstr, " | %s: | %s |
", html_label, html);
#endif
g_free (html);
@@ -369,17 +389,34 @@
if (adr &&
(adr->po || adr->ext || adr->street || adr->locality || adr->region || adr->code || adr->country)) {
- g_string_append_printf (gstr, " | %s: %s | ", html_label, _("map"));
+ if(is_rtl)
+ {
+ g_string_append_printf (gstr, " |
");
- if (adr->po && *adr->po) g_string_append_printf (gstr, "%s ", adr->po);
- if (adr->ext && *adr->ext) g_string_append_printf (gstr, "%s ", adr->ext);
- if (adr->street && *adr->street) g_string_append_printf (gstr, "%s ", adr->street);
- if (adr->locality && *adr->locality) g_string_append_printf (gstr, "%s ", adr->locality);
- if (adr->region && *adr->region) g_string_append_printf (gstr, "%s ", adr->region);
- if (adr->code && *adr->code) g_string_append_printf (gstr, "%s ", adr->code);
- if (adr->country && *adr->country) g_string_append_printf (gstr, "%s ", adr->country);
+ if (adr->po && *adr->po) g_string_append_printf (gstr, "%s ", adr->po);
+ if (adr->ext && *adr->ext) g_string_append_printf (gstr, "%s ", adr->ext);
+ if (adr->street && *adr->street) g_string_append_printf (gstr, "%s ", adr->street);
+ if (adr->locality && *adr->locality) g_string_append_printf (gstr, "%s ", adr->locality);
+ if (adr->region && *adr->region) g_string_append_printf (gstr, "%s ", adr->region);
+ if (adr->code && *adr->code) g_string_append_printf (gstr, "%s ", adr->code);
+ if (adr->country && *adr->country) g_string_append_printf (gstr, "%s ", adr->country);
- g_string_append_printf (gstr, " |
");
+ g_string_append_printf (gstr, "%s %s: | | ", _("map"), html_label);
+ }
+ else
+ {
+ g_string_append_printf (gstr, " | %s: %s | ", html_label, _("map"));
+
+ if (adr->po && *adr->po) g_string_append_printf (gstr, "%s ", adr->po);
+ if (adr->ext && *adr->ext) g_string_append_printf (gstr, "%s ", adr->ext);
+ if (adr->street && *adr->street) g_string_append_printf (gstr, "%s ", adr->street);
+ if (adr->locality && *adr->locality) g_string_append_printf (gstr, "%s ", adr->locality);
+ if (adr->region && *adr->region) g_string_append_printf (gstr, "%s ", adr->region);
+ if (adr->code && *adr->code) g_string_append_printf (gstr, "%s ", adr->code);
+ if (adr->country && *adr->country) g_string_append_printf (gstr, "%s ", adr->country);
+
+ g_string_append_printf (gstr, " |
");
+ }
}
if (adr)
e_contact_address_free (adr);
@@ -390,11 +427,25 @@
{
char *value = e_text_to_html (str, html_flags);
- g_string_append_printf (gstr, "");
- if (icon)
- g_string_append_printf (gstr, " ", icon);
- g_string_append_printf (gstr, " | %s: | %s |
", label, value);
+ if(gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL)
+ {
+ g_string_append_printf (gstr, "| %s | %s: | ", value, label);
+ g_string_append_printf (gstr, "");
+ if (icon)
+ g_string_append_printf (gstr, " |
", icon);
+ else /* This is the last td for RTL as td's are reversed, so put a filler one */
+ g_string_append_printf (gstr, " ", icon);
+ }
+ else
+ {
+ g_string_append_printf (gstr, "");
+ if (icon)
+ g_string_append_printf (gstr, " ", icon);
+ g_string_append_printf (gstr, " | %s: | %s |
", label, value);
+
+ }
+
g_free (value);
}
@@ -494,6 +545,7 @@
{
GString *accum;
GList *email_list, *l, *email_attr_list, *al;
+ gboolean is_rtl = (gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL);
#ifdef HANDLE_MAILTO_INTERNALLY
int email_num = 0;
#endif
@@ -529,10 +581,19 @@
if (accum->len) {
#ifdef HANDLE_MAILTO_INTERNALLY
- gtk_html_stream_printf (html_stream, "| ");
- gtk_html_stream_printf (html_stream,
+ if(is_rtl)
+ {
+ gtk_html_stream_printf (html_stream,
+ " |
| %s | %s: | |
",
+ accum->str, _("Email"));
+ }
+ else
+ {
+ gtk_html_stream_printf (html_stream, "| ");
+ gtk_html_stream_printf (html_stream,
" | %s: | %s |
",
_("Email"), accum->str);
+ }
#else
render_name_value (html_stream, _("Email"), accum->str, NULL,
E_TEXT_TO_HTML_CONVERT_ADDRESSES | E_TEXT_TO_HTML_CONVERT_NL);
@@ -621,14 +682,16 @@
html_stream = gtk_html_begin (GTK_HTML (display));
gtk_html_stream_write (html_stream, HTML_HEADER, sizeof (HTML_HEADER) - 1);
- gtk_html_stream_write (html_stream, "\n", 7);
-
+
+ gboolean is_rtl = (gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL);
+ gtk_html_stream_printf (html_stream, "\n", is_rtl ? " align=\"right\" " : "");
+
if (contact) {
const char *str;
char *html;
EContactPhoto *photo;
- gtk_html_stream_printf (html_stream, "");
+ gtk_html_stream_printf (html_stream, "| ", is_rtl ? " align=\"right\" " : "");
photo = e_contact_get (contact, E_CONTACT_PHOTO);
if (!photo)
photo = e_contact_get (contact, E_CONTACT_LOGO);
@@ -638,7 +701,7 @@
e_contact_photo_free (photo);
}
- gtk_html_stream_printf (html_stream, " | \n");
+ gtk_html_stream_printf (html_stream, " | \n", is_rtl ? " align=\"right\" " : "");
str = e_contact_get_const (contact, E_CONTACT_FILE_AS);
if (!str)
@@ -664,7 +727,7 @@
gtk_html_stream_printf (html_stream, " | \n");
}
- gtk_html_stream_write (html_stream, "\n", 15);
+ gtk_html_stream_printf (html_stream, " |
|