summaryrefslogblamecommitdiff
path: root/elock.c
blob: cafa6aa363cf1cada987bbc07cd078a49021b20f (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                   
                   
 
         
                  




                       




                            

                                                
                                       
                                
                          
                                                       
                                                                       

                               
 

                                     



                          


                                



                              
                                    



                                                     
  
 

                            
                                         
        
                




                                                            





























                                                                                                



                        
                       


                         
        


                 
                                      
 


                                                                  

 
                                               
 










                                                   

                              
 
                   
                                        
                        


                 
                         



                     














                                                                                         
                                       




                                                  



















                                                                        
/*- STANDAR LIBS */
#include <stdio.h>
#include <stdlib.h>

/* EFL */
#include <Ecore.h>
#include <Ecore_Evas.h>

#define WIDTH 400
#define HEIGHT 400
#define TIME 10

/* ELCOK LIBS */
/*#include "etimer.h"*/

/* ELOCK FUNC DECLARATION */
Ecore_Timer *elock_timer_callback(void *donnee);
/*Ecore_Event_Handler *event_handler;*/
Ecore_Timer *elock_timer (double laps);
int check_args (int arg);	
int elock_event_handler();
int elock_event_cb (void *data, int ev_type, void *ev);
void key_down(void *data, Evas *e, Evas_Object *obj, void *event_info);

/* TEMPORARY GLOBAL VARIABLE */

Ecore_Event_Handler *handler1 = NULL;

Ecore_Evas  *   ee;
Evas        *   evas;
Evas_Object *   base_rect;
Ecore_Timer *	timer;

int main (int argc, char **argv)
{
	int timer_result;
	int event_hand_result;
	double time;
	
/*	if ( check_args(argc) != 0 )
	{
		fprintf (stdout,"NEED 1 ARGUMENT\n");
		exit(1);
	}
*/

	time = (double)TIME;
/*
	timer_result = elock_timer(time);
	
		
	event_hand_result = elock_event_handler(argc, argv);
	if (event_hand_result != 0)
		fprintf (stdout,"ERROR OF EVENT HANDLER");

	return 0;
 */
 
	ecore_init();
/*	elock_event_handler();*/
	
	timer = elock_timer(time);
	if (!timer)
		fprintf (stdout,"ERROR OF TIMER");

   	ee = ecore_evas_software_x11_new(NULL, 0,  0, 0, WIDTH, HEIGHT);
        ecore_evas_title_set(ee, "Elock KeyBind Example");
        ecore_evas_borderless_set(ee, 0);
        ecore_evas_show(ee);

   	evas = ecore_evas_get(ee);

   	base_rect = evas_object_rectangle_add(evas);
        evas_object_resize(base_rect, (double)WIDTH, (double)HEIGHT);
        evas_object_color_set(base_rect, 0, 0, 0, 255);
        evas_object_focus_set(base_rect, 1);
        evas_object_show(base_rect);

        evas_object_event_callback_add(base_rect,EVAS_CALLBACK_KEY_DOWN, key_down, timer);      

        ecore_main_loop_begin();
        
        ecore_evas_shutdown();
        ecore_shutdown();

        return 0;
}

int check_args (int arg)
{
	if ( arg == 2 )
	{
		return 0;
	}
	
	return 1;
}

Ecore_Timer *elock_timer (double laps)
{
	Ecore_Timer *timer;	
	timer = ecore_timer_add(laps, elock_timer_callback, NULL);
	return timer;
}

Ecore_Timer *elock_timer_callback(void *donnee)
{
	double w;
	double h;
	double modif;

	/*modif=(double)random() % 200;*/
	modif=2;
	
	h=(double)HEIGHT + modif ;
	w=(double)WIDTH + modif ;
        fprintf(stdout, "Normalement je resize\n");
	evas_object_resize(base_rect, w, h);
	fprintf(stdout,"1\n");
	fflush(stdout);

/*	if (donnee)
		ecore_timer_del(donnee);
*/			
	return 1;
}

int elock_event_handler()
{
	
	ecore_init();
	
	handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_HUP, elock_event_cb, NULL);
	
	ecore_main_loop_begin();
	
	ecore_shutdown();
	
	return 0;
}

int elock_event_cb (void *data, int ev_type, void *ev)
{
	/*Ecore_Event_Signal_User *ev;*/

	if (handler1)
	{
		ecore_main_loop_quit();
		ecore_event_handler_del(handler1);
		handler1 = NULL;
	}
	return 0;
}



/*static int main_signal_exit(void *data, int ev_type, void *ev)
{
   ecore_main_loop_quit();
   return 1;
}*/

void key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) {
        Evas_Event_Key_Down *ev;

        ev = (Evas_Event_Key_Down *)event_info;
  	fprintf(stdout,"You hit key: %s\n", ev->keyname);
	fprintf(stdout," and TIMER RESET\n");
	ecore_timer_del(timer);
	timer = NULL;
	timer = elock_timer((double)TIME);
}