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) ;
  }
Пример #2
0
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 ;
  }
Пример #3
0
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 ;
  }