summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_bindings.c7
-rw-r--r--src/bin/e_comp_x.c11
-rw-r--r--src/bin/e_main.c2
-rw-r--r--src/bin/e_start_main.c348
-rw-r--r--src/bin/e_wallpaper_gen_main.c2
-rw-r--r--src/bin/e_widget_bgpreview.c12
-rw-r--r--src/bin/tools/fprint/AUTHORS2
-rw-r--r--src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop17
-rw-r--r--src/bin/tools/fprint/data/desktop/enlightenment_fprint.pngbin0 -> 16360 bytes
-rw-r--r--src/bin/tools/fprint/data/desktop/meson.build6
-rw-r--r--src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg204
-rw-r--r--src/bin/tools/fprint/data/meson.build2
-rw-r--r--src/bin/tools/fprint/data/themes/enlightenment_fprint.edc855
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-140.pngbin0 -> 30749 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-280.pngbin0 -> 38249 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-560.pngbin0 -> 55990 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-140.pngbin0 -> 8620 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-280.pngbin0 -> 9898 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-560.pngbin0 -> 13220 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-140.pngbin0 -> 7480 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-280.pngbin0 -> 8391 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-560.pngbin0 -> 10950 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-140.pngbin0 -> 12136 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-280.pngbin0 -> 14457 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-560.pngbin0 -> 20363 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-140.pngbin0 -> 8571 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-280.pngbin0 -> 10011 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-560.pngbin0 -> 13538 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-140.pngbin0 -> 16424 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-280.pngbin0 -> 20272 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-560.pngbin0 -> 28906 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-140.pngbin0 -> 9629 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-280.pngbin0 -> 11519 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-560.pngbin0 -> 15560 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-140.pngbin0 -> 21993 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-280.pngbin0 -> 27727 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-560.pngbin0 -> 40100 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-140.pngbin0 -> 11064 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-280.pngbin0 -> 13567 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-560.pngbin0 -> 18638 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-140.pngbin0 -> 31706 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-280.pngbin0 -> 39972 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-560.pngbin0 -> 58759 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-140.pngbin0 -> 14376 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-280.pngbin0 -> 17252 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-560.pngbin0 -> 24535 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.pngbin0 -> 1511 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.pngbin0 -> 3688 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.pngbin0 -> 7956 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/hands.pngbin0 -> 61285 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/left_hand.pngbin0 -> 35553 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_0.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_1.svg120
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_2.svg146
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_3.svg172
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_4.svg198
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_5.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg87
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/right_hand.pngbin0 -> 35212 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/meson.build12
-rw-r--r--src/bin/tools/fprint/meson.build112
-rw-r--r--src/bin/tools/fprint/src/device.xml644
-rw-r--r--src/bin/tools/fprint/src/enlightenment_fprint.c1312
-rw-r--r--src/bin/tools/fprint/src/manager.xml47
-rw-r--r--src/bin/tools/fprint/src/meson.build27
-rw-r--r--src/bin/tools/meson.build1
-rw-r--r--src/bin/tools/paledit/colsel.c10
-rw-r--r--src/bin/tools/paledit/main.c24
-rw-r--r--src/bin/tools/paledit/main.h20
-rw-r--r--src/bin/tools/paledit/meson.build3
-rw-r--r--src/bin/tools/paledit/palcols.c373
-rw-r--r--src/bin/tools/paledit/palimg.c71
-rw-r--r--src/bin/tools/paledit/palsel.c48
-rw-r--r--src/bin/tools/paledit/undoredo.c337
-rw-r--r--src/modules/conf_theme/e_int_config_transitions.c22
-rw-r--r--src/modules/conf_theme/e_mod_main.c48
-rw-r--r--src/modules/connman/e_mod_main.c25
-rw-r--r--src/modules/ibar/e_mod_main.c6
-rw-r--r--src/modules/music-control/ui.c1
84 files changed, 6030 insertions, 344 deletions
diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c
index f6a494069..de71ecc9b 100644
--- a/src/bin/e_bindings.c
+++ b/src/bin/e_bindings.c
@@ -1667,7 +1667,6 @@ angle_accepted(double min, double max, double direction)
1667 return EINA_FALSE; 1667 return EINA_FALSE;
1668} 1668}
1669 1669
1670
1671E_API E_Action* 1670E_API E_Action*
1672e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object *obj, double direction, double length, unsigned int fingers) 1671e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object *obj, double direction, double length, unsigned int fingers)
1673{ 1672{
@@ -1683,13 +1682,17 @@ e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object *obj, double direction,
1683 angle_accepted(binding->direction - binding->error, binding->direction + binding->error, direction)) 1682 angle_accepted(binding->direction - binding->error, binding->direction + binding->error, direction))
1684 { 1683 {
1685 act = e_action_find(binding->action); 1684 act = e_action_find(binding->action);
1685 if (!act)
1686 {
1687 ERR("Action %s cannot be found!", binding->action);
1688 return NULL;
1689 }
1686 act->func.go(obj, binding->params); 1690 act->func.go(obj, binding->params);
1687 } 1691 }
1688 } 1692 }
1689 return act; 1693 return act;
1690} 1694}
1691 1695
1692
1693E_API Eina_Inarray* 1696E_API Eina_Inarray*
1694e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, double length, unsigned int fingers) 1697e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, double length, unsigned int fingers)
1695{ 1698{
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index fbb61d646..815a9f77b 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1052,10 +1052,13 @@ _e_comp_x_evas_comp_hidden_cb(void *data, Evas_Object *obj EINA_UNUSED, void *ev
1052 } 1052 }
1053 1053
1054 if ((ec->internal) && (win == e_client_util_win_get(ec))) return; 1054 if ((ec->internal) && (win == e_client_util_win_get(ec))) return;
1055 if (ec->comp_hidden) 1055 if (!ec->override)
1056 ecore_x_composite_window_events_disable(win); 1056 {
1057 else 1057 if (ec->comp_hidden)
1058 ecore_x_composite_window_events_enable(win); 1058 ecore_x_composite_window_events_disable(win);
1059 else
1060 ecore_x_composite_window_events_enable(win);
1061 }
1059 ecore_x_window_ignore_set(win, ec->comp_hidden); 1062 ecore_x_window_ignore_set(win, ec->comp_hidden);
1060} 1063}
1061 1064
diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index 68ed3507a..926c68a83 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -1589,7 +1589,6 @@ _e_main_screens_init(void)
1589 _e_main_shutdown(101); 1589 _e_main_shutdown(101);
1590 } 1590 }
1591 TS("E_Dnd Init Done"); 1591 TS("E_Dnd Init Done");
1592 _e_main_shutdown_push(e_dnd_shutdown);
1593#endif 1592#endif
1594 1593
1595 return 1; 1594 return 1;
@@ -1601,6 +1600,7 @@ _e_main_screens_shutdown(void)
1601 e_win_shutdown(); 1600 e_win_shutdown();
1602 e_menu_shutdown(); 1601 e_menu_shutdown();
1603 e_shelf_shutdown(); 1602 e_shelf_shutdown();
1603 e_dnd_shutdown();
1604 e_comp_shutdown(); 1604 e_comp_shutdown();
1605 e_client_volume_shutdown(); 1605 e_client_volume_shutdown();
1606 e_screensaver_shutdown(); 1606 e_screensaver_shutdown();
diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
index f21118b85..722063339 100644
--- a/src/bin/e_start_main.c
+++ b/src/bin/e_start_main.c
@@ -9,6 +9,11 @@
9#include <sys/wait.h> 9#include <sys/wait.h>
10#include <sys/stat.h> 10#include <sys/stat.h>
11#include <sys/utsname.h> 11#include <sys/utsname.h>
12#ifdef HAVE_PRCTL
13# include <sys/prctl.h>
14#elif defined(HAVE_PROCCTL)
15# include <sys/procctl.h>
16#endif
12 17
13/* the ptrace interface used here is really linux specific - 18/* the ptrace interface used here is really linux specific -
14 * FreeBSD, NetBSD and Mac OS X use slightly different ptrace API that should 19 * FreeBSD, NetBSD and Mac OS X use slightly different ptrace API that should
@@ -42,7 +47,6 @@
42#define myasprintf(__b, __fmt, args...) do { \ 47#define myasprintf(__b, __fmt, args...) do { \
43 char __bb[sizeof(__fmt) + 1]; \ 48 char __bb[sizeof(__fmt) + 1]; \
44 int __cnt = snprintf(__bb, sizeof(__bb), __fmt, ##args); \ 49 int __cnt = snprintf(__bb, sizeof(__bb), __fmt, ##args); \
45 printf("cnt=%i\n", __cnt); \
46 if (__cnt >= 0) { \ 50 if (__cnt >= 0) { \
47 *(__b) = alloca(__cnt + 1); \ 51 *(__b) = alloca(__cnt + 1); \
48 snprintf(*(__b), __cnt + 1, __fmt, ##args); \ 52 snprintf(*(__b), __cnt + 1, __fmt, ##args); \
@@ -76,7 +80,7 @@
76 80
77static Eina_Bool stop_ptrace = EINA_FALSE; 81static Eina_Bool stop_ptrace = EINA_FALSE;
78 82
79static void env_set(const char *var, const char *val); 83static void env_set(const char *var, const char *val);
80E_API int prefix_determine(char *argv0); 84E_API int prefix_determine(char *argv0);
81 85
82static void 86static void
@@ -124,82 +128,10 @@ prefix_determine(char *argv0)
124 return 1; 128 return 1;
125} 129}
126 130
127static int
128find_valgrind(char *path, size_t path_len)
129{
130 const char *env = getenv("PATH");
131
132 while (env)
133 {
134 const char *p = strchr(env, ':');
135 ssize_t p_len;
136
137 if (p) p_len = p - env;
138 else p_len = strlen(env);
139 if (p_len <= 0) goto next;
140 else if (p_len + sizeof("/valgrind") >= path_len)
141 goto next;
142 memcpy(path, env, p_len);
143 memcpy(path + p_len, "/valgrind", sizeof("/valgrind"));
144 if (access(path, X_OK | R_OK) == 0) return 1;
145next:
146 if (p) env = p + 1;
147 else break;
148 }
149 path[0] = '\0';
150 return 0;
151}
152
153/* maximum number of arguments added above */
154#define VALGRIND_MAX_ARGS 11
155/* bitmask with all supported bits set */
156#define VALGRIND_MODE_ALL 15
157
158static int
159valgrind_append(char **dst, int valgrind_gdbserver, int valgrind_mode, int valgrind_tool, char *valgrind_path, const char *valgrind_log)
160{
161 int i = 0;
162
163 if (valgrind_tool)
164 {
165 dst[i++] = valgrind_path;
166 switch (valgrind_tool)
167 {
168 case 1: dst[i++] = "--tool=massif"; break;
169
170 case 2: dst[i++] = "--tool=callgrind"; break;
171 }
172 return i;
173 }
174 if (valgrind_gdbserver) dst[i++] = "--db-attach=yes";
175 if (!valgrind_mode) return 0;
176 dst[i++] = valgrind_path;
177 dst[i++] = "--num-callers=40";
178 dst[i++] = "--track-origins=yes";
179 dst[i++] = "--malloc-fill=13"; /* invalid pointer, make it crash */
180 if (valgrind_log)
181 {
182 static char logparam[PATH_MAX + sizeof("--log-file=")];
183
184 snprintf(logparam, sizeof(logparam), "--log-file=%s", valgrind_log);
185 dst[i++] = logparam;
186 }
187 if (valgrind_mode & 2) dst[i++] = "--trace-children=yes";
188 if (valgrind_mode & 4)
189 {
190 dst[i++] = "--leak-check=full";
191 dst[i++] = "--leak-resolution=high";
192 dst[i++] = "--track-fds=yes";
193 }
194 if (valgrind_mode & 8) dst[i++] = "--show-reachable=yes";
195 return i;
196}
197
198static void 131static void
199copy_args(char **dst, char **src, size_t count) 132copy_args(char **dst, char **src, size_t count)
200{ 133{
201 for (; count > 0; count--, dst++, src++) 134 for (; count > 0; count--, dst++, src++) *dst = *src;
202 *dst = *src;
203} 135}
204 136
205static void 137static void
@@ -284,7 +216,7 @@ _sigusr1(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED)
284{ 216{
285 struct sigaction action; 217 struct sigaction action;
286 218
287 /* release ptrace */ 219 // release ptrace
288 stop_ptrace = EINA_TRUE; 220 stop_ptrace = EINA_TRUE;
289 221
290 action.sa_sigaction = _sigusr1; 222 action.sa_sigaction = _sigusr1;
@@ -322,24 +254,9 @@ _sighup(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED)
322static void 254static void
323_print_usage(const char *hstr) 255_print_usage(const char *hstr)
324{ 256{
325 printf("Options:\n" 257 printf("Please run:\n"
326 "\t-valgrind[=MODE]\n"
327 "\t\tRun enlightenment from inside valgrind, mode is OR of:\n"
328 "\t\t 1 = plain valgrind to catch crashes (default)\n"
329 "\t\t 2 = trace children (thumbnailer, efm slaves, ...)\n"
330 "\t\t 4 = check leak\n"
331 "\t\t 8 = show reachable after processes finish.\n"
332 "\t\t all = all of above\n"
333 "\t-massif\n"
334 "\t\tRun enlightenment from inside massif valgrind tool.\n"
335 "\t-callgrind\n"
336 "\t\tRun enlightenment from inside callgrind valgrind tool.\n"
337 "\t-valgrind-log-file=<FILENAME>\n"
338 "\t\tSave valgrind log to file, see valgrind's --log-file for details.\n"
339 "\n"
340 "Please run:\n"
341 "\tenlightenment %s\n" 258 "\tenlightenment %s\n"
342 "for more options.\n", 259 "\tfor more options.\n",
343 hstr); 260 hstr);
344 exit(0); 261 exit(0);
345} 262}
@@ -347,10 +264,10 @@ _print_usage(const char *hstr)
347static Eina_Bool 264static Eina_Bool
348_sig_continue(siginfo_t sig) 265_sig_continue(siginfo_t sig)
349{ 266{
350 return (sig.si_signo != SIGSEGV && 267 return ((sig.si_signo != SIGSEGV) &&
351 sig.si_signo != SIGFPE && 268 (sig.si_signo != SIGFPE) &&
352// sig.si_signo != SIGBUS && 269// (sig.si_signo != SIGBUS) &&
353 sig.si_signo != SIGABRT); 270 (sig.si_signo != SIGABRT));
354} 271}
355 272
356static void 273static void
@@ -360,8 +277,7 @@ _sig_remember(siginfo_t sig, Eina_Bool *susr1, Eina_Bool *sill)
360 { 277 {
361 if (*sill) *susr1 = EINA_TRUE; 278 if (*sill) *susr1 = EINA_TRUE;
362 } 279 }
363 else 280 else *sill = (sig.si_signo == SIGILL);
364 *sill = (sig.si_signo == SIGILL);
365} 281}
366 282
367static int 283static int
@@ -370,14 +286,12 @@ _e_ptrace_attach(int child, int *status, Eina_Bool really_know)
370 int result = 0; 286 int result = 0;
371 287
372#ifdef HAVE_SYS_PTRACE_H 288#ifdef HAVE_SYS_PTRACE_H
373 if (really_know) 289 if (really_know) return waitpid(child, status, 0);
374 return waitpid(child, status, 0);
375 290
376 ptrace(PT_ATTACH, child, NULL, 0); 291 ptrace(PT_ATTACH, child, NULL, 0);
377 result = waitpid(child, status, 0); 292 result = waitpid(child, status, 0);
378 293
379 if (!stop_ptrace && WIFSTOPPED(*status)) 294 if (!stop_ptrace && WIFSTOPPED(*status)) ptrace(PT_CONTINUE, child, NULL, 0);
380 ptrace(PT_CONTINUE, child, NULL, 0);
381#else 295#else
382 (void)child; 296 (void)child;
383 (void)really_know; 297 (void)really_know;
@@ -391,8 +305,7 @@ static void
391_e_ptrace_detach(int child, int back, Eina_Bool really_know) 305_e_ptrace_detach(int child, int back, Eina_Bool really_know)
392{ 306{
393#ifdef HAVE_SYS_PTRACE_H 307#ifdef HAVE_SYS_PTRACE_H
394 if (!really_know) 308 if (!really_know) ptrace(PT_DETACH, child, NULL, back);
395 ptrace(PT_DETACH, child, NULL, back);
396#else 309#else
397 (void)child; 310 (void)child;
398 (void)back; 311 (void)back;
@@ -404,8 +317,7 @@ static void
404_e_ptrace_traceme(Eina_Bool really_know) 317_e_ptrace_traceme(Eina_Bool really_know)
405{ 318{
406#ifdef HAVE_SYS_PTRACE_H 319#ifdef HAVE_SYS_PTRACE_H
407 if (!really_know) 320 if (!really_know) ptrace(PT_TRACE_ME, 0, NULL, 0);
408 ptrace(PT_TRACE_ME, 0, NULL, 0);
409#else 321#else
410 (void)really_know; 322 (void)really_know;
411#endif 323#endif
@@ -416,8 +328,7 @@ _e_ptrace_getsiginfo(int child, siginfo_t *sig, Eina_Bool really_know)
416{ 328{
417 memset(sig, 0, sizeof(siginfo_t)); 329 memset(sig, 0, sizeof(siginfo_t));
418#ifdef HAVE_SYS_PTRACE_H 330#ifdef HAVE_SYS_PTRACE_H
419 if (!really_know) 331 if (!really_know) return ptrace(PT_GETSIGINFO, child, NULL, sig);
420 return ptrace(PT_GETSIGINFO, child, NULL, sig);
421#else 332#else
422 (void)child; 333 (void)child;
423 (void)sig; 334 (void)sig;
@@ -430,8 +341,7 @@ static void
430_e_ptrace_continue(int child, int back, Eina_Bool really_know) 341_e_ptrace_continue(int child, int back, Eina_Bool really_know)
431{ 342{
432#ifdef HAVE_SYS_PTRACE_H 343#ifdef HAVE_SYS_PTRACE_H
433 if (!really_know) 344 if (!really_know) ptrace(PT_CONTINUE, child, NULL, back);
434 ptrace(PT_CONTINUE, child, NULL, back);
435#else 345#else
436 (void)child; 346 (void)child;
437 (void)back; 347 (void)back;
@@ -439,29 +349,74 @@ _e_ptrace_continue(int child, int back, Eina_Bool really_know)
439#endif 349#endif
440} 350}
441 351
352static void
353_e_start_stdout_err_redir(const char *home)
354{
355 int logfd;
356 char *logf = NULL, *logf_old = NULL;
357
358 // rename old olg file
359 myasprintf(&logf, "%s/.e-log.log", home);
360 myasprintf(&logf_old, "%s/.e-log.log.old", home);
361 rename(logf, logf_old);
362 // open new log file and move stdout/err to it
363 logfd = open(logf, O_WRONLY | O_CREAT | O_TRUNC, 0600);
364 printf("Enlightenment: See logs in: %s\n", logf);
365 if (logfd < 0) return;
366 dup2(logfd, 1); // stdout to file
367 dup2(logfd, 2); // stderr to file
368}
369
442static int 370static int
443_e_start_child(char **args, Eina_Bool really_know) 371_e_start_child(const char *home, char **args, Eina_Bool really_know)
444{ 372{
373 // have e process die with parent enlightenment_start
374#ifdef HAVE_PRCTL
375 prctl(PR_SET_PDEATHSIG, SIGTERM);
376#elif defined(HAVE_PROCCTL)
377 int sig = SIGTERM;
378 procctl(P_PID, 0, PROC_PDEATHSIG_CTL, &sig);
379#endif
380 _e_start_stdout_err_redir(home);
445 _e_ptrace_traceme(really_know); 381 _e_ptrace_traceme(really_know);
446 execv(args[0], args); 382 execv(args[0], args);
447 /* We failed, 0 mean normal exit from E with no restart or crash so let's exit */ 383 // We failed, 0 means normal exit from E with no restart or crash so
384 // let's exit
448 return 0; 385 return 0;
449} 386}
450 387
451static Eina_Bool 388static Eina_Bool
452_e_ptrace_kernel_check() 389_e_ptrace_kernel_check(const char *home)
453{ 390{
454#ifdef __linux__ 391#ifdef __linux__
455 /* Check if patch to prevent ptrace to another process is present in the kernel. */ 392 // Check if patch to prevent ptrace to another process is present
393 // in the kernel
456 Eina_Bool ret = EINA_FALSE; 394 Eina_Bool ret = EINA_FALSE;
457 int fd = open("/proc/sys/kernel/yama/ptrace_scope", O_RDONLY); 395 int fd = open("/proc/sys/kernel/yama/ptrace_scope", O_RDONLY);
458 if (fd != -1) 396 if (fd != -1)
459 { 397 {
460 char c; 398 char c;
461 ret = (read(fd, &c, sizeof (c)) == sizeof (c) && c != '0'); 399 ret = read(fd, &c, (sizeof(c)) == sizeof(c)) && (c != '0');
462 close(fd); 400 close(fd);
463 } 401 }
464 return ret; 402 if (ret)
403 {
404 char *buf = NULL;
405 FILE *f;
406
407 myasprintf(&buf, "%s/.e-crashdump.txt", home);
408 f = fopen(buf, "a");
409 if (f)
410 {
411 fprintf(f,
412 "ERROR: /proc/sys/kernel/yama/ptrace_scope is 1 disallowing remote\n"
413 "attachment to a process. This means a gdb backtrace cannot be logged.\n"
414 "To fix this, as root please do:\n"
415 " echo 0 > /proc/sys/kernel/yama/ptrace_scope\n");
416 fclose(f);
417 }
418 }
419 return ret;
465#else 420#else
466 return EINA_FALSE; 421 return EINA_FALSE;
467#endif 422#endif
@@ -485,13 +440,8 @@ _e_call_gdb(int child, const char *home, char **backtrace_str)
485 home); 440 home);
486 r = system(buf); 441 r = system(buf);
487 442
488 fprintf(stderr, "called gdb with '%s' = %i\n", 443 fprintf(stderr, "called gdb with '%s' = %i\n", buf, WEXITSTATUS(r));
489 buf, WEXITSTATUS(r)); 444 myasprintf(&buf, "%s/.e-crashdump.txt", home);
490
491 myasprintf(&buf,
492 "%s/.e-crashdump.txt",
493 home);
494
495 *backtrace_str = strdup(buf); 445 *backtrace_str = strdup(buf);
496 return WEXITSTATUS(r); 446 return WEXITSTATUS(r);
497} 447}
@@ -564,42 +514,14 @@ done:
564 return ret; 514 return ret;
565} 515}
566 516
567/*
568static void
569rmrf(const char *path)
570{
571 Eina_Iterator *iter = eina_file_direct_ls(path);
572
573 if (iter)
574 {
575 Eina_File_Direct_Info *info;
576
577 EINA_ITERATOR_FOREACH(iter, info)
578 {
579 if (info->type == EINA_FILE_DIR) rmrf(info->path);
580 else eina_file_unlink(info->path);
581 }
582 eina_iterator_free(iter);
583 }
584 eina_file_unlink(path);
585}
586*/
587
588int 517int
589main(int argc, char **argv) 518main(int argc, char **argv)
590{ 519{
591 int i, valgrind_mode = 0; 520 int i, ret = -1;
592 int valgrind_tool = 0;
593 int valgrind_gdbserver = 0;
594 char *buf = NULL, *buf2 = NULL, *buf3 = NULL, **args, *home; 521 char *buf = NULL, *buf2 = NULL, *buf3 = NULL, **args, *home;
595 char *valgrind_path = NULL;
596 const char *valgrind_log = NULL;
597 const char *bindir; 522 const char *bindir;
598 Eina_Bool really_know = EINA_FALSE; 523 Eina_Bool really_know = EINA_FALSE;
599 struct sigaction action; 524 struct sigaction action;
600// struct stat st;
601// const char *s;
602 int ret = -1;
603 pid_t child = -1; 525 pid_t child = -1;
604 Eina_Bool restart = EINA_TRUE; 526 Eina_Bool restart = EINA_TRUE;
605 527
@@ -623,26 +545,6 @@ main(int argc, char **argv)
623 sigemptyset(&action.sa_mask); 545 sigemptyset(&action.sa_mask);
624 sigaction(SIGHUP, &action, NULL); 546 sigaction(SIGHUP, &action, NULL);
625 547
626/* leave XDG_RUNTIME_DIR alone - if distro/os doesn't use it - too bad
627 s = getenv("XDG_RUNTIME_DIR");
628 if ((!s) || (stat(s, &st) != 0) || (!S_ISDIR(st.st_mode)))
629 {
630 const char *dir;
631
632 myasprintf(&buf, "/tmp/xdg-XXXXXX");
633 dir = mkdtemp(buf);
634 if (!dir) dir = "/tmp";
635 else
636 {
637 FILE *f;
638
639 myasprintf(&buf2, "%s/.e-deleteme", dir);
640 f = fopen(buf2, "w");
641 if (f) fclose(f);
642 }
643 env_set("XDG_RUNTIME_DIR", dir);
644 }
645 */
646 eina_init(); 548 eina_init();
647 549
648 /* reexcute myself with dbus-launch if dbus-launch is not running yet */ 550 /* reexcute myself with dbus-launch if dbus-launch is not running yet */
@@ -671,43 +573,11 @@ main(int argc, char **argv)
671 { 573 {
672 _print_usage(argv[i]); 574 _print_usage(argv[i]);
673 } 575 }
674 if (!strcmp(argv[i], "-valgrind-gdb"))
675 valgrind_gdbserver = 1;
676 else if (!strcmp(argv[i], "-massif"))
677 valgrind_tool = 1;
678 else if (!strcmp(argv[i], "-callgrind"))
679 valgrind_tool = 2;
680 else if (!strcmp(argv[i], "-display")) 576 else if (!strcmp(argv[i], "-display"))
681 { 577 {
682 i++; 578 i++;
683 env_set("DISPLAY", argv[i]); 579 env_set("DISPLAY", argv[i]);
684 } 580 }
685 else if (!strncmp(argv[i], "-valgrind", sizeof("-valgrind") - 1))
686 {
687 const char *val = argv[i] + sizeof("-valgrind") - 1;
688 switch (*val)
689 {
690 case '\0':
691 valgrind_mode = 1;
692 break;
693 case '=':
694 val++;
695 if (!strcmp(val, "all")) valgrind_mode = VALGRIND_MODE_ALL;
696 else valgrind_mode = atoi(val);
697 break;
698 case '-':
699 val++;
700 if (!strncmp(val, "log-file=", sizeof("log-file=") - 1))
701 {
702 valgrind_log = val + sizeof("log-file=") - 1;
703 if (*valgrind_log == '\0') valgrind_log = NULL;
704 }
705 break;
706 default:
707 printf("Unknown valgrind option: %s\n", argv[i]);
708 break;
709 }
710 }
711 else if (!strcmp(argv[i], "-i-really-know-what-i-am-doing-and-accept" 581 else if (!strcmp(argv[i], "-i-really-know-what-i-am-doing-and-accept"
712 "-full-responsibility-for-it")) 582 "-full-responsibility-for-it"))
713 { 583 {
@@ -730,32 +600,13 @@ main(int argc, char **argv)
730 eina_prefix_lib_get(pfx)); 600 eina_prefix_lib_get(pfx));
731 putenv(buf3); 601 putenv(buf3);
732 602
733 if (valgrind_mode || valgrind_tool)
734 {
735 valgrind_path = alloca(PATH_MAX);
736 if (!find_valgrind(valgrind_path, PATH_MAX))
737 {
738 printf("E - valgrind required but no binary found! Ignoring request.\n");
739 valgrind_mode = 0;
740 }
741 }
742
743 printf("E - PID=%i, valgrind=%d", getpid(), valgrind_mode);
744 if (valgrind_mode && valgrind_path)
745 {
746 printf(" valgrind-command='%s'", valgrind_path);
747 if (valgrind_log) printf(" valgrind-log-file='%s'", valgrind_log);
748 }
749 putchar('\n');
750
751 home = getenv("HOME"); 603 home = getenv("HOME");
752 if (home) 604 if (home)
753 { 605 {
754 const char *tmps = getenv("XDG_DATA_HOME"); 606 const char *tmps = getenv("XDG_DATA_HOME");
755 607
756 if (tmps) myasprintf(&buf, "%s/Applications/.bin", tmps); 608 if (tmps) myasprintf(&buf, "%s/Applications/.bin", tmps);
757 else myasprintf(&buf, "%s/Applications/.bin", home); 609 else myasprintf(&buf, "%s/Applications/.bin", home);
758
759 if (really_know) _env_path_append("PATH", buf); 610 if (really_know) _env_path_append("PATH", buf);
760 else _env_path_prepend("PATH", buf); 611 else _env_path_prepend("PATH", buf);
761 } 612 }
@@ -763,22 +614,17 @@ main(int argc, char **argv)
763 /* run e directly now */ 614 /* run e directly now */
764 myasprintf(&buf, "%s/enlightenment", eina_prefix_bin_get(pfx)); 615 myasprintf(&buf, "%s/enlightenment", eina_prefix_bin_get(pfx));
765 616
766 args = alloca((argc + 2 + VALGRIND_MAX_ARGS) * sizeof(char *)); 617 args = alloca((argc + 1) * sizeof(char *));
767 i = valgrind_append(args, valgrind_gdbserver, valgrind_mode, valgrind_tool, 618 printf("Enlightenment: Command: %s\n", buf);
768 valgrind_path, valgrind_log); 619 args[0] = buf;
769 printf("== [%s]\n", buf); 620 copy_args(&args[1], argv + 1, argc - 1);
770 args[i++] = buf; 621 args[argc] = NULL;
771 copy_args(args + i, argv + 1, argc - 1);
772 args[i + argc - 1] = NULL;
773
774 if (valgrind_tool || valgrind_mode)
775 really_know = EINA_TRUE;
776 622
777 /* Now looping until */ 623 /* Now looping until */
778 while (restart) 624 while (restart)
779 { 625 {
780 pid_t result; 626 pid_t result;
781 int status; 627 int status, back;
782 Eina_Bool done = EINA_FALSE; 628 Eina_Bool done = EINA_FALSE;
783 Eina_Bool remember_sigill = EINA_FALSE; 629 Eina_Bool remember_sigill = EINA_FALSE;
784 Eina_Bool remember_sigusr1 = EINA_FALSE; 630 Eina_Bool remember_sigusr1 = EINA_FALSE;
@@ -794,7 +640,7 @@ main(int argc, char **argv)
794 } 640 }
795 else if (child == 0) 641 else if (child == 0)
796 { // we are in the child fork - so exec 642 { // we are in the child fork - so exec
797 ret = _e_start_child(args, really_know); 643 ret = _e_start_child(home, args, really_know);
798 break; 644 break;
799 } 645 }
800 646
@@ -822,20 +668,21 @@ not_done:
822 int r = _e_ptrace_getsiginfo(child, &sig, 668 int r = _e_ptrace_getsiginfo(child, &sig,
823 really_know); 669 really_know);
824 670
825 int back = (r == 0 && sig.si_signo != SIGTRAP) 671 back = ((r == 0) && (sig.si_signo != SIGTRAP))
826 ? sig.si_signo : 0; 672 ? sig.si_signo : 0;
827 673
828 _sig_remember(sig, &remember_sigusr1, &remember_sigill); 674 _sig_remember(sig, &remember_sigusr1, &remember_sigill);
829 675
830 if (r != 0 || _sig_continue(sig)) 676 if ((r != 0) || (_sig_continue(sig)))
831 { 677 {
832 _e_ptrace_continue(child, back, really_know); 678 _e_ptrace_continue(child, back, really_know);
833 goto not_done; 679 goto not_done;
834 } 680 }
835 _e_ptrace_detach(child, back, really_know); 681 _e_ptrace_detach(child, back, really_know);
682 usleep(200000);
836 683
837 /* And call gdb if available */ 684 /* And call gdb if available */
838 if (home && !_e_ptrace_kernel_check()) 685 if (home && !_e_ptrace_kernel_check(home))
839 r = _e_call_gdb(child, home, &backtrace_str); 686 r = _e_call_gdb(child, home, &backtrace_str);
840 else 687 else
841 r = 0; 688 r = 0;
@@ -907,15 +754,6 @@ not_done:
907 } 754 }
908 if (!done) goto not_done; 755 if (!done) goto not_done;
909 } 756 }
910 // clean up xdg runtime_dir if we created it
911/* leave XDG_RUNTIME_DIR alone - if distro/os doesn't use it - too bad
912 s = getenv("XDG_RUNTIME_DIR");
913 if ((s) && (stat(s, &st) == 0) && (S_ISDIR(st.st_mode)))
914 {
915 myasprintf(&buf, "%s/.e-deleteme", s);
916 if (stat(buf, &st) == 0) rmrf(s);
917 }
918 */
919 return ret; 757 return ret;
920} 758}
921 759
diff --git a/src/bin/e_wallpaper_gen_main.c b/src/bin/e_wallpaper_gen_main.c
index 3c1d96df5..cafb3a84f 100644
--- a/src/bin/e_wallpaper_gen_main.c
+++ b/src/bin/e_wallpaper_gen_main.c
@@ -479,7 +479,7 @@ elm_main(int argc, char **argv)
479 "}\n"); 479 "}\n");
480 fclose(f); 480 fclose(f);
481 if (snprintf(cmd_buf, sizeof(cmd_buf), 481 if (snprintf(cmd_buf, sizeof(cmd_buf),
482 "%s -fastdecomp -id %s -fd %s -sd %s -vd %s -dd %s -md %s " 482 "%s -fastdecomp -threads -id %s -fd %s -sd %s -vd %s -dd %s -md %s "
483 "%s/bg.edc %s", 483 "%s/bg.edc %s",
484 edje_cc, dir, dir, dir, dir, dir, dir, 484 edje_cc, dir, dir, dir, dir, dir, dir,
485 dir, outfile) >= (int)sizeof(cmd_buf)) 485 dir, outfile) >= (int)sizeof(cmd_buf))
diff --git a/src/bin/e_widget_bgpreview.c b/src/bin/e_widget_bgpreview.c
index 678065b73..bcc19dbeb 100644
--- a/src/bin/e_widget_bgpreview.c
+++ b/src/bin/e_widget_bgpreview.c
@@ -254,12 +254,7 @@ _e_wid_reconfigure(E_Widget_Data *wd)
254 EINA_LIST_FOREACH_SAFE(wd->desks, l, ll, dw) 254 EINA_LIST_FOREACH_SAFE(wd->desks, l, ll, dw)
255 { 255 {
256 if (!(dd = evas_object_data_get(dw, "desk_data"))) continue; 256 if (!(dd = evas_object_data_get(dw, "desk_data"))) continue;
257 if ((dd->x < wd->dx) && (dd->y < wd->dy)) 257 if (!((dd->x < wd->dx) && (dd->y < wd->dy)))
258 {
259 evas_object_size_hint_min_set(dw, mw, mh);
260 evas_object_size_hint_max_set(dw, mw, mh);
261 }
262 else
263 { 258 {
264 evas_object_del(dd->live); 259 evas_object_del(dd->live);
265 evas_object_del(dw); 260 evas_object_del(dw);
@@ -292,9 +287,8 @@ _e_wid_reconfigure(E_Widget_Data *wd)
292 _e_wid_desk_cb_config, dd); 287 _e_wid_desk_cb_config, dd);
293 evas_object_show(dd->icon); 288 evas_object_show(dd->icon);
294 evas_object_data_set(dd->icon, "desk_data", dd); 289 evas_object_data_set(dd->icon, "desk_data", dd);
295 evas_object_size_hint_min_set(dp, mw, mh); 290 evas_object_size_hint_align_set(dp, -1, -1);
296 evas_object_size_hint_max_set(dp, mw, mh); 291 evas_object_size_hint_weight_set(dp, 1, 1);
297 evas_object_size_hint_aspect_set(dp, EVAS_ASPECT_CONTROL_BOTH, zone->w, zone->h);
298 evas_object_table_pack(wd->table, dp, x, y, 1, 1); 292 evas_object_table_pack(wd->table, dp, x, y, 1, 1);
299 wd->desks = eina_list_append(wd->desks, dp); 293 wd->desks = eina_list_append(wd->desks, dp);
300 } 294 }
diff --git a/src/bin/tools/fprint/AUTHORS b/src/bin/tools/fprint/AUTHORS
new file mode 100644
index 000000000..905be8dc8
--- /dev/null
+++ b/src/bin/tools/fprint/AUTHORS
@@ -0,0 +1,2 @@
1Simon "jf_simon" Tischer simon@t-tischer.de
2Marcel "bu5hm4n" Hollerbach
diff --git a/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop
new file mode 100644
index 000000000..f5e9fc93a
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop
@@ -0,0 +1,17 @@
1[Desktop Entry]
2Encoding=UTF-8
3Type=Application
4Name=Fingerprint Password Settings
5Name[de]=Fingerprint Passwort Einstellungen
6Name[fr]=Reconnaissance des empreintes digitales
7Name[it]=Impostazioni impronte digitali
8Name[pt]=Definições de palavras-passe de impressão digital
9Icon=enlightenment_fprint
10Exec=enlightenment_fprint
11Comment=Tool to set up or modify fingerprint authentication
12Comment[fr]=Outil pour configurer ou modifier l'authentification par empreintes digitales.
13Comment[it]=Utilità per impostare o modificare l'autenticazione mediante sensore di impronte digitali
14Comment[pt]=Ferramenta para configurar ou modificar a autenticação das impressões digitais
15GenericName=GUI for Fingerprint Authentication
16Categories=Settings;DesktopSettings;
17StartupWMClass=enlightenment_fprint
diff --git a/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png
new file mode 100644
index 000000000..dbe7377e5
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/desktop/meson.build b/src/bin/tools/fprint/data/desktop/meson.build
new file mode 100644
index 000000000..6078f8314
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/meson.build
@@ -0,0 +1,6 @@
1install_data('enlightenment_fprint.desktop',
2 install_dir: join_paths(dir_data, 'applications')
3 )
4install_data('enlightenment_fprint.png',
5 install_dir: join_paths(dir_data, 'icons/hicolor/128x128/apps')
6 )
diff --git a/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg b/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg
new file mode 100644
index 000000000..e85537d21
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="e-fprint-gui.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="2560"
56 inkscape:window-height="1377"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-224.63902"
61 inkscape:cy="-27.03533"
62 inkscape:window-x="0"
63 inkscape:window-y="0"
64 inkscape:window-maximized="1"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#d6a16a;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#ddc8a4;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#a0a0a0;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#b88c88;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#eb9422;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#a0a0a0;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#b88c88;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#eb9422;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/meson.build b/src/bin/tools/fprint/data/meson.build
new file mode 100644
index 000000000..4155fc3ef
--- /dev/null
+++ b/src/bin/tools/fprint/data/meson.build
@@ -0,0 +1,2 @@
1subdir('desktop')
2subdir('themes')
diff --git a/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc b/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc
new file mode 100644
index 000000000..e70686a89
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc
@@ -0,0 +1,855 @@
1images {
2 image: "hands.png" COMP;
3 image: "left_hand.png" COMP;
4 image: "right_hand.png" COMP;
5image: "fingerprint_icon-160.png" COMP;
6 set { name: "fingerprint_icon";
7 image { image: "fingerprint_icon-160.png" COMP; size: 81 81 16000 16000; }
8 image { image: "fingerprint_icon-080.png" COMP; size: 41 41 80 80; }
9 image { image: "fingerprint_icon-040.png" COMP; size: 0 0 40 40; }
10 }
11#define IM140(_name) \
12 set { name: _name; \
13 image { image: _name"-560.png" COMP; size: 281 281 16000 16000; } \
14 image { image: _name"-280.png" COMP; size: 141 141 280 280; } \
15 image { image: _name"-140.png" COMP; size: 0 0 140 140; } \
16 }
17 IM140("1_0")
18 IM140("1_1")
19 IM140("1_1_failed")
20 IM140("1_2")
21 IM140("1_2_failed")
22 IM140("1_3")
23 IM140("1_3_failed")
24 IM140("1_4")
25 IM140("1_4_failed")
26 IM140("1_5")
27 IM140("1_5_failed")
28}
29
30collections {
31 base_scale: 1.0;
32 group { "hands";
33 parts {
34 // LEFT HAND
35 image { "hands";
36 scale: 1;
37 desc { "default";
38 min: 650 400;
39 max: 650 400;
40 image.normal: "hands.png";
41 color_class: ":fg";
42 }
43 }
44 image { "left-little-finger";
45 scale: 1;
46 desc { "default";
47 min: 40 40;
48 max: 40 40;
49 image.normal: "fingerprint_icon";
50 rel.to: "hands";
51 rel1.relative: (35/609) (125/375);
52 rel2.relative: (35/609) (125/375);
53 color_class: ":bg-light";
54 }
55 desc { "enrolled";
56 inherit: "default";
57 color_class: ":success";
58 }
59 }
60 swallow {"swallow_left-little-finger";
61 desc { "default";
62 rel.to: "left-little-finger";
63 }
64 }
65 image { "left-ring-finger";
66 scale: 1;
67 desc { "default";
68 min: 40 40;
69 max: 40 40;
70 image.normal: "fingerprint_icon";
71 rel.to: "hands";
72 rel1.relative: (92/609) (82/375);
73 rel2.relative: (92/609) (82/375);
74 color_class: ":bg-light";
75 }
76 desc { "enrolled";
77 inherit: "default";
78 color_class: ":success";
79 }
80 }
81 swallow {"swallow_left-ring-finger";
82 desc { "default";
83 rel.to: "left-ring-finger";
84 }
85 }
86
87 image { "left-middle-finger";
88 scale: 1;
89 desc { "default";
90 min: 40 40;
91 max: 40 40;
92 image.normal: "fingerprint_icon";
93 rel.to: "hands";
94 rel1.relative: (150/609) (51/375);
95 rel2.relative: (150/609) (51/375);
96 color_class: ":bg-light";
97 }
98 desc { "enrolled";
99 inherit: "default";
100 color_class: ":success";
101 }
102 }
103 swallow {"swallow_left-middle-finger";
104 desc { "default";
105 rel.to: "left-middle-finger";
106 }
107 }
108
109 image { "left-index-finger";
110 scale: 1;
111 desc { "default";
112 min: 40 40;
113 max: 40 40;
114 image.normal: "fingerprint_icon";
115 rel.to: "hands";
116 rel1.relative: (208/609) (75/375);
117 rel2.relative: (208/609) (75/375);
118 color_class: ":bg-light";
119 }
120 desc { "enrolled";
121 inherit: "default";
122 color_class: ":success";
123 }
124 }
125 swallow {"swallow_left-index-finger";
126 desc { "default";
127 rel.to: "left-index-finger";
128 }
129 }
130
131 image { "left-thumb";
132 scale: 1;
133 desc { "default";
134 min: 40 40;
135 max: 40 40;
136 image.normal: "fingerprint_icon";
137 rel.to: "hands";
138 rel1.relative: (265/609) (209/375);
139 rel2.relative: (265/609) (209/375);
140 color_class: ":bg-light";
141 }
142 desc { "enrolled";
143 inherit: "default";
144 color_class: ":success";
145 }
146 }
147 swallow {"swallow_left-thumb";
148 desc { "default";
149 rel.to: "left-thumb";
150 }
151 }
152
153 // RIGHT HAND
154 image { "right-little-finger";
155 scale: 1;
156 desc { "default";
157 min: 40 40;
158 max: 40 40;
159 image.normal: "fingerprint_icon";
160 rel.to: "hands";
161 rel1.relative: (572/609) (125/375);
162 rel2.relative: (572/609) (125/375);
163 color_class: ":bg-light";
164 }
165 desc { "enrolled";
166 inherit: "default";
167 color_class: ":success";
168 }
169 }
170 swallow {"swallow_right-little-finger";
171 desc { "default";
172 rel.to: "right-little-finger";
173 }
174 }
175 image { "right-ring-finger";
176 scale: 1;
177 desc { "default";
178 min: 40 40;
179 max: 40 40;
180 image.normal: "fingerprint_icon";
181 rel.to: "hands";
182 rel1.relative: (515/609) (82/375);
183 rel2.relative: (515/609) (82/375);
184 color_class: ":bg-light";
185 }
186 desc { "enrolled";
187 inherit: "default";
188 color_class: ":success";
189 }
190 }
191 swallow {"swallow_right-ring-finger";
192 desc { "default";
193 rel.to: "right-ring-finger";
194 }
195 }
196
197 image { "right-middle-finger";
198 scale: 1;
199 desc { "default";
200 min: 40 40;
201 max: 40 40;
202 image.normal: "fingerprint_icon";
203 rel.to: "hands";
204 rel1.relative: (458/609) (51/375);
205 rel2.relative: (458/609) (51/375);
206 color_class: ":bg-light";
207 }
208 desc { "enrolled";
209 inherit: "default";
210 color_class: ":success";
211 }
212 }
213 swallow {"swallow_right-middle-finger";
214 desc { "default";
215 rel.to: "right-middle-finger";
216 }
217 }
218
219 image { "right-index-finger";
220 scale: 1;
221 desc { "default";
222 min: 40 40;
223 max: 40 40;
224 image.normal: "fingerprint_icon";
225 rel.to: "hands";
226 rel1.relative: (399/609) (75/375);
227 rel2.relative: (399/609) (75/375);
228 color_class: ":bg-light";
229 }
230 desc { "enrolled";
231 inherit: "default";
232 color_class: ":success";
233 }
234 }
235 swallow {"swallow_right-index-finger";
236 desc { "default";
237 rel.to: "right-index-finger";
238 }
239 }
240
241 image { "right-thumb";
242 scale: 1;
243 desc { "default";
244 min: 40 40;
245 max: 40 40;
246 image.normal: "fingerprint_icon";
247 rel.to: "hands";
248 rel1.relative: (341/609) (209/375);
249 rel2.relative: (341/609) (209/375);
250 color_class: ":bg-light";
251 }
252 desc { "enrolled";
253 inherit: "default";
254 color_class: ":success";
255 }
256 }
257 swallow {"swallow_right-thumb";
258 desc { "default";
259 rel.to: "right-thumb";
260 }
261 }
262 }
263 programs {
264 program { signal: "enrolled_finger"; source: "*";
265 script {
266 set_state(get_part_id(src), "enrolled", 0.0);
267 }
268 }
269 program { signal: "reset_finger"; source: "reset_finger";
270 action: STATE_SET "default" 0.0;
271 transition: LINEAR 0.2;
272 target: "left-little-finger";
273 target: "left-ring-finger";
274 target: "left-middle-finger";
275 target: "left-index-finger";
276 target: "left-thumb";
277 target: "right-little-finger";
278 target: "right-ring-finger";
279 target: "right-middle-finger";
280 target: "right-index-finger";
281 target: "right-thumb";
282 }
283 }
284 }
285
286 group { "right_hand";
287 parts {
288 image { "right_hand";
289 scale: 1;
290 desc { "default";
291 min: 650 400;
292 max: 650 400;
293 image.normal: "right_hand.png";
294 color_class: ":fg";
295 }
296 }
297 image { "right-little-finger";
298 scale: 1;
299 desc { "default";
300 min: 40 40;
301 max: 40 40;
302 image.normal: "fingerprint_icon";
303 rel.to: "right_hand";
304 rel1.relative: (422/609) (125/375);
305 rel2.relative: (422/609) (125/375);
306 color_class: ":bg-light";
307 }
308 desc { "enrolled";
309 inherit: "default";
310 color_class: ":success";
311 }
312 }
313 swallow {"swallow_right-little-finger";
314 desc { "default";
315 rel.to: "right-little-finger";
316 }
317 }
318
319 image { "right-ring-finger";
320 scale: 1;
321 desc { "default";
322 min: 40 40;
323 max: 40 40;
324 image.normal: "fingerprint_icon";
325 rel.to: "right_hand";
326 rel1.relative: (365/609) (82/375);
327 rel2.relative: (365/609) (82/375);
328 color_class: ":bg-light";
329 }
330 desc { "enrolled";
331 inherit: "default";
332 color_class: ":success";
333 }
334 }
335 swallow {"swallow_right-ring-finger";
336 desc { "default";
337 rel.to: "right-ring-finger";
338 }
339 }
340
341 image { "right-middle-finger";
342 scale: 1;
343 desc { "default";
344 min: 40 40;
345 max: 40 40;
346 image.normal: "fingerprint_icon";
347 rel.to: "right_hand";
348 rel1.relative: (307/609) (51/375);
349 rel2.relative: (307/609) (51/375);
350 color_class: ":bg-light";
351 }
352 desc { "enrolled";
353 inherit: "default";
354 color_class: ":success";
355 }
356 }
357 swallow {"swallow_right-middle-finger";
358 desc { "default";
359 rel.to: "right-middle-finger";
360 }
361 }
362
363 image { "right-index-finger";
364 scale: 1;
365 desc { "default";
366 min: 40 40;
367 max: 40 40;
368 image.normal: "fingerprint_icon";
369 rel.to: "right_hand";
370 rel1.relative: (250/609) (75/375);
371 rel2.relative: (250/609) (75/375);
372 color_class: ":bg-light";
373 }
374 desc { "enrolled";
375 inherit: "default";
376 color_class: ":success";
377 }
378 }
379 swallow {"swallow_right-index-finger";
380 desc { "default";
381 rel.to: "right-index-finger";
382 }
383 }
384
385 image { "right-thumb";
386 scale: 1;
387 desc { "default";
388 min: 40 40;
389 max: 40 40;
390 image.normal: "fingerprint_icon";
391 rel.to: "right_hand";
392 rel1.relative: (192/609) (209/375);
393 rel2.relative: (192/609) (209/375);
394 color_class: ":bg-light";
395 }
396 desc { "enrolled";
397 inherit: "default";
398 color_class: ":success";
399 }
400 }
401 swallow {"swallow_right-thumb";
402 desc { "default";
403 rel.to: "right-thumb";
404 }
405 }
406
407 // LIST SWALLOW
408 swallow {"swallow_hand_switch";
409 scale: 1;
410 desc { "default";
411 min: 40 40;
412 max: 40 40;
413 rel1.to_y: "right_hand";
414 rel1.relative: 0.6 0.0;
415 }
416 }
417 }
418 programs {
419 program { signal: "enrolled_finger"; source: "*";
420 script {
421 set_state(get_part_id(src), "enrolled", 0.0);
422 }
423 }
424 program { signal: "reset_finger"; source: "reset_finger";
425 action: STATE_SET "default" 0.0;
426 transition: LINEAR 0.2;
427 target: "right-little-finger";
428 target: "right-ring-finger";
429 target: "right-middle-finger";
430 target: "right-index-finger";
431 target: "right-thumb";
432 }
433 }
434 }
435
436 group { "left_hand";
437 parts {
438 image { "left_hand";
439 scale: 1;
440 desc { "default";
441 min: 650 400;
442 max: 650 400;
443 image.normal: "left_hand.png";
444 color_class: ":fg";
445 }
446 }
447 image { "left-little-finger";
448 scale: 1;
449 desc { "default";
450 min: 40 40;
451 max: 40 40;
452 image.normal: "fingerprint_icon";
453 rel.to: "left_hand";
454 rel1.relative: (186/609) (125/375);
455 rel2.relative: (186/609) (125/375);
456 color_class: ":bg-light";
457 }
458 desc { "enrolled";
459 inherit: "default";
460 color_class: ":success";
461 }
462 }
463 swallow {"swallow_left-little-finger";
464 desc { "default";
465 rel.to: "left-little-finger";
466 }
467 }
468
469 image { "left-ring-finger";
470 scale: 1;
471 desc { "default";
472 min: 40 40;
473 max: 40 40;
474 image.normal: "fingerprint_icon";
475 rel.to: "left_hand";
476 rel1.relative: (243/609) (82/375);
477 rel2.relative: (243/609) (82/375);
478 color_class: ":bg-light";
479 }
480 desc { "enrolled";
481 inherit: "default";
482 color_class: ":success";
483 }
484 }
485 swallow {"swallow_left-ring-finger";
486 desc { "default";
487 rel.to: "left-ring-finger";
488 }
489 }
490
491 image { "left-middle-finger";
492 scale: 1;
493 desc { "default";
494 min: 40 40;
495 max: 40 40;
496 image.normal: "fingerprint_icon";
497 rel.to: "left_hand";
498 rel1.relative: (300/609) (51/375);
499 rel2.relative: (300/609) (51/375);
500 color_class: ":bg-light";
501 }
502 desc { "enrolled";
503 inherit: "default";
504 color_class: ":success";
505 }
506 }
507 swallow {"swallow_left-middle-finger";
508 desc { "default";
509 rel.to: "left-middle-finger";
510 }
511 }
512
513 image { "left-index-finger";
514 scale: 1;
515 desc { "default";
516 min: 40 40;
517 max: 40 40;
518 image.normal: "fingerprint_icon";
519 rel.to: "left_hand";
520 rel1.relative: (358/609) (75/375);
521 rel2.relative: (358/609) (75/375);
522 color_class: ":bg-light";
523 }
524 desc { "enrolled";
525 inherit: "default";
526 color_class: ":success";
527 }
528 }
529 swallow {"swallow_left-index-finger";
530 desc { "default";
531 rel.to: "left-index-finger";
532 }
533 }
534
535 image { "left-thumb";
536 scale: 1;
537 desc { "default";
538 min: 40 40;
539 max: 40 40;
540 image.normal: "fingerprint_icon";
541 rel.to: "left_hand";
542 rel1.relative: (416/609) (209/375);
543 rel2.relative: (416/609) (209/375);
544 color_class: ":bg-light";
545 }
546 desc { "enrolled";
547 inherit: "default";
548 color_class: ":success";
549 }
550 }
551 swallow {"swallow_left-thumb";
552 desc { "default";
553 rel.to: "left-thumb";
554 }
555 }
556
557 // LIST SWALLOW
558 swallow {"swallow_hand_switch";
559 scale: 1;
560 desc { "default";
561 min: 40 40;
562 max: 40 40;
563 rel1.to_y: "left_hand";
564 rel1.relative: 0.6 0.0;
565 }
566 }
567 }
568 programs {
569 program { signal: "enrolled_finger"; source: "*";
570 script {
571 set_state(get_part_id(src), "enrolled", 0.0);
572 }
573 }
574 program { signal: "reset_finger"; source: "reset_finger";
575 action: STATE_SET "default" 0.0;
576 transition: LINEAR 0.2;
577 target: "left-little-finger";
578 target: "left-ring-finger";
579 target: "left-middle-finger";
580 target: "left-index-finger";
581 target: "left-thumb";
582 }
583 }
584 }
585
586 group { "finger";
587 parts {
588 swallow {"swallow_select-finger-left";
589 scale: 1;
590 desc { "default";
591 align: 0 0.5;
592 min: 140 140;
593 max: 140 140;
594 }
595 }
596 image { "fingerprint_icon";
597 scale: 1;
598 desc { "default";
599 align: 0.0 0.0;
600 min: 200 200;
601 max: 200 200;
602 image.normal: "1_0";
603 rel1.to_x: "swallow_select-finger-left";
604 rel1.relative: 1.0 0.0;
605 color_class: ":fg";
606 }
607 desc { "enrolled";
608 inherit: "default";
609 color_class: ":success";
610 }
611 }
612 swallow {"swallow_select-finger";
613 scale: 1;
614 desc { "default";
615 align: 0.0 0.0;
616 min: 200 200;
617 max: 200 200;
618 rel1.to_x: "swallow_select-finger-left";
619 rel1.relative: 1.0 0.0;
620 }
621 }
622
623 swallow {"swallow_select-finger-right";
624 scale: 1;
625 desc { "default";
626 align: 1.0 0.5;
627 min: 140 140;
628 max: 140 140;
629 rel1.to_x: "fingerprint_icon";
630 rel1.relative: 1.0 0.0;
631 }
632 }
633 }
634 programs {
635 program { signal: "enrolled_finger"; source: "enrolled_finger";
636 script {
637 set_state(get_part_id("fingerprint_icon"), "enrolled", 0.0);
638 }
639 }
640 program { signal: "not_enrolled_finger"; source: "not_enrolled_finger";
641 script {
642 set_state(get_part_id("fingerprint_icon"), "default", 0.0);
643 }
644 }
645 }
646 }
647
648 group { "enroll";
649 parts {
650 image { "0";
651 scale: 1;
652 desc { "default";
653 min: 140 140;
654 max: 140 140;
655 image.normal: "1_0";
656 color_class: ":fg";
657 }
658 desc { "failed";
659 inherit: "default";
660 color_class: ":success";
661 }
662 }
663 image { "1";
664 scale: 1;
665 desc { "default";
666 min: 140 140;
667 max: 140 140;
668 visible: 0;
669 image.normal: "1_1";
670 color_class: ":fg";
671 }
672 desc { "success";
673 inherit: "default";
674 visible: 1;
675 color_class: ":success";
676 }
677 desc { "failed";
678 inherit: "default";
679 visible: 1;
680 image.normal: "1_1_failed";
681 color_class: ":selected-alt";
682 }
683 }
684 image { "2";
685 scale: 1;
686 desc { "default";
687 min: 140 140;
688 max: 140 140;
689 visible: 0;
690 image.normal: "1_2";
691 color_class: ":fg";
692 }
693 desc { "success";
694 inherit: "default";
695 visible: 1;
696 color_class: ":success";
697 }
698 desc { "failed";
699 inherit: "default";
700 visible: 1;
701 image.normal: "1_2_failed";
702 color_class: ":selected-alt";
703 }
704 }
705 image { "3";
706 scale: 1;
707 desc { "default";
708 min: 140 140;
709 max: 140 140;
710 visible: 0;
711 image.normal: "1_3";
712 color_class: ":fg";
713 }
714 desc { "success";
715 inherit: "default";
716 visible: 1;
717 color_class: ":success";
718 }
719 desc { "failed";
720 inherit: "default";
721 visible: 1;
722 image.normal: "1_3_failed";
723 color_class: ":selected-alt";
724 }
725 }
726 image { "4";
727 scale: 1;
728 desc { "default";
729 min: 140 140;
730 max: 140 140;
731 visible: 0;
732 image.normal: "1_4";
733 color_class: ":fg";
734 }
735 desc { "success";
736 inherit: "default";
737 visible: 1;
738 color_class: ":success";
739 }
740 desc { "failed";
741 inherit: "default";
742 visible: 1;
743 image.normal: "1_4_failed";
744 color_class: ":selected-alt";
745 }
746 }
747 image { "5";
748 scale: 1;
749 desc { "default";
750 min: 140 140;
751 max: 140 140;
752 visible: 0;
753 image.normal: "1_5";
754 color_class: ":fg";
755 }
756 desc { "success";
757 inherit: "default";
758 visible: 1;
759 color_class: ":success";
760 }
761 desc { "failed";
762 inherit: "default";
763 visible: 1;
764 image.normal: "1_5_failed";
765 color_class: ":selected-alt";
766 }
767 }
768 }
769 programs {
770 program { signal: "success"; source: "*";
771 script {
772 set_state(get_part_id(src), "success", 0.0);
773 }
774 }
775 program { signal: "failed"; source: "*";
776 script {
777 set_state(get_part_id(src), "failed", 0.0);
778 }
779 }
780 program { signal: "enrolled__failed"; source: "enrolled__failed";
781 action: STATE_SET "failed" 0.0;
782 transition: LINEAR 0.2;
783 target: "0";
784 }
785 program { signal: "enrolled__failed"; source: "enrolled__failed";
786 action: STATE_SET "default" 0.0;
787 transition: LINEAR 0.2;
788 target: "1";
789 target: "2";
790 target: "3";
791 target: "4";
792 target: "5";
793 }
794 }
795 }
796
797 group { "verify";
798 parts {
799 image { "0";
800 scale: 1;
801 desc { "default";
802 min: 140 140;
803 max: 140 140;
804 image.normal: "1_0";
805 color_class: ":fg";
806 }
807 desc { "success";
808 inherit: "default";
809 color_class: ":success";
810 }
811 desc { "failed";
812 inherit: "default";
813 color_class: ":selected-alt";
814 }
815 }
816 }
817 programs {
818 program { signal: "success"; source: "success";
819 action: STATE_SET "success" 0.0;
820 transition: LINEAR 0.2;
821 target: "0";
822 after: "reset1";
823 }
824 program { name: "reset1";
825 action: STATE_SET "default" 0.0;
826 transition: ACCEL 4.0;
827 target: "0";
828 }
829 program { signal: "failed"; source: "failed";
830 transition: LINEAR 0.2;
831 action: STATE_SET "failed" 0.0;
832 target: "0";
833 after: "reset";
834 }
835 program { name: "reset";
836 action: STATE_SET "default" 0.0;
837 transition: ACCEL 2.0;
838 target: "0";
839 }
840 }
841 }
842
843 group { "icon";
844 parts {
845 image { "0";
846 scale: 1;
847 desc { "default";
848 image.normal: "1_0";
849 color_class: ":success";
850 }
851 }
852 }
853 }
854
855}
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-140.png b/src/bin/tools/fprint/data/themes/images/1_0-140.png
new file mode 100644
index 000000000..1197f2db5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-280.png b/src/bin/tools/fprint/data/themes/images/1_0-280.png
new file mode 100644
index 000000000..7b0b7c98f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-560.png b/src/bin/tools/fprint/data/themes/images/1_0-560.png
new file mode 100644
index 000000000..9f79a4e18
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-140.png b/src/bin/tools/fprint/data/themes/images/1_1-140.png
new file mode 100644
index 000000000..71a0e1de9
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-280.png b/src/bin/tools/fprint/data/themes/images/1_1-280.png
new file mode 100644
index 000000000..9d6d832ad
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-560.png b/src/bin/tools/fprint/data/themes/images/1_1-560.png
new file mode 100644
index 000000000..e149196f6
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png
new file mode 100644
index 000000000..6a0b86f0d
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png
new file mode 100644
index 000000000..175c6a9ca
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png
new file mode 100644
index 000000000..d12cfbf66
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-140.png b/src/bin/tools/fprint/data/themes/images/1_2-140.png
new file mode 100644
index 000000000..91fd1c998
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-280.png b/src/bin/tools/fprint/data/themes/images/1_2-280.png
new file mode 100644
index 000000000..fd6ec1ff8
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-560.png b/src/bin/tools/fprint/data/themes/images/1_2-560.png
new file mode 100644
index 000000000..78fbe414d
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png
new file mode 100644
index 000000000..e0deefc5a
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png
new file mode 100644
index 000000000..185bb655c
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png
new file mode 100644
index 000000000..882bb035e
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-140.png b/src/bin/tools/fprint/data/themes/images/1_3-140.png
new file mode 100644
index 000000000..2d6909eb3
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-280.png b/src/bin/tools/fprint/data/themes/images/1_3-280.png
new file mode 100644
index 000000000..e0c33f6d7
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-560.png b/src/bin/tools/fprint/data/themes/images/1_3-560.png
new file mode 100644
index 000000000..2c0da69f7
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png
new file mode 100644
index 000000000..c4395e0df
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png
new file mode 100644
index 000000000..9fd0c59d9
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png
new file mode 100644
index 000000000..837ae95b5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-140.png b/src/bin/tools/fprint/data/themes/images/1_4-140.png
new file mode 100644
index 000000000..3206e2e3b
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-280.png b/src/bin/tools/fprint/data/themes/images/1_4-280.png
new file mode 100644
index 000000000..32deb92f3
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-560.png b/src/bin/tools/fprint/data/themes/images/1_4-560.png
new file mode 100644
index 000000000..f61e69e58
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png
new file mode 100644
index 000000000..efa20ef85
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png
new file mode 100644
index 000000000..279f99628
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png
new file mode 100644
index 000000000..e797223db
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-140.png b/src/bin/tools/fprint/data/themes/images/1_5-140.png
new file mode 100644
index 000000000..5052de5c0
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-280.png b/src/bin/tools/fprint/data/themes/images/1_5-280.png
new file mode 100644
index 000000000..22f02ad47
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-560.png b/src/bin/tools/fprint/data/themes/images/1_5-560.png
new file mode 100644
index 000000000..1256f776b
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png
new file mode 100644
index 000000000..61f912a53
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png
new file mode 100644
index 000000000..e28bfd528
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png
new file mode 100644
index 000000000..6fcce5ee5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png
new file mode 100644
index 000000000..0a297585c
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png
new file mode 100644
index 000000000..919889995
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png
new file mode 100644
index 000000000..8ec961295
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/hands.png b/src/bin/tools/fprint/data/themes/images/hands.png
new file mode 100644
index 000000000..682a46b99
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/hands.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/left_hand.png b/src/bin/tools/fprint/data/themes/images/left_hand.png
new file mode 100644
index 000000000..3e319c69e
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/left_hand.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_0.svg b/src/bin/tools/fprint/data/themes/images/orig/1_0.svg
new file mode 100644
index 000000000..fa35c2471
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_0.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_0.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="2560"
56 inkscape:window-height="1377"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-88.970814"
61 inkscape:cy="-27.03533"
62 inkscape:window-x="0"
63 inkscape:window-y="0"
64 inkscape:window-maximized="1"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_1.svg b/src/bin/tools/fprint/data/themes/images/orig/1_1.svg
new file mode 100644
index 000000000..797a7e754
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_1.svg
@@ -0,0 +1,120 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_1.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.4185125"
60 inkscape:cx="123.01619"
61 inkscape:cy="100.10487"
62 inkscape:window-x="242"
63 inkscape:window-y="493"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="1.7290736"
111 sodipodi:start="0.65622285"
112 sodipodi:ry="45.901638"
113 sodipodi:rx="45.901638"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5079"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 </g>
120</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg
new file mode 100644
index 000000000..c2a262f5f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_1_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="15.238095"
61 inkscape:cy="97.327189"
62 inkscape:window-x="997"
63 inkscape:window-y="309"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffdfd;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
82 id="path5071"
83 sodipodi:type="arc"
84 sodipodi:cx="149.5"
85 sodipodi:cy="149.5"
86 sodipodi:rx="45.901638"
87 sodipodi:ry="45.901638"
88 sodipodi:start="2.6954195"
89 sodipodi:end="5.9000004"
90 sodipodi:open="true"
91 sodipodi:arc-type="arc"
92 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
93 <path
94 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
95 sodipodi:arc-type="arc"
96 sodipodi:open="true"
97 sodipodi:end="1.7290736"
98 sodipodi:start="0.65622285"
99 sodipodi:ry="45.901638"
100 sodipodi:rx="45.901638"
101 sodipodi:cy="149.5"
102 sodipodi:cx="149.5"
103 sodipodi:type="arc"
104 id="path5079"
105 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffdfd;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_2.svg b/src/bin/tools/fprint/data/themes/images/orig/1_2.svg
new file mode 100644
index 000000000..937e65bff
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_2.svg
@@ -0,0 +1,146 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_2.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-187.28111"
61 inkscape:cy="206.45161"
62 inkscape:window-x="475"
63 inkscape:window-y="155"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
121 sodipodi:arc-type="arc"
122 sodipodi:open="true"
123 sodipodi:end="1.7290736"
124 sodipodi:start="0.65622285"
125 sodipodi:ry="45.901638"
126 sodipodi:rx="45.901638"
127 sodipodi:cy="149.5"
128 sodipodi:cx="149.5"
129 sodipodi:type="arc"
130 id="path5079"
131 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
132 <path
133 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
134 id="path5081"
135 sodipodi:type="arc"
136 sodipodi:cx="149.5"
137 sodipodi:cy="149.5"
138 sodipodi:rx="68.852463"
139 sodipodi:ry="68.852463"
140 sodipodi:start="4.9434339"
141 sodipodi:end="5.6642139"
142 sodipodi:open="true"
143 sodipodi:arc-type="arc"
144 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
145 </g>
146</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg
new file mode 100644
index 000000000..4340f9945
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_2_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-175.48387"
61 inkscape:cy="223.16436"
62 inkscape:window-x="173"
63 inkscape:window-y="27"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="3.7435892"
85 sodipodi:start="0.064467936"
86 sodipodi:ry="68.852463"
87 sodipodi:rx="68.852463"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5073"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5081"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="68.852463"
100 sodipodi:ry="68.852463"
101 sodipodi:start="4.9434339"
102 sodipodi:end="5.6642139"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_3.svg b/src/bin/tools/fprint/data/themes/images/orig/1_3.svg
new file mode 100644
index 000000000..e229d7b54
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_3.svg
@@ -0,0 +1,172 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_3.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-190.23041"
61 inkscape:cy="196.62058"
62 inkscape:window-x="740"
63 inkscape:window-y="375"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 sodipodi:open="true"
121 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
122 id="path5075"
123 sodipodi:type="arc"
124 sodipodi:cx="149.5"
125 sodipodi:cy="149.5"
126 sodipodi:rx="91.803276"
127 sodipodi:ry="91.803276"
128 sodipodi:start="1.4555675"
129 sodipodi:end="4.4180899"
130 sodipodi:arc-type="arc"
131 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
132 <path
133 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
134 sodipodi:arc-type="arc"
135 sodipodi:open="true"
136 sodipodi:end="1.7290736"
137 sodipodi:start="0.65622285"
138 sodipodi:ry="45.901638"
139 sodipodi:rx="45.901638"
140 sodipodi:cy="149.5"
141 sodipodi:cx="149.5"
142 sodipodi:type="arc"
143 id="path5079"
144 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
145 <path
146 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
147 id="path5081"
148 sodipodi:type="arc"
149 sodipodi:cx="149.5"
150 sodipodi:cy="149.5"
151 sodipodi:rx="68.852463"
152 sodipodi:ry="68.852463"
153 sodipodi:start="4.9434339"
154 sodipodi:end="5.6642139"
155 sodipodi:open="true"
156 sodipodi:arc-type="arc"
157 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
158 <path
159 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
160 sodipodi:arc-type="arc"
161 sodipodi:end="0.48338606"
162 sodipodi:start="5.3815708"
163 sodipodi:ry="91.803276"
164 sodipodi:rx="91.803276"
165 sodipodi:cy="149.5"
166 sodipodi:cx="149.5"
167 sodipodi:type="arc"
168 id="path5083"
169 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
170 sodipodi:open="true" />
171 </g>
172</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg
new file mode 100644
index 000000000..fde1e5958
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_3_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-206.94316"
61 inkscape:cy="174.00922"
62 inkscape:window-x="155"
63 inkscape:window-y="31"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 sodipodi:open="true"
82 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
83 id="path5075"
84 sodipodi:type="arc"
85 sodipodi:cx="149.5"
86 sodipodi:cy="149.5"
87 sodipodi:rx="91.803276"
88 sodipodi:ry="91.803276"
89 sodipodi:start="1.4555675"
90 sodipodi:end="4.4180899"
91 sodipodi:arc-type="arc"
92 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
93 <path
94 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
95 sodipodi:arc-type="arc"
96 sodipodi:end="0.48338606"
97 sodipodi:start="5.3815708"
98 sodipodi:ry="91.803276"
99 sodipodi:rx="91.803276"
100 sodipodi:cy="149.5"
101 sodipodi:cx="149.5"
102 sodipodi:type="arc"
103 id="path5083"
104 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
105 sodipodi:open="true" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_4.svg b/src/bin/tools/fprint/data/themes/images/orig/1_4.svg
new file mode 100644
index 000000000..e3d764c59
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_4.svg
@@ -0,0 +1,198 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_4.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-222.67281"
61 inkscape:cy="228.07988"
62 inkscape:window-x="373"
63 inkscape:window-y="197"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 sodipodi:open="true"
121 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
122 id="path5075"
123 sodipodi:type="arc"
124 sodipodi:cx="149.5"
125 sodipodi:cy="149.5"
126 sodipodi:rx="91.803276"
127 sodipodi:ry="91.803276"
128 sodipodi:start="1.4555675"
129 sodipodi:end="4.4180899"
130 sodipodi:arc-type="arc"
131 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
132 <path
133 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
134 sodipodi:arc-type="arc"
135 sodipodi:open="true"
136 sodipodi:end="2.968721"
137 sodipodi:start="4.9326345"
138 sodipodi:ry="114.7541"
139 sodipodi:rx="114.7541"
140 sodipodi:cy="149.5"
141 sodipodi:cx="149.5"
142 sodipodi:type="arc"
143 id="path5077"
144 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
145 <path
146 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
147 sodipodi:arc-type="arc"
148 sodipodi:open="true"
149 sodipodi:end="1.7290736"
150 sodipodi:start="0.65622285"
151 sodipodi:ry="45.901638"
152 sodipodi:rx="45.901638"
153 sodipodi:cy="149.5"
154 sodipodi:cx="149.5"
155 sodipodi:type="arc"
156 id="path5079"
157 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
158 <path
159 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
160 id="path5081"
161 sodipodi:type="arc"
162 sodipodi:cx="149.5"
163 sodipodi:cy="149.5"
164 sodipodi:rx="68.852463"
165 sodipodi:ry="68.852463"
166 sodipodi:start="4.9434339"
167 sodipodi:end="5.6642139"
168 sodipodi:open="true"
169 sodipodi:arc-type="arc"
170 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
171 <path
172 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
173 sodipodi:arc-type="arc"
174 sodipodi:end="0.48338606"
175 sodipodi:start="5.3815708"
176 sodipodi:ry="91.803276"
177 sodipodi:rx="91.803276"
178 sodipodi:cy="149.5"
179 sodipodi:cx="149.5"
180 sodipodi:type="arc"
181 id="path5083"
182 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
183 sodipodi:open="true" />
184 <path
185 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
186 id="path5085"
187 sodipodi:type="arc"
188 sodipodi:cx="149.5"
189 sodipodi:cy="149.5"
190 sodipodi:rx="114.7541"
191 sodipodi:ry="114.7541"
192 sodipodi:start="3.7973554"
193 sodipodi:end="4.1880314"
194 sodipodi:open="true"
195 sodipodi:arc-type="arc"
196 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
197 </g>
198</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg
new file mode 100644
index 000000000..bb8acbe49
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_4_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-209.89247"
61 inkscape:cy="234.9616"
62 inkscape:window-x="152"
63 inkscape:window-y="86"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="2.968721"
85 sodipodi:start="4.9326345"
86 sodipodi:ry="114.7541"
87 sodipodi:rx="114.7541"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5077"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5085"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="114.7541"
100 sodipodi:ry="114.7541"
101 sodipodi:start="3.7973554"
102 sodipodi:end="4.1880314"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_5.svg b/src/bin/tools/fprint/data/themes/images/orig/1_5.svg
new file mode 100644
index 000000000..0b8e3dc21
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_5.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_5.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-214.80799"
61 inkscape:cy="172.04301"
62 inkscape:window-x="3323"
63 inkscape:window-y="375"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg
new file mode 100644
index 000000000..d040cc94f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg
@@ -0,0 +1,87 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_5_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/i-140.png"
11 inkscape:export-xdpi="44.799999"
12 inkscape:export-ydpi="44.799999"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-205.96006"
61 inkscape:cy="212.35023"
62 inkscape:window-x="3670"
63 inkscape:window-y="354"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 </g>
87</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg b/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg
new file mode 100644
index 000000000..c23d743df
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="80"
6 height="80"
7 viewBox="0 0 80 80"
8 sodipodi:docname="fingerprint_icon.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type