OSDN Git Service

t#:
[pettanr/pettanr.git] / app / assets / javascripts / views / speeches / element.js.coffee
1 class Pettanr.Views.Speech.Element extends Pettanr.View\r
2   tagName: 'div'\r
3   className: 'pettanr-comic-speech'\r
4   \r
5   initialize: (options) ->\r
6     @element = options.element\r
7     @root = options.root\r
8     @spot = options.spot\r
9     @parent = options.parent\r
10     c = @inner_class()\r
11     @inner = new c({\r
12       element: @element,\r
13       parent: this\r
14     })\r
15   \r
16   render: () ->\r
17     @set_style()\r
18     this.$el.html(@inner.render().el)\r
19     this\r
20   \r
21   add_element: (element) ->\r
22     null\r
23   \r
24   set_style: () ->\r
25     attr = {style: Pettanr.to_style(@style())}\r
26     this.$el.attr(attr)\r
27   \r
28   style: () ->\r
29     {\r
30       top: Pettanr.to_s(@element.get('y')) + '%', \r
31       left: Pettanr.to_s(@element.get('x')) + '%', \r
32       width: Pettanr.to_s(@element.get('width') + '%'), \r
33       height: Pettanr.to_s(@element.get('height')) + '%',\r
34       'z-index': 2\r
35     }\r
36   \r
37   inner_class: () ->\r
38     Pettanr.Views.Speech.Element.Inner\r
39   \r
40 class Pettanr.Views.Speech.Element.Inner extends Pettanr.View\r
41   tagName: 'div'\r
42   className: 'pettanr-comic-speech-inner'\r
43   \r
44   initialize: (options) ->\r
45     @element = options.element\r
46     @speech_view = options.parent\r
47     @speech_balloon_view = @speech_view.parent\r
48   \r
49   render: () ->\r
50     @set_style()\r
51     this.$el.html(@element.scenario())\r
52     this\r
53   \r
54   set_style: () ->\r
55     attr = {style: Pettanr.to_style(@style())}\r
56     this.$el.attr(attr)\r
57   \r
58   style: () ->\r
59     {\r
60       'font-size': Pettanr.to_s(@element.get('font_size')) + 'em',\r
61       'text-align': @element.text_align_text(), \r
62       color: '#' + ('000000' + @element.get('fore_color').toString(16)).slice(-6)\r
63     }\r
64   \r
65 class Pettanr.Views.Speech.Element.Edit extends Pettanr.Views.Speech.Element\r
66   \r
67   initialize: (options) ->\r
68     super(options)\r
69   \r
70   render: () ->\r
71     super()\r
72     sb_view = @parent\r
73     @inner.$el.mouseover -> \r
74       sb_view.element.trigger('active')\r
75     @inner.$el.mouseout -> \r
76       sb_view.element.trigger('inactive')\r
77     this\r
78   \r
79   inner_class: () ->\r
80     Pettanr.Views.Speech.Element.Inner.Edit\r
81   \r
82 class Pettanr.Views.Speech.Element.Inner.Edit extends Pettanr.Views.Speech.Element.Inner\r
83   \r
84   initialize: (options) ->\r
85     super(options)\r
86     @listenTo(@speech_balloon_view, 'input:r', @input_r)\r
87     @listenTo(@element, 'input:content', @render)\r
88     @listenTo(@element, 'input:font_size', @set_style)\r
89     @listenTo(@element, 'input:text_align', @set_style)\r
90     @listenTo(@element, 'input:fore_color', @set_style)\r
91   \r
92   input_r: () ->\r
93     @set_style()\r
94   \r