@ -1,5 +1,6 @@ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/*
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  Copyright  ©  2010  Intel  Corporation   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  Copyright  ©  2012  Collabora ,  Ltd .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  Permission  to  use ,  copy ,  modify ,  distribute ,  and  sell  this  software  and  its   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  documentation  for  any  purpose  is  hereby  granted  without  fee ,  provided  that   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -39,58 +40,14 @@ struct clickdot { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  display  * display ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  window  * window ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  widget  * widget ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  window  * menu ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int32_t  width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							double  current ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							double  target ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							double  previous ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}  height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  wl_callback  * frame_callback ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					frame_callback ( void  * data ,  struct  wl_callback  * callback ,  uint32_t  time )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  clickdot  * clickdot  =  data ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						double  force ,  height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						assert ( ! callback  | |  callback  = =  clickdot - > frame_callback ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						height  =  clickdot - > height . current ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						force  =  ( clickdot - > height . target  -  height )  /  10.0  +   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							( clickdot - > height . previous  -  height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > height . current  =   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							height  +  ( height  -  clickdot - > height . previous )  +  force ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > height . previous  =  height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( clickdot - > height . current  > =  400 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . current  =  400 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . previous  =  400 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( clickdot - > height . current  < =  200 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . current  =  200 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . previous  =  200 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_schedule_resize ( clickdot - > widget ,  clickdot - > width ,  height  +  0.5 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( clickdot - > frame_callback )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							wl_callback_destroy ( clickdot - > frame_callback ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > frame_callback  =  NULL ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  const  struct  wl_callback_listener  listener  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						frame_callback   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int32_t  x ,  y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					redraw_handler ( struct  widget  * widget ,  void  * data )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						static  const  double  r  =  10.0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  clickdot  * clickdot  =  data ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_surface_t  * surface ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_t  * cr ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -109,18 +66,20 @@ redraw_handler(struct widget *widget, void *data) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								allocation . height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_set_source_rgba ( cr ,  0 ,  0 ,  0 ,  0.8 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_fill ( cr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_destroy ( cr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_surface_destroy ( surface ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_translate ( cr ,  clickdot - > x  +  0.5 ,  clickdot - > y  +  0.5 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_set_line_width ( cr ,  1.0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_set_source_rgb ( cr ,  0.1 ,  0.9 ,  0.9 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_move_to ( cr ,  0.0 ,  - r ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_line_to ( cr ,  0.0 ,  r ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_move_to ( cr ,  - r ,  0.0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_line_to ( cr ,  r ,  0.0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_arc ( cr ,  0.0 ,  0.0 ,  r ,  0.0 ,  2.0  *  M_PI ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_stroke ( cr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( fabs ( clickdot - > height . previous  -  clickdot - > height . target )  >  0.1 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > frame_callback  =   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								wl_surface_frame (   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									window_get_wl_surface ( clickdot - > window ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							wl_callback_add_listener ( clickdot - > frame_callback ,  & listener ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										 clickdot ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_destroy ( cr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						cairo_surface_destroy ( surface ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -142,39 +101,12 @@ key_handler(struct window *window, struct input *input, uint32_t time, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						switch  ( sym )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						case  XK_Down :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . target  =  400 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							frame_callback ( clickdot ,  NULL ,  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						case  XK_Up :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							clickdot - > height . target  =  200 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							frame_callback ( clickdot ,  NULL ,  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						case  XK_Escape :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							display_exit ( clickdot - > display ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					menu_func ( struct  window  * window ,  int  index ,  void  * user_data )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						fprintf ( stderr ,  " picked entry %d \n " ,  index ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					show_menu ( struct  clickdot  * clickdot ,  struct  input  * input ,  uint32_t  time )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int32_t  x ,  y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						static  const  char  * entries [ ]  =  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							" Roy " ,  " Pris " ,  " Leon " ,  " Zhora "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						} ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						input_get_position ( input ,  & x ,  & y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_show_menu ( clickdot - > display ,  input ,  time ,  clickdot - > window ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								 x  -  10 ,  y  -  10 ,  menu_func ,  entries ,  4 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					button_handler ( struct  widget  * widget ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						       struct  input  * input ,  uint32_t  time ,   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -182,19 +114,16 @@ button_handler(struct widget *widget, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  clickdot  * clickdot  =  data ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						switch  ( button )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						case  BTN_RIGHT :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if  ( state )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								show_menu ( clickdot ,  input ,  time ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( state  & &  button  = =  BTN_LEFT )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							input_get_position ( input ,  & clickdot - > x ,  & clickdot - > y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_schedule_redraw ( widget ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  struct  clickdot  *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					clickdot_create ( struct  display  * display )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  clickdot  * clickdot ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int32_t  height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot  =  malloc ( sizeof  * clickdot ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( clickdot  = =  NULL )   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -203,24 +132,20 @@ clickdot_create(struct display *display) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > window  =  window_create ( display ,  500 ,  400 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > widget  =  frame_create ( clickdot - > window ,  clickdot ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_set_title ( clickdot - > window ,  " Wayland Resizor  " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_set_title ( clickdot - > window ,  " Wayland ClickDot  " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > display  =  display ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_set_key_handler ( clickdot - > window ,  key_handler ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_set_user_data ( clickdot - > window ,  clickdot ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_set_redraw_handler ( clickdot - > widget ,  redraw_handler ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_set_keyboard_focus_handler ( clickdot - > window ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										  keyboard_focus_handler ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > width  =  300 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > height . current  =  400 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > height . previous  =  clickdot - > height . current ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > height . target  =  clickdot - > height . current ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						height  =  clickdot - > height . current  +  0.5 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_set_redraw_handler ( clickdot - > widget ,  redraw_handler ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_set_button_handler ( clickdot - > widget ,  button_handler ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_schedule_resize ( clickdot - > widget ,  clickdot - > width ,  height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_schedule_resize ( clickdot - > widget ,  500 ,  400 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > x  =  250 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						clickdot - > y  =  200 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						return  clickdot ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -228,9 +153,6 @@ clickdot_create(struct display *display) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					clickdot_destroy ( struct  clickdot  * clickdot )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( clickdot - > frame_callback )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							wl_callback_destroy ( clickdot - > frame_callback ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						widget_destroy ( clickdot - > widget ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window_destroy ( clickdot - > window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						free ( clickdot ) ;