Implement notification.
[kaya/ydirson.git] / lib / themes / shogi / shogi.rb
blobe5ed2bcc8dd9b5a519701c7b2373c10c2f274971
1 require 'qtutils'
2 require 'themes/theme'
4 class ShogiTheme
5   include Theme
6   BASE_DIR = File.dirname(__FILE__)
7   TYPES = { :knight => 'n' }
8   NUDE_TILE = File.join(BASE_DIR, 'nude_tile.svg')
10   theme :name => 'Shogi'
12   def pixmap(piece, size)
13     tile = Qt::SvgRenderer.new(NUDE_TILE)
14     kanji = Qt::SvgRenderer.new(filename(piece))
15     img = Qt::Image.painted(size) do |p|
16       if piece.color == :white
17         p.translate(size)
18         p.rotate(180)
19       end
20       kanji.render(p)
21       tile.render(p)
22     end
23     img.to_pix
24   end
25   
26   def filename(piece)
27     color = piece.color.to_s[0, 1]
28 #     type = TYPES[piece.type] || piece.type.to_s[0, 1]
29     name = piece.type.to_s + ".svg"
30     File.join(BASE_DIR, name)
31   end
32 end