https://dev.mikutter.hachune.net/
https://dev.mikutter.hachune.net/favicon.ico?1619448608
2022-01-16T03:58:32Z
やること
mikutter - 提案 #1581: Color Model
https://dev.mikutter.hachune.net/issues/1581?journal_id=5270
2022-01-16T03:58:32Z
toshi_a 初音
toshi.alternative@gmail.com
<ul><li><strong>関連している</strong> <i><a class="issue tracker-12 status-2 priority-4 priority-default" href="/issues/1578">提案 #1578</a>: Emacsのfaceのように継承構造を持ったフォント・配色の設定機能が欲しい</i> を追加</li></ul>
mikutter - 提案 #1581: Color Model
https://dev.mikutter.hachune.net/issues/1581?journal_id=5272
2022-01-16T03:59:23Z
toshi_a 初音
toshi.alternative@gmail.com
<ul><li><strong>関連している</strong> <i><a class="issue tracker-1 status-5 priority-4 priority-default closed child" href="/issues/1503">バグ #1503</a>: gtk3: 設定画面を開くとMiraclePainterの背景色がおかしくなる</i> を追加</li></ul>
mikutter - 提案 #1581: Color Model
https://dev.mikutter.hachune.net/issues/1581?journal_id=5273
2022-01-16T05:40:18Z
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp
<ul></ul><a name="関連メモ"></a>
<h3 >関連メモ<a href="#関連メモ" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/99251b4/entry/core/mui/gtk_postbox.rb#L383">source:core/mui/gtk_postbox.rb@99251b4#L383</a><br /><a class="source" href="https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/99251b4/entry/core/mui/gtk_extension.rb#L382">source:core/mui/gtk_extension.rb@99251b4#L382</a><br />において UserConfigの背景色 → CSSの変換実装がある。<br /><pre><code class="ruby syntaxhl"> <span class="n">color</span> <span class="o">=</span> <span class="n">get_backgroundcolor</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
<span class="no">Gtk</span><span class="o">::</span><span class="no">CssProvider</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">tap</span> <span class="k">do</span> <span class="o">|</span><span class="n">provider</span><span class="o">|</span>
<span class="n">provider</span><span class="p">.</span><span class="nf">load_from_data</span><span class="p">(</span><span class="o"><<~</span><span class="no">CSS</span><span class="p">)</span><span class="sh">
*, *:active, *:disabled, *:hover, *:focus {
background-color: rgb(</span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="sh">, </span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="sh">, </span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="sh">);
}
</span><span class="no"> CSS</span>
<span class="k">end</span>
</code></pre></p>
<pre><code class="ruby syntaxhl"> <span class="no">Gtk</span><span class="o">::</span><span class="no">CssProvider</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">tap</span> <span class="k">do</span> <span class="o">|</span><span class="n">provider</span><span class="o">|</span>
<span class="n">styles</span> <span class="o">=</span> <span class="p">{}</span>
<span class="no">CSS_PSEUDO_CLASS_BY_STATE_TYPE</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">type</span><span class="p">,</span> <span class="n">pseudo_class</span><span class="o">|</span>
<span class="n">color</span> <span class="o">=</span> <span class="n">bg</span><span class="p">[</span><span class="n">type</span><span class="p">]</span>
<span class="k">if</span> <span class="n">color</span>
<span class="n">selector</span> <span class="o">=</span> <span class="s2">"*</span><span class="si">#{</span><span class="n">pseudo_class</span><span class="si">}</span><span class="s2">"</span>
<span class="n">styles</span><span class="p">[</span><span class="n">selector</span><span class="p">]</span> <span class="o">||=</span> <span class="s1">''</span>
<span class="n">styles</span><span class="p">[</span><span class="n">selector</span><span class="p">]</span> <span class="o">+=</span> <span class="s2">"background-color: rgb(</span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="s2">, </span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="s2">, </span><span class="si">#{</span><span class="n">color</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">/</span> <span class="mi">256</span><span class="si">}</span><span class="s2">);"</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="n">css</span> <span class="o">=</span> <span class="n">styles</span><span class="p">.</span><span class="nf">map</span> <span class="p">{</span> <span class="o">|</span><span class="n">selector</span><span class="p">,</span> <span class="n">style</span><span class="o">|</span> <span class="s2">"</span><span class="si">#{</span><span class="n">selector</span><span class="si">}</span><span class="s2"> { </span><span class="si">#{</span><span class="n">style</span><span class="si">}</span><span class="s2"> }"</span> <span class="p">}.</span><span class="nf">join</span><span class="p">(</span><span class="s1">' '</span><span class="p">)</span>
<span class="n">provider</span><span class="p">.</span><span class="nf">load_from_data</span><span class="p">(</span><span class="n">css</span><span class="p">)</span>
<span class="k">end</span>
</code></pre><br />後者は「 <em># NOTE: gtk2向けコードとの後方互換のために用意したが使われないことを祈る</em> 」のコメント付き。<br />これらはそのまま GTK2 (<code>Gtk::Color</code> ?) 互換用っぽい。 <a class="changeset" title="[mui] Postboxの返信先表示に再び背景色が適用されるようにした" href="https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/cce3837793c2ccd43a555bf68730afca6addbd60">cce38377</a>
<p>これと同様の UserConfig → CSS変換が Twitter プラグインの message_detail_view (ツイートの詳細表示)プラグインにおける<br />ツイート本文部分のフォントの forground, background の色指定で必要になっていた。<br /><a class="external" href="https://github.com/mikutter/message_detail_view/pull/3">https://github.com/mikutter/message_detail_view/pull/3</a></p>