Commit graph

56 commits

Author SHA1 Message Date
Lin Han
22cd1a8e10
Move IME candidate window following text cursor (#258)
* egui_web: enable IME support on web.

* Move candidate window following text cursor.

* Preclude too frequent agent movement.

* IME candidate window move on native app.
2021-03-30 08:48:55 +02:00
Lin Han
795282edc0
egui_web: enable IME support on web. (#253) 2021-03-26 13:56:26 +01:00
Emil Ernerfeldt
958aea922f Add a lot more CursorIcon's 2021-03-13 12:38:03 +01:00
Emil Ernerfeldt
44cd304cdf Add experimental screen_reader feature
Part of https://github.com/emilk/egui/issues/167
2021-03-08 20:58:01 +01:00
Emil Ernerfeldt
1c06622dbc Hold down a modifier key when clicking a link to open it in a new tab 2021-03-08 17:48:23 +01:00
Emil Ernerfeldt
cd4c07e09a Output events when widgets gain keyboard focus
Part of https://github.com/emilk/egui/issues/167
2021-03-07 19:45:20 +01:00
Ridan Vandenbergh
4df8418e41
fix: Modern browsers encode Space as ' ' (#208) 2021-03-07 10:20:11 +01:00
Emil Ernerfeldt
dbc6a620cd Control the maximum egui web canvas size with App::max_size_points 2021-02-12 17:58:02 +01:00
Emil Ernerfeldt
0f33bc7c34
Fix web blur (#151)
* [egui_web] Always use an even canvas size

Fixes https://github.com/emilk/egui/issues/103

* [egui_web] Position canvas at top of screen

This avoids jumpyness when resizing,
caused by rounding height to an even number
2021-02-01 20:44:39 +01:00
Emil Ernerfeldt
b493bc6efc Wrap tesselated output in struct ClippedMesh(Rect, Mesh) 2021-01-25 21:43:17 +01:00
Emil Ernerfeldt
247026149c
Multiple mouse button support (#135)
Add support for primary, secondary and middle mouse buttons. Also improve ability to click things in low FPS situations.

This introduces a lot of breaking changes:

    Backends/integrations now pass mouse events via the even stream.
    Response has an interface of mostly methods instead of public members.
    input.mouse is now input.pointer and has new interface.


* Rename 'mouse' to 'pointer' everywhere (pointer = mouse or touch)

* Make Response::clicked and Response::double_clicked into methods

* Remove Response::active and add dragged() and interact_pointer_pos()

* Support multiple mouse buttons

* Make PointerState interface all methods

* Make most members of Response private
2021-01-25 18:50:19 +01:00
Emil Ernerfeldt
31b7eda51e Rename Egui to egui
Also update iamges in README.md
2021-01-17 14:48:59 +01:00
Emil Ernerfeldt
b869db728b [egui_web] Call prevent_default for arrow keys when entering text
Closes https://github.com/emilk/egui/issues/58
2021-01-17 12:24:17 +01:00
Emil Ernerfeldt
ef595153c9 [egui_web] Improve alpha blending + add WebGL2 painter 2021-01-16 20:48:00 +01:00
Emil Ernerfeldt
69d31a5e47 [eframe] Make persistence, http and time optional features
Saves on compile times.
2021-01-04 10:25:13 +01:00
Emil Ernerfeldt
c6a5af19e6 Add all alpha-numeric keys to egui::Key
Closes https://github.com/emilk/egui/issues/91
2021-01-03 11:25:13 +01:00
Emil Ernerfeldt
d229b6fc23 Enforce rust_2018_idioms in all libs 2021-01-02 12:02:26 +01:00
Emil Ernerfeldt
4e3251c300 Improve ecosystem documentation and add changelogs for epi and eframe 2021-01-02 11:59:20 +01:00
Emil Ernerfeldt
9db1b8dbf9 Add http fetch to eframe and implement it in egui_glium using ureq 2020-12-30 20:56:50 +01:00
Emil Ernerfeldt
84414e62a3 Add new crate eframe which wraps egui, epi, egui_web and egui_glium 2020-12-29 15:57:13 +01:00
Emil Ernerfeldt
d7459bc13d Move egui::app into new epi crate 2020-12-29 14:15:46 +01:00
Emil Ernerfeldt
650450bc3a Make cfg=web_sys_unstable_apis optional, fixing cargo check 2020-12-29 12:42:15 +01:00
Emil Ernerfeldt
89937bf636 [egui_web] Auto-save app state to Local Storage every 30 seconds 2020-12-19 20:50:00 +01:00
Emil Ernerfeldt
99808d2df8 Implement Storage trait for egui_web:s local storage bindings 2020-12-19 14:58:00 +01:00
Emil Ernerfeldt
82a3997188 [egui_web] Add max canvas size to help perf issues on some platforms
Related: https://github.com/emilk/egui/issues/67
2020-12-18 22:51:23 +01:00
Emil Ernerfeldt
71449fe61c Only forbid warnings in release builds 2020-12-18 22:19:56 +01:00
Daniel Collin
69dc13ed2d Allow user to check for Key::Space 2020-12-13 10:00:20 +01:00
Emil Ernerfeldt
8de74e4250 [egui_web] respect the native zoom/scale of the browser
Remove all complexity with own scale slider.

Closes https://github.com/emilk/egui/issues/53
2020-11-28 10:46:31 +01:00
Emil Ernerfeldt
633b19ee99 [egui_web] Repaint on finished fetch in example app 2020-11-20 20:35:16 +01:00
Emil Ernerfeldt
c6ce0b9e8c [example_web] show loading of an image
Required some redesign of `TextureAllocator` as well as
some improvements to the fetch API.
2020-11-18 22:16:01 +01:00
Emil Ernerfeldt
90cecace0c [egui_web] Fix for pressing tab and backspace in a text field
Fixes https://github.com/emilk/egui/issues/48
2020-11-18 19:16:13 +01:00
Emil Ernerfeldt
86cfd0dcd3 egui_web: Repaint at least every seconds
Just in case the app needs it, e.g. because it has finished a download.
2020-11-18 01:07:32 +01:00
Emil Ernerfeldt
fad0029119 egui_web: Add simple fetch API and demostrate it in example_web 2020-11-18 00:43:58 +01:00
Emil Ernerfeldt
7651e2f15b egui_web: Implement copy, cut and paste 2020-11-15 21:20:38 +01:00
Emil Ernerfeldt
fe0d159324 Support Cmd+A ^W ^U ^K and shift-click 2020-11-15 14:21:21 +01:00
Emil Ernerfeldt
c4ed507d63 Add modifier keys and implement moving cursors one word at a time 2020-11-14 21:01:21 +01:00
Emil Ernerfeldt
ed8a69ab2f [drag-and-drop] Add Grab and Grabbing CursorIcon:s 2020-11-02 17:40:05 +01:00
Emil Ernerfeldt
92cfbe643c Add #![forbid(unsafe_code)] and safety badge 2020-10-18 15:40:23 +02:00
Emil Ernerfeldt
a4e19d7207 [app] Add demo app slider to change scale of all of Egui 2020-10-17 23:54:46 +02:00
Emil Ernerfeldt
570860ec5f [refactor] Create helper struct Mutex (with double-lock detection) 2020-10-17 10:38:22 +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
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
e84412dec5 [glium] break out persistence 2020-07-22 18:01:27 +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
57ae03f52d [web] minor fixes for reactive mode 2020-07-19 00:44:06 +02:00
Emil Ernerfeldt
f659f2903d [web] fix auto-save 2020-07-19 00:16:24 +02:00
Emil Ernerfeldt
fccd135254 [refactor] rename 'PaintBatches' to 'PaintJobs' 2020-07-19 00:01:13 +02:00