tweakpp's People
tweakpp's Issues
Per-variable Context Menu
Should be able to click anywhere on the variable line and the menu should appear
(Show variable name)
- Revert to Default
- Copy Path
- Paste from external (needs validation before it appears)
- Make Persistent/Remove persistence
- Make Favorite/Remove favorite
Persistence
Hovering Tooltip over Variable
Shows
- Path
- Type
- Default, Min, Max, Step
Whatever other properties are relevant to it
Features
- Automatic sorting of groups
- Automatic sorting of variables
Log
- Select and copy contents of log
- Icon for the auto scrolling instead of ugly tickbox
- Make filter work
- Make Copy button work
- Right-click select all, copy, etc
Custom Widgets
We need to implement custom widgets to add icons to menus/trees where there are many items with different icons. Since the icons themselves won't be aligned, we need to be able to do ImGui::Text() + SameLine + Text while also being able to do the rest of the behavior. We should probably copy the original behaviors as they are, put a reference in, and extend as necessary.
- TreeNode -> so we can have aligned favorite and group nodes
- MenuItem -> so that menu entries are aligned properly too. Update: MenuItemEx offers this functionality already
- SliderFloat: Change style to match reference
This also means we won't need to use the intermediate string buffer to hold all the strings either.
- Best effort to align sliders
- Widgets that differ from their defaults change color/display an icon.
- This could still get some more work. Currently displays a red square
Favorites
In the tree view, add top level items that are like "folders". They don't have children, but contain variables, inlined.
- Default favorite group always at the top
- Named favorite groups alongside
- Variables are added to favorite groups by right click (add to... with favorites, existing, new)
- Variables are added to favorite groups by drag and drop to existing
- Different icon for favorites
- Connection-specific and global. Identify the application in the initial handshake
- Saving favorites to a document favorites.txt/xml
Connections
- A window that has an active connection shows a green dot, whereas one without shows a red icon
- Saved targets (favorite targets)
- Last connected
- Automatic target discovery
Address Bar
- Update when selecting an item
- Allow copy paste to take to the correct item
- Path validation (invalid paths have no effect)
- Breadcrumbs! With arrows, like Windows folders
- Click on it, changes format (from nice arrows to slashes for actual path as single, preselected, string)
- Autocomplete
- Back/Forward Navigation (like a browser) Make sure mouse buttons work for back/forward
- Make sure the variable tree is updated as well, not just displays the variables (as if it had been manually selected)
- Right click to copy current path
Global Design
VariableManager
Manages variables and variable groups. Is able to iterate through variable groups and contains a vision of how they are related hierarchically.
VariableDatabase
Contains all known and active variables, and is responsible for their lifetime. All other structures refer to these variables via a weak reference of some sort, be it the path, a hash or a pointer. When adding or removing variables, we go through the database.
VariableGroupDatabase
Contains a vision of all groups that exist
Types
Float, UInt, Int
- Slider or Spinner + Edit Box. Make sure keyboard control (Pgup, PgDn, Up, Down, etc)
Bool
- Tickbox (make sure tabbing on a tickbox works, currently it doesn't)
Color3/4
- Explore options for color wheel, etc
- Have some discretized colors? Favorite colors? -> look up palette!
- Normalized color? Divide by maximum component
- Color widget where R, G and B get filled with their color as a %
Vector2/3/4 and UInt/Int Vectors
- Make sure tabbing works properly
- Direction vectors, unit vectors
- Button to normalize
Enums
- Dropdown
Editable Text Field
- Read-Only (Info)
- Write-Only (e.g. names)
- Both?
Callbacks/Buttons
- Have a single click
Flags32/64
- Binary, hex, decimal views
- Communicate Bitfields
- Bitfields have names
File Load Dialog
- Show a ... button
Graphs
- Provide automatic timestamps
- Provide user-provided timestamps
- Max/min ranges for the data
- Automatic ranges for the data
Splines
- Spline editor with control points
- Allow creation of new points
- See values of points
Video Feed
- Come up with a way to view textures
- Compression? Direct HWND access locally?
- Deactivate when tab that the widget belongs to isn't selected
Save Data
We need a generic way to store multiple sources of data
- Integrate pugixml
- Save Settings data
For now we're just saving a single value as an example, but the options will grow over time - SaveLoad Favorites data
Still missing multiple favorites, per session, etc but basic functionality is there - Save Persistent data
- Save Recent connections
- Save Favorite connections
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.