예제 #1
0
void SdDurationCanvas::change_scale() {
  DiagramCanvas::change_scale();
  update_self();
  
  hide();
  update_hpos();
  show();
}
예제 #2
0
SdSelfMsgCanvas::SdSelfMsgCanvas(UmlCanvas * canvas, SdMsgSupport * d,
                                 UmlCode l, int v, int id)
    : SdMsgBaseCanvas(canvas, d, l, v + 1, id) {
    dest->add(this);
    update_hpos();
    setSize(SELF_MSG_WIDTH, SELF_MSG_HEIGHT);
    check_vpos(d->rect());
    set_center100();
    show();
}
예제 #3
0
void SdDurationCanvas::toFlat() {
  while (! durations.isEmpty()) {
    SdDurationCanvas * d = durations.getFirst();
    
    d->toFlat();
    collapse(d);
  }
  
  if (! isOverlappingDuration())
    update_hpos(); // update msg hpos
}
예제 #4
0
SdDurationCanvas::SdDurationCanvas(UmlCanvas * canvas, SdDurationSupport * sp,
				   int v, bool isdest)
    : SdMsgSupport(canvas, 0, v, DURATION_WIDTH,
		    (isdest) ? DURATION_MIN_HEIGHT : DURATION_START_HEIGHT,
		    0),
      support(sp), itscolor(UmlDefaultColor), coregion(FALSE) {
  browser_node = canvas->browser_diagram();
  update_hpos();
  setZ(sp->getZ() + 10);
  show();
  
  support->add(this);

  connect(DrawingSettings::instance(), SIGNAL(changed()), this, SLOT(modified()));
}