OSDN Git Service

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