Commit graph

46670 commits

Author SHA1 Message Date
Andreas Kling 03a0dc0103 Add a /dev/zero to the small.fs image. 2018-10-14 02:09:34 +02: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 3ebea05996 Add a simple MsgBox() :^) 2018-10-14 00:21:42 +02:00
Andreas Kling e9e7f7a714 Improve TextBox text placement a little bit. 2018-10-13 23:23:11 +02:00
Andreas Kling d305c316e1 Add TextBox::onReturnPressed. 2018-10-13 23:19:44 +02:00
Andreas Kling 7a0a7abc52 Try out a signal-like system like this:
auto* b = new Button;
b->onClick = [] (Button&) {
    printf("The button was clicked!\n");
};
2018-10-13 23:01:06 +02:00
Andreas Kling a3fb19fe9c Use fooEvent() type names for the virtual event handlers. 2018-10-13 22:51:50 +02:00
Andreas Kling dfb70ed234 Start working on a simple TextBox widget. 2018-10-13 22:46:34 +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 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 16fff6dff7 Add a root .gitignore. 2018-10-13 17:00:27 +02:00
Andreas Kling 3e9a45d7f4 Add WeakPtr/Weakable templates. 2018-10-13 15:41:24 +02:00
Andreas Kling b7efd92937 Make SinglyLinkedList destruction actually work. 2018-10-13 14:29:00 +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 969334505d Add HashMap::remove(). 2018-10-13 14:23:47 +02:00
Andreas Kling c2ef54c044 Add HashTable::remove() and fix a bug where ConstIterator would skip the first. 2018-10-13 14:22:09 +02:00
Andreas Kling f794190de0 Add a DoublyLinkedList template and start using it for HashTable. 2018-10-13 13:50:44 +02:00
Andreas Kling 9a387d96da Use Vector::remove() in a place I wished I had it earlier. 2018-10-13 01:19:25 +02:00
Andreas Kling 7777c8844b Add Vector::remove(). 2018-10-13 01:17:36 +02:00
Andreas Kling 750b27cb07 Ext2FileSystem::readInode() should return an empty buffer for 0-length files. 2018-10-13 00:50:35 +02:00
Andreas Kling c2d42710bb Fix build. 2018-10-13 00:44:54 +02:00
Andreas Kling f20977c65f Add a basic Listbox widget. 2018-10-13 00:20:44 +02:00
Andreas Kling 8016139430 Improve the "k" in Peanut8x10 a bit. 2018-10-12 23:12:17 +02:00
Andreas Kling e16d145cb4 Some color cleanup. 2018-10-12 23:02:23 +02:00
Andreas Kling aceedaf957 Clip Painter operations to the screen rect. 2018-10-12 22:50:28 +02:00
Andreas Kling b5ff34174d Label should respect background/foreground color. 2018-10-12 21:00:17 +02:00
Andreas Kling 1df47d3ed5 Set KeyEvent modifier bits from SDL key event. 2018-10-12 20:56:22 +02:00
Andreas Kling b999a77d0f Improve KeyEvent a bit.
Now it has a text() which is what you'll usually want.
2018-10-12 20:55:06 +02:00
Andreas Kling fb4ae12bc2 Add a visual bell to TerminalWidget. Also backspace. 2018-10-12 20:05:11 +02:00
Andreas Kling 20a1795218 Improve CheckBox style a bit. 2018-10-12 19:47:20 +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 74aa4d5345 Fix CheckBox caption position. 2018-10-12 17:00:51 +02:00
Andreas Kling ff0ce2b921 Painter::TextAlignment::Center vertical fix. 2018-10-12 16:57:43 +02:00
Andreas Kling 0dcdbe3e03 Make buttons pressable. 2018-10-12 15:52:41 +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 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 bd6172e3c7 Use Font in more places. 2018-10-11 23:59:39 +02:00