-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Radial Menu with multiple rings #516
Comments
I like this idea very much, with three exceptions:
Anyway, I'm porting radial menu right now, so I'll try to get as much of this as possible :) |
Regarding your exceptions:
|
Yes, that's exactly what I did :) I've just added pre-release with radial menu support, but I'd like to leave this open as I'd like to do that design you have on your picture as well, but while I can draw it without any problem, I currently don't have any idea how to create window with such "complex" shape on Windows. |
Are you talking about the picture showing a radial menu in Steam Input overlay? If so, can you create a boarderless window with a transparent background? That should allow you to draw whatever shapes you want and make it appear curved even if the window is rectangular. If the current API you use doesn't support that, you might need to use DirectX or OpenGL which may not be worth it. I did find this stackoverflow page with possibly how to do it with those: |
I didn't see radial menu as an option in the Windows version as of yet. When it is implemented could a person define multiple zones? I could see this working multiple ways, one more complex than the other. I will define the complex solution first and then provide a simpler version.
Complex Version:
A person would indicate total number of zones and then include maximum number of populated areas for all but the last. The GUI would have a panel labeled with
Zones
that allows you to add+
and remove-
a zone. Inside the panel each zone would have an option forSegments
which could just be a number input that allows a minimum of 0 (for the central zone) or the previous zone's maximum with the maximum limit being the next zone's minimum up to a sane maximum if there isn't an outer zone.Since the number of zones and segments can be so varied, it may make sense to display what the final radial will look like. In the GUI this could be shown with concentric set of segmented rings.
![Concentric segmented rings alt text](https://camo.githubusercontent.com/ab3221bda4a4cfc8707a00780e854708808991b45e2949eeb5420768947d6f84/687474703a2f2f66726173676972642e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30362f66726173676972642d636972636c65732e6a7067)
Here is an example of 3 zones with 4, 8, and 16 segments respectively that I found with an image search which could be displayed in the GUI:
The profile file might look like this for the above image:
Simpler Version:
A simpler version is to limit the number of zones to 3. A center with only one position, an inner ring with a sane maximum (that can be defined to be less), and a final outer ring with the remaining. In this case the GUI would need a checkbox for whether there is a center menu item and for the inner ring an input for a number that has minimum and maximum constraints but wouldn't require any sort of image displaying zones and segments. The profile file could be something like what follows:
Populating the Menu:
To make things simpler for populating the menu (and not require further changes to the menu format) the menu items defined in the menu are filled in from central zone outward in a clockwise direction. This means that for the simple example the center would get the first menu item, the inner ring would get the next 3 menu items, and the rest would populate the outer ring. In the complex example the first 4 menu items would be in the center zone, the next 8 in the middle zone, and up to 16 in the outer zone.
The actual on screen display would have the segments of each zone displayed with either an icon (if defined) or inset segment (so each segment is visible compared to the background). Any text for the menu item would appear either above or below the radial like the Steam Input radial menu does:
![Steam Input Documentation example image alt text](https://camo.githubusercontent.com/982e853aad2b8bba4f2b0551817604213263449ea1699bd8a2befba0263c2595/68747470733a2f2f737465616d63646e2d612e616b616d616968642e6e65742f737465616d636f6d6d756e6974792f7075626c69632f696d616765732f737465616d776f726b735f646f63732f656e676c6973682f736c696d655f72616e636865725f302e706e67)
The text was updated successfully, but these errors were encountered: