-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfbcat.c
84 lines (65 loc) · 2.11 KB
/
fbcat.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <Ecore.h>
#include <Elementary.h>
#include <stdio.h>
#include <stdlib.h>
// window close callback
static void on_win_del (void *data, Evas_Object *obj, void *event_info)
{
elm_exit ();
}
static Eina_Bool on_stdin_change (void *data, Ecore_Fd_Handler *handler)
{
Evas_Object *label = (Evas_Object *)data;
char buffer[1024];
size_t nbytes;
int fd;
if (ecore_main_fd_handler_active_get (handler, ECORE_FD_ERROR)) {
fprintf(stderr,"An error has occured. Quitting.\n");
elm_object_text_set (label, "");
elm_exit ();
return ECORE_CALLBACK_CANCEL;
}
fd = ecore_main_fd_handler_fd_get (handler);
nbytes = read (fd, buffer, sizeof(buffer));
if (nbytes == 0) {
elm_object_text_set (label, "");
elm_exit ();
return ECORE_CALLBACK_CANCEL;
}
buffer[nbytes]='\0';
elm_object_text_set (label, buffer);
return ECORE_CALLBACK_RENEW;
}
int elm_main (int argc, char **argv)
{
Evas_Object *window, *bg, *box, *label;
Ecore_Fd_Handler *handler;
window = elm_win_add (NULL, "main", ELM_WIN_BASIC);
elm_win_title_set (window, "EFL Framebuffer test");
bg = elm_bg_add (window);
box = elm_box_add (window);
label = elm_label_add (window);
evas_object_size_hint_min_set (bg, 848, 480);
evas_object_size_hint_max_set (bg, 848, 480);
elm_bg_color_set (bg,0,0,0);
elm_win_resize_object_add (window, bg);
elm_win_resize_object_add (window, box);
elm_box_pack_end (box, label);
//elm_object_text_set (label, "<font=Sans color=blue font_size=72>Default</font> text");
//elm_label_line_wrap_set(label, ELM_WRAP_CHAR);
//evas_object_text_font_source_set(label,"Sans");
//evas_object_color_set(label, 255, 0, 0, 255);
evas_object_text_font_set(label,"Sans",72);
evas_object_smart_callback_add (window, "delete,request", on_win_del, NULL);
handler = ecore_main_fd_handler_add (STDIN_FILENO,
ECORE_FD_READ | ECORE_FD_ERROR,
on_stdin_change,
label, NULL, NULL);
evas_object_show (bg);
evas_object_show (label);
evas_object_show (box);
evas_object_show (window);
elm_run ();
return 0;
}
ELM_MAIN();