プロジェクト

全般

プロフィール

機能 #806 » 0001-Gdk-SubPartsQuote-SubPartsMessage.patch

Satoshi Okuno, 2016-05-11 22:26

差分を表示:

core/mui/cairo_replyviewer.rb
34 34
  def main_text_font(message)
35 35
    Pango::FontDescription.new(UserConfig[:reply_text_font]) end
36 36

  
37
  def header_left_content(*args)
38
    if show_header?
39
      super end end
40

  
41
  def header_right_content(*args)
42
    if show_header?
43
      super end end
44

  
45 37
  def icon_size
46 38
    if show_icon?
47 39
      if UserConfig[:reply_icon_size]
......
52 44
  def text_max_line_count(message)
53 45
    UserConfig[:reply_text_max_line_count] || super end
54 46

  
55
  def render_outline(message, context, base_y)
56
    unless show_edge?
57
      @edge = 2
58
      return end
59
    @edge = 8
60
    case UserConfig[:reply_edge]
61
    when :floating
62
      render_outline_floating(message, context, base_y)
63
    when :solid
64
      render_outline_solid(message, context, base_y)
65
    when :flat
66
      render_outline_flat(message, context, base_y) end end
67

  
68
  def render_badge(message, context)
69
    return unless show_edge?
70
    case UserConfig[:reply_edge]
71
    when :floating
72
      render_badge_floating(message, context)
73
    when :solid
74
      render_badge_solid(message, context)
75
    when :flat
76
      render_badge_flat(message, context) end end
47
  def edge_type
48
    UserConfig[:reply_edge] end
77 49

  
78 50
  def show_header?
79 51
    (UserConfig[:reply_present_policy] || []).include?(:header) end
core/mui/cairo_sub_parts_message_base.rb
13 13
class Gdk::SubPartsMessageBase < Gdk::SubParts
14 14
  DEFAULT_ICON_SIZE = 32
15 15

  
16
  # ヘッダを表示するか?
17
  # ==== Return
18
  # [TrueClass] 表示する場合true
19
  def show_header?
20
    true end
21

  
22
  # アイコンを表示するか?
23
  # ==== Return
24
  # [TrueClass] 表示する場合true
25
  def show_icon?
26
    true end
27

  
28
  # 枠を表示するか?
29
  # ==== Return
30
  # [TrueClass] 表示する場合true
31
  def show_edge?
32
    true end
33

  
16 34
  # SubPartsに表示する _Message_ 。
17 35
  # 複数表示可能なので、それらを上に表示されるものから順番に返す。
18 36
  # サブクラスで処理を実装すること。
......
33 51
  # [Pango::FontDescription] フォント情報
34 52
  # [Pango::Attribute] マークアップ情報
35 53
  def header_left_content(message)
36
    attr_list, text = Pango.parse_markup("<b>#{Pango.escape(message[:user][:idname])}</b> #{Pango.escape(message[:user][:name] || '')}")
37
    return text, header_left_font(message), attr_list end
54
    if show_header?
55
      attr_list, text = Pango.parse_markup("<b>#{Pango.escape(message[:user][:idname])}</b> #{Pango.escape(message[:user][:name] || '')}")
56
      return text, header_left_font(message), attr_list end end
38 57

  
39 58
  # ヘッダ左に使用するフォントを返す
40 59
  # ==== Args
......
71 90
  # [Pango::FontDescription] フォント情報
72 91
  # [Pango::Attribute] マークアップ情報
73 92
  def header_right_content(message)
74
    attr_list, text = Pango.parse_markup("<span foreground=\"#999999\">#{Pango.escape(header_right_text(message))}</span>")
75
    return text, header_right_font(message), attr_list end
93
    if show_header?
94
      attr_list, text = Pango.parse_markup("<span foreground=\"#999999\">#{Pango.escape(header_right_text(message))}</span>")
95
      return text, header_right_font(message), attr_list end end
76 96

  
77 97
  # ヘッダ右に使用するフォントを返す
78 98
  # ==== Args
......
113 133
    else
114 134
      [1.0]*3 end end
115 135

  
136
  # 枠のタイプを返す
137
  # ==== Return
138
  # 以下の値のいずれか一つ
139
  # :floating :: 影にblurを入れて、浮いているような感じに
140
  # :solid :: 細い線を入れる
141
  # :flat :: 枠線なし
142
  def edge_type
143
    :floating end
144

  
116 145
  # SubParts内の _Message_ の枠の色を返す
117 146
  # ==== Args
118 147
  # [message] Message
......
126 155
  # [Gdk::Rectangle] サイズ(px)。xとyは無視され、widthとheightのみが利用される
127 156
  # [nil] アイコンを表示しない
128 157
  def icon_size
129
    Gdk::Rectangle.new(0, 0, DEFAULT_ICON_SIZE, DEFAULT_ICON_SIZE) end
158
    if show_icon?
159
      Gdk::Rectangle.new(0, 0, DEFAULT_ICON_SIZE, DEFAULT_ICON_SIZE)
160
    else
161
      nil end end
130 162

  
131 163
  # _message_ の本文のテキスト色を返す
132 164
  # ==== Args
......
247 279
  # ヘッダ(左)のための Pango::Layout のインスタンスを返す
248 280
  def header_left(message, context = dummy_context)
249 281
    text, font, attr_list = header_left_content(message)
250
    if text
282
    if show_header?
251 283
      layout = context.create_pango_layout
252 284
      layout.attributes = attr_list if attr_list
253 285
      layout.font_description = font if font
......
309 341
    layout end
310 342

  
311 343
  def render_outline(message, context, base_y)
312
    render_outline_floating(message, context, base_y) end
344
    unless show_edge?
345
      @edge = 2
346
      return end
347
    @edge = 8
348
    case edge_type
349
    when :floating
350
      render_outline_floating(message, context, base_y)
351
    when :solid
352
      render_outline_solid(message, context, base_y)
353
    when :flat
354
      render_outline_flat(message, context, base_y) end end
313 355

  
314 356
  # エッジの描画。
315 357
  # 影にblurを入れて、浮いているような感じに
......
347 389
        context.rounded_rectangle(x,y,w,h, radius) } } end
348 390

  
349 391
  def render_badge(message, context)
350
    render_badge_floating(message, context) end
392
    return unless show_edge?
393
    case edge_type
394
    when :floating
395
      render_badge_floating(message, context)
396
    when :solid
397
      render_badge_solid(message, context)
398
    when :flat
399
      render_badge_flat(message, context) end end
351 400

  
352 401
  # バッジの描画。
353 402
  # 影にblurを入れて、浮いているような感じに
......
395 444
      context.paint end end
396 445

  
397 446
  def render_icon(message, context)
398
    if icon_size
447
    if show_icon?
399 448
      context.set_source_pixbuf(main_icon(message))
400 449
      context.paint end end
401 450

  
......
403 452
    Gdk::WebImageLoader.pixbuf(message[:user][:profile_image_url], icon_size){ |pixbuf|
404 453
      helper.on_modify } end
405 454
end
406

  
407

  
408

  
409

  
410

  
411

  
412

  
413

  
core/mui/cairo_sub_parts_quote.rb
46 46
  def main_text_font(message)
47 47
    Pango::FontDescription.new(UserConfig[:quote_text_font]) end
48 48

  
49
  def header_left_content(*args)
50
    if show_header?
51
      super end end
52

  
53
  def header_right_content(*args)
54
    if show_header?
55
      super end end
56

  
57 49
  def icon_size
58 50
    if show_icon?
59 51
      if UserConfig[:quote_icon_size]
......
64 56
  def text_max_line_count(message)
65 57
    UserConfig[:quote_text_max_line_count] || super end
66 58

  
67
  def render_outline(message, context, base_y)
68
    unless show_edge?
69
      @edge = 2
70
      return end
71
    @edge = 8
72
    case UserConfig[:quote_edge]
73
    when :floating
74
      render_outline_floating(message, context, base_y)
75
    when :solid
76
      render_outline_solid(message, context, base_y)
77
    when :flat
78
      render_outline_flat(message, context, base_y) end end
79

  
80
  def render_badge(message, context)
81
    return unless show_edge?
82
    case UserConfig[:quote_edge]
83
    when :floating
84
      render_badge_floating(message, context)
85
    when :solid
86
      render_badge_solid(message, context)
87
    when :flat
88
      render_badge_flat(message, context) end end
59
  def edge_type
60
    UserConfig[:quote_edge] end
89 61

  
90 62
  def show_header?
91 63
    (UserConfig[:quote_present_policy] || []).include?(:header) end
......
96 68
  def show_edge?
97 69
    (UserConfig[:quote_present_policy] || []).include?(:edge) end
98 70
end
99

  
100

  
101

  
102

  
(2-2/2)