raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=1a867c180df4124a7771e0ff785af80e4fe2d48c

commit 1a867c180df4124a7771e0ff785af80e4fe2d48c
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Wed Oct 9 18:36:54 2019 +0100

    e alert - use the provided font ttf for the alert
    
    this enforces the look i wanted, and also makes this work when no sans
    or mono font exist.
---
 data/fonts/README.txt          |  16 ++++++++++++++++
 data/fonts/Topaz_a500_v1.0.ttf | Bin 0 -> 21840 bytes
 data/fonts/meson.build         |   4 ++++
 meson.build                    |   1 +
 src/bin/e_alert_main.c         |  30 +++++++++++++++++++++++-------
 src/bin/e_start_main.c         |   6 +++++-
 6 files changed, 49 insertions(+), 8 deletions(-)

diff --git a/data/fonts/README.txt b/data/fonts/README.txt
new file mode 100644
index 000000000..727dae250
--- /dev/null
+++ b/data/fonts/README.txt
@@ -0,0 +1,16 @@
+Comes from:
+
+https://github.com/rewtnull/amigafonts
+
+These fonts are released under the Creative Commons v3.0 license:
+
+http://creativecommons.org/licenses/by-nc-sa/3.0/
+
+From 2013-02-06 you are also allowed to use them according to
+the GPL-FE:
+
+http://www.gnu.org/licenses/gpl-faq.html#FontException
+
+This licensing change was done for bundled resource compatibility.
+You are now allowed to bundle any of these fonts with your WordPress
+themes, and what have you.
diff --git a/data/fonts/Topaz_a500_v1.0.ttf b/data/fonts/Topaz_a500_v1.0.ttf
new file mode 100644
index 000000000..d14138776
Binary files /dev/null and b/data/fonts/Topaz_a500_v1.0.ttf differ
diff --git a/data/fonts/meson.build b/data/fonts/meson.build
new file mode 100644
index 000000000..5b7289e87
--- /dev/null
+++ b/data/fonts/meson.build
@@ -0,0 +1,4 @@
+install_data([ 'Topaz_a500_v1.0.ttf',
+             ],
+             install_dir: join_paths(dir_data, 'enlightenment/data/fonts')
+            )
diff --git a/meson.build b/meson.build
index cc7cb826b..773adebcf 100644
--- a/meson.build
+++ b/meson.build
@@ -360,6 +360,7 @@ subdir('data/desktop')
 subdir('data/etc')
 subdir('data/favorites')
 subdir('data/flags')
+subdir('data/fonts')
 subdir('data/icons')
 subdir('data/images')
 subdir('data/input_methods')
diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c
index eaf7586ee..6adbf6b77 100644
--- a/src/bin/e_alert_main.c
+++ b/src/bin/e_alert_main.c
@@ -12,7 +12,10 @@ static pid_t       pid;
 static Eina_Bool   tainted = EINA_FALSE;
 static const char *backtrace_str = NULL;
 
-#define FONT           "Mono"
+//#define FONT           "TopazPlus_a500_v1.0.pcf"
+//#define FONT           "terminus-16.pcf"
+#define FONT           "Topaz_a500_v1.0.ttf"
+#define FONT_FALLBACK  "Mono"
 #define COL_BG         0,   0,   0, 255
 #define COL_FG         255,   0,   0, 255
 #define HDIV           10
@@ -85,10 +88,22 @@ key_down(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *o EINA_UNUSED
      }
 }
 
+static const char *
+font_get(void)
+{
+   const char *s = getenv("E_ALERT_FONT_DIR");
+   static char buf[4096];
+
+   if (s) snprintf(buf, sizeof(buf), "%s/"FONT, s);
+   else snprintf(buf, sizeof(buf), "%s", FONT_FALLBACK);
+   return buf;
+}
+
 static void
 resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *o, void *info 
EINA_UNUSED)
 {
    Evas_Coord w, h, tw, th;
+   const char *font = font_get();
 
    evas_object_geometry_get(o, NULL, NULL, &w, &h);
    h = w / HDIV;
@@ -99,15 +114,15 @@ resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *o, void *info E
    evas_object_geometry_set(obj_inner, (2 * h) / PDIV, (2 * h) / PDIV,
                             w - ((h * 4) / PDIV), h - ((h * 4) / PDIV));
 
-   evas_object_text_font_set(obj_line1, FONT, h / 8);
+   evas_object_text_font_set(obj_line1, font, h / 8);
    evas_object_geometry_get(obj_line1, NULL, NULL, &tw, &th);
    evas_object_move(obj_line1, (w - tw) / 2, (3 * h) / PDIV);
 
-   evas_object_text_font_set(obj_line2, FONT, h / 8);
+   evas_object_text_font_set(obj_line2, font, h / 8);
    evas_object_geometry_get(obj_line2, NULL, NULL, &tw, &th);
    evas_object_move(obj_line2, (w - tw) / 2, (h - th) / 2);
 
-   evas_object_text_font_set(obj_line3, FONT, h / 8);
+   evas_object_text_font_set(obj_line3, font, h / 8);
    evas_object_geometry_get(obj_line3, NULL, NULL, &tw, &th);
    evas_object_move(obj_line3, (w - tw) / 2, h - th - (3 * h) / PDIV);
 }
@@ -125,6 +140,7 @@ setup_display(void)
 {
    Evas *e;
    Evas_Object *win, *o;
+   const char *font = font_get();
 
    win = o = elm_win_add(NULL, "e-alert", ELM_WIN_SPLASH);
    if (!win) return EINA_FALSE;
@@ -147,21 +163,21 @@ setup_display(void)
 
    obj_line1 = o = evas_object_text_add(e);
    evas_object_color_set(o, COL_FG);
-   evas_object_text_font_set(o, FONT, 10);
+   evas_object_text_font_set(o, font, 10);
    evas_object_text_text_set(o, title1());
    evas_object_pass_events_set(o, EINA_TRUE);
    evas_object_show(o);
 
    obj_line2 = o = evas_object_text_add(e);
    evas_object_color_set(o, COL_FG);
-   evas_object_text_font_set(o, FONT, 10);
+   evas_object_text_font_set(o, font, 10);
    evas_object_text_text_set(o, title2());
    evas_object_pass_events_set(o, EINA_TRUE);
    evas_object_show(o);
 
    obj_line3 = o = evas_object_text_add(e);
    evas_object_color_set(o, COL_FG);
-   evas_object_text_font_set(o, FONT, 10);
+   evas_object_text_font_set(o, font, 10);
    evas_object_text_text_set(o, title3());
    evas_object_pass_events_set(o, EINA_TRUE);
    evas_object_show(o);
diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
index ff94d56fa..c967e2696 100644
--- a/src/bin/e_start_main.c
+++ b/src/bin/e_start_main.c
@@ -484,6 +484,7 @@ _e_call_alert(int child, siginfo_t sig, int exit_gdb, const 
char *backtrace_str,
               Eina_Bool susr1)
 {
    char buf[4096];
+
    snprintf(buf, sizeof(buf),
             backtrace_str ?
             "%s/enlightenment/utils/enlightenment_alert %i %i %i '%s'" :
@@ -552,7 +553,7 @@ main(int argc, char **argv)
    int i, valgrind_mode = 0;
    int valgrind_tool = 0;
    int valgrind_gdbserver = 0;
-   char buf[16384], **args, *home;
+   char buf[8192], buf2[4096], **args, *home;
    char valgrind_path[PATH_MAX] = "";
    const char *valgrind_log = NULL;
    const char *bindir;
@@ -659,6 +660,9 @@ main(int argc, char **argv)
         if (really_know) _env_path_append("PATH", bindir);
         else _env_path_prepend("PATH", bindir);
      }
+   snprintf(buf2, sizeof(buf2),
+            "E_ALERT_FONT_DIR=%s/data/fonts", eina_prefix_data_get(pfx));
+   putenv(buf2);
 
    if ((valgrind_mode || valgrind_tool) &&
        !find_valgrind(valgrind_path, sizeof(valgrind_path)))

-- 


Reply via email to