All pastes #916534 Raw Edit

killruana

public text v1 · immutable
#916534 ·published 2008-02-24 19:08 UTC
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");}