ladybird/Kernel
Andreas Kling 57ff293a51 LibGUI: Implement nested event loops to support dialog boxes.
This patch adds a simple GMessageBox that can run in a nested event loop.
Here's how you use it:

    GMessageBox box("Message text here", "Message window title");
    int result = box.exec();

The next step is to make the WindowServer respect the modality flag of
these windows and prevent interaction with other windows in the same
process until the modal window has been closed.
2019-03-19 00:01:02 +01:00
..
Boot Bootloader: Bump sector count once again. 2019-02-12 12:09:50 +01:00
.bochsrc Kernel: Start adding support for E1000 network adapters. 2019-03-10 15:25:33 +01:00
.gitignore Kernel: Bring up enough networking code that we can respond to ARP requests. 2019-03-11 23:21:38 +01:00
_start.cpp Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
ARP.h Kernel: Collect IPv4 stuff in IPv4.h and ARP stuff in ARP.h. 2019-03-12 12:49:01 +01:00
Assertions.h Add a simple IDEDiskDevice class that implements DiskDevice from VFS. 2018-10-16 14:17:43 +02:00
BlockDevice.cpp Kernel: Add empty BlockDevice class. 2019-02-16 00:52:58 +01:00
BlockDevice.h Kernel: Make BochsVGADevice a BlockDevice and support mmapping it. 2019-02-16 09:57:42 +01:00
BXVGADevice.cpp Kernel: Minor tidying in BXVGADevice. 2019-03-08 02:54:39 +01:00
BXVGADevice.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
CharacterDevice.cpp Kernel: Add empty BlockDevice class. 2019-02-16 00:52:58 +01:00
CharacterDevice.h Kernel: Make BochsVGADevice a BlockDevice and support mmapping it. 2019-02-16 09:57:42 +01:00
CMOS.cpp Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
CMOS.h Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
Console.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
Console.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
Device.cpp Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
Device.h Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
DevPtsFS.cpp AK: Add Retained<T>, like RetainPtr, but never null. 2019-02-25 12:43:52 +01:00
DevPtsFS.h AK: Add Retained<T>, like RetainPtr, but never null. 2019-02-25 12:43:52 +01:00
DiskBackedFileSystem.cpp AK: Add Retained<T>, like RetainPtr, but never null. 2019-02-25 12:43:52 +01:00
DiskBackedFileSystem.h More moving towards using signed types. 2019-02-25 22:06:55 +01:00
DiskDevice.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DiskDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
DoubleBuffer.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
DoubleBuffer.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
E1000NetworkAdapter.cpp Kernel: Bring up enough networking code that we can respond to ARP requests. 2019-03-11 23:21:38 +01:00
E1000NetworkAdapter.h Kernel: Bring up enough networking code that we can respond to ARP requests. 2019-03-11 23:21:38 +01:00
elf.h Make it possible to build the Kernel on a macOS host. 2018-12-02 23:34:50 +01:00
ELFImage.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
ELFImage.h Kernel: Simplify ELF loading a bit. 2019-02-26 15:52:06 +01:00
ELFLoader.cpp Kernel: Simplify ELF loading a bit. 2019-02-26 15:52:06 +01:00
ELFLoader.h Use the entry point address from the ELF header instead of looking up _start. 2018-12-29 03:28:55 +01:00
EthernetFrameHeader.h Kernel: More work on the ICMP and IPv4 support. 2019-03-12 12:43:30 +01:00
EtherType.h Kernel: Bring up enough networking code that we can respond to ARP requests. 2019-03-11 23:21:38 +01:00
ext2_fs.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
ext2_types.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
Ext2FileSystem.cpp Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln. 2019-03-02 01:52:24 +01:00
Ext2FileSystem.h AK: Remove Buffer<T> since it was only ever instantiated with T=byte. 2019-03-16 13:12:13 +01:00
FIFO.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
FIFO.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
FileBackedDiskDevice.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
FileBackedDiskDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
FileDescriptor.cpp Kernel: And some more KResult/KResultOr<T> porting work. 2019-03-06 22:30:13 +01:00
FileDescriptor.h Kernel: And some more KResult/KResultOr<T> porting work. 2019-03-06 22:30:13 +01:00
FileSystem.cpp Kernel: Oops, fix Vector assertion in FS::Sync. 2019-02-28 22:33:00 +01:00
FileSystem.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
FullDevice.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
FullDevice.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
i386.cpp Kernel: Remove the one client of Vector-with-custom-allocator. 2019-03-16 13:19:58 +01:00
i386.h Use modern C++ attributes instead of __attribute__ voodoo. 2019-02-15 12:30:48 +01:00
i8253.cpp Clean up some uninteresting log spam. 2019-02-06 11:32:23 +01:00
i8253.h Implement event loop timers. 2019-02-01 03:50:06 +01:00
ICMP.h Kernel: Collect IPv4 stuff in IPv4.h and ARP stuff in ARP.h. 2019-03-12 12:49:01 +01:00
IDEDiskDevice.cpp Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
IDEDiskDevice.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
init.cpp Kernel: Add a NetworkTask and a received network packet queue. 2019-03-11 12:43:45 +01:00
InodeIdentifier.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
InodeMetadata.h Kernel: Allow uid 0 to read/write/execute any file. 2019-02-27 17:08:13 +01:00
IO.h Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17:26 +01:00
IPv4.h LibGUI: Add GTCPSocket and base class GSocket (inherits from GIODevice.) 2019-03-18 14:09:58 +01:00
IPv4Socket.cpp IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
IPv4Socket.h IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
IRQHandler.cpp More coding style changes. 2018-12-03 00:39:25 +01:00
IRQHandler.h More coding style changes. 2018-12-03 00:39:25 +01:00
kassert.h Use modern C++ attributes instead of __attribute__ voodoo. 2019-02-15 12:30:48 +01:00
KeyboardDevice.cpp Kernel: Detect the Delete key. 2019-03-07 16:20:00 +01:00
KeyboardDevice.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
KeyCode.h Detect the "Logo" (Windows/Apple/whatever) key and use it for window resize. 2019-03-03 12:56:48 +01:00
kmalloc.cpp LibC: Enough compat work to make binutils-2.32 build and run. 2019-02-23 17:24:50 +01:00
kmalloc.h Use modern C++ attributes instead of __attribute__ voodoo. 2019-02-15 12:30:48 +01:00
kprintf.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
kprintf.h Use modern C++ attributes instead of __attribute__ voodoo. 2019-02-15 12:30:48 +01:00
KResult.h Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
kstdio.h Fix Userland build. 2019-01-13 04:31:16 +01:00
KSyms.cpp Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
KSyms.h Kernel: Make dump_backtrace() kinda sorta work. 2019-02-24 14:51:48 +01:00
ktime.h Fix some minor build warnings. 2018-10-17 16:48:43 +02:00
Limits.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
linker.ld Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
LocalSocket.cpp Kernel: recvfrom() should treat the address arguments as outparams. 2019-03-13 14:47:21 +01:00
LocalSocket.h Kernel: recvfrom() should treat the address arguments as outparams. 2019-03-13 14:47:21 +01:00
Lock.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
MACAddress.h Kernel: Cache MAC<->IP mappings (from ARP responses) seen on the wire. 2019-03-12 00:56:33 +01:00
makeall.sh LibGUI: Implement nested event loops to support dialog boxes. 2019-03-19 00:01:02 +01:00
Makefile IPv4: Factor out UDP parts of IPv4Socket into a UDPSocket class. 2019-03-14 12:43:18 +01:00
MasterPTY.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
MasterPTY.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
MemoryManager.cpp Kernel: More work on bringing up E1000 support. 2019-03-11 11:11:29 +01:00
MemoryManager.h Kernel: More work on Ethernet support. 2019-03-10 23:40:09 +01:00
mkmap.sh Omit duplicate lines from the ksyms map. 2018-12-03 02:23:49 +01:00
MousePacket.h Kernel+WindowServer: Move mouse input signal parsing to kernel driver. 2019-03-05 14:01:03 +01:00
NetworkAdapter.cpp Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
NetworkAdapter.h Kernel: Add a way to look up NetworkAdapters by IPv4 address. 2019-03-12 13:30:36 +01:00
NetworkOrdered.h IPv4: More hacking on bringing up TCP support. 2019-03-13 23:14:30 +01:00
NetworkTask.cpp AK: Make ByteBuffer's copy() and wrap() take void*. 2019-03-17 00:36:41 +01:00
NetworkTask.h Kernel: Add a NetworkTask and a received network packet queue. 2019-03-11 12:43:45 +01:00
NullDevice.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
NullDevice.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
PCI.cpp Kernel: More work on bringing up E1000 support. 2019-03-11 11:11:29 +01:00
PCI.h Kernel: More work on bringing up E1000 support. 2019-03-11 11:11:29 +01:00
PIC.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
PIC.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
Process.cpp Kernel: Handle unaligned ELF segments gracefully in the executable loader. 2019-03-14 14:51:43 +01:00
Process.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
ProcFS.cpp ProcessManager: Show some basic system memory stats below the process table. 2019-03-10 12:13:22 +01:00
ProcFS.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
PS2MouseDevice.cpp Kernel+WindowServer: Move mouse input signal parsing to kernel driver. 2019-03-05 14:01:03 +01:00
PS2MouseDevice.h Kernel+WindowServer: Move mouse input signal parsing to kernel driver. 2019-03-05 14:01:03 +01:00
PTYMultiplexer.cpp Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
PTYMultiplexer.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
Queue.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
RandomDevice.cpp IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
RandomDevice.h IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
RTC.cpp Kernel: Fix wrong calculation of current Unix timestamp. 2019-02-19 02:39:18 +01:00
RTC.h WindowServer: Put a clock in the top right corner of the screen. 2019-02-13 09:27:08 +01:00
run IPv4: Begin fleshing out TCP support. 2019-03-13 17:17:07 +01:00
Scheduler.cpp IPv4: More work on the TCP implementation. 2019-03-14 00:20:44 +01:00
Scheduler.h Kernel: When a lock is busy, donate remaining process ticks to lock holder. 2019-02-07 11:14:58 +01:00
SlavePTY.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
SlavePTY.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
Socket.cpp Kernel: Factor out TCP parts of IPv4Socket into a TCPSocket class. 2019-03-14 12:20:38 +01:00
Socket.h Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
StdLib.cpp Start fixing things up to build with a proper cross-compiler. 2019-02-22 10:23:28 +01:00
StdLib.h Kernel: Bring up enough networking code that we can respond to ARP requests. 2019-03-11 23:21:38 +01:00
sync.sh IRCClient: Start working on a simple graphical IRC client. 2019-03-15 12:14:23 +01:00
SyntheticFileSystem.cpp Kernel: Make a copy of the dirty inode list before iterating in sync(). 2019-02-28 21:51:59 +01:00
SyntheticFileSystem.h Kernel: Make a copy of the dirty inode list before iterating in sync(). 2019-02-28 21:51:59 +01:00
Syscall.cpp Kernel: Remove leftover debug spam when returning from mkdir() syscall. 2019-03-14 14:11:35 +01:00
Syscall.h Kernel: recvfrom() should treat the address arguments as outparams. 2019-03-13 14:47:21 +01:00
system.h The syncd loop can just be a lambda. 2018-12-24 23:10:48 +01:00
TCP.h TCP: Start working on auto-closing connections when we get FIN. 2019-03-14 15:23:32 +01:00
TCPSocket.cpp IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
TCPSocket.h IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
TSS.h Use modern C++ attributes instead of __attribute__ voodoo. 2019-02-15 12:30:48 +01:00
TTY.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
TTY.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
types.h More work on IPv4 sockets and /bin/ping. 2019-03-13 03:26:01 +01:00
UDP.h Kernel: Start fleshing out an UDP implementation. 2019-03-13 14:22:27 +01:00
UDPSocket.cpp IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
UDPSocket.h IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
UnixTypes.h Kernel: Start fleshing out an UDP implementation. 2019-03-13 14:22:27 +01:00
VirtualConsole.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
VirtualConsole.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
VirtualFileSystem.cpp Kernel: And some more KResult/KResultOr<T> porting work. 2019-03-06 22:30:13 +01:00
VirtualFileSystem.h Kernel: And some more KResult/KResultOr<T> porting work. 2019-03-06 22:30:13 +01:00
ZeroDevice.cpp Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00
ZeroDevice.h Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. 2019-02-25 21:21:12 +01:00