Commit graph

1975 commits

Author SHA1 Message Date
Andreas Kling
aa03a07e61 Taskbar+LibGUI: More work on bringup. 2019-04-03 21:04:16 +02:00
Andreas Kling
a22774ee3f Taskbar: Start working on a taskbar app.
I originally thought I would do this inside WindowServer, but let's try to
make it as a standalone app that communicates with WindowServer instead.
That will allow us to use LibGUI. :^)
2019-04-03 19:38:44 +02:00
Andreas Kling
318db1e48e WindowServer: Broadcast screen rect changes to all clients.
GUI clients can now obtain the screen rect via GDesktop::rect().
2019-04-03 17:22:14 +02:00
Andreas Kling
c02c9880b6 AK: Add Eternal<T> and use it in various places.
This is useful for static locals that never need to be destroyed:

Thing& Thing::the()
{
    static Eternal<Thing> the;
    return the;
}

The object will be allocated in data segment memory and will never have
its destructor invoked.
2019-04-03 16:52:25 +02:00
Andreas Kling
528054d192 GWindow: Don't ignore update(), it should repaint the whole window.
This was causing some apps to have an empty window on startup since the
call to update() in show() was effectively a no-op.
2019-04-03 15:54:16 +02:00
Andreas Kling
dde224fe44 FontEditor: Break out classes into separate files. 2019-04-03 15:23:13 +02:00
Andreas Kling
b9738fa8ac Kernel: Move VM-related files into Kernel/VM/.
Also break MemoryManager.{cpp,h} into one file per class.
2019-04-03 15:13:07 +02:00
Andreas Kling
39fd81174e Kernel: Tidy up kmalloc.cpp a tiny bit. 2019-04-03 14:41:40 +02:00
Andreas Kling
5b296718d8 GraphicsBitmap: Use MappedFile. 2019-04-03 14:32:45 +02:00
Andreas Kling
c0009e3173 PNGLoader: Use MappedFile. 2019-04-03 14:15:35 +02:00
Andreas Kling
3dc3754cde Font: Clean up AK::MappedFile and use it for mapping font files. 2019-04-03 13:51:49 +02:00
Andreas Kling
ab6bd3872b AK: Remove unused TemporaryFile class. 2019-04-03 13:20:08 +02:00
Andreas Kling
ce5d21ea19 Kernel: Remove unused Queue.h. 2019-04-03 13:19:45 +02:00
Andreas Kling
58c4d41c5f Kernel: Remove Limits.h 2019-04-03 13:18:42 +02:00
Andreas Kling
a095a90b51 Kernel: Remove ancient nprocess and nblocked globals.
These were not in sync with reality, and not used anywhere anyway.
2019-04-03 13:05:20 +02:00
Andreas Kling
ac46e45f6e Kernel: Remove unneeded kassert.h. 2019-04-03 12:51:10 +02:00
Andreas Kling
429bb091e7 Kernel: Remove now-unused _start.cpp 2019-04-03 12:40:09 +02:00
Andreas Kling
ab43658c55 Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
Andreas Kling
072ea7eece Kernel: Move ELF-related files into Kernel/ELF/. 2019-04-03 12:30:04 +02:00
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