- added gradients to holt_widget.cc
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@1007 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
parent
c9d9766092
commit
0dbb265126
|
@ -104,8 +104,10 @@ void HoltResource::draw(cairo_t *cr)
|
|||
_pos.real() - _radius, _pos.imag() - _radius,
|
||||
2*_radius, 2*_radius);
|
||||
// fill
|
||||
cairo_set_source_rgb (cr, 1, 0.5, 1);
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
cairo_fill_preserve (cr);
|
||||
|
||||
|
||||
// outline
|
||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||
|
||||
|
@ -164,34 +166,61 @@ HoltSchedulable::~HoltSchedulable()
|
|||
void HoltSchedulable::draw(cairo_t *cr)
|
||||
{
|
||||
cairo_save(cr); // save context state
|
||||
cairo_pattern_t* gradient;
|
||||
gradient = cairo_pattern_create_radial( _pos.real(), _pos.imag(), 0.0, _pos.real(), _pos.imag(), _radius);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
_ready_process_gradient = cairo_pattern_create_linear(0, 0, 0, _yu_process_bar_height * _y_unit);
|
||||
// yellow
|
||||
cairo_pattern_add_color_stop_rgba(_ready_process_gradient, 0.00, 1.0, 1.0, 0.5, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(_ready_process_gradient, 1.00, 1.0, 1.0, 0.0, 1.0);
|
||||
|
||||
_running_process_gradient = cairo_pattern_create_linear(0, 0, 0, _yu_process_bar_height * _y_unit);
|
||||
// green
|
||||
cairo_pattern_add_color_stop_rgba(_running_process_gradient, 0.00, 0.5, 1.0, 0.5, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(_running_process_gradient, 1.00, 0.0, 1.0, 0.0, 1.0);
|
||||
|
||||
_blocked_process_gradient = cairo_pattern_create_linear(0, 0, 0, _yu_process_bar_height * _y_unit);
|
||||
// blue
|
||||
cairo_pattern_add_color_stop_rgba(_blocked_process_gradient, 0.00, 0.5, 0.5, 1.0, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(_blocked_process_gradient, 1.00, 0.0, 0.0, 1.0, 1.0);
|
||||
*/
|
||||
// draw circle
|
||||
cairo_arc (cr, _pos.real(), _pos.imag(), _radius, 0, 2 * M_PI);
|
||||
// filling
|
||||
switch(_schedulable->get_state())
|
||||
{
|
||||
case Schedulable::state_running:
|
||||
//cairo_set_source_rgb (cr, 0.5, 1, 0.5);
|
||||
cairo_set_source_rgb (cr, 0, 1, 0);
|
||||
// cairo_set_source_rgb (cr, 0, 1, 0);
|
||||
// green
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 0.00, 0.5, 1.0, 0.5, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 1.00, 0.0, 1.0, 0.0, 1.0);
|
||||
cairo_set_source(cr, gradient);
|
||||
break;
|
||||
case Schedulable::state_ready:
|
||||
// cairo_set_source_rgb (cr, 1, 1, 0.5);
|
||||
cairo_set_source_rgb (cr, 1, 1, 0);
|
||||
// cairo_set_source_rgb (cr, 1, 1, 0);
|
||||
// yellow
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 0.00, 1.0, 1.0, 0.5, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 1.00, 1.0, 1.0, 0.0, 1.0);
|
||||
cairo_set_source(cr, gradient);
|
||||
break;
|
||||
case Schedulable::state_blocked:
|
||||
// cairo_set_source_rgb (cr, 1, 0.5, 0.5);
|
||||
cairo_set_source_rgb (cr, 1, 0, 0);
|
||||
// cairo_set_source_rgb (cr, 1, 0, 0);
|
||||
// blue
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 0.00, 0.5, 0.5, 1.0, 0.7);
|
||||
cairo_pattern_add_color_stop_rgba(gradient, 1.00, 0.0, 0.0, 1.0, 1.0);
|
||||
cairo_set_source(cr, gradient);
|
||||
break;
|
||||
case Schedulable::state_future:
|
||||
// cairo_set_source_rgb (cr, 0.5, 0.5, 1);
|
||||
cairo_set_source_rgb (cr, 0.5, 0.5, 1);
|
||||
//cairo_set_source_rgb (cr, 0.5, 0.5, 1);
|
||||
break;
|
||||
case Schedulable::state_terminated:
|
||||
cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
|
||||
break;
|
||||
}
|
||||
cairo_fill_preserve (cr);
|
||||
|
||||
// outline
|
||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||
|
||||
|
@ -208,6 +237,7 @@ void HoltSchedulable::draw(cairo_t *cr)
|
|||
// stroke all
|
||||
cairo_stroke (cr);
|
||||
cairo_restore(cr); // restore context state
|
||||
cairo_pattern_destroy(gradient);
|
||||
}
|
||||
|
||||
Vec2 HoltSchedulable::get_intersection_to(Vec2 pt)
|
||||
|
@ -246,10 +276,12 @@ void HoltRequest::draw(cairo_t *cr)
|
|||
switch(_state)
|
||||
{
|
||||
case Request::state_unallocable:
|
||||
cairo_set_source_rgb(cr, 1, 0, 0);
|
||||
// blue
|
||||
cairo_set_source_rgb(cr, 0, 0, 1);
|
||||
arrow(cr, schedulable, resource);
|
||||
break;
|
||||
case Request::state_allocated:
|
||||
// green
|
||||
cairo_set_source_rgb(cr, 0, 1, 0);
|
||||
arrow(cr, resource, schedulable);
|
||||
break;
|
||||
|
@ -258,6 +290,7 @@ void HoltRequest::draw(cairo_t *cr)
|
|||
case Request::state_exhausted:
|
||||
break;
|
||||
case Request::state_allocable:
|
||||
// yellow
|
||||
cairo_set_source_rgb(cr, 1, 1, 0);
|
||||
arrow(cr, schedulable, resource);
|
||||
break;
|
||||
|
@ -656,8 +689,6 @@ HoltWidget::draw_widget(cairo_t* ctx)
|
|||
piter++;
|
||||
}
|
||||
|
||||
cairo_set_line_width (ctx, 0.5 * cairo_get_line_width (ctx));
|
||||
|
||||
typedef HoltRequests::const_iterator holt_requ_iterator;
|
||||
holt_requ_iterator reqiter = _holt_requests.begin();
|
||||
while(reqiter!=_holt_requests.end())
|
||||
|
|
Loading…
Reference in New Issue