summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/CMakeLists.txt
AgeCommit message (Collapse)Author
2021-11-24LibGUI: Add GUI::Menubar::try_add_menu()Andreas Kling
This is a fallible variant of Menubar::add_menu() that returns ErrorOr.
2021-11-20LibGUI: Add SettingsWindow classSam Atkins
The FooSettings apps have quite a lot of boilerplate just around creating a tabbed window with the same styling and the same row of buttons along the bottom. So, let's extract that out into a class we can reuse! :^) You create a SettingsWindow instead of a regular Window, passing a title and a flag to determine if a "Defaults" button is shown. Then call add_tab() to add tabs to it. Tabs are widgets extending SettingsWindow::Tab, which has methods for saving and resetting the values.
2021-10-21LibGUI: Add a GUI::Tray widget for the FilePicker common locationsAndreas Kling
The FilePicker has implemented its common locations tray as a composite widget built from a GUI::Frame with a bunch of GUI::Button inside it. The problem with that is that it creates a long and annoying chain of keyboard-focusable widgets. This patch adds GUI::Tray, which is a dedicated single widget that implements the same UI element, but without child widgets.
2021-09-08LibGUI+WindowServer: Introduce new mouse tracking mechanismBen Wiederhake
2021-08-31LibGUI/Desktop: Use LibConfig instead of Core::ConfigFileMustafa Quraish
2021-08-19LibGUI: Move common action definitions to CommonActions.cppsin-ack
This makes Action.cpp itself only talk about the Action object, and makes it easier to navigate.
2021-08-08LibGUI: Implement persistent indices for modelssin-ack
This patch adds persistent indices to models. A PersistentModelIndex is a ModelIndex that will survive most model updates (provided that the data the PersistentModelIndex points to has not been removed by the model's data store). PersistentModelIndex objects can be safely held by objects outside the model they originated from.
2021-08-06LibGUI: Add ValueSlider widgetMarcus Nilsson
ValueSlider is a more generalized version of OpacitySlider when we need a slider with values displayed. It will always show the current value with a user defined suffix.
2021-08-02LibGUI: Add a simple GUI::PasswordInputDialogAndreas Kling
Asking the user for a password is a fairly common thing, so let's have a reusable GUI dialog for it! This first iteration only supports having pre-filled "server" and "username" fields. This can obviously be made more flexible as needs arise. :^)
2021-08-02LibGUI, WindowServer: Greatly simplify menubar logicsin-ack
Currently, any number of menubars can be plugged in and out of a window. This is unnecessary complexity, since we only need one menubar on a window. This commit removes most of the logic for dynamically attaching and detaching menubars and makes one menubar always available. The menubar is only considered existent if it has at least a single menu in it (in other words, an empty menubar will not be shown). This commit additionally fixes a bug wherein menus added after a menubar has been attached would not have their rects properly setup, and would therefore appear glitched out on the top left corner of the menubar.
2021-07-29LibGUI+Playground: Move GMLAutocompleteProvider to LibGUIConor Byrne
2021-06-20WindowServer: Add API to set/get screen layoutsTom
This sets the stage so that DisplaySettings can configure the screen layout and set various screen resolutions in one go. It also allows for an easy "atomic" revert of the previous settings.
2021-05-22Userland: Rename LibThread => LibThreadingAndreas Kling
Also rename the "LibThread" namespace to "Threading"
2021-05-05LibGUI: Add ScrollableContainerWidget :^)Andreas Kling
This widget provides a scrollable view onto another (child) widget. If the child is larger than the parent, scrollbars are provided for panning around the child.
2021-05-04LibGUI: Rename ScrollableWidget.cpp => AbstractScrollableWidget.cppAndreas Kling
2021-04-26LibGUI: Make common locations configurableDexesTTP
2021-04-17LibGUI: Make sure we depend on the WindowManager IPC endpointsAndreas Kling
2021-04-17LibGUI+WindowServer: Separate window manager IPC from regular IPCsin-ack
With this patch the window manager related functionality is split out onto a new endpoint pair named WindowManagerServer/Client. This allows window manager functionality to be potentially privilege separated in the future. To this end, a new client named WMConnectionClient is used to maintain a window manager connection. When a process connects to the endpoint and greets the WindowServer as a window manager (via Window::make_window_manager(int)), they're subscribed to the events they requested via the WM event mask. This patch also removes the hardcoding of the Taskbar WindowType to receive WM events automatically. However, being a window manager still requires having an active window, at the moment.
2021-04-16LibGUI+WindowServer: Fix some misaligned CMakeLists.txt SOURCES entriesLinus Groh
2021-04-13Everywhere: It's now "Foobar", not "FooBar", and not "foo bar"Andreas Kling
I hereby declare these to be full nouns that we don't split, neither by space, nor by underscore: - Breadcrumbbar - Coolbar - Menubar - Progressbar - Scrollbar - Statusbar - Taskbar - Toolbar This patch makes everything consistent by replacing every other variant of these with the proper one. :^)
2021-02-27LibGUI: Remove ControlBoxButton widgetthankyouverycool
ComboBoxes and SpinBoxes were still relying on ascii-to-bitmap icons instead of PNGs. This makes it easier to theme in the future.
2021-02-27LibGUI: add a rudimentary framework for Wizards.Nick Vella
This patch provides the basic components needed for developers to create consistent wizard interface experiences in their applications. `WizardDialog` provides the dialog frame for the wizard, handling navigation and presentation. `AbstractWizardPage`s form the base class of Wizard pages, which are pushed onto the `WizardDialog` page stack via `WizardDialog::push_page`. `CoverWizardPage` and `WizardPage` are provided to ease the creation of Wizard interfaces consistent with the Serenity visual language.
2021-02-19LibGUI: Port GUI::FilePicker to GML and improve the layoutAndreas Kling
Also remove the image preview feature as it was rather ugly. If we bring it back we should it should look good.
2021-02-07Shell: Move Shell syntax highlighter LibShellAndreas Kling
2021-02-07LibSyntax+LibGUI+LibJS: Move JS syntax highlighter to LibJSAndreas Kling
This is a little bit messy but the basic idea is: Syntax::Highlighter now has a Syntax::HighlighterClient to talk to the outside world. It mostly communicates in LibGUI primitives that are available in headers, so inlineable. GUI::TextEditor inherits from Syntax::HighlighterClient. This let us to move GUI::JSSyntaxHighlighter to JS::SyntaxHighlighter and remove LibGUI's dependency on LibJS.
2021-02-07LibSyntax: Move GUI::Highlighter to Syntax::Highlighter in LibSyntaxAndreas Kling
This is a move towards dropping more LibGUI dependencies.
2021-02-07LibGUI+LibCpp: Move C++ syntax highlighter to LibCppAndreas Kling
This makes LibGUI not depend on LibCpp.
2021-01-12Libraries: Move to Userland/Libraries/Andreas Kling