1 class Pettanr.Views.SpeechBalloon.Element extends Backbone.View
\r
3 className: 'pettanr-comic-balloon'
\r
5 'ready:balloon': 'ready_balloon'
\r
6 'ready:speech': 'ready_speech'
\r
9 initialize: (options) ->
\r
10 @element = options.element
\r
11 @root = options.root
\r
12 @spot = options.spot
\r
15 collect_views: () ->
\r
17 @add_element(@element.get('balloon'))
\r
18 @add_element(@element.get('speech'))
\r
20 add_element: (element) ->
\r
21 switch element.item_name()
\r
25 view = @balloon_view
\r
32 ready_balloon: () ->
\r
34 klass = @balloon_class()
\r
35 @balloon_view = new klass({
\r
41 this.$el.append(@balloon_view.clear().el)
\r
45 klass = @speech_class()
\r
46 @speech_view = new klass({
\r
52 this.$el.append(@speech_view.render().el)
\r
57 _.each @views, (view) =>
\r
58 this.$el.append(view.clear().el)
\r
62 attr = {style: Pettanr.to_style(@style())}
\r
67 width: Pettanr.to_s(@balloon.get('width')) + 'px',
\r
68 height: Pettanr.to_s(@balloon.get('height')) + 'px',
\r
69 top: Pettanr.to_s(@balloon.get('y')) + 'px',
\r
70 left: Pettanr.to_s(@balloon.get('x')) + 'px',
\r
71 'z-index': @element.get('z')
\r
74 balloon_class: () ->
\r
75 Pettanr.Views.Balloon.Element
\r
78 Pettanr.Views.Speech.Element
\r
80 class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBalloon.Element
\r
82 initialize: (options) ->
\r
84 @listenTo(this, 'active', @active)
\r
85 @listenTo(this, 'inactive', @inactive)
\r
87 collect_views: () ->
\r
88 @views = [] # elements collect by dock
\r
93 ready_balloon: () ->
\r
95 @listenTo(@balloon, 'input:x', @set_style)
\r
96 @listenTo(@balloon, 'input:y', @set_style)
\r
97 @listenTo(@balloon, 'input:width', @set_style)
\r
98 @listenTo(@balloon, 'input:height', @set_style)
\r
100 this.$el.draggable {
\r
101 stop: (event, ui) ->
\r
102 left = Math.floor($(@).position().left)
\r
103 top = Math.floor($(@).position().top)
\r
104 bln.set({x: left, y: top}, {silent: true})
\r
105 bln.trigger('move')
\r
109 $('.ui-resizable-handle', this.el).map ->
\r
110 $(@).css('display', 'block')
\r
113 $('.ui-resizable-handle', this.el).map ->
\r
114 $(@).css('display', 'none')
\r
116 element_class: (element) ->
\r
117 Pettanr.Views[element.singular()].Element.Edit
\r
119 balloon_class: () ->
\r
120 Pettanr.Views.Balloon.Element.Edit
\r
122 speech_class: () ->
\r
123 Pettanr.Views.Speech.Element.Edit
\r