summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI
AgeCommit message (Collapse)Author
2020-07-23TextEditor: Jump to word break when deleting and holding Ctrl modifierSasan Hezarkhani
2020-07-22LibGUI: Remove unnecessary LibHTTP #includeAnotherTest
This closes #2848.
2020-07-20LibGUI: Use ControlBoxButtons in SpinBox and ComboBoxthankyouverycool
Converts the buttons of these widgets into ControlBoxButtons.
2020-07-20LibGUI: Add ControlBoxButton to LibGUIthankyouverycool
ControlBoxButton consolidates the paint_event for buttons used in composite box widgets like ComboBox and SpinBox. Its button bitmaps are built with create_from_ascii like WindowFrame and ScrollBar controls, making theming more uniform.
2020-07-19LibGUI: Show the special home directory icon in GUI::FilePickerAndreas Kling
2020-07-19LibGUI: Show a special icon for the home directory in FileSystemModelAndreas Kling
2020-07-19LibGUI+FileManager: Add setting for showing/hiding dotfilesAndreas Kling
GUI::FileSystemModel can now be told to display (or not display) files whose name start with a dot (other than . and ..)
2020-07-18LibGUI: Set parent icon, margins and disable resize for InputBoxthankyouverycool
Gives a more compact, uniform appearance to input boxes.
2020-07-18LibGUI: Paint slider knob as indented when disabledthankyouverycool
Better visual feedback when sliders won't budge.
2020-07-16LibGUI: Turn a heap-allocated event into a stack-allocated oneAndreas Kling
2020-07-16LibGUI: Add InputBox::show with required parent window argumentTom
Similar to MessageBox::show, this encourages passing in a window.
2020-07-16LibWeb: Require parent window argument for MessageBoxTom
Since the vast majority of message boxes should be modal, require the parent window to be passed in, which can be nullptr for the rare case that they don't. By it being the first argument, the default arguments also don't need to be explicitly stated in most cases, and it encourages passing in a parent window handle. Fix up several message boxes that should have been modal.
2020-07-16LibGUI: Add parent window argument to FilePicker functionsTom
Since FilePicker almost always should be modal, add the parent window as mandatory first argument.
2020-07-16LibGUI: Clear previous main widget's windowTom
2020-07-16WindowServer: Expose window parent information and more modal improvementsTom
* The parent information is necessary by the Taskbar to be able to determine a modal window's parent * Minimize and maximize modal window stacks together
2020-07-16LibGUI: Remove on_activity_change from ComboBoxthankyouverycool
Unnecessary since the inclusion of window accessories.
2020-07-16LibGUI: Disallow typing in DisplayOnly TextEditorsthankyouverycool
2020-07-15WindowServer: Add accessory windowsTom
Accessory windows are windows that, when activated, will activate their parent and bring all other accessory windows of that parent to the front of the window stack. Accessory windows can only be active input windows. The accessory window's parent is always the active window regardless of whether it is also the active input window. In order to route input correctly, input is now sent to the active input window, which can be any accessory window or their parent, or any regular window.
2020-07-15LibGUI+FileManager: Fix forgetting to map sorting proxy model indexesSergey Bugaev
Also assert indexes are valid in a few more places. Finally fixes https://github.com/SerenityOS/serenity/issues/1440 and https://github.com/SerenityOS/serenity/issues/2787 :^)
2020-07-15LibGUI: Add hover highlighting and keyboard controls to ComboBoxthankyouverycool
Adds a new highlighting effect to the actively selected row in ComboBox ListView. ComboBoxEditor can now be controlled with page up, page down, and the up and down arrow keys. ESC and loss of focus now cause comboboxes to close. Now activates on mouseup as well as return.
2020-07-15LibGUI: Use enum for TextEditor modes & add new DisplayOnly modethankyouverycool
Adds a new, more restrictive read-only state to TextEditor which forbids copying, selecting, editor cursors, and context menus. Provides a unique appearance on focus which accomodates ComboBox widgets. All TextEditor modes are now accessed by enum and set_mode() which sets the editor to Editable, ReadOnly or DisplayOnly. Updates applications still using set_readonly().
2020-07-15LibGUI: Add on_activity_change function to Windowthankyouverycool
Reports changes on the active/inactive state of a window.
2020-07-15LibGUI: Fix menu leak when default action changedTom
2020-07-15FileManager: Add "Open with" menu if alternative applications are availableTom
2020-07-14LibGUI: Draw contiguous frame if GroupBox title is left emptythankyouverycool
2020-07-13LibGUI: Add Options flags and OpenMultiple mode for FilePickerTom
If the application can't open more than one file, we should not allow the user to select multiple.
2020-07-13LibGUI: Add ability to disable multiselect for viewsTom
2020-07-13LibGUI: Improve IconView performance with large selectionsTom
This implements the following optimizations: * Rather than clearing a HashTable of selected items and re-populating it every time the selection rectangle changes, determine the delta by only examining the items that might be in the area where the selection may have changed compared to the previous area. Then only add/remove selection items as needed. * When painting, only query and paint the items actually visible. Also, keep a local cache of item information such as calculated rectangles and selection state, so it doesn't have to be calculated over and over again.
2020-07-13LibGUI: Add ModelClient abstract class and allow registering clientsTom
This solves a problem where the SortingProxyModel doesn't receive the on_update call because other code overwrote the handler later on.
2020-07-13LibGUI: Fix keybind conflicts in TreeViewthankyouverycool
Changes the shortcut to expand and collapse subtrees from alt to ctrl+right/left arrows in TreeView. The current shortcuts conflict with applications that already have navigation controls bound to alt like file manager.
2020-07-13LibGUI: Only report toggled directories once on subtree collapse/expansionthankyouverycool
This prevents redundant calls to on_toggle for the same indices when subtrees are collapsed or expanded.
2020-07-11LibGUI: Ignore KeyUp events by defaultPeter Elliott
fixed #2576
2020-07-11WindowServer/LibGUI: Add default menu items and allow default action for ↵Tom
context menu By specifying an optional Action for Menu::popup an application can specify what item should be displayed as a default item.
2020-07-10FileManager: Show an open folder icon for the selected directorythankyouverycool
The currently selected directory now displays an open folder icon in the directory tree.
2020-07-10LibGUI: Add missing on_toggle hook to TreeViewthankyouverycool
Alt+arrow toggles are now captured.
2020-07-09LibGUI: Make scrollbar thumb size relative to content sizeTom
In order to calculate a thumb size that is a representation of the visible portion (page) of the content, that information needs to be taken into account.
2020-07-09LibGUI: Implement IconView auto-scrolling when trying to select items out of ↵Tom
view If selecting in a large icon view, and dragging the mouse outside of the widget, or close to the border of it, start scrolling automatically. This allows for selecting large amount of items that exceed the amount that can be displayed.
2020-07-07WindowServer+LibGUI: Add "wait" cursorLinus Groh
2020-07-07WindowServer+LibGUI: Add "help" cursorLinus Groh
2020-07-07LibGUI: Use Resize{Column,Row} cursor for Splitter and AbstractTableViewLinus Groh
2020-07-07WindowServer+LibGUI: Add "resize row/column" cursorsLinus Groh
2020-07-07LibGUI: Add on_toggle function to TreeViewthankyouverycool
This adds a function to expose the index and open/close state of expandible nodes in TreeView.
2020-07-04LibGUI: Sort FileSystemModel alphabetically internallyAndreas Kling
This just makes everything nicer.
2020-07-04LibGUI: Fix glitchy behavior in ScrollableWidget::scroll_into_view()Andreas Kling
This function relies on visible_content_rect() which could previously return rectangles with negative size. This was causing TableViews to scroll down a little bit when assigning a model to them. Also tweak the logic so we scroll a 0x0 rect into view, giving a slightly nicer final position.
2020-07-04LibGUI: Add SortingProxyModel::sort_role()Andreas Kling
This allows you to specify a role to sort by. Defaults to Role::Sort. Also reordered the Role enum so that Role::Custom is last.
2020-07-04Userspace: Remove a bunch of unnecessary Kernel/API/KeyCode.h includesAndreas Kling
2020-07-04Kernel: Move headers intended for userspace use into Kernel/API/Andreas Kling
2020-07-04LibGUI: Turn GUI::Application::the() into a pointerAndreas Kling
During app teardown, the Application object may be destroyed before something else, and so having Application::the() return a reference was obscuring the truth about its lifetime. This patch makes the API more honest by returning a pointer. While this makes call sites look a bit more sketchy, do note that the global Application pointer only becomes null during app teardown.
2020-07-04LibGUI: Make GUI::Application a Core::ObjectAndreas Kling
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
2020-07-04LibGUI: Respect per-index font when computing TreeView item rectsAndreas Kling
This makes the selected (currently shown in bold) item in HackStudio's project file view show up at the correct position.