    # File ../lib/fox/calendar.rb, line 55
        def initialize(parent, initial_date=Time.now, tgt=nil, sel=0, opts=0, x=0, y=0, w=0, h=0, pl=DEFAULT_PAD, pr=DEFAULT_PAD, pt=DEFAULT_PAD, pb=DEFAULT_PAD)
          # Initialize the base class first
          super(parent, opts, x, y, w, h, pl, pr, pt, pb)

          # Save target and selector
          self.target = tgt
          self.selector = sel

          @headerBGColor = FXColor::Black
          @headerFGColor = FXColor::White
          @dayLabelFont = FXFont.new(getApp, "helvetica", 7)

          @date_showing = initial_date

          # Header row
          @header = FXHorizontalFrame.new(self, LAYOUT_FILL_X)
          @header.backColor = @headerBGColor
          @backBtn = FXArrowButton.new(@header, nil, 0, FRAME_RAISED|FRAME_THICK|ARROW_LEFT|ARROW_REPEAT)
          @backBtn.connect(SEL_COMMAND) do |send, sel, ev|
            @date_showing = _last_month
            _build_date_matrix
            @current_month.text = _header_date
          end
          @current_month = FXLabel.new(@header, _header_date, nil,
            LAYOUT_FILL_X|JUSTIFY_CENTER_X|LAYOUT_FILL_Y)
          @current_month.backColor = @headerBGColor
          @current_month.textColor = @headerFGColor
          @foreBtn = FXArrowButton.new(@header, nil, 0, FRAME_RAISED|FRAME_THICK|ARROW_RIGHT|ARROW_REPEAT)
          @foreBtn.connect(SEL_COMMAND) do |send, sel, ev|
            @date_showing = _next_month
            _build_date_matrix
            @current_month.text = _header_date
          end

          @matrix = FXMatrix.new(self, 7,
            MATRIX_BY_COLUMNS|LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH|FRAME_RAISED,
            0, 0, 0, 0, 0, 0, 0, 0)
          DAYS.each { |day| _add_matrix_label(day) }
          (7*6 - 1).times do
            s = FXSwitcher.new(@matrix,
              LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_FILL_ROW|LAYOUT_FILL_COLUMN, 0,0,0,0,0,0,0,0)
            FXFrame.new(s, LAYOUT_FILL_X|LAYOUT_FILL_Y, 0,0,0,0,0,0,0,0)
            btn = FXButton.new(s, '99', nil, nil, 0,
              LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED|FRAME_THICK,
              0,0,0,0,0,0,0,0)
            btn.connect(SEL_COMMAND) do |send, sel, ev|
              @selected = Time.local(@date_showing.year, @date_showing.month,
                                     send.text.to_i)
              target.handle(self, MKUINT(selector, SEL_COMMAND), @selected) if target
            end
          end
          _build_date_matrix()
        end