History log of /haiku/src/apps/terminal/TermWindow.h
Revision Date Author Comments
# 1b370545 17-Dec-2022 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: graphical settings for configuring themes.

Implements #16835: Make colour schemes modular.
Implements #15936: Terminal settings should allow to drop a colour.

Change-Id: I1071c9285ba887e734af47b724f9de7f6c660581
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5950
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 093e8363 13-Jan-2020 Zotyamester <szatmary.zoltan1222@gmail.com>

Terminal: match declarations and definitions

Change-Id: Ib05915bedca38a0f3caec80d96c643200b1bc4a9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2111
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 8840b3db 14-Aug-2019 Simon South <simon@simonsouth.net>

Terminal: Allow use of Option as Meta key

Add a configuration setting that allows the left Option key to be used as a
Meta key, and add support for the Escape sequences that control the Meta key's
behaviour.

TermWindow now maintains a copy, shared by all its component TermViews, of the
current key map, and updates this copy automatically when notified by the Input
Server a new key map has been loaded.

The Meta key was an extra modifier key present on early UNIX workstations that
provided access to the "extended" portion of the ASCII character set. Although
it has vanished from modern keyboards certain UNIX software still relies on the
key, most notably GNU Emacs and the GNU readline library, the latter of which
is used by bash and a wide variety of other software that reads input from a
terminal. (Python's interactive mode uses readline, for instance.)

With this patch applied and the new setting enabled, the left Option key can be
used to access additional editing and navigation features at the command line.
It also makes usable the port of GNU Emacs currently available from HaikuDepot.

Fixes #15294.

Change-Id: I150b640b7b18384d56ab2fb017bf16ce8bdbdd78
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1727
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 5211ae5d 27-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal: use BPopUpMenu in BMenuFields.

Using a BMenu works, but it doesn't look as good.
Thanks to Diver for noticing this.


# 482f0eeb 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

add window size and encoding to terminal prefs

* The menu items now only set the values for the current window without
saving,
* The settings in the preference window are persistent,
* The "save as defaults" menu item is removed.

Fixes #5030.


# 7aae876a 14-May-2013 John Scipione <jscipione@gmail.com>

Terminal: Move secondary windows back in screen

For the Window title and tab title edit windows there was already code used to
move a window that had gone out of the screen frame back in.

I generalized this code by turning it into a _MoveWindowInScreen() method
and then called it in 3 places, the original 2 cases as well as the Find window.
We might want to move this method into BWindow if this is something we'd like
to use it for windows in other applications, but this solves the problem in Terminal
for now.


# dc1456f6 07-Dec-2012 John Scipione <jscipione@gmail.com>

Add font sizes to Font Size menu in addition to in settings


# 105093fd 21-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class TerminalRoster, which maintains a list of all running
terminals, including their window minimized status and workspaces. These
information are shared via our special-purpose clipboard. TerminalRoster
mainly acts as a cache.
* Removed the terminal ID management from TermApp. Most is now done by
TerminalRoster, the rest has been moved to TermWindow.
* Moved the terminal position file reading/writing from TermApp to TermWindow.
* Moved the remaining terminal window title handling from TermApp to TermWindow.
* Replaced the solution for #6613 implemented in r39530 (enabling/disabling the
"Switch Terminals" menu item depending on whether there are other Terminals).
The new solution is more correct, since it does enable the menu item, if and
only if switching to another Terminal will happen when triggering it. I.e.
minimized Terminals and ones on other workspaces are ignored.

Should also fix #6612, since there's no synchronous communication between
different terminal apps anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39562 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b216f407 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enable/disable the "Switch Terminals" menu item depending on whether there are
other Terminals. Fixes #6613.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad617d33 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved some locally used message constants from TermConst.h to TermWindow.cpp.
* Added an "Edit tab title..." item to the tab menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 486cd821 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a menu item that opens a dialog for editing the window title.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ded93a4 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Use the new menu layout builder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a6bf08d 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed menu related member variables.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f7255f7 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed fHelpmenu to fSettingsMenu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54197c61 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't send TermView pointers around in messages. When the message is processed
the pointer might already be invalid. Use SessionID instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 713b2a78 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added _SessionAt() helper method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39498 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 135f173d 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added SetTitleDialog, a dialog to edit a tab/window title.
* Use the dialog to open the tab title. Opened on double-click on the tab.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39497 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38d5ce62 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed "move" parameter from the
TermView::Listener::{Previous,Next}TermView() methods. All B_COMMAND_KEY
combos are intercepted by the window, so we never get them in the view.
* Added window shortcut Command-Shift-Left/Right to move the tabs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92b0038e 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a listener interface to TermView. This allowed to get rid of
CustomTermView and of the messaging from view to window. It also simplified
things in TermWindow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1b68540 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed the session ID to index.
* Introduced class SessionID to uniquely identify a session. Unlike the indexes
the IDs aren't reused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39484 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b28dba72 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* SmartTabView::MouseDown(): Also notify the listener when the click didn't hit
a tab.
* TermWindow: Add a new tab on double-click in the tab view's tab-free area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d365030e 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a listener interface to SmartTabView and moved functionality that
doesn't belong in SmartTabView to TermWindow. This also allowed to get rid of
TermWindow::TabView.
* Also check for double clicks on tabs. No action attached yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02ee32bb 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39473 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37322c4b 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class ShellParameters that bundles all parameters passed to the
shell.
* Also added a parameter for the current working directory and. If supplied,
it is applied in Shell::_Spawn().
* Pass the current working directory of the active tab when opening a new
tab. Implements part of #6712.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91eec68c 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 190806e6 06-Nov-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also check if there are active process when closing a tab.
This completes the work needed to close ticket #3745


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39329 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d18fc399 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by rossi, but I ended u rewriting half of it :
* Save terminal windows positions
* Also save their size and workspace, but these aren't used (size is overriden by the menu setting and workspace is annoying)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9fdb4f6 20-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added Shell::HasActiveProcesses() and TermView::IsShellBusy() (which calls
the former) to tell if some process launched from the terminal is still
running. Some style fix in Shell.h, made a parameter const.
Added basic TermWindow::QuitRequested()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37631 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c6aa65e 19-Dec-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented input method handling. Unfortunately, due to bug #4926, it's
completely unusable (it's disabled currently anyway).
Shell::AttachBuffer() returns a status_t now (instead of void), so the caller
can do something in case it fails.
Simplified some methods, removed unused stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34707 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b87afd3 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the Find Window a bit wider by default, moved some functions around,
got rid of MenuUtil.h/cpp.
Some style change.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17ecdb5b 20-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView doesn't know about PrefHandler anymore (again), so that, in case
it's used as replicant (but I think it won't work anymore, yet),
it doesn't influence the global settings.
TermWindow saves the preferences on quit, if the PrefWindow was never
instantiated. This allows the window size to be saved also when it's
resized manually (not via menu).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4aa87c04 14-Aug-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjusted variable names for the "Find {Previous,Next}" menu items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b61e1f74 10-Aug-2009 Philippe Saint-Pierre <stpere@gmail.com>

Terminal's preferences window :
* Align the controls
* Remove a bit of gray space that was superflous
* Size dropdown menu now includes sizes of 13, 15 or 17, if needed, avoiding the case where is shown the word "size".
Basically, it doesn't show them unless you got at that value by using the menu entries.

Also disables the Increase/Decrease text size menu entries if you reach the upper or lower bounds.

Partly fixes ticket #4198.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db75c41b 09-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

This adds a Text Size menu to increase/decrease the size of the font.

This follows the enhancement suggestion #3203.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffcedfaa 02-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

Small tweaks regarding the scrollbars of terminal when used in fullscreen mode :

* if there is only one tab open, no functional change
* when there is two or more tabs open, display the scroll bar in the _ActiveTermView

It simply didn't make sense to not display the scrollbars in the _ActiveTermView since it was already shown in the other tabs. On the other hand, I can understand not showing the scrollbar when there is no tabview visible, as it mimic a real terminal.

That fixes bug reported in ticket #3300.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b5c4663 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Suppress ResizeView (the grey rows & columns view) when entering/leaving fullscreen mode, and when zooming. Its useful only when manually resizing the window. In the other cases it simply flickers by.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6df054ee 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Reenabled setting the window title. Changed things a bit, though: Each
session (tab) has it's own window title. Switching between them changes
the window title, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 799a9a34 14-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* TermWindow does maintain a separate Session list instead of doing
nasty things with the tab view.
* The tabs are named "Shell <number>" now, which is somewhat more
useful than all being named "Terminal". This is similar to Konsole and
we should probably also support setting the tab name by the user.
Until Haiku supports persistent sessions, that is not really useful,
though.
* Shift-Left/Right iterates through the tabs, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52b1d543 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
implementation. Removed all related code from TermView. Removed
the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
of TermView, and TerminalBuffer asynchronously notifies TermView.
This avoids potential deadlocks, fixing #1918. It also speeds
up tty-output-bound programs. E.g. a "seq 10000" is about twice
at fast with the default terminal size in my setup, now. It's
still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
TermView, thus simplifying the code. Instead put the view into a
new parent view which provides the insets. This also fixes
artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
- When scrolling fully down, the (80x25 or whatever) terminal
screen is seen. It is not possible to scroll below the screen as
in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
broken in this respect. As a side effect this fixes #2070.
- When not scrolled fully down, further output won't cause any
scrolling. It is thus possible to read earlier output while
something is still going on. Fixes #1772.
- Particularly to avoid unnecessary scrolling in the not scrolled
fully down case, TermView no longer actually scrolls. It only
sets an internal offset and manually uses CopyBits() as needed.
Introduced a (hacky) BScrollView subclass using a BScrollBar
subclass to make that possible.
* Selection related changes:
- Double/triple click plus dragging allows for selecting multiple
words/lines.
- Word selection no longer selects ranges of non-space characters.
Instead it knows that words are made of alpha numerical chars and
a certain set of other chars, and selects a range of commonly
classified characters (word chars, non-word non-whitespace chars,
whitespace chars). The non-alpha-num word characters should be
made user-settable. Due to missing multi-byte character
classification multi-byte whitespace is not recognized.
- Beyond the end of the line there no longer are invisible spaces.
Trying to select the region selects the end of the line (i.e.
line break). This is similar to how Konsole and xterm work.
- Added auto-scrolling when selecting with the mouse. Formerly the
Terminal scrolled only while moving the mouse. The scroll speed
might need some fine-tuning.
- Don't know what change exactly did that (likely the switch to
non-end-inclusive text ranges used internally), but the
occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
never found anything for me. Should work now, though multi-byte
characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
(in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
(and probably other full-screen terminal apps), due to line
re-wrapping. "less" expects them to be truncated only. When
supporting an alternate screen buffer re-wrapping should be
disabled for it, which should solve the problem.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56e415dd 04-Feb-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Opening the preferences window and hitting "cancel" would shrink the
window every time, without reason, since _Revert() was called even if no
changes were made.
Build the list of window sizes dynamically, this way we get rid of some
code duplication.
Removed implementation of TermWindow::QuitRequested(). The
B_QUIT_ON_WINDOW close takes care of quitting the application.
Some cleanups.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23860 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 58cf7360 29-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added shortcuts to increase and decrease the font size. Since
these key combinations (ALT + +/-) can't be used on many keymaps, we
might want to change. Moved view resizing to a private window method.
Seems to work, more or less (ticket #1334)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a08f19d5 22-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Limit the number of tabs to 6 per window (at least for now). More tabs
are not that useful, and the terminal doesn't like it anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7014c8a3 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dbc03773 28-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a SIGCHLD handler, so that the terminal will notice when one of
its shells has been terminated. Usually the thread reading from the tty
master would notice when all slaves have been closed, but they won't be
closed when the shell started a background job that's still living.

Unfortunately there are race conditions in the terminal that can lead to
deadlock when a session is closed. The service threads usually happily
lock the window, while the (locked) window would wait for the service
threads to quit.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22100 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5ede51 16-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed build under Dano
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22001 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7f9f277 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use a try { } catch block in TermWindow::_AddTab(). Note that this
doesn't fix bug #1392, since TermView::_InitObject() use std::nothrow
for allocations. Added TermWindow::_GetPreferredFonts() and moved some
code in there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb4632f1 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Stolen Ingo's Arguments class from Miniterminal and used it in place of
GPL'd code in TermApp (slightly modified, and bugfixed, even :P).
TermView now accepts an argument vector instead of a commandline. Same
thing for Shell.
Temporarily(?) removed some commandline options.
This also fixes bug #1396 (tested)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db5b3a02 09-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermWindow didn't set the colors correctly on Terminals in a new tab.
Now TermWindow::_SetTermColors() accepts a pointer to a TermView to fix
that.
Spotted by Andrea Bernardi. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21870 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6f28abe 08-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a popup menu to the tabview: for now it only contains a "close
tab" item. Note that you can also close the tab by clicking on it with
the tertiary mouse button. Renamed some methods of TermWindow.
I'm not really happy with this code (tab creation/deletion code is
spread between TermWindow and SmartTabView), I will need to come up with
something better.
There are still some visual glitches when tabs are switched, created or
deleted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b87a97a 03-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Attach/DetachShell are now private. Added a new TermView constructor
which only specifies the rows and columns, view size is automatically
calculated, and used it in TermWindow. Added a TermView::SetTitle()
method, thus TermParse doesn't call Window() anymore. Some cleanups,
scrollbar was off by one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 678f903e 02-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented tabbed terminal (with a couple of bad hacks which will go
away soon, hopefully). The menuitem to open a new tab is still
disabled, until I figure out how to catch the exit signal... HELP ?
Plus there are still a couple of visual issues, but AFAICT without tabs
the Terminal appearance should be the same as it was before, so no one
should complain.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21790 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69adf535 28-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView and the classes used by it now don't know about PrefHandler
anymore, but have methods to set the needed options. Various cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 258e9494 27-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work towards a tabbed terminal. Actually it already somewhat works
(code not enabled, though). Moved scripting from TermWindow to
TermView. Added a SmartTabView which (for now) only resizes the
child views to fit their size. Usual cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21723 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f14a8c58 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed more unused stuff. Cleanups.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 702e4be8 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved all TermView initializing code into TermView itself. Before you
couldn't just rely on its constructor to fully initialize the object,
since the code was scattered around, mostly into TermWindow. Added a
commented out TermWindow constructor which only creates and adds a
TermView object to the view hierarchy, which now works.
Removed weird TermWindowActivate method, use WindowActivated
instead. TermApp can now keep a pointer to a BWindow instead of
TermWindow, since it doesn't do anything special with it.
TermView::SetTermFont() now can filter the font attributes (it uses
B_FIXED_SPACING, I'm not sure it's needed but it doesn't hurt). Usual
cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fbf283f 22-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a bug where Terminal couldn't set itself to fullscreen the first
time. Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21681 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac3a8f54 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made all CodeConv methods static, since there was no point for them to
be nonstatic. Moved TermParse under Shell, Removed some parameters
passing around from TermWindow/TermView/TermParse. Now TermParse threads are
started when the shell is attached to a TermView. Might still be
improved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ed5650b 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of TermBaseView


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21679 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d32d905 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Minor cleanup, Updated some copyrights


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc25fe81 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3d05c8b 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encapsulated low level terminal stuff into a Shell class, which also
supersedes spawn_shell(). Removed window parameter from TermParse. Since
we already have a pointer to the view, we just call Window() on it (only
used in one place, no need to save a pointer). Other cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21628 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b0f12f7 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved spawning the shell from TermApp to TermWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ec75bbe 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1628af5 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more style cleanups, removed unused global


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5240f115 26-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed unused methods and variables, small style cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20843 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f108511 25-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote terminal ID code to use a temporary file - this fixes bug #1174.
* Tried to fix the usual deadlock on quit, but suspending the thread (to
interrupt read()) doesn't have the expected outcome (might be a kernel
bug).
* Removed superfluous MENU_FILE_QUIT and send a B_QUIT_REQUESTED instead.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20816 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15b4543f 20-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Header was not self-containing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20771 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e99a484 13-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed *Dlg classes to *Window, completing my previous commit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f2b50593 11-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed pfd to gPfd as it's a global variable, fixed indentation in
TermView.cpp, other style changes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19455 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1904124 07-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

got rid of the tty_name global


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f83bebcd 24-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Save the settings of the find window when reopening it (just like R5's terminal)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f95dbf89 22-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implement Find in Terminal. This is almost identical to R5's Terminal, except that it doesn't look for regexps. Code tested by me. Thanks to jburton for helping me out and reviewing the patch.

This resolves bug #199.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289ca930 22-May-2006 François Revol <revol@free.fr>

Added a Fullscreen shortcut (ALT-ENTER).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d5dea62 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

* Setting the window title via "-t" now works.
* Improved error message in case the initial shell couldn't be executed.
* Disabled setting the colors via arguments, mostly because it just did quit
the app in case there were any arguments and no /etc/rgb.txt file. This
allows Terminal to be used by the debug_server instead of MiniTerminal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 71922d19 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed SetWindowTitle().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14853 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76649c03 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Removed the ugly about window, and replaced it with a common BAlert.
Moved the alert to TermApp, too - TermWindow now only forwards the B_ABOUT_REQUESTED message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13737 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5211ae5d68901d91974081997fcd9cb2ee733b4b 27-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal: use BPopUpMenu in BMenuFields.

Using a BMenu works, but it doesn't look as good.
Thanks to Diver for noticing this.


# 482f0eeb0169f5091ccc56af5124b19a9e801573 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

add window size and encoding to terminal prefs

* The menu items now only set the values for the current window without
saving,
* The settings in the preference window are persistent,
* The "save as defaults" menu item is removed.

Fixes #5030.


# 7aae876a792944f579ad68ca449c4f6d6a83c7d0 14-May-2013 John Scipione <jscipione@gmail.com>

Terminal: Move secondary windows back in screen

For the Window title and tab title edit windows there was already code used to
move a window that had gone out of the screen frame back in.

I generalized this code by turning it into a _MoveWindowInScreen() method
and then called it in 3 places, the original 2 cases as well as the Find window.
We might want to move this method into BWindow if this is something we'd like
to use it for windows in other applications, but this solves the problem in Terminal
for now.


# dc1456f662de373745f3623c83dc7a6b239e0e1a 07-Dec-2012 John Scipione <jscipione@gmail.com>

Add font sizes to Font Size menu in addition to in settings


# 105093fddbb85778be7ebb0d99cb5fa844ea0ee4 21-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class TerminalRoster, which maintains a list of all running
terminals, including their window minimized status and workspaces. These
information are shared via our special-purpose clipboard. TerminalRoster
mainly acts as a cache.
* Removed the terminal ID management from TermApp. Most is now done by
TerminalRoster, the rest has been moved to TermWindow.
* Moved the terminal position file reading/writing from TermApp to TermWindow.
* Moved the remaining terminal window title handling from TermApp to TermWindow.
* Replaced the solution for #6613 implemented in r39530 (enabling/disabling the
"Switch Terminals" menu item depending on whether there are other Terminals).
The new solution is more correct, since it does enable the menu item, if and
only if switching to another Terminal will happen when triggering it. I.e.
minimized Terminals and ones on other workspaces are ignored.

Should also fix #6612, since there's no synchronous communication between
different terminal apps anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39562 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b216f4070efa63b85476035096cd742c54c6ba47 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enable/disable the "Switch Terminals" menu item depending on whether there are
other Terminals. Fixes #6613.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad617d3320a857b8272fa71d92146f963501e5fa 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved some locally used message constants from TermConst.h to TermWindow.cpp.
* Added an "Edit tab title..." item to the tab menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 486cd82188978fb97c6b3ee29cca1263b02bb6e0 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a menu item that opens a dialog for editing the window title.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ded93a4b91c47acf8424b66f1a3b75350937030 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Use the new menu layout builder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a6bf08d493e919e47914bfe9a55f1a121860c11 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed menu related member variables.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f7255f7637e6e4b21a31aafe08a0e86e5e738fa 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed fHelpmenu to fSettingsMenu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54197c6163dc15cec4b102fc3f76df3a2631b508 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't send TermView pointers around in messages. When the message is processed
the pointer might already be invalid. Use SessionID instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 713b2a7886e84b3ddfdb77682abd212c71586d75 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added _SessionAt() helper method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39498 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 135f173dcebc6dbbeb048a7a0e065f8e24bf510f 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added SetTitleDialog, a dialog to edit a tab/window title.
* Use the dialog to open the tab title. Opened on double-click on the tab.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39497 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38d5ce6271ca1648326ffa64cf38bb461e76242e 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed "move" parameter from the
TermView::Listener::{Previous,Next}TermView() methods. All B_COMMAND_KEY
combos are intercepted by the window, so we never get them in the view.
* Added window shortcut Command-Shift-Left/Right to move the tabs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92b0038ec03c6184daa8588f01c7684aef0b002b 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a listener interface to TermView. This allowed to get rid of
CustomTermView and of the messaging from view to window. It also simplified
things in TermWindow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1b6854036607df8753533f0c4541de7c26857fd 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed the session ID to index.
* Introduced class SessionID to uniquely identify a session. Unlike the indexes
the IDs aren't reused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39484 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b28dba722e3c16470e94a5b2baae068bc86bb6b3 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* SmartTabView::MouseDown(): Also notify the listener when the click didn't hit
a tab.
* TermWindow: Add a new tab on double-click in the tab view's tab-free area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d365030ea5013ef738a30274677d70e280a1f8eb 18-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a listener interface to SmartTabView and moved functionality that
doesn't belong in SmartTabView to TermWindow. This also allowed to get rid of
TermWindow::TabView.
* Also check for double clicks on tabs. No action attached yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02ee32bb0d3cc6680c421177bb490dba84230081 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39473 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37322c4b52e4d9922fb1c7289a3f0d129ab1841b 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class ShellParameters that bundles all parameters passed to the
shell.
* Also added a parameter for the current working directory and. If supplied,
it is applied in Shell::_Spawn().
* Pass the current working directory of the active tab when opening a new
tab. Implements part of #6712.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91eec68cf1414ff214e0961effec94df3f7d067a 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 190806e61f7dee7ebf2ae2ef744528f21c906717 06-Nov-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also check if there are active process when closing a tab.
This completes the work needed to close ticket #3745


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39329 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d18fc3994c2e4686a400c83d8fe97d470f305f84 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by rossi, but I ended u rewriting half of it :
* Save terminal windows positions
* Also save their size and workspace, but these aren't used (size is overriden by the menu setting and workspace is annoying)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9fdb4f6cdba4e444b19404e3d4dfe1c86b2f575 20-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added Shell::HasActiveProcesses() and TermView::IsShellBusy() (which calls
the former) to tell if some process launched from the terminal is still
running. Some style fix in Shell.h, made a parameter const.
Added basic TermWindow::QuitRequested()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37631 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c6aa65eb6a967af6ade9abeee7c961ff84005c7 19-Dec-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented input method handling. Unfortunately, due to bug #4926, it's
completely unusable (it's disabled currently anyway).
Shell::AttachBuffer() returns a status_t now (instead of void), so the caller
can do something in case it fails.
Simplified some methods, removed unused stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34707 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b87afd3608687b867eb276402e945e273d0add6 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the Find Window a bit wider by default, moved some functions around,
got rid of MenuUtil.h/cpp.
Some style change.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17ecdb5b2f88c22bb3271cdd77dc5c42a462c483 20-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView doesn't know about PrefHandler anymore (again), so that, in case
it's used as replicant (but I think it won't work anymore, yet),
it doesn't influence the global settings.
TermWindow saves the preferences on quit, if the PrefWindow was never
instantiated. This allows the window size to be saved also when it's
resized manually (not via menu).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4aa87c0410d45a1743f6730df041166badb98a66 14-Aug-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjusted variable names for the "Find {Previous,Next}" menu items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b61e1f74bf422d9a5d5f1b531b686270ebef4d16 10-Aug-2009 Philippe Saint-Pierre <stpere@gmail.com>

Terminal's preferences window :
* Align the controls
* Remove a bit of gray space that was superflous
* Size dropdown menu now includes sizes of 13, 15 or 17, if needed, avoiding the case where is shown the word "size".
Basically, it doesn't show them unless you got at that value by using the menu entries.

Also disables the Increase/Decrease text size menu entries if you reach the upper or lower bounds.

Partly fixes ticket #4198.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db75c41bf8ec686922773d618c2d28de32cf4c02 09-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

This adds a Text Size menu to increase/decrease the size of the font.

This follows the enhancement suggestion #3203.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffcedfaa29b8038395330dd4aa3032430464c99b 02-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

Small tweaks regarding the scrollbars of terminal when used in fullscreen mode :

* if there is only one tab open, no functional change
* when there is two or more tabs open, display the scroll bar in the _ActiveTermView

It simply didn't make sense to not display the scrollbars in the _ActiveTermView since it was already shown in the other tabs. On the other hand, I can understand not showing the scrollbar when there is no tabview visible, as it mimic a real terminal.

That fixes bug reported in ticket #3300.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b5c46634dd9d7ce056bfaf358ecbf736effad36 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Suppress ResizeView (the grey rows & columns view) when entering/leaving fullscreen mode, and when zooming. Its useful only when manually resizing the window. In the other cases it simply flickers by.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6df054ee2f61714fd4452839fb0b99327dbbdce1 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Reenabled setting the window title. Changed things a bit, though: Each
session (tab) has it's own window title. Switching between them changes
the window title, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 799a9a3449a0151626da9d454a892b5d34f17ff1 14-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* TermWindow does maintain a separate Session list instead of doing
nasty things with the tab view.
* The tabs are named "Shell <number>" now, which is somewhat more
useful than all being named "Terminal". This is similar to Konsole and
we should probably also support setting the tab name by the user.
Until Haiku supports persistent sessions, that is not really useful,
though.
* Shift-Left/Right iterates through the tabs, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52b1d543e80f5d48e6ef841fff4780c7c87bae11 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
implementation. Removed all related code from TermView. Removed
the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
of TermView, and TerminalBuffer asynchronously notifies TermView.
This avoids potential deadlocks, fixing #1918. It also speeds
up tty-output-bound programs. E.g. a "seq 10000" is about twice
at fast with the default terminal size in my setup, now. It's
still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
TermView, thus simplifying the code. Instead put the view into a
new parent view which provides the insets. This also fixes
artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
- When scrolling fully down, the (80x25 or whatever) terminal
screen is seen. It is not possible to scroll below the screen as
in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
broken in this respect. As a side effect this fixes #2070.
- When not scrolled fully down, further output won't cause any
scrolling. It is thus possible to read earlier output while
something is still going on. Fixes #1772.
- Particularly to avoid unnecessary scrolling in the not scrolled
fully down case, TermView no longer actually scrolls. It only
sets an internal offset and manually uses CopyBits() as needed.
Introduced a (hacky) BScrollView subclass using a BScrollBar
subclass to make that possible.
* Selection related changes:
- Double/triple click plus dragging allows for selecting multiple
words/lines.
- Word selection no longer selects ranges of non-space characters.
Instead it knows that words are made of alpha numerical chars and
a certain set of other chars, and selects a range of commonly
classified characters (word chars, non-word non-whitespace chars,
whitespace chars). The non-alpha-num word characters should be
made user-settable. Due to missing multi-byte character
classification multi-byte whitespace is not recognized.
- Beyond the end of the line there no longer are invisible spaces.
Trying to select the region selects the end of the line (i.e.
line break). This is similar to how Konsole and xterm work.
- Added auto-scrolling when selecting with the mouse. Formerly the
Terminal scrolled only while moving the mouse. The scroll speed
might need some fine-tuning.
- Don't know what change exactly did that (likely the switch to
non-end-inclusive text ranges used internally), but the
occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
never found anything for me. Should work now, though multi-byte
characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
(in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
(and probably other full-screen terminal apps), due to line
re-wrapping. "less" expects them to be truncated only. When
supporting an alternate screen buffer re-wrapping should be
disabled for it, which should solve the problem.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56e415dda141250b366bc3d5edd71814960129dd 04-Feb-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Opening the preferences window and hitting "cancel" would shrink the
window every time, without reason, since _Revert() was called even if no
changes were made.
Build the list of window sizes dynamically, this way we get rid of some
code duplication.
Removed implementation of TermWindow::QuitRequested(). The
B_QUIT_ON_WINDOW close takes care of quitting the application.
Some cleanups.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23860 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 58cf7360ca244204ce36f51f6dca8b0e93afccf5 29-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added shortcuts to increase and decrease the font size. Since
these key combinations (ALT + +/-) can't be used on many keymaps, we
might want to change. Moved view resizing to a private window method.
Seems to work, more or less (ticket #1334)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a08f19d598eb82d5f31881b0059d0d6d29facf6f 22-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Limit the number of tabs to 6 per window (at least for now). More tabs
are not that useful, and the terminal doesn't like it anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7014c8a3790cfbd79887ef7092b6c89ad9e548bd 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dbc03773ef3b00c0daf4f4cdd8871f0a4072d094 28-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a SIGCHLD handler, so that the terminal will notice when one of
its shells has been terminated. Usually the thread reading from the tty
master would notice when all slaves have been closed, but they won't be
closed when the shell started a background job that's still living.

Unfortunately there are race conditions in the terminal that can lead to
deadlock when a session is closed. The service threads usually happily
lock the window, while the (locked) window would wait for the service
threads to quit.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22100 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5ede51ed109ea242fbb50520506c12487a9c46 16-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed build under Dano
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22001 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7f9f277efe33485eef64465cfee8ef4d65da7d1 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use a try { } catch block in TermWindow::_AddTab(). Note that this
doesn't fix bug #1392, since TermView::_InitObject() use std::nothrow
for allocations. Added TermWindow::_GetPreferredFonts() and moved some
code in there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb4632f1ecfa5b77c87683e446ff7db70c636baf 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Stolen Ingo's Arguments class from Miniterminal and used it in place of
GPL'd code in TermApp (slightly modified, and bugfixed, even :P).
TermView now accepts an argument vector instead of a commandline. Same
thing for Shell.
Temporarily(?) removed some commandline options.
This also fixes bug #1396 (tested)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db5b3a02498ddee474ae2ab4e78aa629e8f68aff 09-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermWindow didn't set the colors correctly on Terminals in a new tab.
Now TermWindow::_SetTermColors() accepts a pointer to a TermView to fix
that.
Spotted by Andrea Bernardi. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21870 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6f28abebe5323d306c9a7c63bd2f7bb7bc90d1c 08-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a popup menu to the tabview: for now it only contains a "close
tab" item. Note that you can also close the tab by clicking on it with
the tertiary mouse button. Renamed some methods of TermWindow.
I'm not really happy with this code (tab creation/deletion code is
spread between TermWindow and SmartTabView), I will need to come up with
something better.
There are still some visual glitches when tabs are switched, created or
deleted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b87a97ac6932e3421e0a8a071a7d31f00ec9c73 03-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Attach/DetachShell are now private. Added a new TermView constructor
which only specifies the rows and columns, view size is automatically
calculated, and used it in TermWindow. Added a TermView::SetTitle()
method, thus TermParse doesn't call Window() anymore. Some cleanups,
scrollbar was off by one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 678f903e20f36c964206a017111370ec60376f42 02-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented tabbed terminal (with a couple of bad hacks which will go
away soon, hopefully). The menuitem to open a new tab is still
disabled, until I figure out how to catch the exit signal... HELP ?
Plus there are still a couple of visual issues, but AFAICT without tabs
the Terminal appearance should be the same as it was before, so no one
should complain.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21790 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69adf535c1b4469dc0991c4c9c07f2dea81f18a4 28-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView and the classes used by it now don't know about PrefHandler
anymore, but have methods to set the needed options. Various cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 258e949475ef1971cc5560dd0715f7199123e7a4 27-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work towards a tabbed terminal. Actually it already somewhat works
(code not enabled, though). Moved scripting from TermWindow to
TermView. Added a SmartTabView which (for now) only resizes the
child views to fit their size. Usual cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21723 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f14a8c580104cc3dcdefefb04661ef93a369da8d 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed more unused stuff. Cleanups.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 702e4be807966ff71d1c6d71b46f93d3e83314c9 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved all TermView initializing code into TermView itself. Before you
couldn't just rely on its constructor to fully initialize the object,
since the code was scattered around, mostly into TermWindow. Added a
commented out TermWindow constructor which only creates and adds a
TermView object to the view hierarchy, which now works.
Removed weird TermWindowActivate method, use WindowActivated
instead. TermApp can now keep a pointer to a BWindow instead of
TermWindow, since it doesn't do anything special with it.
TermView::SetTermFont() now can filter the font attributes (it uses
B_FIXED_SPACING, I'm not sure it's needed but it doesn't hurt). Usual
cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fbf283fb59bc5c78f2939d9009a33e662ad3129 22-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a bug where Terminal couldn't set itself to fullscreen the first
time. Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21681 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac3a8f54460005262afcdc310481d6ba91ef6ff9 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made all CodeConv methods static, since there was no point for them to
be nonstatic. Moved TermParse under Shell, Removed some parameters
passing around from TermWindow/TermView/TermParse. Now TermParse threads are
started when the shell is attached to a TermView. Might still be
improved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ed5650b011e2b12aa43554f2b57cb01d16496a3 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of TermBaseView


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21679 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d32d905e9e0dcc971b842b165a9958c78f8a5aa 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Minor cleanup, Updated some copyrights


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc25fe8173a381f951765f518a85c287e894cd8c 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3d05c8b3ae5de10c8402ed38793fd38605ed13f 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encapsulated low level terminal stuff into a Shell class, which also
supersedes spawn_shell(). Removed window parameter from TermParse. Since
we already have a pointer to the view, we just call Window() on it (only
used in one place, no need to save a pointer). Other cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21628 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b0f12f79e7ba357cc72fc1cf6ca7837599bafbf 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved spawning the shell from TermApp to TermWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ec75bbee658e4c68b82281f0ee833fcfa15e018 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1628af583835006011b4a45eb98526d64290619 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more style cleanups, removed unused global


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5240f11543de98674493a3256764bcaf86b20dda 26-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed unused methods and variables, small style cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20843 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f1085115e560e38a524331ecda040502a2a81cd 25-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote terminal ID code to use a temporary file - this fixes bug #1174.
* Tried to fix the usual deadlock on quit, but suspending the thread (to
interrupt read()) doesn't have the expected outcome (might be a kernel
bug).
* Removed superfluous MENU_FILE_QUIT and send a B_QUIT_REQUESTED instead.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20816 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15b4543f2c86b0eed3df9648dd7002b68288637e 20-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Header was not self-containing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20771 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e99a484fbb78fbf2a35b1c152cfe1e9e708d558 13-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed *Dlg classes to *Window, completing my previous commit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f2b50593a83669a4e181d492db3c771dfc38fadb 11-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed pfd to gPfd as it's a global variable, fixed indentation in
TermView.cpp, other style changes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19455 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b19041249debf4198f24c60bb78a86e4ad35f47e 07-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

got rid of the tty_name global


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f83bebcddee0fe24c2058b9ec772278b298e94bd 24-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Save the settings of the find window when reopening it (just like R5's terminal)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f95dbf89065f63a1ed5c4588d7c263a3b9489806 22-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implement Find in Terminal. This is almost identical to R5's Terminal, except that it doesn't look for regexps. Code tested by me. Thanks to jburton for helping me out and reviewing the patch.

This resolves bug #199.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289ca930ab86dfbe6bcee18b7feb0604bdf169b8 22-May-2006 François Revol <revol@free.fr>

Added a Fullscreen shortcut (ALT-ENTER).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d5dea62de02f705791d0e3ca15f9a50e53ffea3 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

* Setting the window title via "-t" now works.
* Improved error message in case the initial shell couldn't be executed.
* Disabled setting the colors via arguments, mostly because it just did quit
the app in case there were any arguments and no /etc/rgb.txt file. This
allows Terminal to be used by the debug_server instead of MiniTerminal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 71922d1950c646c49a623f4e3e8fb87b63737f63 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed SetWindowTitle().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14853 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76649c0319267574b5fe7ade2210bd095d2a5af2 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Removed the ugly about window, and replaced it with a common BAlert.
Moved the alert to TermApp, too - TermWindow now only forwards the B_ABOUT_REQUESTED message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13737 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f9fbe302c5c45c3ec2518650a260605d7 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96