Haiku UI - small improvements

Since there has been talks about improving the UI, there is a couple of things i could think of to incrementally improve the UI.

  • Make menu items that can be clicked with children and those that cannot be destinct. perhaps the arrow can be changed from a > to a :black_small_square:> shape for those items

  • Figure out what style of export menus we want, for example ShowImage has them inside the menu, MediaPlayer and StyledEdit don’t have any. WonderBrush has it in a dedicated “Export” option that opens a second view.
    My suggestion would a “Export as” with dedicated child options for specific formats

  • Make the main menu consistent, In styledEdit it seems to be one pixel line obscured. in QT applications the gradient is plainly missing.

  • Create a layout kit api for ToolBars

  • Perhaps create a control used to copy textstrings that cannot be selected or are not supposed to be collected. One option could be to have the string simply clicking copy to clipboard, but that is very badly discoverable. Maybe a tiny half-raised button with a Clipboard icon could be an option too.

4 Likes

Good day @nephele,

And allow ToolBars show text, text+icons or only icons globally from the Appearance preferences? Also, use Scalable HVIF icons for the toolbar buttons and be able to change the icon size also in Appearance preferences?

What about ToolBoxes?, would they be a subset of Grid Layout or do they need another layout kit api?

I would go too with spread UI consistency (in-window placement of widgets, menu’s structure, …) across native Software, and having some sort of software to create the interfaces rapidly, a la QtCreator, Glade… would be nice too (there are some now in HaikuDepot? ALE, BRIE that seem to need an update?), which could be used lately with “any” programming language?

Regards,
RR

PS.: just starting to read through the API, only Application and Interface kits atm :wink:

Thinking out loud:

  • Standardise application menu format
    • Application name
    • “App/Application”
    • Application icon
    • Any one of them will do good for the sake of consistency
    • Do not use “Window” since this menu is supposed to house window position related things. Maybe move these things to the Deskbar menu?
  • Standardise application menu entries
    • Instead of adding items manually, a set of items can be provided for every application with Menu
    • Keyboard shortcuts automatically associated
    • Close, Minimise, Minimise all (useful for full-screen cases)
    • About %application%
    • Settings
    • Some of these can be manually disabled if unnecessary (e. g. Settings)
  • Maybe start thinking about a general Help system format, and provide this menu too? User Guide entries can be gradually migrated to these parts as well.
  • Is there a such thing as B_OK_BUTTON and/or B_CANCEL_BUTTON, B_APPLY_BUTTON, B_ABORT_BUTTON? These could be nice for translators, instead of duplicating tonnes of strings.
1 Like

We need a discussed selection of menu cathegories they are set in haiku menu. Then all packages need to be changed in the menu structure.

1 Like

This all should probably be tickets and not a forum post

Currently there is no way to know even on the programming side. All menu items are clickable, it’s just that sometimes no one will handle the received message and nothing will happen.

I also think we can find something both more subtle and more self-explaining than a black square?

After creating lots of windows, the one API I find myself needing most is for adding a BBox to a layout.

I made this as a forum post rather than a ticket to have a bit of discussion on what might be a good design for some items, I have made some tickets about ui improvements but mostly received no comments on them.
(#15394 (Resizing windows & Window Stacks) – Haiku)
(#15589 (Stack & Tile improvements) – Haiku)

I can however make those into tickets if you prefer.

For the black square itself, it was one idea, I am happy to hear about better designs. That this isn’t known on the programming side would have to be adjusted though.