Improved and simplified Clock class.
[kaya.git] / drivers / timer.rb
blobf7e0364afa7d9baeffab3b3b695c668a4a773143
1 require 'toolkit'
2 require 'require_bundle'
3 require 'plugins/loader'
4 require 'clock'
5 require 'observer_utils'
6 $loader = PluginLoader.new
8 app = KDE::Application.init(:id => "timers")
10 class View < Qt::GraphicsView
11   include Observable
12   
13   def initialize(parent)
14     super(parent)
15   end
16   
17   def resizeEvent(e)
18     fire :resize => e.size
19   end
20   
21   def mousePressEvent(e)
22     fire :click
23   end
24 end
26 main = Qt::Widget.new
27 gui = KDE::autogui("main") do |g|
28   g.layout(:vertical) do |l|
29     l.widget(:factory => View,
30              :name => :view)
31   end
32 end
33 main.setGUI(gui)
35 scene = Qt::GraphicsScene.new
36 main.view.scene = scene
38 display = $loader.get_matching(:clock)
39 clock = display.new(scene, lambda{|x| x})
40 main.view.on(:resize) do |size|
41   clock.set_geometry(Qt::Rect.new(0, 0, size.width, size.height))
42 end
43 main.view.on(:click) do
44   if clock.clock.running?
45     clock.clock.stop
46   else
47     clock.clock.start
48   end
49     
50 end
51 clock.show
53 clock.clock = Clock.new(5, 0)
54 clock.start
58 main.show
59 app.exec