提案 #1532
完了gtk3: gladeファイルの使用は続ける?中止する?
説明
gtk3ブランチではいくつかのWindowのレイアウトが.glade拡張子のXMLファイルによって記述されています。
GladeはGTK界隈のUIデザインツールですが、理由があってgtk2時代には採用しなかった話を聞いた覚えがあります。
このまま使う気があるのか、やっぱりやめる方向でRubyコードでレイアウトを組むように戻すか意思確認をしたいです。
ファイル
Shibafu Midorino さんが約3年前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- ブランチ を 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で手打ちにするか、昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。
toshi_a 初音 さんが約3年前に更新
- 担当者 を toshi_a 初音 にセット
昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。
ダイアログウィンドウ下部にボタンが置かれているようなもののことですよね。use-header-barを与えることに特に魅力を感じないのと、これを諦めたらgladeを完全にやめられるならぜひ実装したいです。
toshi_a 初音 さんが約3年前に更新
- ステータス を レビュー待ち から まだダメ に変更
- 担当者 を toshi_a 初音 から Shibafu Midorino に変更
(昨日つついさんと話したけど、ステータス「まだダメ」は「差し戻し」くらいのほうが良さそうだなぁ)
Shibafu Midorino さんが約3年前に更新
- ステータス を まだダメ から レビュー待ち に変更
- 担当者 を Shibafu Midorino から toshi_a 初音 に変更
dialog.gladeを削除し、Gtk::DialogのサブクラスとしてPlugin::Gtk3::Dialogを書き換えました。
Izumi Tsutsui さんが約3年前に更新
- ファイル statusbar-develop.png statusbar-develop.png を追加
- ファイル statusbar-1532-deglade.png statusbar-1532-deglade.png を追加
- ファイル statusbar-1532-deglade-margin_top-mergin_bottom.png statusbar-1532-deglade-margin_top-mergin_bottom.png を追加
- ファイル statusbar-1532-deglade-margin_top-mergin_bottom-adwaita.png statusbar-1532-deglade-margin_top-mergin_bottom-adwaita.png を追加
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 の問題という気もしますが。
Izumi Tsutsui さんが約3年前に更新
git merge topic/1532-deglade して develop と同じ感じです。