1#
2#  charts -- Create and manipulate canvas Add-On Items
3#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4#
5require 'tk'
6require 'tk/canvas'
7
8# call setup script  --  <libdir>/tkextlib/vu.rb
9require 'tkextlib/vu.rb'
10
11module Tk
12  module Vu
13    module ChartsConfig
14      include TkItemConfigOptkeys
15      def __item_boolval_optkeys(id)
16        super(id) << 'lefttrunc' << 'autocolor'
17      end
18      private :__item_boolval_optkeys
19
20      def __item_strval_optkeys(id)
21        super(id) << 'bar' << 'color' << 'outline' <<
22          'fill' << 'scaleline' << 'stripline'
23      end
24      private :__item_strval_optkeys
25
26      def __item_listval_optkeys(id)
27        super(id) << 'values' << 'tags'
28      end
29      private :__item_listval_optkeys
30    end
31
32    class TkcSticker < TkcItem
33      include ChartsConfig
34
35      CItemTypeName = 'sticker'.freeze
36      CItemTypeToClass[CItemTypeName] = self
37    end
38
39    class TkcStripchart < TkcItem
40      include ChartsConfig
41
42      CItemTypeName = 'stripchart'.freeze
43      CItemTypeToClass[CItemTypeName] = self
44    end
45
46    class TkcBarchart < TkcItem
47      include ChartsConfig
48
49      CItemTypeName = 'barchart'.freeze
50      CItemTypeToClass[CItemTypeName] = self
51    end
52  end
53end
54