summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-13AK: Support case-insensitive HashMap<String, T>.Andreas Kling
We achieve this by allowing you to specify custom traits for the key type. For convenience, we also provide a CaseInsensitiveStringTraits for String.
2019-07-13LibGUI: Add an auto-repeat interval to GAbstractButton.Andreas Kling
Use this in GSpinBox to implement auto-increment / auto-decrement while you are pressing down the respective buttons. :^)
2019-07-13LibC: Fix make target dependency that was breaking parallel make sometimes.Andreas Kling
2019-07-13Kernel: First cut of a sb16 driverRobin Burchell
Also add an AudioServer that (right now) doesn't do much. It tries to open, parse, and play a wav file. In the future, it can do more. My general thinking here here is that /dev/audio will be "owned" by AudioServer, and we'll do mixing in software before passing buffers off to the kernel to play, but we have to start somewhere.
2019-07-12Painter: Don't add line spacing after the very last line in draw_text().Andreas Kling
This means that single-line draw_text() calls don't get any additional line spacing added. Which makes things look right.
2019-07-12HelloWorld: Make the demo label say "Hello\nWorld!".Andreas Kling
This is really just to show off multi-line GLabels :^)
2019-07-12Painter: Implement multi-line support in Painter::draw_text().Andreas Kling
This patch makes it possible to draw_text() things like "ABC\nDEF\nGHI". It works by breaking the string into lines, then computing a bounding rect for all the lines, and finally aligning each line appropriately within the bounding rect and drawing them one by one. Fixes #297.
2019-07-12WSWindowManager: Ensure that we pick a single window to deliver a full ↵Robin Burchell
stream of events to This is effectively a mouse grab except that we don't require any client coordination to request it (which is probably OK, and certainly a lot simpler to implement). This prevents e.g. dragging the mouse cursor out of paint and over the terminal from selecting text unexpectedly.
2019-07-11TextEditor: Fix build (copy_ref() in outdated PR changes.)Andreas Kling
2019-07-11TextEditor: Move the application UI into a dedicated TextEditorWidget. (#292)Rhin
Added a main widget for the text editor as a stepping stone to add new features.
2019-07-11FontEditor: Initial port to using a VisualBuilder generated UI.Andreas Kling
Here goes the first attempt at using VisualBuilder to make an application. There are many features missing that we are gonna have to implement, noticeably custom widgets (for the glyph editor and glyph map widgets) but this patch already moves most of the UI layout to a form file. :^)
2019-07-11GGroupBox: Allow constructing these without an initial text.Andreas Kling
2019-07-11AK: Delete bad pointer assignment operators and constructors.Andreas Kling
We shouldn't allow constructing e.g an OwnPtr from a RefPtr, and similar conversions. Instead just delete those functions so the compiler whines loudly if you try to use them. This patch also deletes constructing OwnPtr from a WeakPtr, even though that *may* be a valid thing to do, it's sufficiently weird that we can make the client jump through some hoops if he really wants it. :^)
2019-07-11GSlider: Make the knob width proportional to the range, if in that mode (#288)Lawrence Manning
Regardless of mode, made the knob container clickable so the knob position can be moved without dragging the knob itself. Added a 3rd GSlider to the WidgetGallery showing the proportional mode in action.
2019-07-11AK: Remove copy_ref().Andreas Kling
This patch removes copy_ref() from RefPtr and NonnullRefPtr. This means that it's now okay to simply copy these smart pointers instead: - RefPtr = RefPtr // Okay! - RefPtr = NonnullRefPtr // Okay! - NonnullRefPtr = NonnullRefPtr // Okay! - NonnullRefPtr = RefPtr // Not okay, since RefPtr can be null.
2019-07-11TextEditor: Remove use of copy_ref().Andreas Kling
2019-07-11ProcessManager: Remove use of copy_ref().Andreas Kling
2019-07-11IRCClient: Remove use of copy_ref().Andreas Kling
2019-07-11FontEditor: Remove use of copy_ref().Andreas Kling
2019-07-11GWidget: Make set_font() take either Font* or Font&.Andreas Kling
2019-07-11FileManager: Remove use of copy_ref().Andreas Kling
2019-07-11GToolBar: Make add_action() take a GAction& instead of NonnullRefPtr&&.Andreas Kling
There's very little reason to take NonnullRefPtr&& in arguments really. You can avoid ref-count churn in the cases where ownership is transferred from the caller to the callee, but that's a pretty unusual situation and not worth optimizing for at this stage.
2019-07-11Minesweeper: Remove use of copy_ref().Andreas Kling
2019-07-11GLabel: Make set_icon() take a GraphicsBitmap*.Andreas Kling
Taking a RefPtr<GraphicsBitmap>&& was just making things unnecessarily complicated for clients, and didn't actually improve anything.
2019-07-11LibGUI: Remove use of copy_ref().Andreas Kling
2019-07-11AK: Remove use of copy_ref().Andreas Kling
2019-07-11Kernel: Remove use of copy_ref() in favor of regular RefPtr copies.Andreas Kling
This is obviously more readable. If we ever run into a situation where ref count churn is actually causing trouble in the future, we can deal with it then. For now, let's keep it simple. :^)
2019-07-11AK: Make it more more pleasant to copy RefPtr's.Andreas Kling
I had a silly ambition that we would avoid unnecessary ref count churn by forcing explicit use of "copy_ref()" wherever a copy was actually needed. This was making RefPtr a bit clunky to work with, for no real benefit. This patch adds the missing copy construction/assignment stuff to RefPtr.
2019-07-11AK: Remove weird RefPtr(RefPtr&) constructor.Andreas Kling
2019-07-11AK: Make MappedFile non-copyable.Andreas Kling
2019-07-11AK: Remove weird NonnullRefPtr(NonnullRefPtr&) constructor.Andreas Kling
2019-07-11AK: Use operator== for comparison in Vector::contains_slowRobin Burchell
2019-07-11AK: Add operator== & operator!= to VectorRobin Burchell
2019-07-11AKString: add missing comparison operatorsLawrence Manning
And some trivial tests.
2019-07-10Travis: Try to install a modern C++ compiler for host compilations.Andreas Kling
It seems like the newest Ubuntu supported by Travis is 16.04. The bundled gcc is unable to compile the trendy and modern Serenity code, so let's try to install a newer GCC on the CI bot. :^)
2019-07-10FormCompiler: Build individual compilation units instead of all-at-a-time.Andreas Kling
2019-07-10Build: Build the host-side FormCompiler before everything else.Andreas Kling
Since we're gonna want to use this for building other apps, it should be the very first thing we build.
2019-07-10FormCompiler: Produce a C++ header file as output.Andreas Kling
Also make sure the generated main widget has autofill turned on.
2019-07-10Demos: Add a HelloWorld2 demo.Andreas Kling
This is a simple test app with its UI generated from a VisualBuilder form. The name is probably silly, but who cares. :^)
2019-07-10GWidget: Add "set_autofill" as an alias for set_fill_with_background_color.Andreas Kling
2019-07-10GWidget: Add placeholder setters for the backcolor/forecolor properties.Andreas Kling
2019-07-10FormCompiler: Generate a basic UI skeleton holder struct.Andreas Kling
The basic idea is that you would use it like this: MyWidget::MyWidget(GWidget* parent) : GWidget(parent) { m_ui = new UI_MyWidget; set_main_widget(m_ui->main_widget); ... }
2019-07-10FormCompiler: Start working on a C++ code generator for VisualBuilder forms.Andreas Kling
2019-07-10VisualBuilder: Expose the "name" property on all widgets.Andreas Kling
2019-07-10CObject: Add a "name" property.Andreas Kling
This will be useful for things like the VisualBuilder code generator.
2019-07-10LibCore: Tweak slightly-off error message in CProcessStatisticsReader.Andreas Kling
2019-07-10ProcessManager: Use CProcessStatisticsReader to get process data.Andreas Kling
It was silly to duplicate this functionality in so many places. Now everyone uses CProcessStatisticsReader to parse /proc/all :^)
2019-07-10WindowServer: Use CProcessStatisticsReader in WSCPUMonitor.Andreas Kling
2019-07-10top: Remove some unused code.Andreas Kling
2019-07-10Userland+LibCore: Use CProcessStatisticsReader to implement top.Andreas Kling
Also tweaked CProcessStatisticsReader a bit to simplify the API.