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

                   
                   
 
         
                  

                       
                
                  

                               
 
                                        
 



                                  


                                

















                                                            
                                           




























                                                                                                    



                        





                 

 
                                                       
 



                                                               

 
                                                           
 















                                                                  
 
                   
                                        

             

 
                          
 









                                                                                      



                                                      








                                           
 
 





                                                                
                                                                                   
 
                                  

                               
                                 


                                                       
                                           
                             

 
                                                                                     
 
                                         




                                                      
                                           
                             

 
                                                
 




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

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

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

/* 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)
{
    double                  time;

    /* Check no args to the program */
    if (check_args (argc) != 0)
    {
        fprintf (stdout, "elock don't take any argument\n");
        exit (1);
    }

    /* set and cast the duration of timer */
    time = (double)TIME;

    /* init ecore */
    ecore_init ();

    /* calling timer with the duration */
    timer = elock_build_timer (time);
    if (!timer)
        fprintf (stdout, "error of timer");

    /* Building and setting evas window */
    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);

    /*set backgroud of evas object */
    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, elock_key_event_cb, timer);
    evas_object_event_callback_add (base_rect, EVAS_CALLBACK_MOUSE_MOVE, elock_key_event_cb, timer);
    evas_object_event_callback_add (base_rect, EVAS_CALLBACK_MOUSE_WHEEL, elock_key_event_cb,
                                    timer);
    evas_object_event_callback_add (base_rect, EVAS_CALLBACK_MOUSE_DOWN, elock_mouse_event_cb,
                                    timer);

    ecore_main_loop_begin ();

    ecore_evas_shutdown ();
    ecore_shutdown ();

    return 0;
}

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

    return 1;
}

Ecore_Timer            *elock_build_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;

    evas_object_resize (base_rect, (double)WIDTH, (double)HEIGHT);
    evas_object_show (base_rect);

    fprintf (stdout, "Normalement je resize\n");
    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 elock_key_event_cb (void *data, Evas * e, Evas_Object * obj, void *event_info)
{
    fprintf (stdout, "debug ici");
    Evas_Event_Key_Down    *ev;

    fprintf (stdout, "debug la");

    ev = (Evas_Event_Key_Down *) event_info;
    fprintf (stdout, "You hit key: %s\n", ev->keyname);
    fprintf (stdout, " and timer reset\n");
    elock_kill_timer (timer);
}

void elock_mouse_event_cb (void *data, Evas * e, Evas_Object * obj, void *event_info)
{
    fprintf (stdout, "mouse down event");

    Evas_Event_Mouse_Down  *ev;

    ev = (Evas_Event_Mouse_Down *) event_info;
    fprintf (stdout, "You hit key: %s\n", ev->button);
    fprintf (stdout, " and timer reset\n");
    elock_kill_timer (timer);
}

int elock_kill_timer (Ecore_Timer * elock_timer)
{
    ecore_timer_del (elock_timer);
    timer = NULL;
    timer = elock_build_timer ((double)TIME);

    return 0;
}