Sha256: db46a370431f69af624beea6b2159f49da3caac65b5326a590e16b2634d34e1a

Contents?: true

Size: 1.4 KB

Versions: 12

Compression:

Stored size: 1.4 KB

Contents

require File.dirname(__FILE__) + "/../../node/base"
module FN
  module SWF
    module Node
      def Text(node, alt_text)
        out = FN::Node::Base("text", node.attributes.to_h)
        out.extend(Text)
        out.text = node.children.to_s
        out.text = alt_text                  if out.text.empty?
        out
      end
      
      module Text 
        include FN::Node::Base
        SPACE = /\s+/
                
        def text
          (child && child.content).to_s
        end
        
        def text=(s)
          self.children.map{|c| c.remove! }
          self << XML::Node.new_cdata(s)
        end
        
        def escaped_text
          text.gsub("\\", "\\\\").gsub("\"", "\\\"").gsub(SPACE, " ")
        end
              
        def visit(struct, debug = false)
          has_no_children
          name = "#{self[:text]}_#{self[:index]}"
          x = self[:x]
          y = self[:y]
          w = self[:width]
          h = self[:height].to_i + 20 # Fudge
           
          struct.<< ".action:" do
    			  struct << "this.createTextField('#{name}', #{$depth+=1}, #{x}, #{y}, #{w}, #{h});"
      			struct << "id = this['#{name}'];"
      			struct << "id.html=true;"
      			struct << "id.multiline=true;"
      			struct << "id.wordWrap=true;"
      			struct << "id.htmlText = \"#{escaped_text}\";"
      			struct << "id.selectable = false;"
    			end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
fn_document-0.9.18 lib/fn/swf/node/text.rb
fn_document-0.9.17 lib/fn/swf/node/text.rb
fn_document-0.9.16 lib/fn/swf/node/text.rb
fn_document-0.9.15 lib/fn/swf/node/text.rb
fn_document-0.9.14 lib/fn/swf/node/text.rb
fn_document-0.9.13 lib/fn/swf/node/text.rb
fn_document-0.9.12 lib/fn/swf/node/text.rb
fn_document-0.9.11 lib/fn/swf/node/text.rb
fn_document-0.9.10 lib/fn/swf/node/text.rb
fn_document-0.9.9 lib/fn/swf/node/text.rb
fn_document-0.9.8 lib/fn/swf/node/text.rb
fn_document-0.9.7 lib/fn/swf/node/text.rb