summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/stylesheet/cell_alignment.rb
blob: f167514177f1865d789e80467f79f01ecdf75f12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# encoding: UTF-8
module Axlsx


  # CellAlignment stores information about the cell alignment of a style Xf Object.
  # @note Using Styles#add_style is the recommended way to manage cell alignment.
  # @see Styles#add_style
  class CellAlignment


    include Axlsx::SerializedAttributes
    include Axlsx::OptionsParser

    serializable_attributes :horizontal, :vertical, :text_rotation, :wrap_text, :indent, :relative_indent, :justify_last_line, :shrink_to_fit, :reading_order
    # Create a new cell_alignment object
    # @option options [Symbol] horizontal
    # @option options [Symbol] vertical
    # @option options [Integer] text_rotation
    # @option options [Boolean] wrap_text
    # @option options [Integer] indent
    # @option options [Integer] relative_indent
    # @option options [Boolean] justify_last_line
    # @option options [Boolean] shrink_to_fit
    # @option options [Integer] reading_order
    def initialize(options={})
      parse_options options
    end



    # The horizontal alignment of the cell.
    # @note
    #  The horizontal cell alignement style must be one of
    #   :general
    #   :left
    #   :center
    #   :right
    #   :fill
    #   :justify
    #   :centerContinuous
    #   :distributed
    # @return [Symbol]
    attr_reader :horizontal

    # The vertical alignment of the cell.
    # @note
    #  The vertical cell allingment style must be one of the following:
    #   :top
    #   :center
    #   :bottom
    #   :justify
    #   :distributed
    # @return [Symbol]
    attr_reader :vertical

    # The textRotation of the cell.
    # @return [Integer]
    attr_reader :text_rotation
    alias :textRotation :text_rotation

    # Indicate if the text of the cell should wrap
    # @return [Boolean]
    attr_reader :wrap_text
    alias :wrapText :wrap_text

    # The amount of indent
    # @return [Integer]
    attr_reader :indent

    # The amount of relativeIndent
    # @return [Integer]
    attr_reader :relative_indent
    alias :relativeIndent :relative_indent

    # Indicate if the last line should be justified.
    # @return [Boolean]
    attr_reader :justify_last_line
    alias :justifyLastLine :justify_last_line

    # Indicate if the text should be shrunk to the fit in the cell.
    # @return [Boolean]
    attr_reader :shrink_to_fit
    alias :shrinkToFit :shrink_to_fit

    # The reading order of the text
    # 0 Context Dependent
    # 1 Left-to-Right
    # 2 Right-to-Left
    # @return [Integer]
    attr_reader :reading_order
    alias :readingOrder :reading_order

    # @see horizontal
    def horizontal=(v) Axlsx::validate_horizontal_alignment v; @horizontal = v end
    # @see vertical
    def vertical=(v) Axlsx::validate_vertical_alignment v; @vertical = v end
    # @see textRotation
    def text_rotation=(v) Axlsx::validate_unsigned_int v; @text_rotation = v end
    alias :textRotation= :text_rotation=

    # @see wrapText
    def wrap_text=(v) Axlsx::validate_boolean v; @wrap_text = v end
    alias :wrapText= :wrap_text=

    # @see indent
    def indent=(v) Axlsx::validate_unsigned_int v; @indent = v end

    # @see relativeIndent
    def relative_indent=(v) Axlsx::validate_int v; @relative_indent = v end
    alias :relativeIndent= :relative_indent=

    # @see justifyLastLine
    def justify_last_line=(v) Axlsx::validate_boolean v; @justify_last_line = v end
    alias :justifyLastLine= :justify_last_line=

    # @see shrinkToFit
    def shrink_to_fit=(v) Axlsx::validate_boolean v; @shrink_to_fit = v end
    alias :shrinkToFit= :shrink_to_fit=

    # @see readingOrder
    def reading_order=(v) Axlsx::validate_unsigned_int v; @reading_order = v end
    alias :readingOrder= :reading_order=

    # Serializes the object
    # @param [String] str
    # @return [String]
    def to_xml_string(str = '')
      serialized_tag('alignment', str)
    end

  end
end