History log of /haiku/src/apps/terminal/TermViewStates.h
Revision Date Author Comments
# 9a7f2c24 14-Jan-2022 Jérôme Duval <jerome.duval@gmail.com>

Terminal: add support for mouse press/release events in Extended/SGR 1006 mode

fixes #17532

Change-Id: Ic9f19ace5c728b6823caa5ce8ec35dc35d244220
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4867
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# da80e3d9 05-Jun-2014 John Scipione <jscipione@gmail.com>

TermViewStates: Style fixes


# 78a1163c 12-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: hyper link mode: Try more aggressively to detect a path

Consider ':' a potential path delimiter and try all combinations of
chopped off prefixes and suffixes. This makes detection in the output
of a multi-file grep work even if the found line starts with a path
character or is a path. A path in the typical colon delimited search
paths (e.g. PATH) is detected as well.


# a15966b3 12-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: hyper link mode: handle relative paths better

* We were trying relative paths as is, which means checking them with
Terminal's current working directory. Now we use the CWD of the active
process.
* In case the path is relative, add a context menu item "Copy absolute
path".


# e9bad28a 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Add a hyperlink mode

When holding down Command, text under the mouse is checked whether it
looks like a URL or a local path. If so, it is highlighted and can be
clicked, which will open the URL/file. Right-clicking opens a context
menu with items for opening the link/file or copying it to the
clipboard. When additionally holding down Shift, path prefixes up to
the component under the mouse will be considered (no effect for URLs).

Changes:
* Add HyperLink class. Encapsulates a type, the address, and an
optional base address. Features an Open() method to open the address.
* Move/add some string constants to TermConst.
* Move TermView::CharClassifier to top level and rename to
DefaultCharClassifier.
* Introduce TermViewHighlight and TermViewHighlighter. The former
refers to a range of text in a TermView's text buffer. It also
contains a pointer to a TermViewHighlighter object, which specifies
how the text range shall be rendered (colors and attributes).
* TermView:
- Add respective _{Add,Remove}Highlight() methods and adjust the code
to support highlights.
- Make the selection a TermViewHighlight. At least its visual aspect
is now handled like other highlights.
- Introduce an inner TextBufferSyncLocker. It is used instead of
BAutolock when locking the text buffer to synchronize the visual
buffer with it. After it unlocks it calls
_VisibleTextBufferChanged(), if the visual text buffer has changed,
which in turn calls a new callback on the active state.
- Add WindowActivated() and ModifiersChanged() callbacks to the state
interface.
- Add new states HyperLinkState and HyperLinkMenuState which
implement the new feature.

Fix modifier issues


# bda35ef5 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Pull user input handling into state classes


# da80e3d9e2b633e19638e38797c9feffee24ac8b 05-Jun-2014 John Scipione <jscipione@gmail.com>

TermViewStates: Style fixes


# 78a1163c7b5d51d09f757f125ccd683bef0a06d9 12-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: hyper link mode: Try more aggressively to detect a path

Consider ':' a potential path delimiter and try all combinations of
chopped off prefixes and suffixes. This makes detection in the output
of a multi-file grep work even if the found line starts with a path
character or is a path. A path in the typical colon delimited search
paths (e.g. PATH) is detected as well.


# a15966b3b028d16da29c6b5b7efa43937b6dc7e6 12-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: hyper link mode: handle relative paths better

* We were trying relative paths as is, which means checking them with
Terminal's current working directory. Now we use the CWD of the active
process.
* In case the path is relative, add a context menu item "Copy absolute
path".


# e9bad28aafc6b71378bb71139cde6269bbb0afa7 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Add a hyperlink mode

When holding down Command, text under the mouse is checked whether it
looks like a URL or a local path. If so, it is highlighted and can be
clicked, which will open the URL/file. Right-clicking opens a context
menu with items for opening the link/file or copying it to the
clipboard. When additionally holding down Shift, path prefixes up to
the component under the mouse will be considered (no effect for URLs).

Changes:
* Add HyperLink class. Encapsulates a type, the address, and an
optional base address. Features an Open() method to open the address.
* Move/add some string constants to TermConst.
* Move TermView::CharClassifier to top level and rename to
DefaultCharClassifier.
* Introduce TermViewHighlight and TermViewHighlighter. The former
refers to a range of text in a TermView's text buffer. It also
contains a pointer to a TermViewHighlighter object, which specifies
how the text range shall be rendered (colors and attributes).
* TermView:
- Add respective _{Add,Remove}Highlight() methods and adjust the code
to support highlights.
- Make the selection a TermViewHighlight. At least its visual aspect
is now handled like other highlights.
- Introduce an inner TextBufferSyncLocker. It is used instead of
BAutolock when locking the text buffer to synchronize the visual
buffer with it. After it unlocks it calls
_VisibleTextBufferChanged(), if the visual text buffer has changed,
which in turn calls a new callback on the active state.
- Add WindowActivated() and ModifiersChanged() callbacks to the state
interface.
- Add new states HyperLinkState and HyperLinkMenuState which
implement the new feature.

Fix modifier issues


# bda35ef5dc71c1c4a4e831233f937bcb130bd284 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Pull user input handling into state classes