这里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”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;
}
如果它是节点并且它没有折叠则需要折叠它,但如果它不是节点或者它已经折叠则设置指向父级的指针,但不要折叠它。