Class: SvgWindow

Inherits:
Qt::ScrollArea
  • Object
show all
Defined in:
ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb

Constant Summary collapse

Native =
0
OpenGL =
1
Image =
2

Instance Method Summary collapse

Constructor Details

#initializeSvgWindow

Returns a new instance of SvgWindow.



34
35
36
37
38
39
40
41
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 34

def initialize()
    super()
    view = Qt::Widget.new(self)
       @mousePressPos = Qt::Point.new
       @scrollBarValuesOnMousePress = Qt::Point.new
    @renderer = Native
    setWidget(view)
end

Instance Method Details

#mouseMoveEvent(event) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 70

def mouseMoveEvent(event)
    if @mousePressPos.null?
        event.ignore
        return
    end

    horizontalScrollBar.value = @scrollBarValuesOnMousePress.x - event.pos.x + @mousePressPos.x
    verticalScrollBar.value = @scrollBarValuesOnMousePress.y - event.pos.y + @mousePressPos.y
    horizontalScrollBar.update
    verticalScrollBar.update
    event.accept
end

#mousePressEvent(event) ⇒ Object



63
64
65
66
67
68
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 63

def mousePressEvent(event)
    @mousePressPos = event.pos
    @scrollBarValuesOnMousePress.rx = horizontalScrollBar.value
    @scrollBarValuesOnMousePress.ry = verticalScrollBar.value
    event.accept
end

#mouseReleaseEvent(event) ⇒ Object



83
84
85
86
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 83

def mouseReleaseEvent(event)
    @mousePressPos = Qt::Point.new
    event.accept
end

#openFile(file) ⇒ Object



43
44
45
46
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 43

def openFile(file)
    @currentPath = file
    self.renderer = @renderer
end

#renderer=(type = Native) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb', line 48

def renderer=(type = Native)
    @renderer = type

    if @renderer == OpenGL
        view = SvgGLView.new(@currentPath, self)
    elsif @renderer == Image
        view = SvgRasterView.new(@currentPath, self)
    else
        view = SvgNativeView.new(@currentPath, self)
       end

    setWidget(view)
    view.show()
end