File: dmlistview.rb

package info (click to toggle)
mikutter 3.5.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 10,256 kB
  • ctags: 2,165
  • sloc: ruby: 19,079; sh: 205; makefile: 20
file content (46 lines) | stat: -rw-r--r-- 1,359 bytes parent folder | download | duplicates (2)
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
# -*- coding: utf-8 -*-

# DM用のリストビュー
module Plugin::DirectMessage
  class DirectMessage < Gtk::CRUD
    C_CREATED = 2
    C_ICON = 0
    C_TEXT = 1
    C_RAW = 3

    def initialize(plugin)
      @plugin = plugin
      super()
      model.set_sort_column_id(DirectMessage::C_CREATED, Gtk::SORT_DESCENDING)
      @creatable = @updatable = false
    end

    def on_deleted(iter)
      Service.primary_service.destroy_direct_message :id => iter[C_RAW][:id]
    end

    def column_schemer
      renderer = nil
      width = nil
      ssc(:expose_event) { |s, e|
        if renderer
          nw =  get_cell_area(nil, get_column(C_TEXT)).width
          if nw != width
            width = nw
            renderer.set_property "wrap-width", nw
            get_column(C_TEXT).queue_resize end end
        false }
      [{:kind => :pixbuf, :type => GdkPixbuf::Pixbuf, :label => @plugin._('icon')},
       {:kind => :text, :type => String, :label => @plugin._('本文'), :renderer => lambda{ |scheme, index|
           renderer = Gtk::CellRendererText.new
           Delayer.new{
             if not destroyed?
               renderer.set_property "wrap-width", 10
               renderer.set_property "wrap-mode", Pango::WRAP_CHAR end }
           renderer } },
       {:type => Integer},
       {:type => Object},
      ].freeze
    end
  end
end