Andreas Kling
f6d2c3ed87
Hook everything up to run the GUI on top of the kernel.
...
Okay things kinda sorta work. Both Bochs and QEMU now boot into GUI mode.
There's a ton of stuff that doesn't make sense and so many things to rework.
Still it's quite cool to have made it this far. :^)
2019-01-10 23:19:29 +01:00
Andreas Kling
3e908abfca
Start separating out the SDL-related stuff in Widgets.
2019-01-10 05:21:19 +01:00
Andreas Kling
077f1007eb
More window manager hacking. Get rid of TerminalWidget for now.
2019-01-10 05:11:07 +01:00
Andreas Kling
ceb373cf71
More window manager hacking. FocusIn/FocusOut events.
2019-01-09 05:40:04 +01:00
Andreas Kling
7577ee0c67
Remove some #if 0'd code.
2019-01-09 04:51:30 +01:00
Andreas Kling
cfd76ade73
Stop recomposing the window hierarchy after every dang widget paint.
2019-01-09 04:46:16 +01:00
Andreas Kling
f3ec96a1b9
Print the number of WindowManager recompose() calls to debugger.
2019-01-09 04:18:28 +01:00
Andreas Kling
39e236d346
Let WindowManager send out events for WindowBecame{Active,Inactive}
2019-01-09 04:15:17 +01:00
Andreas Kling
4775fd88e3
More window management work.
...
- Fix inverted mouse event hit test z-ordering.
- Let the RootWidget backing store simply be the display framebuffer.
2019-01-09 03:51:34 +01:00
Andreas Kling
723ff8c2ab
Add basic z-order for Windows.
2019-01-09 03:16:58 +01:00
Andreas Kling
9963da9005
Start refactoring graphics system to have per-window backing stores.
...
It was fun for everyone to share a single framebuffer but it was also
kinda really awful. Let's move towards having a "GraphicsBitmap" as the
backing store for each Window.
This is going to need a lot of refactoring so let's get started.
2019-01-09 02:06:04 +01:00
Andreas Kling
ec1c487dcd
Yet another pass of style fixes.
2018-12-21 02:10:45 +01:00
Andreas Kling
959a1b0750
Close the MsgBox when clicking the OK button.
...
This feels vaguely crashy. I haven't tested window/widget destruction
before so there's sure to be bugs.
2018-10-14 01:23:01 +02:00
Andreas Kling
1929cb6b71
Implement basic focus.
2018-10-13 17:52:47 +02:00
Andreas Kling
44a32039be
Let the WindowManager track the active window.
...
We draw the active window in a different color, obviously. :^)
2018-10-13 17:42:43 +02:00
Andreas Kling
560405667e
Start using WeakPtr for some of the WindowManager window pointers.
2018-10-13 17:00:45 +02:00
Andreas Kling
6ea8ce500c
Use HashMap::remove() in some places that I wanted it.
2018-10-13 14:26:37 +02:00
Andreas Kling
e16d145cb4
Some color cleanup.
2018-10-12 23:02:23 +02:00
Andreas Kling
6f9e0e3876
After moving a window, try to repaint a bit less.
...
Only repaint windows that intersect either the old or the new rect.
Also only repaint those rects in the root widget.
2018-10-12 19:39:48 +02:00
Andreas Kling
16576112b0
Add a CheckBox widget.
2018-10-12 14:16:40 +02:00
Andreas Kling
73895ce043
Add a clock widget.
2018-10-12 12:18:59 +02:00
Andreas Kling
6f6f9bd84d
Window contents move along with the window!
2018-10-12 02:41:27 +02:00
Andreas Kling
64127e0637
Very hacky support for dragging a window around.
2018-10-12 02:24:05 +02:00
Andreas Kling
22721e6729
The WindowManager can now react to mouse events on the window title bar.
2018-10-12 01:48:18 +02:00
Andreas Kling
5d125e40d9
Deliver mouse events to the appropriate Window.
2018-10-12 01:26:20 +02:00
Andreas Kling
f2fa7b615f
Small refactor.
2018-10-12 01:20:06 +02:00
Andreas Kling
02f4d6ef8e
Move windowing stuff from AbstractScreen to WindowManager.
2018-10-12 01:11:38 +02:00
Andreas Kling
415c4b90c5
Start adding a Window class.
2018-10-12 01:03:22 +02:00
Andreas Kling
a6e0577f30
Some work on window decorations.
2018-10-11 23:25:07 +02:00
Andreas Kling
a4491e9630
More hacking on Widgets.
2018-10-11 16:52:40 +02:00