Giter Club home page Giter Club logo

egui-stylist's People

Contributors

jacobsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

egui-stylist's Issues

Error logging in the app

There is currently no logging available and all errors are dropped silently. This needs to be addressed.

Theme output in wasm32

Currently wasm32 doesn't have support for saving due to rfd not supporting saving of files.

Instead wasm32 should allow for downloading. I need to figure out how to make this work.

Finalize the `EguiTheme` API

So that I don't keep breaking things all the time, I need to take a close look at exactly how the API should work.

Investigate using snap to decrease stored theme sizes.

Snap may be a good format for the Egui-Theme to allow it to be compressible.

This should be a feature flag as it may not be necessary in all applications.

In addition to the necessary feature flags, the EguiTheme should store an extra field mentioning the version it was created with and whether or not it is compressed.

If the compression is not enabled for a compressed EguiTheme emit an error letting the parser know that it cannot decompress it without the feature flag, otherwise if compression is enabled it can optionally decompress if it is indicated to be compressed.

Tasks

  • Test to see space savings, no point in implementing it if there's no savings.
  • Determine if the runtime data can be stored as compressed memory.
  • Implement snap as feature flag
  • Implement additional meta-data to the Ron file.
  • Add all the compression information as an inner type.

Set up crate publishing CI task

See title. I don't want to do anymore crate publishing by hand. Using a CI runner will be the best way to ensure that I don't make any silly mistakes, like trying to publish the binary.

egui version is outdated

egui has changed a few things around in 0.16 and will change a few more things like font families in 0.17 . this library doesn't work with egui 0.16 or the present master (0.17 in future) branch.

any chance that this will get updated to work with those versions?

I really like the style editor btw. feels so clean when editing a style.

Support WASM32

Currently WASM32 is not supported due to no good way to save data.
This will not be fixed before 0.1.0 as the native gui and the embeddable GUI are

  • Support wasm32 build
  • Support EguiTheme export in wasm32
  • Support EguiTheme importing in wasm32

Add a version tag to theme

This may break existing themes, but we can probably keep it optional. There should be a few optional tags that should be added to the themes. Themes should indicate which version of the theme they were created as, and it should be possible to convert older themes into newer theme formats.

I will need to do some research to determine how best to work on this.

  • Research how this is generally done in specifications.
  • Determine how to best support compatibility between versions in rust
  • Add the necessary parameters to the EguiTheme struct.

build.rs panic during build from another library

Compiling egui-theme v0.2.0
Compiling egui-theme v0.2.0 error: failed to run custom build command for egui-theme v0.2.0 (https://github.com/jacobsky/egui-stylist/?branch=master#fd07db17)

Caused by:
process didn't exit successfully: target\debug\build\egui-theme-5d36fe45501b0c36\build-script-build (exit code: 101)
--- stderr
thread 'main' panicked at 'cargo egui-stylist-e6bf6e53cf74bd30\fd07db1\egui-theme/../Cargo.lock should exist before the build kicks off: Io(NotFound)', C:\Users\Kyle.cargo\git\checkouts\egui-stylist-e6bf6e53cf74bd30\fd07db1\egui-theme\build.rs:12:10
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

Clean up dependencies

While it is currently fine one thing that is bothering me is that anyone embedding egui-stylist into an application will get stuck with all the other dependences like eframe/epi and rfd when building the library. Since this is essentially useless for anyone, I need to find someway to strip out those dependencies where possible.

Option 1 - Feature flags. I can create a feature called "native" or something like that which will be used to select conditionally compiled dependencies.

Option 2 - Strip the binary out of the egui-stylist crate entirely and put all that stuff into a "egui-stylist-native" crate where the dependencies are added. The dependencies would be "egui-stylist-native" depends on "egui-stylist" depends on "egui-theme" and then anyone using egui-stylist will only have egui as a dependency.

I'll give option 1 a try first since it would be the smallest code change. Option 2 will happen if I can't get it to work at all.

Improve the docs

I need to go through and add documentation for EguiTheme class and StylistState

  • EguiTheme docs and methods
  • StylistState docs and methods

Preview enhancements

The preview is currently just using most of the widget demo.

It needs some additional widgets, windows and other demo stuff so that you can get a better handle on just how the theme configuration is working.

In addition, it would be nice if you could watch the demo change as you tweak the settings.

0.2.0 release

This is a tracker to do some additional testing and prepare to publish the 0.2.0 crate into the wild.

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.