Example #1
0
static void
ddisplay_obj_render(DiaObject *obj, DiaRenderer *renderer,
		    int active_layer,
		    gpointer data)
{
  DDisplay *ddisp = (DDisplay *)data;
  DiaInteractiveRendererInterface *irenderer =
    DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer);
  DiaHighlightType hltype = data_object_get_highlight(DIA_DIAGRAM_DATA(ddisp->diagram), obj);

  if (hltype != DIA_HIGHLIGHT_NONE && irenderer->draw_object_highlighted != NULL)
    irenderer->draw_object_highlighted(renderer, obj, hltype);
  else /* maybe the renderer does not support highlighting */
    DIA_RENDERER_GET_CLASS(renderer)->draw_object(renderer, obj, NULL);

  if (ddisp->show_cx_pts && 
      obj->parent_layer != NULL && obj->parent_layer->connectable) {
    object_draw_connectionpoints(obj, ddisp);
  }
}
Example #2
0
void
object_add_updates(DiaObject *obj, Diagram *dia)
{
    int i;

    /* Bounding box */
    if (data_object_get_highlight(dia->data,obj) != DIA_HIGHLIGHT_NONE) {
        diagram_add_update_with_border(dia, dia_object_get_enclosing_box (obj), 5);
    } else {
        diagram_add_update(dia, dia_object_get_enclosing_box (obj));
    }

    /* Handles */
    for (i=0; i<obj->num_handles; i++) {
        handle_add_update(obj->handles[i], dia);
    }

    /* Connection points */
    for (i=0; i<dia_object_get_num_connections(obj); ++i) {
        connectionpoint_add_update(obj->connections[i], dia);
    }

}