# File ../lib/fox/calendar.rb, line 49 def initialize(parent, initial_date=Time.now, target=nil, selector=0, opts=0, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # Initialize the base class first super(parent, opts, x, y, width, height, padLeft, padRight, padTop, padBottom) # Save target and selector self.target = target self.selector = selector @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), nil) if target end end _build_date_matrix() end