1. 程式人生 > >00010__使用Awtk繪製餅圖_temp

00010__使用Awtk繪製餅圖_temp

pointer_event_t* pointer_event = (pointer_event_t*)e;

float_t x_f = 0;

float_t y_f = 0;

float_t result = 0;

if(pointer_event->x >= pieslice->x_center_point){

x_f = pointer_event->x - pieslice->x_center_point;

}else{

x_f = -(pieslice->x_center_point - pointer_event->x);

}

if(pointer_event->y >= pieslice->y_center_point){

y_f = pointer_event->y - pieslice->y_center_point;

}else{

y_f = -(pieslice->y_center_point - pointer_event->y);

}

if(x_f < 0 && y_f > 0){

result += (M_PI / 2);

}

if(x_f < 0 && y_f < 0){

result += M_PI;

}

if(x_f > 0 && y_f < 0){

result += (3*M_PI / 4);

}

result += atan(fabs(y_f) / fabs(x_f));

 

piechar_t* piechar = (piechar_t*)pieslice->widget.parent;

pieslice_t* iter = NULL;

pieslice_t** all = (pieslice_t**)(piechar->pieslice_array.elms);

int size = piechar->pieslice_array.size;

for(int i = 0; i < size; i++){

iter = all[i];

// float_t end_angle = iter->angle_span - iter->start_angle;

if((result >= iter->start_angle) && (result <= iter->angle_span)){

break;

}

}

 

char* name = iter->widget.name;

pieslice->pressed = TRUE;

widget_set_state(widget, WIDGET_STATE_PRESSED);

widget_grab(widget->parent, widget);