Commit Graph

1521 Commits

Author SHA1 Message Date
Andreas Kling
5b0cbf547d Base: Some work on various icons. 2019-03-17 00:33:49 +01:00
Andreas Kling
ec8bffb06d LibGUI: Let GTextEditor deal with its horizontal padding internally.
I originally wanted to have the padding concept in GScrollableWidget
but it's really finicky with the ruler and everything.
2019-03-16 23:16:37 +01:00
Andreas Kling
78039ef057 TextEditor: Add actions for undo and redo. Not hooked up yet. 2019-03-16 23:16:11 +01:00
Andreas Kling
3854e752cb LibGUI: Make GTextEditor inherit from GScrollableWidget.
This is quite nice, now we can share a ton of logic. :^)
2019-03-16 16:54:51 +01:00
Andreas Kling
6fbabac460 LibGUI: Factor out scrolling logic from GTableView into a GScrollableWidget.
This then becomes the base class for GTableView. I'd like to share as much
code as possible with GTextEditor and any other scrollable widgets.
2019-03-16 16:03:31 +01:00
Andreas Kling
dd5ca1940a AK: Hoist the assertion in Retainable::release() to RetainableBase.
This means we don't have to generate a __PRETTY_FUNCTION__ symbol there
for each and every specialization.
2019-03-16 13:48:56 +01:00
Andreas Kling
3ebb5fbb87 AK: Remove custom allocator feature from Vector.
This wasn't really used and generated a whole bunch of template bloat.
2019-03-16 13:24:39 +01:00
Andreas Kling
5dd79736c5 Kernel: Remove the one client of Vector-with-custom-allocator.
This was a silly experiment. If I want to save space here, I can do it in
one of many other ways.
2019-03-16 13:19:58 +01:00
Andreas Kling
313ee8dd19 Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
Andreas Kling
15657f0916 AK: Remove Buffer<T> since it was only ever instantiated with T=byte.
Instead make a specialized AK::ByteBufferImpl class for the backing store
of AK::ByteBuffer. This reduces template bloat.
2019-03-16 13:12:13 +01:00
Andreas Kling
eb610b309e LibGUI: Make class_name() public so you can always call it.
I found myself having to cast to GWidget* all the time when writing some
generic debugging code that just wanted to dump widget info.
2019-03-16 12:57:04 +01:00
Andreas Kling
955a0ff477 AK: Reduce template bloat by hoisting non-typed parts of Retainable.
This is a bit of an old school hack, but it does remove a whole bunch of
generated symbols.
2019-03-16 12:47:19 +01:00
Andreas Kling
f44ba6a4c6 IRCClient: Add handling of some basic messages and commands. 2019-03-16 12:21:42 +01:00
Andreas Kling
b4f787090c IRCClient: Add a little "(n)" indicator to window list for unread messages. 2019-03-16 02:14:53 +01:00
Andreas Kling
1394677528 IRCClient: Refactor window creation responsibilities.
IRCChannel and IRCQuery objects now create their own windows with the
help of an aid_create_window callback provided by IRCAppWindow.

There's still a bit of murk but this is already an improvement.
2019-03-16 01:45:49 +01:00
Andreas Kling
fc7f700c20 IRCClient: Rename IRCClientWindowFoo => IRCWindowFoo. 2019-03-16 01:15:19 +01:00
Andreas Kling
5c2d405e1f IRCClient: Add menus. 2019-03-16 01:10:48 +01:00
Andreas Kling
746144f783 WindowServer: Add missing handling of AddMenuSeparator client request. 2019-03-16 01:09:27 +01:00
Andreas Kling
2b6cf37d20 IRCClient: Add some more toolbar actions. Starting to look nice. 2019-03-16 00:21:11 +01:00
Andreas Kling
3a3aa74b2e IRCClient: Add a toolbar with some actions. 2019-03-15 23:24:40 +01:00
Andreas Kling
b54ab06595 GTableView: Add a way to turn off alternating row colors. 2019-03-15 21:41:27 +01:00
Andreas Kling
491aa112ab IRClient: Add a member list to channel views. 2019-03-15 18:25:51 +01:00
Andreas Kling
08c15be0ca IRCClient: Add ability to send query messages.
You can't open a query yet, but if someone starts one with you, you can
respond at least.
2019-03-15 18:02:38 +01:00
Andreas Kling
7e3673f710 GTextEditor: Disable the ruler in single-line mode.
Also make it possible to hide the ruler in multi-line mode, if you should
want to do that. :^)
2019-03-15 17:54:05 +01:00
Andreas Kling
1fc283ed7d IRCClient+LibGUI: Add an input box so we can send messages to channels.
Implement this using a GTextEditor with a special single-line mode.
This new mode needs some polishing, but it's already very useful.
2019-03-15 17:37:13 +01:00
Andreas Kling
ad08165a25 LibGUI: Hit testing should skip invisible widgets. 2019-03-15 16:45:27 +01:00
Andreas Kling
a3d5ba8f23 LibGUI: Don't autofill the background of GStackWidget. 2019-03-15 16:44:51 +01:00
Andreas Kling
c1f2f5a153 LibGUI: Add a mode where GTableModel automatically activates on selection. 2019-03-15 16:25:30 +01:00
Andreas Kling
84f5312dc2 LibGUI: Disable GBoxLayout debug spam. 2019-03-15 16:23:12 +01:00
Andreas Kling
1089cd1378 IRCClient: Start using GStackWidget for the subwindows. 2019-03-15 16:12:51 +01:00
Andreas Kling
497300c492 LibGUI: Add a GStackWidget for many widgets sharing a single location.
Call set_active_widget(GWidget*) to put a new widget on top.
2019-03-15 16:12:06 +01:00
Andreas Kling
ab92252ee6 IRCClient: Hide all the table view headers. 2019-03-15 14:57:35 +01:00
Andreas Kling
a5d538b389 GTableView: Add a way to hide the column headers.
There are many situations where you would want a table view without headers.
2019-03-15 14:50:36 +01:00
Andreas Kling
a23dddc56f IRCClient: Use a model for the window list. 2019-03-15 14:01:04 +01:00
Andreas Kling
eba5fd3f46 IRCClient: Rename IRCSubWindow => IRCClientWindow. 2019-03-15 13:20:46 +01:00
Andreas Kling
f004db19d0 IRCClient: Put the unhandled server messages nicely into the server log. 2019-03-15 13:16:29 +01:00
Andreas Kling
850c7504a2 IRCClient: Hacking on IRCClient bringup. 2019-03-15 13:07:04 +01:00
Andreas Kling
aa19735c5a IRCClient: Start working on a simple graphical IRC client.
This will be a nice way to exercise both LibGUI and the TCP/IP support. :^)
2019-03-15 12:14:23 +01:00
Andreas Kling
f87dec1cbf AK: Add CircularQueue::at(). 2019-03-15 12:13:51 +01:00
Andreas Kling
5dfdcf796d TCP: Correct checksum for packets with odd number of bytes. 2019-03-14 19:57:54 +01:00
Andreas Kling
4919b926f4 About: Oops, fill the window with background color. 2019-03-14 19:24:08 +01:00
Andreas Kling
49f273c4ca WindowServer: Fix crash when initiating resize from a window edge. 2019-03-14 18:49:12 +01:00
Andreas Kling
b7ad35d040 Terminal: Enough compat work for Lynx to actually load web pages. 2019-03-14 18:33:21 +01:00
Andreas Kling
ee0f00c644 Terminal: Use TERM=xterm by default, and implement some more escapes. 2019-03-14 17:39:50 +01:00
Andreas Kling
1565dc3ab3 Terminal: Add some logging for the 'r' final.
I haven't implemented scrolling regions yet, but this will at least give
me some indication that they're being used.
2019-03-14 16:25:19 +01:00
Andreas Kling
f9569db1e5 TCP: Collect the payload if present in a packet with FIN set. 2019-03-14 15:28:23 +01:00
Andreas Kling
25e521f510 TCP: Start working on auto-closing connections when we get FIN. 2019-03-14 15:23:32 +01:00
Andreas Kling
4629272135 Userland: Turn the tc test util into a simple dumb HTTP client. 2019-03-14 15:19:20 +01:00
Andreas Kling
2c3cf22bc9 LibC: A whole bunch of compat work towards porting Lynx. 2019-03-14 15:18:15 +01:00
Andreas Kling
48590a0e51 LibC: Oops, rename getgrname() -> getgrnam(). 2019-03-14 15:16:11 +01:00