I am writing an outliner software. At any state, one of the items in the list is selected, and the software can do the following with respect to the selected item:
- Prepend a new item (sibling) to the selected item.
- Append a new item (sibling) to the selected item.
- Delete the selected item.
- Delete the selected item and its children.
- Move up the selected item in the list.
- Move up the selected item and its children in the list.
- Move down the selected item in the list.
- Move down the selected item and its children in the list.
- Level up the selected item in the list.
- Level up the selected item and its children in the list.
- Level down the selected item in the list.
- Level down the selected item and its children in the list.
There is a button for each of these functions, and I am trying to logically arrange them. Several possibilities came to mind, and the one that I have at the moment is to classify the buttons as the one regarding "the item itself" and the others regarding "the item with its children". It looks as follows:
(In the picture, there are extra buttons for "Prepend", "Append", and "Delete", which I am not clear at this point. I may add functions corresponding to the extra positions by analogy.) I am not sure if this is the best arrangement. Is there a better way to logically arrange the buttons?
ctrl
or an on-screen toggle.