class Gdk::MiraclePainter

一つのMessageをPixbufにレンダリングするためのクラス。名前は言いたかっただけ。クラス名まで全てはつね色に染めて♪ 情報を設定してから、 Gdk::MiraclePainter#pixbuf で表示用の GdkPixbuf::Pixbuf のインスタンスを得ることができる。

Constants

BLACK
EMPTY
Event
WHITE

Attributes

message[R]
p_message[R]
selected[R]
tree[R]

Public Instance Methods

__clicked_l7eOfD__(x, y, e)

名前からはプロフィールに、タイムスタンプからはツイートのパーマリンクにリンクしなければならない

Alias for: clicked
_schemer() click to toggle source

アイコン上のボタンの数の変更

# File core/plugin/display_requirements/display_requirements.rb, line 156
def _schemer
  {x_count: 1, y_count: 1} end
clicked(x, y, e) click to toggle source
# File core/plugin/display_requirements/display_requirements.rb, line 176
def clicked(x, y, e)
  if defined?(@hl_region) and @hl_region.point_in?(x, y)
    Plugin.call(:open, message.user)
  elsif defined?(@hr_region) and @hr_region.point_in?(x, y)
    Plugin.call(:open, message)
  else
    __clicked_l7eOfD__(x, y, e)
  end
end
Also aliased as: __clicked_l7eOfD__
header_left_markup() click to toggle source

必ず名前のあとにスクリーンネームを表示しなければいけない。 また、スクリーンネームの前には必ず @ が必要。

# File core/plugin/display_requirements/display_requirements.rb, line 128
def header_left_markup
  Pango.parse_markup("<b>#{Pango.escape(message.user.name || '')}</b> @#{Pango.escape(message.user.idname)}")
end
iob_clicked(gx, gy) click to toggle source

アイコンをクリックしたら必ずプロフィールを表示しなければならない

# File core/plugin/display_requirements/display_requirements.rb, line 168
def iob_clicked(gx, gy)
  if globalpos2iconpos(gx, gy)
    Plugin.call(:open, message.user)
  end
end
iob_icon_pixbuf() click to toggle source

アイコン上のボタンを削除

# File core/plugin/display_requirements/display_requirements.rb, line 160
def iob_icon_pixbuf
  [ [ nil ] ] end
iob_icon_pixbuf_off() click to toggle source

アイコン上のボタンを削除

# File core/plugin/display_requirements/display_requirements.rb, line 164
def iob_icon_pixbuf_off
  [ [ nil] ] end
timestamp_label() click to toggle source

時刻の表記は必ず相対表記にしなければいけない。 ただし、規約には常に情報を更新し続けなければならないという文言はないので、 表示の更新はとくにしない

# File core/plugin/display_requirements/display_requirements.rb, line 135
def timestamp_label
  now = Time.now.to_i
  there = message.created.to_i
  diff = (there - now).abs
  label = case diff
          when 0
            Plugin[:display_requirements]._("今")
          when 1...60
            (there < now ? Plugin[:display_requirements]._("%{sec}秒前") : Plugin[:display_requirements]._("%{sec}秒後")) % {sec: diff}
          when 60...3600
            (there < now ? Plugin[:display_requirements]._('%{min}分前') : Plugin[:display_requirements]._('%{min}分後')) % {min: (diff/60).to_i}
          when 3600...86400
            (there < now ? Plugin[:display_requirements]._('%{hour}時間前') : Plugin[:display_requirements]._('%{hour}時間後')) % {hour: (diff/3600).to_i}
          else
            # TRANSLATORS: Time#strftimeが食う形式。
            # こんなん設定できたら良さそうだけどDRとかどうでもいいので適当にやってね
            message.created.strftime(Plugin[:display_requirements]._('%Y/%m/%d'))
          end
  Pango.escape(label)end