Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-03-27 | LibC: Time-related POSIX compliance fixes. | Andreas Kling | |
2019-03-25 | LibGUI: Add GIcon::default_icon(name). | Andreas Kling | |
This is a convenience helper to instantiate a GIcon like so: auto icon = GIcon::default_icon("filetype-image"); This will give you the "filetype-image" icon in both 16x16 and 32x32 sizes. | |||
2019-03-25 | GItemView: Some improvements to keyboard navigation. | Andreas Kling | |
2019-03-25 | GTextEditor: Draw a simple border around single-line editors. | Andreas Kling | |
2019-03-25 | GItemView: Hide the horizontal scrollbar since we never need it. | Andreas Kling | |
This view always relayouts the content to fit the available width, so we don't need a horizontal scrollbar. :^) | |||
2019-03-25 | LibGUI: Ignore GWidget::update() on invisible widgets. | Andreas Kling | |
2019-03-25 | GItemView: Add slightly more horizontal padding to the icon labels. | Andreas Kling | |
2019-03-25 | GTextEditor: Shift+Delete should delete the current line. | Andreas Kling | |
2019-03-25 | GLock: Remove some debug spam. | Andreas Kling | |
2019-03-25 | LibGUI+Kernel: Add a GLock class (userspace mutex.) | Andreas Kling | |
It's basically a userspace port of the kernel's Lock class. Added gettid() and donate() syscalls to support the timeslice donation feature we already enjoyed in the kernel. | |||
2019-03-25 | GScrollBar: Clicking in the gutter should jump directly to that position. | Andreas Kling | |
I think I like how this feels but I'm not 100% sure yet, so I'm leaving the old feel in behind an #ifdef. | |||
2019-03-25 | FileManager+LibGUI: Show thumbnail generation progress in the statusbar. | Andreas Kling | |
2019-03-25 | GBoxLayout: Don't subtract margins from the available space twice. | Andreas Kling | |
2019-03-25 | LibGUI: Add GWidget::doubleclick_event(). | Andreas Kling | |
Now double-clicking an item in a GTableView or GItemView will activate it. | |||
2019-03-24 | WindowServer+LibGUI: Implement automatic cursor tracking. | Andreas Kling | |
When a mouse button is pressed inside a window, put that window into an automatic mouse tracking state where all mouse events are sent to that window until all mouse buttons are released. This might feel even better if it only cared about the mouse buttons you actually pressed while *inside* the windows to get released, I don't know. I'll have to use it for a while and see how it's like. | |||
2019-03-24 | LibGUI+FileManager: Add a GIcon class to support multi-size icons. | Andreas Kling | |
A GIcon can contain any number of bitmaps internally, and will give you the best fitting icon when you call bitmap_for_size(). | |||
2019-03-23 | GItemView: Implement up/down/left/right keyboard navigation. | Andreas Kling | |
2019-03-23 | LibGUI: Add a GItemView class. | Andreas Kling | |
This is a GAbstractView subclass that implements a icon-based view onto a GModel. It still need a bunch of work, but it's in basic usable shape. | |||
2019-03-23 | LibGUI: Add GAbstractView base class for GTableView. | Andreas Kling | |
This is in preparation for adding a new view class. | |||
2019-03-23 | LibGUI: Rename GTableModel => GModel. | Andreas Kling | |
2019-03-22 | LibGUI: Add a setting to make GLabel stretch its icon. | Andreas Kling | |
Use this in QuickShow to allow arbitrarily scaling the opened image. | |||
2019-03-22 | LibGUI: Remove unnecessary timer in GProgressBar. | Andreas Kling | |
2019-03-22 | LibGUI: Add a GProgressBar widget. | Andreas Kling | |
2019-03-21 | WindowServer: Support PNG wallpapers. | Andreas Kling | |
Fix up /bin/pape so it tells the WindowServer which wallpaper file to use. | |||
2019-03-21 | SharedGraphics: Implement a simple PNG decoder. | Andreas Kling | |
This is extremely unoptimized, but it does successfully load "folder32.png" so it must be at least somewhat correct. :^) | |||
2019-03-20 | TextEditor: The delete key should work even when there's no selection. | Andreas Kling | |
2019-03-20 | FileManager: Add ability to create new directories. | Andreas Kling | |
2019-03-20 | FileManager: Add a "Location:" label. | Andreas Kling | |
2019-03-20 | TextEditor: Add "delete" action. | Andreas Kling | |
2019-03-20 | FileManager: Use a GTextEditor for the location bar + tweak icons. | Andreas Kling | |
2019-03-20 | GTableView: Add ability to hide individual columns at view-level. | Andreas Kling | |
Use this in IRCClient to hide the "sender" column in the server message view since everything in that view comes from the "Server" anyway. | |||
2019-03-20 | Move WindowServer into Servers. | Andreas Kling | |
2019-03-20 | LibGUI: Make GTableModel a retainable object. | Andreas Kling | |
It became clear that this class needs to support multiple owners. | |||
2019-03-20 | GEventLoop: Quit the event loop on EOF from the WindowServer. | Andreas Kling | |
2019-03-19 | LibGUI: Add GScrollableWidget::scroll_to_bottom/top(). | Andreas Kling | |
2019-03-19 | LibGUI: More GInputBox refinements. | Andreas Kling | |
Fix some GBoxLayout bugs to make the buttons in GInputBox line up better. There are still some imperfections due to rounding errors. | |||
2019-03-19 | GTextEditor: Fix invalidation glitches in single-line mode. | Andreas Kling | |
2019-03-19 | LibGUI: More work on GInputBox. | Andreas Kling | |
- If the GInputBox has a parent and the parent is a GWindow, center the input box window within the parent window. This looks quite nice. - Stop processing events in a nested event loop immediately after it's been asked to quit. - Fix GWidget::parent_widget() behavior for non-widget parents. | |||
2019-03-19 | LibGUI: Add GInputBox for getting a string from a modal dialog. | Andreas Kling | |
Use this to implement some of the toolbar actions in IRCClient. :^) | |||
2019-03-19 | WindowServer: Add special treatment for modal windows. | Andreas Kling | |
While a WSClientConnection has a modal window showing, non-modal windows belonging to that client are not sent any events. | |||
2019-03-19 | LibGUI: Implement nested event loops to support dialog boxes. | Andreas Kling | |
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-18 | GIODevice: Remove debug spam. | Andreas Kling | |
2019-03-18 | GIODevice: Add a read_all() that returns a ByteBuffer with all we can read. | Andreas Kling | |
Use this to implement file opening in TextEditor. | |||
2019-03-18 | LibGUI: Add GTCPSocket and base class GSocket (inherits from GIODevice.) | Andreas Kling | |
And use these to do the line-by-line reading automagically instead of having that logic in IRCClient. This will definitely come in handy. | |||
2019-03-18 | LibGUI: Add GTableModel::Role::ForegroundColor. | Andreas Kling | |
This makes it possible to specify the text color for each table cell. Use this to make the IRCClient show unread window list items in red. | |||
2019-03-18 | LibGUI: Don't crash if calling GClipboard::set_data() with a null string. | Andreas Kling | |
2019-03-17 | LibGUI: Add GFile and base class GIODevice. | Andreas Kling | |
Working with the LibC API's is tedious, so let's add some comfy C++ API's. | |||
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. |