rendered paste body#include <stdio.h>#include <dirent.h>#include <ttk.h>#include "izilla.h"#include "desktop.h"//Function Prototypesint global_event_handler(int ev, int earg, int time);extern int ttk_mouse_down(TWidget * wid, int btn);extern int ttk_mouse_scroll(TWidget * wid, int dir);TWidget * get_widget_under_mouse(void);//Global Event Handlerint global_event_handler(int ev, int earg, int time){ int ret = -1; TWidget * wid; switch(ev) { case TTK_BUTTON_DOWN: switch (earg) { case TTK_BUTTON_ACTION: //nothing for now break; case TTK_BUTTON_HOLD: //nothing for now break; default: wid = get_widget_under_mouse(); if(wid!=NULL) wid->dirty++; ret = ttk_mouse_down(mouse, earg); break; } break; case TTK_BUTTON_UP: //nothing for now break; case TTK_SCROLL: wid = get_widget_under_mouse(); if(wid!=NULL) wid->dirty++; ret = ttk_mouse_scroll(mouse, earg); break; } if(ret >= 0) { return ret; } else { return TTK_EV_UNUSED; }}TWidget * get_widget_under_mouse(void){ TWidget * ret = NULL; TWidgetList * twl = win->widgets; while (ret = NULL && twl!=NULL) { if(!strcmp(twl->v->name, "mouse")) if((mouse->x > twl->v->x) && (mouse->x < (twl->v->x + twl->v->w))) if((mouse->y > twl->v->y) && (mouse->y < (twl->v->y + twl->v->h))) ret = twl->v; twl = twl->next; } return ret;}