Здесь https://stackoverflow.com/questions/4747264/is-it-possible-to-use-arrow-keys-alone-to-expand-tree-node-in-package-explorer-i / Я нашел хорошую идею изменить поведение дерева в затмении. Я хотел бы улучшить его, но я не знаю, как это сделать, потому что я не нашел пример использования оператора if-then-else в файле конфигурации gtk.css.
Я нашел пару методов «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;
}
Мне нужно, если это узел, и он не свернут, свернуть его, но если это не узел, или он уже свернут, установить указатель на родителя, но не свернуть его.