Giter VIP home page Giter VIP logo

tweakpp's People

Contributors

redorav avatar

Watchers

 avatar  avatar

tweakpp's Issues

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

Features

  • Automatic sorting of groups
  • Automatic sorting of variables

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

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

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

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

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

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

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

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.