blob: 416b0de7d2dadb680f775d5b5abecbce52585993 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
class CanvasView < Qt::CanvasView
def initialize(canvas, elements, parent = nil, name = "canvas view", f = 0)
super(canvas, parent, name, f)
@elements = elements
@movingItem = nil
end
def contentsContextMenuEvent( e )
parent().optionsMenu.exec( Qt::Cursor.pos() )
end
def viewportResizeEvent( e )
canvas().resize( e.size().width(), e.size().height() )
parent().drawElements()
end
def contentsMousePressEvent( e )
list = canvas().collisions( e.pos() )
list.each do |it|
if it.rtti() == CanvasText::CANVAS_TEXT
@movingItem = it
@pos = e.pos()
return
end
end
@movingItem = nil
end
def contentsMouseMoveEvent( e )
if @movingItem
offset = e.pos() - @pos
@movingItem.moveBy( offset.x(), offset.y() )
@pos = e.pos()
form = parent()
form.changed = true
chartType = form.chartType()
item = @movingItem
i = item.index()
@elements[i].setProX( chartType, item.x() / canvas().width() )
@elements[i].setProY( chartType, item.y() / canvas().height() )
canvas().update()
end
end
end
|