Commit graph

1822 commits

Author SHA1 Message Date
Benoît Minisini
130f127adb [GB.FORM.TERMINAL]
* NEW: Better suppor for variable-width fonts.
* BUG: Draw the terminal background everywhere, not just where there are characters.


git-svn-id: svn://localhost/gambas/trunk@7716 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 13:31:02 +00:00
Benoît Minisini
ff7bbe8a21 [DEVELOPMENT ENVIRONMENT]
* NEW: Add 'gb.form.terminal' to the component list.
* NEW: New component status icons.

[INTERPRETER]
* BUG: Correctly export Stream.Term description.
* NEW: Stream.Term.FlowControl is a new property that allows to set or retrieve if flow control is enabled on a terminal stream.

[GB.GTK]
* NEW: Change the name of 'NewChild' event argument.

[GB.GTK3]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT4]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT5]
* NEW: Change the name of 'NewChild' event argument.

[GB.FORM.TERMINAL]
* NEW: Support for the 'Set title' command.
* NEW: TerminalView now emits the Title event when the terminal requests a title change.
* NEW: Support for flow control. When output is suspended, the terminal contents becomes darker.
* BUG: Correctly update the scrollbar when switching between screens.


git-svn-id: svn://localhost/gambas/trunk@7714 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 10:54:21 +00:00
Benoît Minisini
da2825d82a [GB.FORM.TERMINAL]
* BUG: Fix screen refresh.
* NEW: Implement "Erase character" escape sequence.


git-svn-id: svn://localhost/gambas/trunk@7713 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 01:24:33 +00:00
Benoît Minisini
ff31478dab [GB.FORM.TERMINAL]
* BUG: Ensure the current line is visible and refreshed after a key has been pressed.


git-svn-id: svn://localhost/gambas/trunk@7712 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-02 19:08:10 +00:00
Benoît Minisini
55dba3f13b [GB.FORM.TERMINAL]
* NEW: TerminalView.Limit is 1000 lines by default. 0 means no limit again.
* OPT: Many little optimizations everywhere.
* BUG: Fix "Device status report" escape sequence detection.
* BUG: Fix bracketed paste string sent to the process.
* NEW: Clearing the screen now automatically scrolls the screen to the bottom.


git-svn-id: svn://localhost/gambas/trunk@7711 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-02 12:35:00 +00:00
Fabien Bodard
e513eae9f4 [GB.FORM.TERMINAL]
* NEW: Finish BraketedPaste Mode


git-svn-id: svn://localhost/gambas/trunk@7710 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-02 07:50:43 +00:00
Benoît Minisini
781882c601 [GB.FORM.TERMINAL]
* NEW: Implement "Insert space" escape sequence.
* NEW: Detect blink escape sequences.
* BUG: Fix Return and Enter key support.
* BUG: Fix selection on void lines.


git-svn-id: svn://localhost/gambas/trunk@7709 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-02 00:01:53 +00:00
Benoît Minisini
e2245b80ef [GB.FORM.TERMINAL]
* NEW: Support for blinking text.


git-svn-id: svn://localhost/gambas/trunk@7708 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 23:22:39 +00:00
Fabien Bodard
d7740890c5 [GB.FORM.TERMINAL]
* NEW: Prepare for mouse events filters
* NEW: Add support for bracketed paste mode (not finished)
  https://cirw.in/blog/bracketed-paste



git-svn-id: svn://localhost/gambas/trunk@7707 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 21:57:25 +00:00
Fabien Bodard
f8cfb2052d [GB.FORM.TERMINAL]
* NEW: Support multiple parameters on Set Mode.
* BUG: Convert the return key in filter for application mode.


git-svn-id: svn://localhost/gambas/trunk@7706 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 20:12:29 +00:00
Benoît Minisini
864a452bb0 [GB.FORM.TERMINAL]
* NEW: Selected text is automatically copied to the secondary clipboard.
* NEW: The middle mouse button now paste the secondary clipboard.
* BUG: Automatic scrolling while selecting works correctly again.


git-svn-id: svn://localhost/gambas/trunk@7705 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 08:50:28 +00:00
Benoît Minisini
b0cd5108a4 [GB.FOM.TERMINAL]
* OPT: Delay the process output interpretation instead of the refresh. Better performances, and less flicker.


git-svn-id: svn://localhost/gambas/trunk@7704 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 07:30:19 +00:00
Benoît Minisini
34834e5fee [GB.FORM.TERMINAL]
* NEW: Move project files to the 'Project' directory.
* NEW: Remove an unused module.
* NEW: Take 'AppCursorKey' mode into account for a few keys.
* NEW: Take 'NewlineMode' mode into account for Return and Enter keys.
* NEW: Implement Shift+Return and Shift+Enter key sequences.


git-svn-id: svn://localhost/gambas/trunk@7703 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 06:46:40 +00:00
Benoît Minisini
ea743770ff [GB.FORM.TERMINAL]
* OPT: Compress/uncompress line attributes on demand.
* NEW: Implement "Scroll up", "Scroll down" and "Vertical line position" escape sequences.
* BUG: Fix "Hide cursor" and "Show cursor" interpretation.
* NEW: Draw cursor with transparency.


git-svn-id: svn://localhost/gambas/trunk@7702 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-01 05:55:14 +00:00
Benoît Minisini
d7e88bf641 [INTERPRETER]
* BUG: Fix a possible crash in String.Code().

[GB.FORM.TERMINAL]
* OPT: Compress the attribute array associated with each line.
* OPT: Drawing line routine uses the JIT compiler.



git-svn-id: svn://localhost/gambas/trunk@7701 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 19:06:03 +00:00
Fabien Bodard
0c158f7788 [GB.FORM.TERMINAL]
* NEW: Add filter for vertical cursor pos Y
* BUG: Add filter for normal character ESC [ m


git-svn-id: svn://localhost/gambas/trunk@7700 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 16:52:38 +00:00
Benoît Minisini
3ba017f5f0 [GB.FORM.TERMINAL]
* NEW: Support for up to 256 colors.
* NEW: Use brighter default colors for foreground.
* BUG: Fix font cache initialization for GTK+, by drawing printable characters only.


git-svn-id: svn://localhost/gambas/trunk@7699 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 16:43:38 +00:00
Benoît Minisini
79a4ea2a70 [INTERPRETER]
* BUG: Fix a crash on one error message thrown incorrectly.

[GB.FORM.TERMINAL]
* OPT: Optimize drawing routine. Still slow, but less flicker.
* NEW: TerminalView: Add a blink property that enables or disables cursor blink.

[GB.GTK]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?

[GB.GTK3]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?


git-svn-id: svn://localhost/gambas/trunk@7698 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 09:25:11 +00:00
Fabien Bodard
55b4ee5794 [GB.FORM.TERMINAL]
* BUG: Remove translator for TAB and SP


git-svn-id: svn://localhost/gambas/trunk@7697 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-30 22:21:26 +00:00
Benoît Minisini
82b52bdf3b [GB.FORM.TERMINAL]
* NEW: Support for inserting and deleting lines.
* NEW: Support for hide and show cursor.
* NEW: Disable history in alternate screen.
* NEW: New way of drawing text. Slower, but interesting. It can handle variable-width fonts like fixed-width fonts. Does not work yet with GTK+. Apparently cairo drawing operators behave strangely compated to the QT ones.
* BUG: TerminalView: Fix EnsureVisible() method.


git-svn-id: svn://localhost/gambas/trunk@7696 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-30 22:04:11 +00:00
Fabien Bodard
da4868a408 [GB.FORM.TERMINAL]
* NEW: Implement special keys translation.



git-svn-id: svn://localhost/gambas/trunk@7695 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-30 21:31:41 +00:00
Fabien Bodard
812467fbe0 [GB.FORM.TERMINAL]
* NEW: Add terminal type report


git-svn-id: svn://localhost/gambas/trunk@7694 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-30 20:36:02 +00:00
Benoît Minisini
589786c601 [GB.FORM.TERMINAL]
* BUG: Fix "Erase end of line" command.


git-svn-id: svn://localhost/gambas/trunk@7693 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-29 22:42:35 +00:00
Fabien Bodard
02128f960c [GB.FORM.TERMINAL]
* NEW: Change the attribute parsing, now attributes with multiple parameters
  are allowed. Note that the color management need to be improved to support
  colors value > to 256 and RGB colors.
  


git-svn-id: svn://localhost/gambas/trunk@7691 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-29 21:12:40 +00:00
Benoît Minisini
e459de75a8 [GB.FORM.TERMINAL]
* BUG: Fix text and attribute insertion.


git-svn-id: svn://localhost/gambas/trunk@7690 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-29 13:01:00 +00:00
Benoît Minisini
46822f31d6 [GB.FORM.TERMINAL]
* NEW: Make debugging messages conditonal.
* NEW: TerminalView: Use a DrawingArea instead of a ScrollArea, and a vertical scrollbar that hides automatically.


git-svn-id: svn://localhost/gambas/trunk@7689 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-29 12:33:24 +00:00
Benoît Minisini
0ea9aeb379 [GB.FORM.TERMINAL]
* BUG: Fix process output management when an UTF-8 character is cut.
* NEW: Implement Newline mode, Wrap mode and Insert mode.
* BUG: Fix cursor moves commands.
* NEW: Implement "Delete char" command.
* NEW: Use bold font instead of drawing the text twice.
* BUG: Correctly handle vector fonts with non-integer character width.
* NEW: Disable blinking cursor and add a lot of messages for debugging.


git-svn-id: svn://localhost/gambas/trunk@7688 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-29 11:44:20 +00:00
Benoît Minisini
64bbe678bc [GB.FORM.TERMINAL]
* BUG: Fix parsing of escape sequences.
* NEW: Add support for cursor moves.


git-svn-id: svn://localhost/gambas/trunk@7686 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 21:41:36 +00:00
Fabien Bodard
ca80c015c4 [GB.FORM.TERMINAL]
* NEW: Console class that make use of vt100 escape code more easy.
* NEW: Attributes class that manage use of vt100 characters attributes.


git-svn-id: svn://localhost/gambas/trunk@7685 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 21:34:14 +00:00
Fabien Bodard
277f2249ed [GB.FORM.TERMINAL]
* BUG: Oups


git-svn-id: svn://localhost/gambas/trunk@7684 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 16:28:18 +00:00
Benoît Minisini
aba697b313 [GB.FORM.TERMINAL]
* NEW: Implement switch between normal screen and alternate screen.


git-svn-id: svn://localhost/gambas/trunk@7683 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 16:27:32 +00:00
Fabien Bodard
5299756f22 [GB.FORM.TERMINAL]
* NEW: Continue


git-svn-id: svn://localhost/gambas/trunk@7682 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 16:22:03 +00:00
Fabien Bodard
85a119f682 [GB.FORM.TERMINAL]
* NEW: Remove my old implementation.
* NEW: Begin to add some class to help testing.


git-svn-id: svn://localhost/gambas/trunk@7681 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-28 16:08:50 +00:00
Fabien Bodard
aa44a876a8 [GB.FORM.TERMINAL]
* BUG: Invert Foreground and Background on 256 mode. But i don't know why.


git-svn-id: svn://localhost/gambas/trunk@7680 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 17:32:09 +00:00
Fabien Bodard
a6e5567815 [GB.FORM.TERMINAL]
* NEW: Add support for 256 colors



git-svn-id: svn://localhost/gambas/trunk@7679 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 17:15:22 +00:00
Fabien Bodard
83e2087c06 [GB.FORM.TERMINAL]
* NEW: Add filter for color 90-97 and 100-107


git-svn-id: svn://localhost/gambas/trunk@7678 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 14:48:30 +00:00
Fabien Bodard
e0265cfac2 [GB.FORM.TERMINAL]
* NEW: Finish the VT100 Escape codes list.


git-svn-id: svn://localhost/gambas/trunk@7677 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 10:07:17 +00:00
Fabien Bodard
2fdd19cf4a [GB.FORM.TERMINAL]
* NEW: Finish the VT100 Escape codes list.


git-svn-id: svn://localhost/gambas/trunk@7676 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 10:02:53 +00:00
Benoît Minisini
83f67ca164 [GB.FORM.TERMINAL]
* BUG: Move flags from terminal filter to terminal screen.
* NEW: Moving the cursor ensures that it is visible (i.e. not flashing).


git-svn-id: svn://localhost/gambas/trunk@7675 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 09:18:17 +00:00
Benoît Minisini
342848f9e1 [INTERPRETER]
* NEW: Stream.Term.Echo is a new property that allows to enable or disable the terminal echo mode.

[GB.FORM.EDITOR]
* NEW: Screen management splitted from TerminalView. TerminalView has two screens now. Switch between screens is not implemented yet.


git-svn-id: svn://localhost/gambas/trunk@7674 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 08:54:02 +00:00
Fabien Bodard
d4848d2d9c [GB.FORM.TERMINAL]
* NEW: VT100 standart definitions file (not full)


git-svn-id: svn://localhost/gambas/trunk@7673 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 08:36:00 +00:00
Benoît Minisini
30a282abd0 [GB.FORM.TERMINAL]
* BUG: Fix interpretation of Background and Foreground escape sequences.


git-svn-id: svn://localhost/gambas/trunk@7672 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 14:03:45 +00:00
Benoît Minisini
1f81033b96 [GB.FORM.TERMINAL]
* BUG: Fix "set attribute" escape characters analyze.
* BUG: Remove Bright attribute, it was actually the same as Bold.


git-svn-id: svn://localhost/gambas/trunk@7671 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 13:45:50 +00:00
Benoît Minisini
bc4bc17b6c [GB.FORM.TERMINAL]
* NEW: TerminalView: Terminal resize is now sent to the running process terminal.


git-svn-id: svn://localhost/gambas/trunk@7670 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 13:10:10 +00:00
Benoît Minisini
159f039e02 [GB.FORM.TERMINAL]
* NEW: Support for XTERM "set window title" sequence.
* NEW: Rename "Underline" attribute as "Underscore".
* NEW: Support for "set attribute" escape sequences.
* BUG: TerminalView: Fix selection behaviour.


git-svn-id: svn://localhost/gambas/trunk@7668 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 11:10:21 +00:00
Benoît Minisini
0e52f6d63b [GB.FORM.TERMINAL]
* NEW: A icon for TerminalView.
* NEW: Initial VT100 terminal filter.
* NEW: TerminalView: Exec() and Shell() are two new methods to run a process inside the virtual terminal. Process input management is not implemented, and process output support is rudimentary.


git-svn-id: svn://localhost/gambas/trunk@7667 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 10:08:12 +00:00
Benoît Minisini
5d0151fe32 [GB.FORM.TERMINAL]
* NEW: TerminalView: Automatic support of control characters. Only the ESC sequences have to be implemented in the terminal emulator.


git-svn-id: svn://localhost/gambas/trunk@7666 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-25 15:25:43 +00:00
Benoît Minisini
625888d44d [INTERPRETER]
* NEW: Timer: The constructor now takes the delay as optional parameter. And if that delay is specified, the timer is automatically started.

[GB.FORM.TERMINAL]
* NEW: TerminalView: internal control that only deals with displaying the terminal contents.


git-svn-id: svn://localhost/gambas/trunk@7664 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-25 13:06:09 +00:00
Benoît Minisini
f42ffa0be6 [EXAMPLES]
* BUG: SmallWiki: Fix a deprecated link.

[GB.MARKDOWN]
* BUG: Fix generation of "[[ ... ]]" sections.

[GB.WEB.FORM]
* NEW: Add some help comments.


git-svn-id: svn://localhost/gambas/trunk@7662 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-23 21:37:35 +00:00
Fabien Bodard
fe098f5964 [GB.FORM.TERMINAL]
* NEW: Rewriting the componant base. Initial commit.



git-svn-id: svn://localhost/gambas/trunk@7656 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-22 12:23:18 +00:00