summaryrefslogtreecommitdiff
path: root/LibGUI
AgeCommit message (Collapse)Author
2019-03-27LibC: Time-related POSIX compliance fixes.Andreas Kling
2019-03-25LibGUI: 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-25GItemView: Some improvements to keyboard navigation.Andreas Kling
2019-03-25GTextEditor: Draw a simple border around single-line editors.Andreas Kling
2019-03-25GItemView: 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-25LibGUI: Ignore GWidget::update() on invisible widgets.Andreas Kling
2019-03-25GItemView: Add slightly more horizontal padding to the icon labels.Andreas Kling
2019-03-25GTextEditor: Shift+Delete should delete the current line.Andreas Kling
2019-03-25GLock: Remove some debug spam.Andreas Kling
2019-03-25LibGUI+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-25GScrollBar: 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-25FileManager+LibGUI: Show thumbnail generation progress in the statusbar.Andreas Kling
2019-03-25GBoxLayout: Don't subtract margins from the available space twice.Andreas Kling
2019-03-25LibGUI: Add GWidget::doubleclick_event().Andreas Kling
Now double-clicking an item in a GTableView or GItemView will activate it.
2019-03-24WindowServer+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-24LibGUI+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-23GItemView: Implement up/down/left/right keyboard navigation.Andreas Kling
2019-03-23LibGUI: 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-23LibGUI: Add GAbstractView base class for GTableView.Andreas Kling
This is in preparation for adding a new view class.
2019-03-23LibGUI: Rename GTableModel => GModel.Andreas Kling
2019-03-22LibGUI: Add a setting to make GLabel stretch its icon.Andreas Kling
Use this in QuickShow to allow arbitrarily scaling the opened image.
2019-03-22LibGUI: Remove unnecessary timer in GProgressBar.Andreas Kling
2019-03-22LibGUI: Add a GProgressBar widget.Andreas Kling
2019-03-21WindowServer: Support PNG wallpapers.Andreas Kling
Fix up /bin/pape so it tells the WindowServer which wallpaper file to use.
2019-03-21SharedGraphics: 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-20TextEditor: The delete key should work even when there's no selection.Andreas Kling
2019-03-20FileManager: Add ability to create new directories.Andreas Kling
2019-03-20FileManager: Add a "Location:" label.Andreas Kling
2019-03-20TextEditor: Add "delete" action.Andreas Kling
2019-03-20FileManager: Use a GTextEditor for the location bar + tweak icons.Andreas Kling
2019-03-20GTableView: 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-20Move WindowServer into Servers.Andreas Kling
2019-03-20LibGUI: Make GTableModel a retainable object.Andreas Kling
It became clear that this class needs to support multiple owners.
2019-03-20GEventLoop: Quit the event loop on EOF from the WindowServer.Andreas Kling
2019-03-19LibGUI: Add GScrollableWidget::scroll_to_bottom/top().Andreas Kling
2019-03-19LibGUI: 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-19GTextEditor: Fix invalidation glitches in single-line mode.Andreas Kling
2019-03-19LibGUI: 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-19LibGUI: 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-19WindowServer: 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-19LibGUI: 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-18GIODevice: Remove debug spam.Andreas Kling
2019-03-18GIODevice: 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-18LibGUI: 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-18LibGUI: 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-18LibGUI: Don't crash if calling GClipboard::set_data() with a null string.Andreas Kling
2019-03-17LibGUI: 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-17Add 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-17LibGUI: Ignore GWindow::update() with an empty rect.Andreas Kling
2019-03-17LibGUI: Don't nap in event loop if there are already queued events.Andreas Kling
This mirrors the WindowServer fix.