my experimental rust gui framework
It uses both: Skia_safe as a graphics engine, Winit as a window manager, and Softbuffer to connect them.
- Ability to add custom user interface components
- Using themes and adding other themes
- and more coming soon.
It is still in the early stages of development
When a new window is created using
UWindow.run() after the button widget has been added to
UWindow.children, the event loop runs, and depending on the event, the functions associated with each specific
UWidgetTtype are activated, for example: when the movement of the mouse cursor occurs and it is on Button element,
UWindow activates the
Button.on_hover function of the button,and current
UWindow.theme draw the button.
It should be noted that the tool is detected with the mouse cursor by the color of the pixels in offscreen buffer that created in
UWindow, instead of calculating the tool’s coordinates and size. This method is easier and more accurate.
UWindowis responsible for window management and event handling.
Uthemeis responsible for drawing widgets apearance dependeng on the selected theme.
Uwidgetis responsible for widget management.
This is supposed to be the first release of my UI framework in Rust.
It should be taken into account that there are two known problems in this version that I personally noticed in examples/simple_window.rs:
1- the circle and canvases not following the window resizing smoothly (Maybe because of the LXDE desktop environment in Linux? Or another reason?)
2- There is another problem related to the coordinates of the mouse and the window in the mouse cursor movement event (this problem appears in a specific circumstance that I have not yet been able to determine)
If you have any suggestions to improve the project's source code, or find any other problems, or find a solution to any of the current problems, I will be very grateful to you.
Guidance on writing the appropriate license for the project would also be welcome