All pastes #800765 Raw Edit

Unnamed

public text v1 · immutable
#800765 ·published 2007-11-28 18:56 UTC
rendered paste body
#include <Evas.h>
#include <Ecore.h>
#include <Ecore_Evas.h>
#include <stdio.h>
#include <stdlib.h>

static void _cb_exit(Ecore_Evas *ee);
static void _cb_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void _cb_resize(Ecore_Evas *ee);

int 
main(int arc, char **argv) 
{
   Ecore_Evas *ee;
   Evas *evas;
   Evas_Object *rect;
   int w, h;

   if (!ecore_init()) return 0;
   if (!ecore_evas_init()) return 0;
   ee = ecore_evas_software_x11_new(0, 0, 0, 0, 255, 255);
   if (!ee) return 0;
   ecore_evas_title_set(ee, "Test");
   ecore_evas_name_class_set(ee, "Test", "Test");
   ecore_evas_callback_delete_request_set(ee, _cb_exit);
   ecore_evas_callback_destroy_set(ee, _cb_exit);
   ecore_evas_callback_resize_set(ee, _cb_resize);

   ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
   
   evas = ecore_evas_get(ee);
   rect = evas_object_rectangle_add(evas);
   evas_object_name_set(rect, "rect");
   evas_object_color_set(rect, 255, 0, 0, 255);
   evas_object_move(rect, 0, 0);
   evas_object_resize(rect, w, h);
   evas_object_event_callback_add(rect, EVAS_CALLBACK_KEY_DOWN, 
				  _cb_key_down, NULL);
   evas_object_show(rect);

   ecore_evas_show(ee);
   ecore_main_loop_begin();
   
   ecore_evas_shutdown();
   ecore_shutdown();
   
   return 0;
}

static void 
_cb_exit(Ecore_Evas *ee) 
{
   ecore_main_loop_quit();
}

static void 
_cb_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) 
{
   Evas_Event_Key_Down *ev;
   
   ev = event_info;
   printf("Callback Key Down: %s\n", ev->keyname);
}

static void 
_cb_resize(Ecore_Evas *ee) 
{
   Evas_Object *rect;
   int w, h;
   
   ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
   
   rect = evas_object_name_find(ecore_evas_get(ee), "rect");
   evas_object_move(rect, 0, 0);
   evas_object_resize(rect, w, h);
}