Andreas Kling
fd5eb79d19
LibGUI: Make GMenu inherit from CObject
...
This is primarily to make it possible to pass a GMenu* where a CObject*
is expected.
2019-12-09 21:05:44 +01:00
Andreas Kling
8d550c174e
LibCore: Convert CFile to ObjectPtr
2019-09-21 20:50:06 +02:00
Andreas Kling
664dff0581
VisualBuilder: Disallow moving managed widgets with the arrow keys
2019-09-17 22:41:42 +02:00
Andreas Kling
4f184114de
VisualBuilder: Add icons for the layout menu actions
2019-09-17 22:39:48 +02:00
Andreas Kling
9d460d55d1
VisualBuilder: Don't allow moving/resizing widgets that are in a layout
...
Also paint these widgets' grabbers differently to make it stand out
visually which widgets have managed geometry. :^)
2019-09-17 22:17:28 +02:00
Andreas Kling
5e439bb3c8
VisualBuilder: Fix hit testing for composite widgets
...
When we ask LibGUI to hit test, it may return a subwidget of a widget
composed of many smaller widgets. In those cases we need to locate the
appropriate corresponding VBWidget for the composite widget.
2019-09-17 22:17:28 +02:00
Andreas Kling
b37fc9f655
VisualBuilder: Make it possible to add a layout to a widget
...
This patch adds horizontal and vertical layout options to the widget
context menu.
This is going to need a lot of work, but it's a cool start. :^)
2019-09-17 22:17:28 +02:00
Andreas Kling
9acdf9bb0a
VisualBuilder: Support nested widgets
...
This patch makes it possible to put widgets inside one another. The way
you do this right now is by having a (single) widget selected when you
insert a new widget. The new widget then becomes a child of the
selected widget. (In the future we'll make it possible to drag widgets
into each other, and things like that.)
I've also changed the grabber coordinates to be window-relative instead
of parent-relative in order to simplify things for myself. Maybe that's
not the ideal design and we can revisit that.
2019-09-17 22:17:28 +02:00
Andreas Kling
d754ac5bcb
LibGUI+VisualBuilder: Add move-to-front/back to GCommonActions
...
Also give them nice little icons. :^)
2019-09-14 22:42:39 +02:00
Andreas Kling
92b17eab23
VisualBuilder: Use GCommonActions::make_delete_action()
2019-09-14 22:32:56 +02:00
Andreas Kling
11f2e7cd5c
GMenu: Update apps now that you can create a nameless GMenu
...
We had many context menus with names, simply because you were forced
to give them names.
2019-09-13 22:14:07 +02:00
rhin123
8fc2034ca1
VBForm: Fixed cursor not changing on resize /w multiple selections
...
We were resetting the cursor during multiple selections since our
mouse can only be over a single widget at a time.
2019-09-06 07:17:57 +02:00
rhin123
e7d15ccca4
VBForm: Set mouse type relative to how we resize the VBWidget
2019-08-30 07:45:12 +02:00
Andreas Kling
f6998b1817
JSON: Templatize the JSON serialization code
...
This makes it possible to use something other than a StringBuilder for
serialization (and to produce something other than a String.) :^)
2019-08-07 21:29:32 +02:00
Andreas Kling
1d0b464618
AK: Make HashMap::get(Key) return an Optional<Value>.
...
This allows HashMap::get() to be used for value types that cannot be default
constructed (e.g NonnullOwnPtr.)
2019-07-24 10:25:43 +02:00
Andreas Kling
a17fbd98e7
LibGUI: Add input types to GMessageBox.
...
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-16 21:41:13 +02:00
Andreas Kling
315716d193
GUI: Use Win2K-like "warm gray" color instead of the older colder gray.
...
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-30 09:23:16 +02:00
Andreas Kling
b729b5fc64
VisualBuilder: Support loading a saved form from JSON.
...
The form to load is specified on the command line, e.g "vb test.frm".
2019-06-29 12:07:46 +02:00
Andreas Kling
65e470c90a
VisualBuilder: Use NonnullRefPtrVector.
2019-06-27 13:49:26 +02:00
Andreas Kling
aa3df518e7
AK: Rename JsonObject::to_string() and pals to serialized().
...
And the variant that serializes into a StringBuilder is called serialize().
2019-06-18 09:37:47 +02:00
Andreas Kling
3b9fcab1af
VisualBuilder: Switch to JSON for the form output.
...
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-17 19:50:30 +02:00
Andreas Kling
892acfb10d
VisualBuilder: Run clang-format on everything.
2019-06-07 11:48:27 +02:00
Andreas Kling
de98b2770b
GMessageBox: Add icons to message boxes with 3 standard ones to choose from.
2019-05-08 20:13:39 +02:00
Andreas Kling
3ae9fc5d88
Move VisualBuilder into a new DevTools directory.
2019-05-08 13:53:34 +02:00