Commit graph

663 commits

Author SHA1 Message Date
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