Commit graph

663 commits

Author SHA1 Message Date
Emil Ernerfeldt
2164e37e39 [refactor] make sure we show all input members in introspection window 2020-09-23 09:03:18 +02:00
Emil Ernerfeldt
b77151fb64 remove seconds_from_midnight from core egui input
It is only used by demo app, and so does not belong to egui proper.
Instead it is now passed as part of a DemoEnvironment
2020-09-23 08:57:23 +02:00
Emil Ernerfeldt
deb1c33760 [style] visual tweaks 2020-09-20 09:24:09 +02:00
Emil Ernerfeldt
2c611292ff [style] more spacious, more alignmnet, more readable 2020-09-19 09:55:20 +02:00
Emil Ernerfeldt
05316b7045 [refactor] move DragValue to own file drag_value.rs 2020-09-18 23:59:35 +02:00
Emil Ernerfeldt
dd8c298cb5 refactor space allocation code 2020-09-18 23:48:08 +02:00
Emil Ernerfeldt
283b4ab63d [layout] remove ui.horizontal_centered and make centering the default 2020-09-18 23:41:49 +02:00
Emil Ernerfeldt
4df8def9e2 [layout] change clickable_diameter: f32 to interact_size: Vec2 2020-09-18 23:41:34 +02:00
Emil Ernerfeldt
85a67ab15e [refactor] introduce NumExt with at_least and at_most
`x.min(maxumim)` can be confusing but `x.at_most(maximum)` is very clear
2020-09-18 17:49:39 +02:00
Emil Ernerfeldt
5856cded95
refactor RunMode: move it from backend to the demo App (#23)
This simplifies the egui_glium and egui_web backends substantially,
reduces the scope of RunMode to a single file, and
removes duplicated code.

Basically: this is how I should have written it from the beginning.
2020-09-16 08:03:40 +02:00
Emil Ernerfeldt
e30a9c1196 [window/resize] add Resize::max_width and fix bug with fixed_size 2020-09-13 22:07:55 +02:00
Emil Ernerfeldt
f8bc4d38e8 [refactor] break up demo code into smaller files 2020-09-13 21:54:31 +02:00
Emil Ernerfeldt
8b4f96ffb2 [refactor] move math.rs to math/mod.rs, and same for all other egui mods 2020-09-13 21:23:35 +02:00
Emil Ernerfeldt
adc6a225e3 [frame] bug fix: move cursor after a Frame 2020-09-13 19:02:25 +02:00
Emil Ernerfeldt
6904938594 Compilation fix 2020-09-13 15:41:16 +02:00
Emil Ernerfeldt
814121903a remove Label::auto_shrink and replace with ui.shrink_width_to_current() 2020-09-13 09:30:52 +02:00
Emil Ernerfeldt
1069ad8496 add color test window to troubleshoot your Egui painter backend
egui_glium passes the test, but the egui_web WebGL painter fails it.
2020-09-13 09:28:54 +02:00
Emil Ernerfeldt
d49aec4079 Add user texture support to egui_glium and egui_web backends 2020-09-11 18:54:57 +02:00
Emil Ernerfeldt
02ef0cd9d5 [user textures] Add custom texture/image support
* Each Traingles mesh comes with a TextureId
* ui.image(...) to show an image/texture
* Up to backend what to do with user textures
2020-09-11 18:54:57 +02:00
Emil Ernerfeldt
5ba420988f [docs] improve toggle_switch.rs demo with better comments 2020-09-11 17:17:43 +02:00
Emil Ernerfeldt
10574c34d6 make it easy to combine Response:s with | and |= overloads 2020-09-11 10:19:04 +02:00
Emil Ernerfeldt
13060d495b [user texture] change uv to normalized texture coords in 0-1 range 2020-09-09 17:14:42 +02:00
Emil Ernerfeldt
0ea3a53d97 [font] texture atlas: add one pixel of padding for old GPUs 2020-09-09 15:24:44 +02:00
Emil Ernerfeldt
8984302122 [user textures] switch WHITE_UV to (0,0) and require clamped sampling 2020-09-09 15:24:09 +02:00
Emil Ernerfeldt
bb367752cf [text] support non-latin characters by dynamically adding them to atlas 2020-09-09 14:33:30 +02:00
Emil Ernerfeldt
0e870dae3e [refactor] rename Texture::id to version 2020-09-09 13:32:40 +02:00
Emil Ernerfeldt
d959f71d12 [text] add benchmark for text layout 2020-09-09 12:41:59 +02:00
Emil Ernerfeldt
672ffb6cd6 [test] add e2e egui test 2020-09-09 12:14:53 +02:00
Emil Ernerfeldt
23d99b07c8 [bug fix] assume pixels_per_point=1 if nothing is ever set 2020-09-09 12:14:21 +02:00
Emil Ernerfeldt
bc0d6baefb [color-picker] edit your own (s)RGBA arrays
Both with and without premultiplied alpha
2020-09-09 11:24:37 +02:00
Emil Ernerfeldt
b9a3240ca3 Bump Egui version to 0.1.4 2020-09-08 09:47:42 +02:00
Emil Ernerfeldt
278268768d fix web/wasm build 2020-09-08 09:44:40 +02:00
Emil Ernerfeldt
9578773613 [style] tweak style, and refactor struct Style 2020-09-08 09:17:08 +02:00
Emil Ernerfeldt
a76d57480d fix: menu bar should have a background 2020-09-07 20:54:29 +02:00
Emil Ernerfeldt
d8e0b3bff6 [color] add HSV-based color picker for struct Srgba 2020-09-06 21:30:52 +02:00
Emil Ernerfeldt
fc3582fbe1 [color] add HSVA conversion 2020-09-06 21:21:53 +02:00
Emil Ernerfeldt
847f18248f clippy fix 2020-09-06 07:49:49 +02:00
Emil Ernerfeldt
a9fd7537c2 [DragValue] add optional range 2020-09-06 07:07:02 +02:00
Emil Ernerfeldt
938c847c6e [math] bug fix: allow inverted range in remap_clamp 2020-09-06 07:04:47 +02:00
Emil Ernerfeldt
c26b3069e0 Fix a clippy nit 2020-09-06 06:58:40 +02:00
Markus Webel
6b30e21f4e
Kinetic scrolling (#20)
* Fixed typo in function description

* Added vertical kinetic scrolling

* Checked off kinetic scrolling from TODO

Co-authored-by: Markus Webel <m@rkus.online>
2020-09-06 06:57:29 +02:00
Emil Ernerfeldt
6ca11aff8c [refactor] use "fg_" prefix in WidgetStyle 2020-09-05 13:30:04 +02:00
Emil Ernerfeldt
8b93135fe4 [style] you can override the default body text style 2020-09-04 10:15:35 +02:00
Emil Ernerfeldt
2c96cbfa9c [dependencies] turn off optional ahash features to reduce dependencies 2020-09-03 23:04:19 +02:00
Emil Ernerfeldt
dc40a5d31d [refactor] represent colors with arrays 2020-09-02 22:04:10 +02:00
Emil Ernerfeldt
9823e4d63c [refactor] Add Triangles::colored_vertex helper 2020-09-02 21:52:43 +02:00
Emil Ernerfeldt
e8713bbb71 [widgets] DragValue can now be used with some integers 2020-09-02 06:05:48 +02:00
Emil Ernerfeldt
ecd68f4faa [refactor] combine stroke_color and stroke_width in WidgetStyle 2020-09-02 01:36:52 +02:00
Emil Ernerfeldt
9d4021d703 [refactor] rename LineStyle to Stroke 2020-09-01 23:54:21 +02:00
Emil Ernerfeldt
e7b098ac56 [style] make the default style a lot more compact and sleek 2020-09-01 20:40:54 +02:00
Emil Ernerfeldt
2129a87575 [tesselator] handle paths with duplicated points better 2020-09-01 20:29:00 +02:00
Emil Ernerfeldt
62b1a2658f [tesselator] hide Path from view and improve thin rounded rectangles 2020-09-01 20:03:50 +02:00
Emil Ernerfeldt
96153a86e5 [refactor] Remove Option wrappers around colors and line styles
Just use transparency instead of None
2020-08-31 22:56:24 +02:00
Emil Ernerfeldt
413ed6999e [refactor] break up Style into Spacing, Interaction and Visuals
Also make sliders fixed-width
2020-08-31 22:27:31 +02:00
Emil Ernerfeldt
fe50f39590 [demo] toggle_switch.rs source demo for how to create your own widget 2020-08-31 07:55:31 +02:00
Emil Ernerfeldt
c0876eff90 [refactor] better names for widget style members 2020-08-31 07:55:28 +02:00
Emil Ernerfeldt
24003b17a3 [animation] add Context::animate_bool helper function 2020-08-30 10:26:16 +02:00
Emil Ernerfeldt
c23dfd155c [refactor] unify InteractInfo and GuiResponse to Response 2020-08-30 08:52:42 +02:00
Emil Ernerfeldt
3160c44a4b Move TODO-list to own TODO.md 2020-08-29 18:16:43 +02:00
Emil Ernerfeldt
8f1def11f1 [slider] remove ": " for sliders without text. still show value 2020-08-29 18:00:27 +02:00
Emil Ernerfeldt
f7122abc5d [slider] fix vertical alignment of text 2020-08-29 17:58:25 +02:00
Emil Ernerfeldt
1d350ad15b [painter] add helper functions for drawing lines, circles and rectangles 2020-08-29 17:30:06 +02:00
Emil Ernerfeldt
c27e53a7b2 [color] Rename Color to Srgba + sRGBA correct fading of thin lines
Also remove the extra large `aa_size` hack,
so everything now looks slightly crispier.

I also took the opportunity to tweak some colors.
2020-08-29 16:58:59 +02:00
Emil Ernerfeldt
2465e689fb [demo] additional window resize demo with embedded scroll 2020-08-29 15:32:17 +02:00
Emil Ernerfeldt
1a9618c524 spelling 2020-08-29 15:31:06 +02:00
Emil Ernerfeldt
3a3eb5ef5d Fix minor bug in mouse velocity tracking 2020-08-29 15:16:51 +02:00
Emil Ernerfeldt
f1989c39c6 input: keep using the latest known pixels_per_point 2020-08-29 15:15:50 +02:00
Emil Ernerfeldt
3d3b93da8b Force user to explicitly select a max height for a ScrollArea 2020-08-29 15:14:44 +02:00
Emil Ernerfeldt
5df9bfd514 Add ui.drag_angle helper 2020-08-29 15:10:59 +02:00
Emil Ernerfeldt
d4c0197752 add ui.horizontal_centered helper 2020-08-29 15:10:59 +02:00
Emil Ernerfeldt
7b75bd2d09 Use consistent order of width/color arguments for line style 2020-08-29 14:45:20 +02:00
Emil Ernerfeldt
b3b4fbc016 [slider] only show full precision if significant 2020-08-29 14:41:32 +02:00
Emil Ernerfeldt
cc22e2fbb4 [slider] when editing slider or drag-value, keep text edit box small 2020-08-29 12:17:49 +02:00
Emil Ernerfeldt
7cfa792a89 [interact] bug fix: fix drags sometimes being interpreted as clicks 2020-08-29 12:13:21 +02:00
Emil Ernerfeldt
d07132cc13 [demo] bug fix: add back clock in upper right corner 2020-08-29 12:12:16 +02:00
Emil Ernerfeldt
d5a1385870 [demo] disable name clash demo, since it is not working anyway 2020-08-28 16:43:24 +02:00
Emil Ernerfeldt
a2160a5e12 fix some corner cases for repaint requests 2020-08-28 16:41:37 +02:00
Emil Ernerfeldt
0755a95c76 Update README.md 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
b8938e01c4 [demo] add menu option to auto-reorganize windows 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
559b026b87 [demo] add windows that demonstrates auto-size, resize and scrolling 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
b02530b6fb [refactor] small cleanup and typo fixes 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
0bbf7edaee [window] increase default width of windows and resize areas 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
03bc4ea2e2 [window] make scroll bars in windows opt-in 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
5ed949bb32 deny warnings in egui lib (again. oops) 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
8c03f6a90f [window] prevent trying to shrink window smaller than title bar width 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
5f919e22a9 [ui] add ui.heading(text) helper function 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
056c0ad794 [window] round position to nearest physical pixel, not nearest point 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
373b1c2911 Allow multithreaded use of egui
...but currently only in release build,
because in debug builds I want to be able to debug dead-locks from
locking the same resource from the same thread.
2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
98bced7e62 [ui] bug fix: default size of horizontal/vertical regions 2020-08-28 15:43:00 +02:00
Emil Ernerfeldt
48e42ff6a5 [drag-value] click on a DragValue to edit it 2020-08-28 14:35:39 +02:00
Emil Ernerfeldt
f3bbb210c0 [slider] click value to edit it with keyboard 2020-08-28 10:37:44 +02:00
Emil Ernerfeldt
1874f238eb [slider] show value with monospace font 2020-08-28 00:24:51 +02:00
Emil Ernerfeldt
ec1e8b9966 [drag-value] show full precision if needed 2020-08-28 00:22:58 +02:00
Emil Ernerfeldt
ecb703a696 [slider] show full precision of value if value is very precise 2020-08-28 00:14:57 +02:00
Emil Ernerfeldt
fd95f8a146 [slider] automatic slider precision display 2020-08-27 22:06:28 +02:00
Emil Ernerfeldt
f0287fb86d [slider] refactor to break up complex ui code 2020-08-27 21:38:07 +02:00
Emil Ernerfeldt
f2b23f1a0d [slider] smart aim for picking nice and round slider values 2020-08-27 20:58:41 +02:00
Emil Ernerfeldt
d0bfb0238d [refactor] break up math.rs into a mod of several files 2020-08-27 18:07:33 +02:00
Emil Ernerfeldt
98c9e9bb41 spelling fixes 2020-08-27 18:06:32 +02:00
Emil Ernerfeldt
d41b7a6234 [resize] remove Resize::handle_offset 2020-08-26 22:14:28 +02:00
Emil Ernerfeldt
a764b0d23f [window] visually indicate which windows can be resized 2020-08-26 20:55:23 +02:00
vkkoskie
9ed6a5f5ab
Allow mutable borrow of ui.style (#18) 2020-08-22 10:27:09 +02:00
Emil Ernerfeldt
73cea29f7d [docs] Improve README.md and documentation 2020-08-21 18:53:43 +02:00
Emil Ernerfeldt
ad9783a33d Update links to point to https://github.com/emilk/egui
because I renamed the github repository from "emigui" to "egui"
2020-08-10 19:38:46 +02:00
Emil Ernerfeldt
b06c9e94fb [egui] rename "with_serde" feature flag to just "serde" 2020-08-09 17:34:26 +02:00
Emil Ernerfeldt
b58142ba15 Update versions to 0.1.3 2020-08-09 17:30:12 +02:00
Emil Ernerfeldt
3facd5c587 [doc] improve docstrings in Egui 2020-08-09 17:24:32 +02:00
Tomas Sedovic
e26150e46f
Add collapsible to Window (#15)
This lets the user decide whether the Window can be collapsed or not.
The default is `true` (window is collapsible), but calling
`window.collapsible(false)` will hide the collapsing triangle icon and
prevent the window from being collapsed by clicking on the title.
2020-08-09 14:46:39 +02:00
Tomas Sedovic
40af177157
Add fixed_pos to Window (#16)
* Add fixed_pos to Window

This allows changing the position of a window by opening the window
with a different value.

* Add docstrings for `fixed_pos`
2020-08-09 14:31:46 +02:00
Emil Ernerfeldt
d4cb2fa62e [egui] Clean up Painter interface 2020-08-05 19:45:39 +02:00
Emil Ernerfeldt
efedb09b9f [text] show solid text cursor (less repainting) 2020-08-05 14:03:12 +02:00
Emil Ernerfeldt
81d642b1f1 [text] highlight the text edit widget being edited 2020-08-05 13:59:33 +02:00
Emil Ernerfeldt
2f161dd3d4 [text] surrender keyboard focus by clicking outside text edit area 2020-08-05 13:54:17 +02:00
Emil Ernerfeldt
2861bc956a [menu] click outside a menu to close it 2020-08-05 13:41:09 +02:00
Emil Ernerfeldt
56352c26a4 Expose egui::menu module 2020-08-05 10:21:15 +02:00
Emil Ernerfeldt
11df21e39e [refactor] extract paint code from Ui/Context to new struct Painter 2020-07-30 14:35:18 +02:00
Emil Ernerfeldt
42c94f9db9 [egui] fix build without "with_serde" feature 2020-07-30 12:40:05 +02:00
Emil Ernerfeldt
df2cba41ff [clippy] fix all clippy issues 2020-07-30 12:30:20 +02:00
Emil Ernerfeldt
f693a558c5 [web/glium] better text input filtering
CapsLock and function keys (F1, F2, ...) are now ignored on web.

All special keys are ignored on glium.
2020-07-30 11:58:24 +02:00
Emil Ernerfeldt
554e6e7120 [app] unify web and glium demo app 2020-07-23 19:04:23 +02:00
Emil Ernerfeldt
b79c76b9ce [doc] improve Egui documentation 2020-07-23 14:35:12 +02:00
Emil Ernerfeldt
61cdec8fca [refactor] rename 'example' to 'demo', and add simple example_glium 2020-07-23 12:18:19 +02:00
Emil Ernerfeldt
bf19eb2ec5 [refactor] minor code cleanup 2020-07-23 10:27:21 +02:00
Emil Ernerfeldt
9b9cd01c5c [glium] update to latest glium with EventLoop and vsync 2020-07-22 00:36:17 +02:00
Emil Ernerfeldt
6b6545958d [web] fix: repaint on pagehide, pageshow and resize 2020-07-20 15:08:39 +02:00
Emil Ernerfeldt
cb6b3bb58f Move web app contents to own window 2020-07-19 01:09:37 +02:00
Emil Ernerfeldt
57ae03f52d [web] minor fixes for reactive mode 2020-07-19 00:44:06 +02:00
Emil Ernerfeldt
900a758903 [resize] unify to one minimum size 2020-07-19 00:17:02 +02:00
Emil Ernerfeldt
07d2af885b [resize] improve default/min sizes of some resize areas 2020-07-19 00:16:04 +02:00
Emil Ernerfeldt
fccd135254 [refactor] rename 'PaintBatches' to 'PaintJobs' 2020-07-19 00:01:13 +02:00
Emil Ernerfeldt
3ecd6c0297 [web] implement reactive repainting
meaning: only repaint on new input
2020-07-18 19:54:42 +02:00
Emil Ernerfeldt
dfa4d52a94 [web] move all reusable web code into egui_web 2020-07-18 18:35:17 +02:00
Emil Ernerfeldt
0afad57d41 [web] port JS code to Rust 2020-07-18 13:30:23 +02:00
Emil Ernerfeldt
520e42c11c [backend] use hardware scissor rect in WebGL and glium 2020-07-17 10:29:21 +02:00
Emil Ernerfeldt
c204922a3a update some crates 2020-07-17 09:45:28 +02:00
Emil Ernerfeldt
67bafad8f9 [button] add ability to disable Button 2020-06-22 10:36:27 +02:00
Emil Ernerfeldt
10a9d48091 [scroll] animate scroll bar hide/show 2020-06-14 18:58:44 +02:00
Emil Ernerfeldt
bff7232e9d [paint] ignore negatively sized rectangles and circles 2020-06-14 18:58:44 +02:00
Emil Ernerfeldt
53dbbd0d53 [id] smarter id selection for collapsing header 2020-06-12 15:03:36 +02:00
Emil Ernerfeldt
5c2a0a59ac [collapsing header] add id_source to builder 2020-06-12 13:49:35 +02:00
Emil Ernerfeldt
916e667aa2 [style] tigher buttons and monospaced DragValue text 2020-06-11 18:07:42 +02:00
Emil Ernerfeldt
097730461d [input] add queries for if egui is interested in mouse/kb 2020-06-11 18:07:21 +02:00
Emil Ernerfeldt
94545409c6 [id] improve default Id generation
Base on child count instead of on screen position.
This is more robust against changing sizes of nearby widgets.
2020-06-11 18:06:23 +02:00
Emil Ernerfeldt
cc589c7bbc bump version to 0.1.2 2020-06-10 16:58:57 +02:00
Emil Ernerfeldt
acdc2b004f [widgets] new widget: DragValue 2020-06-10 16:23:49 +02:00
Emil Ernerfeldt
a90dda6162 [button] add sense so you can make drag buttons 2020-06-10 16:23:15 +02:00
Emil Ernerfeldt
2162ffff42 [slider] round so what you see is what you get 2020-06-10 16:22:31 +02:00
Emil Ernerfeldt
d0f5181197 [window] make resizing a bit smoother 2020-06-03 21:14:47 +02:00
Emil Ernerfeldt
1c9fdc3a48 bump egui version to 0.1.1 2020-06-03 11:03:02 +02:00
Emil Ernerfeldt
de95209676 [scroll] remember to expand clip region with the clip_rect_margin 2020-06-03 11:02:30 +02:00
Emil Ernerfeldt
2fa03f9a6c [window] improve automatic window positions 2020-06-03 11:02:30 +02:00
Emil Ernerfeldt
5bf8051be5 [style] rounded buttons and tweak some spacing and sizes 2020-06-03 11:02:30 +02:00
Emil Ernerfeldt
c35494e4ec [slider] bug fix: generate unique id for sliders 2020-06-03 11:02:30 +02:00
Emil Ernerfeldt
bea7e3a52e [egui] prepare for 0.1.0 release 2020-05-30 18:22:33 +02:00
Emil Ernerfeldt
2f4a3a1273 [window] auto-position windows in a column layout 2020-05-30 18:10:01 +02:00
Emil Ernerfeldt
347fdb97d6 [window] fix a bunch of resize-releated bugs 2020-05-30 17:51:01 +02:00
Emil Ernerfeldt
cde1e05853 [window] fix close button position on narrow windows 2020-05-30 16:31:43 +02:00
Emil Ernerfeldt
8b1f02f22c [egui] handle dynamic changes to pixels_per_point (dpi scaling)
Also: egui::Context::new() no longer takes any arguments
2020-05-30 14:56:38 +02:00
Emil Ernerfeldt
efe90c9326 [window] allow specifying pos/size with [f32; 2] 2020-05-30 11:48:33 +02:00
Emil Ernerfeldt
506dd11f73 [window] better mouse velocity tracking for throwing windows 2020-05-30 11:46:04 +02:00
Emil Ernerfeldt
598564cecc Fix some clippy issues 2020-05-30 11:16:31 +02:00
Emil Ernerfeldt
b80baf4039 [egui] make serde an optional dependency 2020-05-30 11:04:40 +02:00
Emil Ernerfeldt
fd5ab736bb Rename from "Emigui" to "Egui"
Shorter to type (especially in code).
2020-05-30 10:22:35 +02:00