Age | Commit message (Collapse) | Author |
|
This will allow widgets to implement post-layout behaviors.
|
|
|
|
|
|
This patch introduces the GUI::SyntaxHighlighter class, which can be
attached to a GUI::TextEditor to provide syntax highlighting.
The C++ syntax highlighting from HackStudio becomes a new class called
GUI::CppSyntaxHighlighter. This will make it possible to get C++ syntax
highlighting in any app that uses a GUI::TextEditor. :^)
Sidenote: It does feel a bit weird having a C++ lexer in a GUI toolkit
library, and we'll probably end up moving this out to a separate place
as this functionality grows larger.
|
|
|
|
|
|
Also remove the leading WS from names and filenames.
|
|
|
|
|
|
|
|
|
|
|
|
Code that just wants to open a Gfx::Bitmap from a file should not be
calling the PNG codec directly.
|
|
|
|
|
|
|
|
|
|
|
|
I started adding things to a Draw namespace, but it somehow felt really
wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename
the library to LibGfx. :^)
|
|
|
|
|
|
|
|
This took me a moment. Welcome to the new world of GUI::Widget! :^)
|
|
I've been wanting to do this for a long time. It's time we start being
consistent about how this stuff works.
The new convention is:
- "LibFoo" is a userspace library that provides the "Foo" namespace.
That's it :^) This was pretty tedious to convert and I didn't even
start on LibGUI yet. But it's coming up next.
|
|
|
|
|
|
Unparented GActions are still parented to the application like before,
making them globally available.
This makes it possible to have actions that work whenever a specific
window is active, no matter which widget is currently focused. :^)
|
|
This means we can deselect other items immediately when performing a mouse-down
on an unselected item.
|
|
We will now consider a file to be an executable if any of the executable
permission bits are set.
|
|
|
|
We can't go higher than line 0. Can't rely on max() here since line
numbers are unsigned.
Fixes #1145.
|
|
Also make sure to hide this column by default where we don't expect
to see it.
|
|
This allows you to set the GFileSystemModel root to a symlink to a
directory and it nicely opens that directory like you would expect.
|
|
What was previously the "Int" type is now "Int32" and "Int64".
|
|
This changes copyright holder to myself for the source code files that I've
created or have (almost) completely rewritten. Not included are the files
that were significantly changed by others even though it was me who originally
created them (think HtmlView), or the many other files I've contributed code to.
|
|
Previously it was created the first time you requested a context menu
for the GTextEditor by right-clicking in it.
That meant it wasn't possible to use Ctrl+L to "go to line" before you
had first right-clicked the editor.
|
|
This is a handy feature for any multi-line GTextEditor, so let's just
have it in the base widget. :^)
Fixes #1122.
|
|
Fixes #1123.
|
|
Fixes #1121.
|
|
It's useful for the GTextDocument to have access to the initiating
GTextEditor widget during the initial execution of a command.
Since commands are executed via calls to GUndoCommand::redo(), we do
this by wrapping the invocation of redo() in a new helper called
GTextDocumentUndoCommand::execute_from(GTextDocument::Client).
This is then used to fetch the current auto-indentation feature state
and the soft tab width, both used by text insertion.
|
|
It always bothered me that we're using the overloaded "dereference"
term for this. Let's call it "unreference" instead. :^)
|
|
This is to prevent confusion with GColumnsView, which is unrelated.
|
|
GModel subclasses can now override drag_data_type() to specify which type
GAbstractView should set for drag data. The default implementation returns a
null string, which disables dragging from this widget.
|
|
This deduplicates existing code, and also gives all the model-backed widgets
selection manipulation and drag support for free :^)
|
|
Minus two empty lines because clang-format insists on it,
and plus an underscore.
|
|
It's now an abstract (pure virtual) public method in GAbstractView that
individual widgets have to implement. This will allow us to move more
selection-related logic into GAbstractView in order to share it between
implementations.
|
|
This replaces GItemView::item_at_event_position(), which used to return a raw
int, requiring callers to call model()->index() with it again.
|
|
And port GListView::mousedown_event() to it.
|
|
Anyone who "handles" an event should really also be accepting it.
|
|
If asked to create an index with negative row and/or column, we should
just return an invalid GModelIndex() instead of asserting.
|