Commit graph

1756 commits

Author SHA1 Message Date
Andreas Kling
9fca94269e Kernel: Move TTY-related files into Kernel/TTY/. 2019-04-03 12:28:45 +02:00
Andreas Kling
f9864940eb Kernel: Move FS-related files into Kernel/FileSystem/ 2019-04-03 12:25:24 +02:00
Andreas Kling
f6d0e1052b Kernel: Make LoopbackAdapter eternally allocated. 2019-04-03 12:15:42 +02:00
Andreas Kling
beb9c970c9 AK: Remove useless ktime.h 2019-04-03 12:09:27 +02:00
Andreas Kling
60f236b285 AK: Clean up some of the confusion that is AK/kmalloc.{cpp,h} 2019-04-03 12:07:41 +02:00
Andreas Kling
d11b5407a3 Kernel: Get rid of the GPL elf.h and import exec_elf.h from OpenBSD. 2019-04-03 11:30:56 +02:00
Andreas Kling
401d3662c6 GInputBox: Make the input text box a bit taller. 2019-04-02 20:48:37 +02:00
Andreas Kling
2580d4b911 IRCClient: Crash if server name resolution fails.
This is just so that I can catch it immediately. It obviously needs a bit of
work to feel right.
2019-04-02 20:42:59 +02:00
Andreas Kling
cc20eef7ef IRCClient: Ask the user which IRC server to connect to on startup. 2019-04-02 20:40:45 +02:00
Andreas Kling
76ce68ac48 GSocket: Add a connect() overload that takes a hostname instead of an IP. 2019-04-02 20:40:10 +02:00
Andreas Kling
ff93d3f362 LookupServer: Only interpret A records as 32-bit IPv4 addresses.
This fixes a bug where CNAME records would be interpreted as if they were
IP addresses, causing much confusion.
2019-04-02 20:39:33 +02:00
Andreas Kling
17e02e7450 Move NetworkOrdered.h to AK/ since it's used in both kernel and userspace. 2019-04-02 20:04:54 +02:00
Andreas Kling
649c81a714 Kernel: Move networking related files into Kernel/Net/. 2019-04-02 19:54:38 +02:00
Andreas Kling
718bea73b3 Kernel: Add a LoopbackAdapter for talking to yourself via 127.0.0.1.
Choosing adapter for transmit is done by adapter_for_route_to(IPv4Address).
This is just hard-coded logic right now but can be expanded to support a
proper routing table.

Also start moving kernel networking code into Kernel/Net/.
2019-04-02 15:46:44 +02:00
Andreas Kling
f8a1d2746e FileManager: Rename DirectoryTableView => DirectoryView. 2019-04-02 14:43:56 +02:00
Andreas Kling
b797458962 GTreeView: Support navigating the tree with the up/down keys. 2019-04-02 03:18:26 +02:00
Andreas Kling
6673284b06 LibGUI: Switch to a resizing cursor when hovering or using a GSplitter.
Also expose the various standard cursors on WSWindowManager so they can
be reused by the override mechanism.
2019-04-02 02:34:09 +02:00
Andreas Kling
94c68dc55a Kernel: Spawn the Launcher by default. 2019-04-01 22:04:09 +02:00
Andreas Kling
c9b0d87927 LibGUI: Fix broken doubleclick detection due to uninitialized GElapsedTimer. 2019-04-01 22:03:32 +02:00
Andreas Kling
ee4d7c18c8 Kernel: Use a multiboot header instead of a convoluted two-part bootloader.
The old bootloader was hilariously complicated, requiring a floppy disk with
the kernel on it, and a hard drive with the file system. This patch removes
the floppy disk from the equation and replaces it with a multiboot header.
This means the kernel can now be booted with qemu-system-i386 -kernel kernel
2019-04-01 21:43:07 +02:00
Andreas Kling
d5a9f4596b Kernel: Add a blunt big process lock.
We can't have multiple threads in the same process running in the kernel
at the same time, so let's have a per-process lock that threads have to
acquire on syscall entry/exit (and yield while blocked.)
2019-04-01 20:04:29 +02:00
Andreas Kling
54ea35703a WindowServer: Remove redundant client_id's from WSAPIClientRequest classes. 2019-04-01 19:18:17 +02:00
Andreas Kling
0cad4bdc90 WindowServer: Make various function arguments const. 2019-04-01 19:14:57 +02:00
Andreas Kling
dcf6726487 WindowServer: Add support for per-window override cursors.
Use this to implement automatic switching to an I-beam cursor when hovering
over a GTextEditor. :^)
2019-03-31 23:52:02 +02:00
Andreas Kling
42c95959a8 WindowServer: Show a special "move" cursor when dragging windows around. 2019-03-31 22:42:13 +02:00
Andreas Kling
af09f994ba WindowServer: Remove the old cursor character bitmaps. 2019-03-31 22:38:58 +02:00
Andreas Kling
c992534f73 WindowServer: Show directional cursors when resizing windows. 2019-03-31 22:27:37 +02:00
Andreas Kling
90b2723e7a AK: Tweak CALLABLE_WHEN macro in Retained. 2019-03-31 22:11:13 +02:00
Andreas Kling
2334ffcbf8 WindowServer: Add a WSCursor class (a bitmap and a hotspot.)
Also import a bunch of cursors I drew. Only the default ("arrow") cursor is
ever used so far.
2019-03-31 22:09:10 +02:00
Andreas Kling
25f28a54a1 Terminal+LibGUI: Make the terminal cursor blink.
Added a GTimer class to help with this. It's just a simple GObject subclass
that sets up an event loop timer and invokes a callback on timeout.
2019-03-30 21:40:57 +01:00
Andreas Kling
245c4bd7c8 Kernel: Add a bit of debug output in do_exec() to learn about thread counts. 2019-03-30 21:14:40 +01:00
Andreas Kling
6d9fa1026b LibGUI: Fix bad initial layout of GScrollableWidget's scrollbars.
If it's the first time we're laying these out, we can't rely on the width()
or height() to be set, so instead use preferred_size().
2019-03-30 20:42:41 +01:00
Andreas Kling
eec0a64444 IRCClient: Fix wrong label in "Join channel" window. 2019-03-30 20:35:23 +01:00
Andreas Kling
9ac5909394 LibGUI: Highlight the GSplitter when hovering over it. 2019-03-30 14:04:53 +01:00
Andreas Kling
74786f2d5a IRCClient: Use GSplitter in the window layouts.
This really brings the UI to life in a pleasant way. It's a bit annoying
that you can't initiate a resize by clicking on the shading of a splitter
resizer that actually belongs to the neighboring GFrame, I'm not sure how
to fix that yet but I'll think of something.
2019-03-30 13:57:34 +01:00
Andreas Kling
9538c06a45 LibGUI: Add a simple GSplitter container widget.
This allows you to put multiple widgets in a container and makes the space
in between them draggable to resize the two adjacent widgets.
2019-03-30 13:53:30 +01:00
Andreas Kling
f242d6e559 FileManager: Tweak look of thumbnailing progress bar.
Since it's inside a status bar, it looks a bit better when using a panel
shape with sunken shadow.
2019-03-30 13:12:59 +01:00
Andreas Kling
de57628a46 GTreeView: Notify the GScrollableWidget about content size changes.
This makes the tree view scrollable at last.
2019-03-30 04:58:31 +01:00
Andreas Kling
6ab55801e2 GFileSystemModel: Don't reload icons every time they are requested.
This was really slugging up the interactive resizing. :^)
2019-03-30 04:20:28 +01:00
Andreas Kling
73f3e05ebb Stopwatch: Print the result in decimal instead of hexadecimal. 2019-03-30 04:20:08 +01:00
Andreas Kling
4506e3a085 GTreeView: Remove test model I was using during bringup. 2019-03-30 03:49:39 +01:00
Andreas Kling
a92710ce3f GTreeView: Handle the item expand/collapse toggles separately. 2019-03-30 03:44:08 +01:00
Andreas Kling
a535c7453f GTreeView: On model selection change, open the selected index. 2019-03-30 03:30:50 +01:00
Andreas Kling
2c6a597d77 FileManager: Make the tree view follow the directory view navigations. 2019-03-30 03:27:25 +01:00
Andreas Kling
f10e0d0546 FileManager: Make the directory view follow the tree view selection. 2019-03-30 02:22:38 +01:00
Andreas Kling
be42382a3a Base: Add an icon for a slightly open-looking folder. 2019-03-30 02:22:16 +01:00
Andreas Kling
c3bc0eeb86 GFileSystemModel: Add a special icon for the selected folder.
I don't know if this will always make sense but it does make sense within
the only current client (FileManager) so let's go with it for now.
2019-03-30 02:04:03 +01:00
Andreas Kling
025a50d9cb GTreeView: Tweak line tree back and forth a bit. 2019-03-30 01:42:16 +01:00
Andreas Kling
1963391ca6 GTreeView: Add basic selection support. 2019-03-29 20:36:15 +01:00
Andreas Kling
967eec1e52 GTreeView: Add expand/collapse buttons to items with children. 2019-03-29 20:18:15 +01:00