1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 require 'board/element_manager'
9 require 'board/theme_loader'
11 class Table < Qt::GraphicsView
14 include ElementManager
16 attr_reader :elements, :scene, :theme, :game
17 private :game, :scene, :theme
19 def initialize(scene, loader, parent)
20 super(@scene = scene, parent)
26 # destroy old elements
28 @scene.remove_element(@elements[:board])
29 @elements[:pools].each do |col, pool|
30 @scene.remove_element(pool)
32 @elements[:clocks].each do |col, clock|
33 @scene.remove_element(clock)
38 @elements = create_elements
46 @theme.layout.flip(value)
47 @theme.board.flip(value)
48 @theme.pieces.flip(value)
55 r = Qt::RectF.new(0, 0, e.size.width, e.size.height)
62 @theme.layout.layout(@scene.scene_rect, @elements)
67 @theme.layout.flipped?