summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/CMakeLists.txt
AgeCommit message (Collapse)Author
2022-11-29LibGUI: Add IncrementalSearchBannerthankyouverycool
Compared to traditional modal search, incremental search begins matching as soon as the user starts typing, highlighting results immediately. This refactors Itamar's work for HackStudio into a common LibGUI widget to be used in all multi-line TextEditors.
2022-11-19LibGUI: Add CommonMenusthankyouverycool
Right now only the accessibility menu is shared across apps but it's a good bit of boilerplate that can be consolidated and will make adding ColorBlindnessFilters to other widgets trivial.
2022-11-01Everywhere: Mark dependencies of most targets as PRIVATETim Schumacher
Otherwise, we end up propagating those dependencies into targets that link against that library, which creates unnecessary link-time dependencies. Also included are changes to readd now missing dependencies to tools that actually need them.
2022-10-12Userland: Properly populate GENERATED_SOURCESAli Mohammad Pur
We previously put the generated headers in SOURCES, which did not mark them as GENERATED (and did not produce a proper dependency). This commit moves all generated headers into GENERATED_SOURCES, and removes useless header SOURCES.
2022-09-07LibGUI: Add a search box to filter EmojiInputDialog by code point namesTimothy Flynn
2022-09-07LibGUI: Convert EmojiInputDialog to GMLTimothy Flynn
This will allow easily adding components such as a search box. Also, increase the number of emoji per row. This does not fix the issue where too many emoji will cause the dialog to grow limitlessly, but it looks a bit more reasonable now with the number of emoji that we have.
2022-07-24LibGUI: Alphabetize CMake sourcesnetworkException
2022-06-01LibGUI: Fix typo in ConnectionToWindowManagerServerOlivier De Cannière
2022-05-25LibGUI: Add GUI::Process::spawn_or_show_error()MacDue
This is a wrapper around Core::Process::spawn() for GUI applications, that shows an error if the call to spawn() failed.
2022-05-13LibGUI: Add TreeViewModel as a simpler interface for building TreeViewsLinus Groh
Having to subclass GUI::Model for even the simplest type of hand-built TreeView makes them a bit unpleasant to work with at the moment. :^) This adds such a GUI::Model subclass that is specifically designed for adding nodes to a TreeView manually, supporting text and an optional icon by default, and allowing for further data when subclassing the Node class.
2022-04-02LibGUI+Applications: Move abstract ThemeEditor preview to LibGUIBen Maxwell
This allows most of the theme preview code to be reused by similar theme preview widgets.
2022-03-12Libraries: Use default constructors/destructors in LibGUILenny Maiorani
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules "The compiler is more likely to get the default semantics right and you cannot implement these functions better than the compiler."
2022-02-25Userland: Rename WindowServerConnection=>ConnectionToWindowServerItamar
This was done with CLion's automatic rename feature.
2022-02-25Userland: Rename WindowManagerServerConnectionItamar
Rename WindowManagerServerConnection=>ConnectionToWindowManagerServer. This was done with CLion's automatic rename feature.
2022-02-07LibGUI: Move GML parsing and formatting to new ASTkleines Filmröllchen
This commit introduces a couple of connected changes that are hard to untangle, unfortunately: - Parse GML into the AST instead of JSON - Change the load_from_json API on Widget to load_from_gml_ast - Remove this same API from Core::Object as it isn't used outside of LibGUI and was a workaround for the object registration detection; by verifying the objects we're getting and casting we can remove this constraint. - Format GML by calling the formating APIs on the AST itself; remove GMLFormatter.cpp as it's not needed anymore. After this change, GML formatting already respects comments :^)
2022-02-07LibGUI: Remove GML prefix in favor of proper namespacekleines Filmröllchen
Prefixes are very much a C thing which we don't need in C++. This commit moves all GML-related classes in LibGUI into the GUI::GML namespace, a change somewhat overdue.
2022-01-27LibGUI: Add a universally available "command palette" to GUI programsAndreas Kling
You can now press Ctrl+Shift+A in any LibGUI application and we'll give you a command palette dialog where you can search for context-relevant actions by name (via the keyboard.) The set of actions is currently the same one you'd access via keyboard shortcuts. In the future, we'll probably want to add APIs to allow richer integrations with this feature.
2022-01-18LibGUI: Add a GitCommit SyntaxHighlighter implementationBrian Gianforcaro
This highlighter just syntax highlights the commented lines in your git commit message. It could potentially be enhanced to handle the rebase UI or other more advanced cases in the future.
2022-01-16LibGUI+FontEditor: Move GlyphMapWidget to LibGUISam Atkins
This will allow us to use this in other apps, such as the upcoming Character Map. :^)
2022-01-14LibGUI: Add `AbstractZoomPanWidget` widget :^)Mustafa Quraish
This is an abstract widget that is meant to handle all the panning / zooming functionality so that all applications implementing it do not have to try to do their own coordinate math.
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