Andreas Kling
b673c1a77d
Build Painter & friends into LibC. Use it in the GUI test app.
2019-01-14 20:02:51 +01:00
Andreas Kling
1d914cbd84
Minor GUI API things + make Button corners properly transparent.
2019-01-13 06:26:20 +01:00
Andreas Kling
edc827077e
Optimize WindowManager::flush() with fast_dword_copy().
2019-01-12 21:45:45 +01:00
Andreas Kling
f2551c45ab
Add fast dword-sized copy and fill to the Painter code.
2019-01-12 20:56:09 +01:00
Andreas Kling
20156f9ec5
Fix broken focus rects (due to yet another Rect semantics bug.)
2019-01-12 17:34:47 +01:00
Andreas Kling
ecb7e16202
Fix more underdraw bugs in Button due to new Rect semantics.
2019-01-12 17:18:52 +01:00
Andreas Kling
0570bbb6cc
Clip painters to widget rect by default to prevent overdraw.
2019-01-12 17:08:45 +01:00
Andreas Kling
bac9aa90dd
Update Painter class to the new coding style.
2019-01-12 17:02:54 +01:00
Andreas Kling
959ef2e681
Fix rect drawing to grok new Rect semantics.
2019-01-12 16:56:55 +01:00
Andreas Kling
8d78b0a8df
Tidy up the h/v line drawing loops a bit.
2019-01-12 16:39:56 +01:00
Andreas Kling
780e15a6cc
All right, let's double buffer the display. It looks so much better.
...
This performs like dogshit. I need to make some optimizations. :^)
2019-01-12 06:39:34 +01:00
Andreas Kling
bb28c31531
Get rid of the "root widget" concept in WindowManager.
...
Instead just create a GraphicsBitmap wrapper around the display framebuffer
and teach Painter how to draw directly into a GraphicsBitmap.
2019-01-12 03:42:50 +01:00
Andreas Kling
e5e295052f
Hook up the PS2MouseDevice to the AbstractScreen+WindowManager.
...
Render the mouse cursor by xor'ing the pixels. I don't know anything about
hardware cursors yet and this way we don't need to recompose the window
hierarchy every time you move the mouse. :^)
2019-01-11 03:52:09 +01:00
Andreas Kling
8626e95509
Make Widgets/ build inside the kernel.
2019-01-10 22:52:14 +01:00
Andreas Kling
e180e2553a
Rename CBitmap to CharacterBitmap.
2019-01-10 05:41:49 +01:00
Andreas Kling
305aa25aae
Let's have an RGBA32 typedef for raw pixel data.
2019-01-10 05:36:32 +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
cfd76ade73
Stop recomposing the window hierarchy after every dang widget paint.
2019-01-09 04:46:16 +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
a9f256a745
Make the Widgets/ directory build again.
2018-12-21 02:18:16 +01:00
Andreas Kling
fc1facf5c0
Let widget have a font() instead of using Font::defaultFont() everywhere.
2018-10-14 13:06:05 +02:00
Andreas Kling
6f1b384cde
More work on focus.
...
ListBox now renders differently depending on focus state.
2018-10-13 20:59:25 +02:00
Andreas Kling
aceedaf957
Clip Painter operations to the screen rect.
2018-10-12 22:50:28 +02:00
Andreas Kling
ff0ce2b921
Painter::TextAlignment::Center vertical fix.
2018-10-12 16:57:43 +02:00
Andreas Kling
5412dac05d
Paint Button in a very Windows 3-ish style.
2018-10-12 14:58:16 +02:00
Andreas Kling
16576112b0
Add a CheckBox widget.
2018-10-12 14:16:40 +02:00
Andreas Kling
c7463aad11
Add a CBitmap class. The C is for Courage.
2018-10-12 12:49:45 +02:00
Andreas Kling
e23ac56017
Add a Painter::drawBitmap() and make Painter::drawText() use it.
2018-10-12 12:29:58 +02:00
Andreas Kling
73895ce043
Add a clock widget.
2018-10-12 12:18:59 +02:00
Andreas Kling
6637dec958
Put the font test into its own Window.
2018-10-12 10:06:50 +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
bd6172e3c7
Use Font in more places.
2018-10-11 23:59:39 +02:00
Andreas Kling
110d01941a
Add a simple Font class.
2018-10-11 23:54:30 +02:00
Andreas Kling
a6e0577f30
Some work on window decorations.
2018-10-11 23:25:07 +02:00
Andreas Kling
7df67570e6
Make an 8x10 version of Peanut. It looks a bit nicer I think.
2018-10-11 14:44:27 +02:00
Andreas Kling
ab5266b924
Rage hacking on TerminalWidget.
...
There's some really hideous plumbing with globals going on here, but my
priority right now is getting a basic VT100 terminal emulator working.
2018-10-11 12:33:03 +02:00
Andreas Kling
f337616741
More hacking on Widgets.
2018-10-11 01:48:09 +02:00
Andreas Kling
e810120260
Peanut8x8 can paint all the ASCII characters!
2018-10-11 00:56:28 +02:00
Andreas Kling
cb64ff229a
More work on the bitmap font.
2018-10-11 00:10:36 +02:00
Andreas Kling
77bac7216c
More rage hacking on Widgets. Some very basic text drawing. :^)
2018-10-10 20:06:58 +02:00
Andreas Kling
6f37429f57
Intense hacking on Widgets.
2018-10-10 16:49:36 +02:00