Giter Club home page Giter Club logo

tweakpp's People

Contributors

redorav avatar

Watchers

 avatar  avatar

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

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 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.