Sha256: 24bea2e851c08bfd0a78ad056f5666de55f4d285a9b963942f27c0ffaa27a24f

Contents?: true

Size: 1.45 KB

Versions: 6

Compression:

Stored size: 1.45 KB

Contents

require 'gtk2'

module Rabbit
  module Comment
    class Log
      COMMENT_COLUMN = 0

      def initialize
        init_window
      end

      def widget
        @window
      end

      def show
        @window.show_all
      end

      def hide
        @window.hide
      end

      def showing?
        @window.visible?
      end

      def reset(canvas)
        @model.clear
        canvas.slides[1..-1].each do |slide|
          iter = @model.prepend
          iter.set_value(COMMENT_COLUMN, slide.headline.text)
        end
      end

      def font_size=(new_size)
        @renderer_comment.size = new_size
      end

      def header_height
        _, _, _, height = @column_comment.cell_size
        height
      end

      private
      def init_model
        @model = Gtk::ListStore.new(String)
      end

      def init_view
        init_model
        @view = Gtk::TreeView.new(@model)
        @view.can_focus = false
        @view.rules_hint = true
        @renderer_comment = Gtk::CellRendererText.new
        args = [
          _("comment"),
          @renderer_comment,
          {"text" => COMMENT_COLUMN}
        ]
        @column_comment = Gtk::TreeViewColumn.new(*args)
        @view.append_column(@column_comment)
      end

      def init_window
        init_view
        @window = Gtk::ScrolledWindow.new
        @window.set_policy(Gtk::POLICY_AUTOMATIC,
                           Gtk::POLICY_AUTOMATIC)
        @window.add(@view)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rabbit-0.9.2 lib/rabbit/comment/log.rb
rabbit-0.9.1 lib/rabbit/comment/log.rb
rabbit-0.9.0 lib/rabbit/comment/log.rb
rabbit-0.6.4 lib/rabbit/comment/log.rb
rabbit-0.6.3 lib/rabbit/comment/log.rb
rabbit-0.6.2 lib/rabbit/comment/log.rb