[Commits] [SCM] claws branch, master, updated. 3.17.3-100-g1efad92
ticho at claws-mail.org
ticho at claws-mail.org
Sun Feb 17 20:48:41 CET 2019
The branch, master has been updated
via 1efad926768a8f609ad15f9ee3926ba38d4b601c (commit)
from 7216545e9ae35fa658ce67c8a04e7c5a235bd562 (commit)
Summary of changes:
src/plugins/litehtml_viewer/container_linux.cpp | 10 ----------
src/plugins/litehtml_viewer/container_linux.h | 2 --
src/plugins/litehtml_viewer/lh_prefs.c | 21 ++++++++++++++++++++
src/plugins/litehtml_viewer/lh_prefs.h | 1 +
src/plugins/litehtml_viewer/lh_widget.cpp | 24 +++++++++++++++++++++++
src/plugins/litehtml_viewer/lh_widget.h | 7 +++++++
6 files changed, 53 insertions(+), 12 deletions(-)
- Log -----------------------------------------------------------------
commit 1efad926768a8f609ad15f9ee3926ba38d4b601c
Author: Andrej Kacian <ticho at claws-mail.org>
Date: Sun Feb 17 20:48:17 2019 +0100
Add default_font preference to Litehtml plugin
diff --git a/src/plugins/litehtml_viewer/container_linux.cpp b/src/plugins/litehtml_viewer/container_linux.cpp
index 0993f8d..a2b1908 100644
--- a/src/plugins/litehtml_viewer/container_linux.cpp
+++ b/src/plugins/litehtml_viewer/container_linux.cpp
@@ -217,11 +217,6 @@ int container_linux::pt_to_px( int pt )
return (int) ((double) pt * dpi / 72.0);
}
-int container_linux::get_default_font_size() const
-{
- return 16;
-}
-
void container_linux::draw_list_marker( litehtml::uint_ptr hdc, const litehtml::list_marker& marker )
{
if(!marker.image.empty())
@@ -871,11 +866,6 @@ gint container_linux::clear_images(gint desired_size)
return num;
}
-const litehtml::tchar_t* container_linux::get_default_font_name() const
-{
- return "Times New Roman";
-}
-
std::shared_ptr<litehtml::element> container_linux::create_element(const litehtml::tchar_t *tag_name,
const litehtml::string_map &attributes,
const std::shared_ptr<litehtml::document> &doc)
diff --git a/src/plugins/litehtml_viewer/container_linux.h b/src/plugins/litehtml_viewer/container_linux.h
index c6cda8e..43a917c 100644
--- a/src/plugins/litehtml_viewer/container_linux.h
+++ b/src/plugins/litehtml_viewer/container_linux.h
@@ -62,8 +62,6 @@ public:
virtual int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) override;
virtual void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override;
virtual int pt_to_px(int pt) override;
- virtual int get_default_font_size() const override;
- virtual const litehtml::tchar_t* get_default_font_name() const override;
virtual void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) override;
virtual void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) override;
virtual void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) override;
diff --git a/src/plugins/litehtml_viewer/lh_prefs.c b/src/plugins/litehtml_viewer/lh_prefs.c
index 7dcc7aa..94acc4e 100644
--- a/src/plugins/litehtml_viewer/lh_prefs.c
+++ b/src/plugins/litehtml_viewer/lh_prefs.c
@@ -44,6 +44,7 @@ struct _LHPrefsPage {
PrefsPage page;
GtkWidget *enable_remote_content;
GtkWidget *image_cache_size;
+ GtkWidget *default_font;
};
typedef struct _LHPrefsPage LHPrefsPage;
@@ -52,6 +53,8 @@ static PrefParam param[] = {
NULL, NULL, NULL },
{ "image_cache_size", "20", &lh_prefs.image_cache_size, P_INT,
NULL, NULL, NULL },
+ { "default_font", "Sans 16", &lh_prefs.default_font, P_STRING,
+ NULL, NULL, NULL },
{ NULL, NULL, NULL, 0, NULL, NULL, NULL }
};
@@ -99,6 +102,7 @@ static void create_lh_prefs_page(PrefsPage *page, GtkWindow *window,
GtkWidget *label;
GtkWidget *enable_remote_content;
GtkWidget *image_cache_size;
+ GtkWidget *default_font;
GtkObject *adj;
vbox = gtk_vbox_new(FALSE, 3);
@@ -136,10 +140,22 @@ static void create_lh_prefs_page(PrefsPage *page, GtkWindow *window,
lh_prefs.image_cache_size);
gtk_box_pack_start(GTK_BOX(hbox), image_cache_size, FALSE, FALSE, 0);
+ /* Font */
+ hbox = gtk_hbox_new(FALSE, 8);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(_("Default font"));
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ default_font = gtk_font_button_new_with_font(lh_prefs.default_font);
+ g_object_set(G_OBJECT(default_font), "use-font", TRUE, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), default_font, FALSE, FALSE, 0);
+
gtk_widget_show_all(hbox);
prefs_page->enable_remote_content = enable_remote_content;
prefs_page->image_cache_size = image_cache_size;
+ prefs_page->default_font = default_font;
prefs_page->page.widget = vbox;
}
@@ -153,9 +169,14 @@ static void save_lh_prefs_page(PrefsPage *page)
lh_prefs.enable_remote_content = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(prefs_page->enable_remote_content));
+
lh_prefs.image_cache_size = gtk_spin_button_get_value_as_int(
GTK_SPIN_BUTTON(prefs_page->image_cache_size));
+ g_free(lh_prefs.default_font);
+ lh_prefs.default_font = g_strdup(gtk_font_button_get_font_name(
+ GTK_FONT_BUTTON(prefs_page->default_font)));
+
save_prefs();
}
diff --git a/src/plugins/litehtml_viewer/lh_prefs.h b/src/plugins/litehtml_viewer/lh_prefs.h
index d226fe6..cd73f81 100644
--- a/src/plugins/litehtml_viewer/lh_prefs.h
+++ b/src/plugins/litehtml_viewer/lh_prefs.h
@@ -30,6 +30,7 @@ struct _LHPrefs
{
gboolean enable_remote_content;
gint image_cache_size;
+ gchar *default_font;
};
LHPrefs *lh_prefs_get(void);
diff --git a/src/plugins/litehtml_viewer/lh_widget.cpp b/src/plugins/litehtml_viewer/lh_widget.cpp
index bf047cf..17ae04e 100644
--- a/src/plugins/litehtml_viewer/lh_widget.cpp
+++ b/src/plugins/litehtml_viewer/lh_widget.cpp
@@ -104,6 +104,9 @@ lh_widget::lh_widget()
m_rendered_width = 0;
m_context.load_master_stylesheet(master_css);
+ m_font_name = NULL;
+ m_font_size = 0;
+
gtk_widget_set_events(m_drawing_area,
GDK_BUTTON_RELEASE_MASK
| GDK_BUTTON_PRESS_MASK
@@ -218,6 +221,8 @@ void lh_widget::open_html(const gchar *contents)
debug_print("LH: cleared %d images from image cache\n", num);
+ update_font();
+
lh_widget_statusbar_push("Loading HTML part ...");
m_html = litehtml::document::createFromString(contents, this, &m_context);
m_rendered_width = 0;
@@ -421,6 +426,25 @@ void lh_widget::popup_context_menu(const litehtml::tchar_t *url,
event->button, event->time);
}
+void lh_widget::update_font()
+{
+ PangoFontDescription *pd =
+ pango_font_description_from_string(lh_prefs_get()->default_font);
+ gboolean absolute = pango_font_description_get_size_is_absolute(pd);
+
+ g_free(m_font_name);
+ m_font_name = g_strdup(pango_font_description_get_family(pd));
+ m_font_size = pango_font_description_get_size(pd);
+
+ pango_font_description_free(pd);
+
+ if (!absolute)
+ m_font_size /= PANGO_SCALE;
+
+ debug_print("Font set to '%s', size %d\n", m_font_name, m_font_size);
+}
+
+////////////////////////////////////////////////
static gboolean expose_event_cb(GtkWidget *widget, GdkEvent *event,
gpointer user_data)
{
diff --git a/src/plugins/litehtml_viewer/lh_widget.h b/src/plugins/litehtml_viewer/lh_widget.h
index 5e2a872..a792197 100644
--- a/src/plugins/litehtml_viewer/lh_widget.h
+++ b/src/plugins/litehtml_viewer/lh_widget.h
@@ -12,12 +12,15 @@ class lh_widget : public container_linux
GtkWidget *get_widget() const;
+ /* Methods that litehtml calls */
void set_caption(const litehtml::tchar_t* caption);
void set_base_url(const litehtml::tchar_t* base_url);
void on_anchor_click(const litehtml::tchar_t* url, const litehtml::element::ptr& el);
void set_cursor(const litehtml::tchar_t* cursor);
void import_css(litehtml::tstring& text, const litehtml::tstring& url, litehtml::tstring& baseurl);
void get_client_rect(litehtml::position& client) const;
+ inline const litehtml::tchar_t *get_default_font_name() const { return m_font_name; };
+ inline int get_default_font_size() const { return m_font_size; };
GdkPixbuf *get_image(const litehtml::tchar_t* url, bool redraw_on_ready);
void draw(cairo_t *cr);
@@ -25,6 +28,7 @@ class lh_widget : public container_linux
void open_html(const gchar *contents);
void clear();
void update_cursor();
+ void update_font();
void print();
const litehtml::tchar_t *get_href_at(const gint x, const gint y) const;
@@ -44,4 +48,7 @@ class lh_widget : public container_linux
litehtml::context m_context;
gint m_height;
litehtml::tstring m_cursor;
+
+ litehtml::tchar_t *m_font_name;
+ int m_font_size;
};
-----------------------------------------------------------------------
hooks/post-receive
--
Claws Mail
More information about the Commits
mailing list