ここhttps://stackoverflow.com/questions/4747264/is-it-possible-to-use-arrow-keys-alone-to-expand-tree-node-in-package-explorer-i/Eclipse のツリービューの動作を変更する良いアイデアを見つけました。これを改善したいのですが、gtk.css 構成ファイルで if-then-else ステートメントを使用する例が見つからないため、方法がわかりません。
下記の参照で「test-collapse-row」と「test-expand-row」という2つのメソッドを見つけました。https://developer.gnome.org/gtk3/stable/GtkTreeView.html#GtkTreeView-select-cursor-row現在の行が展開可能かどうかをテストします。CSS キー バインディングの条件付きの例を探してみましたが、まだ見つかりません。
@binding-set MyTreeViewBinding
{
bind "Left" { "select-cursor-parent" ()
"expand-collapse-cursor-row" (0,0,0) };
/* I've try code below instead code above - isn't work
bind "Left" { if ("test-expand-row" ())
"expand-collapse-cursor-row" (0,0,0)
else
"select-cursor-parent" () }; */
bind "Right" { "expand-collapse-cursor-row" (0,1,0) };
}
treeview
{
-gtk-key-bindings: MyTreeViewBinding;
}
ノードであり、折りたたまれていない場合は折りたたむ必要がありますが、ノードではない場合やすでに折りたたまれている場合は、親へのポインターを設定しますが、折りたたまないでください。