Skip to content
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

The Workspaces Feature #9

Open
scawful opened this issue May 5, 2022 · 0 comments
Open

The Workspaces Feature #9

scawful opened this issue May 5, 2022 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@scawful
Copy link
Owner

scawful commented May 5, 2022

Workspaces is the true wild west of Premia. The final frontier. The open road.

Completely customizable open window space where a user can place as many "Views" as they want and arrange them in any order they want. ImGui provides a very easy method of adding "child windows" that float inside the main program window and I've designed each View class in such a way that they can easy be fit inside one of those floating child windows. So the task is to design the Workspace manager to the do the following:

  • Support for adding floating Views such as charts, graphs, orders, portfolios, console, etc
  • Additional menus enabled for views exclusively in workspace mode (for customization)
  • Grid based layout that user can enable to snap, sort, and resize views
  • Save and load workspace configurations and layouts

This will probably require some real though and maybe even some design patterns to really get right and do properly (this is C++) so I made it its own separate branch at features/workspaces and I wrote the basics of a header file for it. You can look at ViewManager for reference of how Views are handled if you want to experiment with the workspaces feature.

Some other details: the current ViewManager design sets the size of the (ImGui) viewport to the full size of the (SDL) window, but if you don't set that ImGui size, then you can have any number of ImGui windows floating around inside the SDL viewport.
So, it's fairly simple to get the idea of a workspace up, but adding all these features that make it feel like an "editor" are going to be the real challenge.

@scawful scawful added enhancement New feature or request help wanted Extra attention is needed labels May 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant