提案 #1532
closedgtk3: gladeファイルの使用は続ける?中止する?
Description
gtk3ブランチではいくつかのWindowのレイアウトが.glade拡張子のXMLファイルによって記述されています。
GladeはGTK界隈のUIデザインツールですが、理由があってgtk2時代には採用しなかった話を聞いた覚えがあります。
このまま使う気があるのか、やっぱりやめる方向でRubyコードでレイアウトを組むように戻すか意思確認をしたいです。
Files
Updated by Shibafu Midorino over 1 year ago
- Status changed from 実装待ち to レビュー待ち
- ブランチ set to topic/1532-deglade
plugin/gtk3/widget/dialog.glade 以外のgladeファイルを廃止し、Rubyコードでの実装に差し替えました。
影響範囲¶
- メインウィンドウのレイアウト
- 設定ダイアログのレイアウト
- 設定>抽出タブの右ペインのレイアウト
dialog.glade が消せない理由¶
OK/キャンセル等を上に置くために use-header-bar
というプロパティを与えるようになっているのですが、このプロパティはBuilderかgtk_dialog_new_with_buttons()、もしくはg_object_new()での初期化でしか与えることができません。
Builder (ここではGlade経由って解釈でいいです) を使わない場合は他の関数を使うしかないのですが、これらはruby-gnomeで使うことができません……。
gtk_dialog_new_with_buttons() はGI非公開関数、g_object_new() ……は多分呼べるわけないですね。
探せば何らかのハックはあるかもしれませんが、Gladeで手打ちにするか、昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。
Updated by toshi_a 初音 over 1 year ago
- Assignee set to toshi_a 初音
昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。
ダイアログウィンドウ下部にボタンが置かれているようなもののことですよね。use-header-barを与えることに特に魅力を感じないのと、これを諦めたらgladeを完全にやめられるならぜひ実装したいです。
Updated by toshi_a 初音 over 1 year ago
- Status changed from レビュー待ち to まだダメ
- Assignee changed from toshi_a 初音 to Shibafu Midorino
(昨日つついさんと話したけど、ステータス「まだダメ」は「差し戻し」くらいのほうが良さそうだなぁ)
Updated by Shibafu Midorino over 1 year ago
- Status changed from まだダメ to レビュー待ち
- Assignee changed from Shibafu Midorino to toshi_a 初音
dialog.gladeを削除し、Gtk::DialogのサブクラスとしてPlugin::Gtk3::Dialogを書き換えました。
Updated by Izumi Tsutsui over 1 year ago
- File statusbar-develop.png statusbar-develop.png added
- File statusbar-1532-deglade.png statusbar-1532-deglade.png added
- File statusbar-1532-deglade-margin_top-mergin_bottom.png statusbar-1532-deglade-margin_top-mergin_bottom.png added
- File statusbar-1532-deglade-margin_top-mergin_bottom-adwaita.png statusbar-1532-deglade-margin_top-mergin_bottom-adwaita.png added
Raleigh-Reloaded の環境で topic/1532-deglade を試すと
statusbar の横幅がなんかはみ出してる感じです。
develop
topic/1532-deglade
d38ceddc の margin
の左右がダメなんか、と以下のパッチを当てると一応それっぽくなります。
diff --git a/plugin/gtk3/widget/mikutterwindow.rb b/plugin/gtk3/widget/mikutterwindow.rb
index d874d254..521f1459 100644
--- a/plugin/gtk3/widget/mikutterwindow.rb
+++ b/plugin/gtk3/widget/mikutterwindow.rb
@@ -74,7 +74,8 @@ module Plugin::Gtk3
# Gtk::Statusbar
def create_statusbar
statusbar = Gtk::Statusbar.new
- statusbar.margin = 0
+ statusbar.margin_top = 0
+ statusbar.margin_bottom = 0
statusbar.push(statusbar.get_context_id("system"), @plugin._("Statusbar default message"))
@statusbar = statusbar.pack_start(status_button(Gtk::Box.new(:horizontal)), expand: false)
end
adwaita だと左右にマージンあるので Raleigh-Reloaded の問題という気もしますが。
Updated by toshi_a 初音 over 1 year ago
- Status changed from レビュー待ち to マージ待ち
OKです
つついさんの提案受け入れるかだけ判断してください
Updated by Shibafu Midorino over 1 year ago
別のマシンで表示確認したら、そんなに削りたいほどのマージンではなかったので d38ceddc をrevertします
Updated by Izumi Tsutsui over 1 year ago
git merge topic/1532-deglade して develop と同じ感じです。