void get_world_viewport (double *pxMin, double *pyMin, double *pxMax, double *pyMax) { (*pxMin) = real_to_world_x (0) ; (*pyMin) = real_to_world_y (0) ; (*pxMax) = real_to_world_x (cxClientArea - 1) ; (*pyMax) = real_to_world_y (cyClientArea - 1) ; }
static gboolean button_pressed (GtkWidget *widget, GdkEventButton *event, gpointer data) { QCADDesignObject *obj = NULL ; double xWorld = real_to_world_x (event->x), yWorld = real_to_world_y (event->y) ; if (1 != event->button) return FALSE ; #ifdef DESIGNER world_to_grid_pt (&xWorld, &yWorld) ; #endif /* def DESIGNER */ // fprintf (stderr, "QCADRectangleElectrode::button_pressed:Calling qcad_rectangle_electrode_new\n") ; obj = QCAD_DESIGN_OBJECT (qcad_object_new_from_object (qcad_object_get_default (QCAD_TYPE_RECTANGLE_ELECTRODE))) ; // fprintf (stderr, "QCADRectangleElectrode::button_pressed:Calling qcad_design_object_move\n") ; qcad_design_object_move_to (obj, xWorld, yWorld) ; #ifdef DESIGNER if (NULL != drop_function) if ((*drop_function) (obj)) return FALSE ; #endif /* def DESIGNER */ g_object_unref (obj) ; return FALSE ; }
static void stretch_draw_state_change (QCADStretchyObject *obj, int x, int y, int xRef, int yRef) { int Nix ; QCADRuler *ruler = QCAD_RULER (obj) ; int xMIN = MIN (x, xRef), xMAX = MAX (x, xRef), yMIN = MIN (y, yRef), yMAX = MAX (y, yRef) ; QCADStretchyObjectClass *klass = QCAD_STRETCHY_OBJECT_CLASS (g_type_class_peek (g_type_parent (QCAD_TYPE_RULER))) ; if (NULL != klass->stretch_draw_state_change) klass->stretch_draw_state_change (obj, x, y, xRef, yRef) ; ruler->ruler_bounding_box.xWorld = real_to_world_x (xMIN) ; ruler->ruler_bounding_box.yWorld = real_to_world_y (yMIN) ; ruler->ruler_bounding_box.cxWorld = real_to_world_cx (xMAX - xMIN) ; ruler->ruler_bounding_box.cyWorld = real_to_world_cy (yMAX - yMIN) ; memcpy (&(QCAD_DESIGN_OBJECT (obj)->bounding_box), &(ruler->ruler_bounding_box), sizeof (WorldRectangle)) ; for (Nix = 0 ; Nix < ruler->icLabelsVisible ; Nix++) world_rect_union (&(QCAD_DESIGN_OBJECT (obj)->bounding_box), &(QCAD_DESIGN_OBJECT (exp_array_index_1d (ruler->labels, GRADUATION, Nix).lbl)->bounding_box), &(QCAD_DESIGN_OBJECT (obj)->bounding_box)) ; QCAD_RULER (obj)->orientation = QCAD_RULER_CALCULATE_ORIENTATION ( ruler->ruler_bounding_box.cxWorld, ruler->ruler_bounding_box.cyWorld, x, y, xRef, yRef) ; }
WorldRectangle *real_to_world_rect (WorldRectangle *rcWorld, GdkRectangle *rcReal) { rcWorld->xWorld = real_to_world_x (rcReal->x) ; rcWorld->yWorld = real_to_world_y (rcReal->y) ; rcWorld->cxWorld = real_to_world_cx (rcReal->width) ; rcWorld->cyWorld = real_to_world_cy (rcReal->height) ; return rcWorld ; }