rendered paste body#include <getopt.h>#include <stdio.h>#include <string.h>#include <Ecore_Evas.h>#include <Ecore.h>//320x240#define WIDTH 320#define HEIGHT 240Ecore_Evas * ee;Evas * evas;Evas_Object * base_rect;Evas_Object * base_rect_bg;Evas_Object * img;FILE *fp;int last = 0;void key_down(void *data, Evas *e, Evas_Object *evas, void *event_info);void usage( void );int main(int argc, char *argv[]){ int c; extern char *optarg; extern int optind; extern int opterr; extern int optopt; int ligne = 3; char *fichier = ""; char *parametres = "DEFAULT='font=vera font_size=12 style=shadow shadow_color=#ffffff80 align=left color=#000000 wrap=word' BR='\n'"; while ((c = getopt(argc, argv, "f:l:p:?")) != -1) { switch (c) { case 'f': fichier = strdup(optarg); break; case 'l': ligne = atoi(optarg); break; case 'p': parametres = strdup(optarg); case '?': default: usage(); return 0; break; } } if (!strcmp(fichier, "")) { usage(); return 0; } else if ((fp = fopen(fichier,"r"))==NULL) { printf("Cannot open file \"%s\".\n", fichier); return 0; } evas_init(); ecore_init(); ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, WIDTH, HEIGHT); //ee = ecore_evas_fb_new(NULL, 180, WIDTH, HEIGHT); ecore_evas_show(ee); evas = ecore_evas_get(ee); base_rect = evas_object_textblock_add(evas); evas_object_resize(base_rect, WIDTH-100, HEIGHT-50); //evas_object_text_font_set(base_rect, "vera", 17); Evas_Textblock_Style *style; char st[4096]; style = evas_textblock_style_new(); evas_textblock_style_set(style, parametres); evas_object_textblock_style_set(base_rect, style); evas_object_move(base_rect, 0, 0); evas_object_resize(base_rect, WIDTH-10, HEIGHT-10); evas_object_textblock_text_markup_set(base_rect,"Utilisez la touche [Down] pour passer à la page suivante. <BR>[Q] pour quitter."); evas_object_color_set(base_rect, 0, 0, 255, 255); evas_object_layer_set(base_rect, 250); evas_object_show(base_rect); base_rect_bg = evas_object_rectangle_add(evas); evas_object_resize(base_rect_bg, (double)WIDTH, (double)HEIGHT); evas_object_color_set(base_rect_bg, 0, 0, 255, 50); evas_object_focus_set(base_rect_bg, 1); evas_object_show(base_rect_bg); evas_object_event_callback_add(base_rect_bg, EVAS_CALLBACK_KEY_DOWN, key_down, NULL); ecore_main_loop_begin(); fclose(fp); return 0;}void key_down(void *data, Evas *e, Evas_Object *evas, void *event_info) { Evas_Event_Key_Down *ev; ev = (Evas_Event_Key_Down *)event_info; if (!strcmp(ev->keyname, "q")) { ecore_main_loop_quit(); } else if (!strcmp(ev->keyname, "Down")) { char str[4096]=""; int i=0; char txt[4096]=""; for (i=0; i<3; i++){ if(fgets(str, 4094, fp)){ char *p = strchr (str, '\n'); if (p){ *p = 0; } strcat(txt,str); } } evas_object_textblock_text_markup_set(base_rect,txt); }}void usage ( void ) { printf ( "Usage: ebookreader -f fichier [-l ligne] [-p parametres]\n" "Lit un fichier \n" " -? \t cette aide\n" " -f fichier\t Fichier à lire\n" " -l ligne\t Nombre de lignes à lire (defaut : 3)\n" " -p parametres\t (défaut : \"DEFAULT='font=vera font_size=12 style=shadow shadow_color=#ffffff80 align=left color=#000000 wrap=word' BR='\\n'\")\n");}