summaryrefslogtreecommitdiff
path: root/DevTools
AgeCommit message (Collapse)Author
2019-08-07FormCompiler: Oops, need to use JsonValue::serialized() for propertiesAndreas Kling
When assigning properties, we were relying on the JSON serialization code to wrap strings in double-quotes ("). JsonValue::to_string() does not wrap string values, so what we want here is serialized(). :^)
2019-08-07JSON: Templatize the JSON serialization codeAndreas Kling
This makes it possible to use something other than a StringBuilder for serialization (and to produce something other than a String.) :^)
2019-08-05GComboBox: Include the selected index with the on_change notificationAndreas Kling
This will be useful for clients that need to fetch additional data from the model on selection change.
2019-08-03IPCCompiler: Don't generate "OwnPtr<void>" as a handle() return typeAndreas Kling
This was happening for async (response-less) messages, since they were returning void and were were always just wrapping the return type in an OwnPtr no matter what.
2019-08-03IPCCompiler+AudioServer: Accept "//"-style comments in IPC defintionsAndreas Kling
2019-08-03IPCCompiler: More work towards AudioServer bringupAndreas Kling
- Add IEndpoint::handle(IMessage), a big switch table on message type. handle() will return a response message for synchronous messages, and return nullptr otherwise. - Use i32 instead of int for everything - Make IMessage::encode() const - Make IEndpoint::decode_message() static, this allows template code to decode messages without an endpoint instance on hand.
2019-08-03IPCCompiler: Emit message parameter gettersAndreas Kling
For simplicity's sake, they are all "const type& name() const"
2019-08-03IPCCompiler: Make decode_message() return nullptr for unknown messagesAndreas Kling
2019-08-03IPCCompiler: Generate message decoding functionsAndreas Kling
An endpoint now knows how to decode a ByteBuffer into an IMessage.
2019-08-03IPCCompiler: Emit IEndpoint::name() overridesAndreas Kling
2019-08-03IPCCompiler: Emit message constructors + include ID in serializationAndreas Kling
2019-08-03IPCCompiler: Generate getters for message ID's and message namesAndreas Kling
Each endpoint namespace will have an enum class MessageID where you can find all of its messages.
2019-08-03IPCCompiler: Typedef the response message types as "ResponseType"Andreas Kling
Each message will now have a typedef called ResponseType as an alias for the expected response type. This will aid in implementing the sync messaging code.
2019-08-03IPCCompiler: Generate endpoint and message classesAndreas Kling
These are not entirely finished but it's starting to take shape. :^)
2019-08-03IPCCompiler: Start working on a simple IPC definition languageAndreas Kling
Instead of doing everything manually in C++, let's do some codegen. This patch adds a crude but effective IPC definition parser, along with two initial definition files for the AudioServer's client and server endpoints.
2019-07-26FormCompiler: Add some more LibCore object files to host build.Andreas Kling
2019-07-24AK: Make HashMap::get(Key) return an Optional<Value>.Andreas Kling
This allows HashMap::get() to be used for value types that cannot be default constructed (e.g NonnullOwnPtr.)
2019-07-24VisualBuilder: Convert Vector<OwnPtr> to NonnullOwnPtrVector.Andreas Kling
2019-07-23LibGUI: Get rid of GWindow::should_exit_event_loop_on_close().Andreas Kling
This behavior and API was extremely counter-intuitive since our default behavior was for applications to never exit after you close all of their windows. Now that we exit the event loop by default when the very last GWindow is deleted, we don't have to worry about this.
2019-07-20GSlider: Add support for vertical sliders.Andreas Kling
You now have to pass an Orientation to the GSlider constructor. It's not possible to change the orientation after construction. Added some vertical GSliders to the WidgetGallery demo for testing. :^)
2019-07-18LibDraw: Introduce (formerly known as SharedGraphics.)Andreas Kling
Instead of LibGUI and WindowServer building their own copies of the drawing and graphics code, let's it in a separate LibDraw library. This avoids building the code twice, and will encourage better separation of concerns. :^)
2019-07-16LibGUI: Add input types to GMessageBox.Andreas Kling
Currently the two available input types are: - GMessageBox::InputType::OK (default) - GMessageBox::InputType::OKCancel Based on your choice, GMessageBox::exec() will return ExecOK or ExecCancel.
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-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-06-30Meta: Removed all gitignore in the source tree only keeping the root oneVAN BOSSUYT Nicolas
2019-06-30GUI: Use Win2K-like "warm gray" color instead of the older colder gray.Andreas Kling
Someone suggested this a long time ago and I never got around to it. So here we go, here's the warm gray! I have to admit I like it better. :^)
2019-06-29VisualBuilder: Support loading a saved form from JSON.Andreas Kling
The form to load is specified on the command line, e.g "vb test.frm".
2019-06-27VisualBuilder: Use NonnullRefPtrVector.Andreas Kling
2019-06-23LibGUI+VisualBuilder: Support custom editing widgets for property values.Andreas Kling
Implemented this by letting GAbstractViews provide a GModelEditingDelegate for a given index, which then knows how to create and setup a custom widget appropriate for the data type being edited.
2019-06-22VisualBuilder: Fix compiler warnings.Andreas Kling
2019-06-21AK: Rename Retainable.h => RefCounted.h.Andreas Kling
2019-06-21AK: Rename RetainPtr.h => RefPtr.h, Retained.h => NonnullRefPtr.h.Andreas Kling
2019-06-21AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.Andreas Kling
2019-06-21AK: Rename Retainable => RefCounted.Andreas Kling
(And various related renames that go along with it.)
2019-06-18AK: Rename JsonObject::to_string() and pals to serialized().Andreas Kling
And the variant that serializes into a StringBuilder is called serialize().
2019-06-17VisualBuilder: Switch to JSON for the form output.Andreas Kling
This makes widgets-within-widgets straightforward instead of confusing. The UI doesn't actually let you put widgets inside one another just yet, but at least now the output format won't be a problem. :^)
2019-06-07Meta: Tweak .clang-format to not wrap braces after enums.Andreas Kling
2019-06-07VisualBuilder: Run clang-format on everything.Andreas Kling
2019-06-01VisualBuilder: Add GRadioButton to the widget repertoire.Andreas Kling
2019-05-28Add clang-format fileRobin Burchell
Also run it across the whole tree to get everything using the One True Style. We don't yet run this in an automated fashion as it's a little slow, but there is a snippet to do so in makeall.sh.
2019-05-24LibGUI: Make GCheckBox inherit from GAbstractButton.Andreas Kling
2019-05-24LibGUI: Add a GAbstractButton base class for button widgets.Andreas Kling
This patch moves GButton and GRadioButton to inherit from it. This allows them to share code for mouse event handling, etc.
2019-05-13Fix "make clean" not deleting app binaries.Andreas Kling
2019-05-11VisualBuilder: Tweak margins in properties window.Andreas Kling
2019-05-08GMessageBox: Add icons to message boxes with 3 standard ones to choose from.Andreas Kling
2019-05-08GGroupBox: Rename "name" property to "title"Andreas Kling