Ejemplo n.º 1
0
// Takes care of the SVET_SELECTION events.
// Depending on the drag_mode_ we are in, either draw a line, a rectangle or
// an ellipse.
void SVPaint::SelectionHandler(const SVEvent* sv_event) {
  switch (drag_mode_) {
  //FIXME inversed x_size, y_size
    case 4: //Line
      window_->Line(sv_event->x, sv_event->y, 
                    sv_event->x - sv_event->x_size,
                    sv_event->y - sv_event->y_size);
      break;
    case 5: //Rectangle
      window_->Rectangle(sv_event->x, sv_event->y,
                         sv_event->x - sv_event->x_size,
                         sv_event->y - sv_event->y_size);
      break;
    case 6: //Ellipse
      window_->Ellipse(sv_event->x - sv_event->x_size,
                       sv_event->y - sv_event->y_size,
                       sv_event->x_size, sv_event->y_size);
      break;
    }
}
Ejemplo n.º 2
0
// Takes care of the SVET_CLICK events.
// Depending on the click_mode_ we are in, either do Point-to-Point drawing,
// point drawing, or draw text.
void SVPaint::ClickHandler(const SVEvent* sv_event) {
  switch (click_mode_) {
  case 1: //Point to Point
    if (has_start_point_) { window_->DrawTo(sv_event->x, sv_event->y);
    } else {
        has_start_point_ = true; 
        window_->SetCursor(sv_event->x, sv_event->y);
    }
    break;
  case 2: //Point Drawing..simulated by drawing a 1 pixel line.
    window_->Line(sv_event->x, sv_event->y, sv_event->x, sv_event->y);
    break;
  case 3: //Text
    // We show a modal input dialog on our window, then draw the input and
    // finally delete the input pointer.
    char* p = window_->ShowInputDialog("Text:");
    window_->Text(sv_event->x, sv_event->y, p);
    delete p;
    break;
  }
}