Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-03-17 | Add client-side double buffering of window backing stores. | Andreas Kling | |
This prevents flicker and looks rather good. The main downside is that resizing gets even more sluggish. That's the price we pay for now. | |||
2019-03-17 | LibGUI: Ignore GWindow::update() with an empty rect. | Andreas Kling | |
2019-03-17 | LibGUI: Don't nap in event loop if there are already queued events. | Andreas Kling | |
This mirrors the WindowServer fix. | |||
2019-03-16 | LibGUI: Let GTextEditor deal with its horizontal padding internally. | Andreas Kling | |
I originally wanted to have the padding concept in GScrollableWidget but it's really finicky with the ruler and everything. | |||
2019-03-16 | LibGUI: Make GTextEditor inherit from GScrollableWidget. | Andreas Kling | |
This is quite nice, now we can share a ton of logic. :^) | |||
2019-03-16 | LibGUI: Factor out scrolling logic from GTableView into a GScrollableWidget. | Andreas Kling | |
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 | LibGUI: Make class_name() public so you can always call it. | Andreas Kling | |
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 | IRCClient: Add menus. | Andreas Kling | |
2019-03-15 | IRCClient: Add a toolbar with some actions. | Andreas Kling | |
2019-03-15 | GTableView: Add a way to turn off alternating row colors. | Andreas Kling | |
2019-03-15 | GTextEditor: Disable the ruler in single-line mode. | Andreas Kling | |
Also make it possible to hide the ruler in multi-line mode, if you should want to do that. :^) | |||
2019-03-15 | IRCClient+LibGUI: Add an input box so we can send messages to channels. | Andreas Kling | |
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 | LibGUI: Hit testing should skip invisible widgets. | Andreas Kling | |
2019-03-15 | LibGUI: Don't autofill the background of GStackWidget. | Andreas Kling | |
2019-03-15 | LibGUI: Add a mode where GTableModel automatically activates on selection. | Andreas Kling | |
2019-03-15 | LibGUI: Disable GBoxLayout debug spam. | Andreas Kling | |
2019-03-15 | LibGUI: Add a GStackWidget for many widgets sharing a single location. | Andreas Kling | |
Call set_active_widget(GWidget*) to put a new widget on top. | |||
2019-03-15 | GTableView: Add a way to hide the column headers. | Andreas Kling | |
There are many situations where you would want a table view without headers. | |||
2019-03-15 | IRCClient: Start working on a simple graphical IRC client. | Andreas Kling | |
This will be a nice way to exercise both LibGUI and the TCP/IP support. :^) | |||
2019-03-13 | Kernel: Oops, gettimeofday()'s tv_usec should be micro, not milliseconds. | Andreas Kling | |
2019-03-11 | GTextEditor: Make sure the scroll corner helper widget is filled in. | Andreas Kling | |
2019-03-10 | LibGUI: Don't fill widgets with background color by defualt. | Andreas Kling | |
2019-03-10 | ProcessManager: Tidy up the memory stats and align everything nicely. | Andreas Kling | |
2019-03-10 | GTextEditor: Let the Tab key insert up to 4 spaces. | Andreas Kling | |
2019-03-10 | LibGUI: Preserve selection when resorting a GSortingProxyTableModel. | Andreas Kling | |
2019-03-10 | LibGUI: Make buttons a little bit sharper. | Andreas Kling | |
2019-03-09 | GTextEditor: Allow jumping lines by hitting Left/Right at start/end of line. | Andreas Kling | |
2019-03-09 | LibGUI: Fix small painting glitch in GScrollBar buttons. | Andreas Kling | |
2019-03-09 | GTableView: Minor painting cleanup. | Andreas Kling | |
2019-03-09 | GTextEditor: Simplify painting of the ruler. | Andreas Kling | |
2019-03-09 | About+LibGUI: Use a GBoxLayout for the About app. | Andreas Kling | |
2019-03-09 | GEventLoop: Make the server fd/pid global, and only connect to server once. | Andreas Kling | |
2019-03-09 | LibGUI: Use PainterStateSaver in GStyle::paint_button(). | Andreas Kling | |
2019-03-09 | GTextEditor: Use Painter save/restore to simplify. | Andreas Kling | |
2019-03-09 | AK: Add a basic QuickSort template implementation. | Andreas Kling | |
It was depressing not being able to capture anything when passing a lambda to qsort_r() so let's just have our own QuickSort. I was gonna have to do this eventually anyway. :^) | |||
2019-03-09 | FileManager: Hook up a GSortingProxyTableModel so we get sorted files. :^) | Andreas Kling | |
The next step here is coming up with a nice way to always put directories ahead of files. | |||
2019-03-09 | LibGUI: Minor tidying. | Andreas Kling | |
2019-03-09 | LibGUI: Use a separate data role for the table model sorting order. | Andreas Kling | |
This allows data to be displayed nicely while sorting happens based on some underlying raw data. :^) | |||
2019-03-09 | GTableView: Allow changing sort options by clicking column headers. | Andreas Kling | |
Also paint the sorted column slightly differently to indicate what's up. | |||
2019-03-09 | Make it possible to sort a GTableModel by column+order. | Andreas Kling | |
This is accomplished by putting a GSortingProxyTableModel between the model and the view. It's pretty simplistic but it works for this use case. :^) | |||
2019-03-08 | GTextEditor: Use a subwidget for the scrollbar corner and tighten clipping. | Andreas Kling | |
2019-03-08 | GTextEditor: Backspace and Delete should work regardless of modifier state. | Andreas Kling | |
2019-03-08 | GTextEditor: Refactor selection into a GTextRange class. | Andreas Kling | |
This is a bit more expressive than "selection start + current cursor". | |||
2019-03-08 | LibGUI+WindowServer: Implement drag-to-select behavior in GTextEditor. | Andreas Kling | |
To make this feel right, I needed to start passing keyboard modifiers along with mouse events. That allows shift-clicking to extend the selection. :^) | |||
2019-03-08 | GTextEditor: Fix text_position_at() behavior when passed negative values. | Andreas Kling | |
2019-03-08 | GTextEditor: Simplify delete_selection(). | Andreas Kling | |
2019-03-08 | GTextEditor: Ctrl+A should select the entire document. | Andreas Kling | |
2019-03-08 | GTextEditor: Replace selection on input or Backspace/Delete. | Andreas Kling | |
2019-03-08 | GTextEditor: Work on cut/copy/paste operations. | Andreas Kling | |
2019-03-08 | Seal clipboard buffers after copying data into them. | Andreas Kling | |
This is just a quick safety mechanism to ensure that nobody alters the contents of a clipping after it's been set. Ultimately this will be replaced by a more sophisticated SHM object. |