Parse Pane object
 @param node [Nokogiri::XML:Element] node to parse
 @return [Pane] result of parsing
492861
def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'state'
          @state = value.value.to_sym
        when 'topLeftCell'
          @top_left_cell = Coordinates.parse_coordinates_from_string(value.value)
        when 'xSplit'
          @x_split = value.value
        when 'ySplit'
          @y_split = value.value
        end
      end
      self
    end
285171
def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'type'
          @unit = value.value.to_sym
        when 'w', 'val'
          @value = value.value.to_f
        end
      end
      self
    end
808290
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'cNvPr'
          @common_properties = CommonNonVisualProperties.new(parent: self).parse(node_child)
        when 'nvPr'
          @non_visual_properties = NonVisualProperties.new(parent: self).parse(node_child)
        end
      end
      self
    end
884604
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'tx'
          node_child.xpath('c:rich/*').each do |rich_node_child|
            case rich_node_child.name
            when 'p'
              root_object.default_font_style = FontStyle.new(true) # Default font style for chart title always bold
              @elements << Paragraph.new(parent: self).parse(rich_node_child)
              root_object.default_font_style = FontStyle.new
            end
          end
        when 'layout'
          @layout = option_enabled?(node_child)
        when 'overlay'
          @overlay = option_enabled?(node_child)
        end
      end
      self
    end
1170072
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'p'
          @paragraphs << Paragraph.new(parent: self).parse(node_child)
        when 'bodyPr'
          @properties = OOXMLShapeBodyProperties.new(parent: self).parse(node_child)
        end
      end
      self
    end
527014
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'shape'
          element = OldDocxGroupElement.new(:shape)
          element.object = OldDocxShape.new(parent: self).parse(node_child)
          @elements << element
        when 'wrap'
          @properties.wrap = node_child.attribute('type').value.to_sym unless node_child.attribute('type').nil?
        when 'group'
          @elements << OldDocxGroup.new(parent: self).parse(node_child)
        end
      end
      self
    end
1190097
def parse_element(ele)
      if ele.is_a? Nokogiri::XML::Text
        return "#{ele.text}\n"
      else
        if (children = ele.children).count > 0
          return wrap_node(ele,children.map {|ele| parse_element(ele)}.join )
        else
          return wrap_node(ele,ele.text)
        end
      end
    end
1275941
def parse(node)
      @color1 = Color.new(parent: self).parse_hex_string(node.attribute('color').value)
      node.xpath('v:background').each do |second_color|
        @size = second_color.attribute('targetscreensize').value.sub(',', 'x') unless second_color.attribute('targetscreensize').nil?
        second_color.xpath('*').each do |node_child|
          case node_child.name
          when 'fill'
            @fill = Fill.new(parent: self).parse(node_child)
          end
        end
      end
      self
    end
667892
def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'pos'
          @position = value.value.to_i / 1_000
        end
      end

      node.xpath('*').each do |node_child|
        @color = case node_child.name
                 when 'prstClr'
                   ValuedChild.new(:string, parent: self).parse(node_child)
                 else
                   Color.new(parent: self).parse_color(node_child)
                 end
      end
      self
    end
99536
def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'val'
          @value = Color.new.parse_hex_string(value.value.to_s)
        when 'themeColor'
          @theme_color = value.value.to_sym
        when 'themeShade'
          @theme_shade = Integer("0x#{value.value}")
        when 'theme'
          @theme = value.value.to_i
        when 'tint'
          @tint = value.value.to_f
        when 'indexed'
          @indexed = value.value.to_i
        when 'rgb'
          @rgb = Color.new.parse_hex_string(value.value)
        end
      end
      self
    end
851985
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'lnL', 'left'
          @left = TableCellLine.new(parent: self).parse(node_child)
        when 'lnR', 'right'
          @right = TableCellLine.new(parent: self).parse(node_child)
        when 'lnT', 'top'
          @top = TableCellLine.new(parent: self).parse(node_child)
        when 'lnB', 'bottom'
          @bottom = TableCellLine.new(parent: self).parse(node_child)
        when 'lnTlToBr', 'tl2br'
          @top_left_to_bottom_right = TableCellLine.new(parent: self).parse(node_child)
        when 'lnBlToTr', 'tr2bl'
          @top_right_to_bottom_left = TableCellLine.new(parent: self).parse(node_child)
        when 'insideV'
          @inner_vertical = TableCellLine.new(parent: self).parse(node_child)
        when 'insideH'
          @inner_horizontal = TableCellLine.new(parent: self).parse(node_child)
        end
      end
      self
    end
29674
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'bottom'
          @bottom = BordersProperties.new(parent: self).parse(node_child)
        when 'left'
          @left = BordersProperties.new(parent: self).parse(node_child)
        when 'top'
          @top = BordersProperties.new(parent: self).parse(node_child)
        when 'right'
          @right = BordersProperties.new(parent: self).parse(node_child)
        when 'between'
          @between = BordersProperties.new(parent: self).parse(node_child)
        when 'bar'
          @bar = BordersProperties.new(parent: self).parse(node_child)
        end
      end
      self
    end
865753
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'alias'
          @alias = ValuedChild.new(:string, parent: self).parse(node_child)
        when 'tag'
          @tag = ValuedChild.new(:string, parent: self).parse(node_child)
        when 'lock'
          @lock = ValuedChild.new(:symbol, parent: self).parse(node_child)
        end
      end
      self
    end
1329902
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'anchor'
          @type = :flow
        when 'inline'
          @type = :inline
        end
        @properties.distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
        @properties.wrap = DocxWrapDrawing.new(parent: self).parse(node_child)
        node_child.attributes.each do |key, value|
          case key
          when 'relativeHeight'
            @properties.relative_height = value.value.to_i
          end
        end
        node_child.xpath('*').each do |content_node_child|
          case content_node_child.name
          when 'simplePos'
            @properties.simple_position = OOXMLCoordinates.parse(content_node_child)
          when 'extent'
            @properties.object_size = OOXMLCoordinates.parse(content_node_child, x_attr: 'cx', y_attr: 'cy', unit: :emu)
          when 'graphic'
            @graphic = DocxGraphic.new(parent: self).parse(content_node_child)
          when 'positionV'
            @properties.vertical_position = DocxDrawingPosition.new(parent: self).parse(content_node_child)
          when 'positionH'
            @properties.horizontal_position = DocxDrawingPosition.new(parent: self).parse(content_node_child)
          when 'sizeRelH'
            @properties.size_relative_horizontal = SizeRelativeHorizontal.new(parent: self).parse(content_node_child)
          when 'sizeRelV'
            @properties.size_relative_vertical = SizeRelativeVertical.new(parent: self).parse(content_node_child)
          when 'docPr'
            @doc_properties = DocProperties.new(parent: self).parse(content_node_child)
          end
        end
      end
      self
    end
1373146
def parse(node)
      return nil if node.attribute('val').value == 'nil'

      node.attributes.each do |key, value|
        case key
        when 'val'
          @val = value.value.to_sym
        when 'sz'
          @size = OoxmlSize.new(value.value.to_f, :one_eighth_point)
        when 'space'
          @space = OoxmlSize.new(value.value.to_f, :point)
        when 'color'
          @color = value.value.to_s
          @color = Color.new(parent: self).parse_hex_string(@color) if @color != 'auto'
        when 'shadow'
          @shadow = value.value
        end
      end
      self
    end
1175568
def parse(node)
      node.xpath('*').each do |node_child|
        case node_child.name
        when 'dPr'
          node_child.xpath('*').each do |node_child_child|
            case node_child_child.name
            when 'begChr'
              @begin_character = ValuedChild.new(:string, parent: self).parse(node_child_child)
            when 'endChr'
              @end_character = ValuedChild.new(:string, parent: self).parse(node_child_child)
            end
          end
        end
      end
      @value = DocxFormula.new(parent: self).parse(node)
      self
    end
831088
def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'w'
          @width = value.value.to_f
        when 'h'
          @height = value.value.to_f
        when 'stroke'
          @stroke = value.value.to_f
        end
      end
      node.xpath('*').each do |node_child|
        @elements << DocxShapeLineElement.new(parent: self).parse(node_child)
      end
      self
    end