152 Commits

Author SHA1 Message Date
Stefano Ceccherini
ba40a9b6a7 Added a TermView::NotifyQuit() method, used in TermParse, so it doesn't
mess with be_app anymore. Renamed TermView private methods to have an 
underscore prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-30 09:59:17 +00:00
Stefano Ceccherini
53763c54d1 Don't use exceptions in TermView constructor, as it would cause problems
with instantiation. Note that if an error occurs in the constructor, 
we're pretty much screwed. Made some TermView functions private. Some 
small cleanup, and some WIP code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-30 08:59:12 +00:00
Stefano Ceccherini
69adf535c1 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
2007-07-28 14:49:39 +00:00
Stefano Ceccherini
a77bd4200b Implemented Archive() and unarchiving constructor. TermView won't work
as a replicant, though, until I remove the preference code from it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 21:56:47 +00:00
Stefano Ceccherini
cd2b8867e1 Removed weird code in TermWindow::WindowActivated. Added basic
Archive(), Instantiate(), and unarchiving constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 21:43:24 +00:00
Stefano Ceccherini
258e949475 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
2007-07-27 21:23:32 +00:00
Stefano Ceccherini
17dfb8b1cb More headers cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-26 15:22:21 +00:00
Stefano Ceccherini
b10dd441dd Fixed warnings, rearranged some headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-26 15:07:16 +00:00
Stefano Ceccherini
feaebcb571 Encoding is now a property of TermView. Changed a lot of code to fix the
problems caused by this change. MakeEncodingMenu doesn't mark the 
current encoding anymore, it was already done in TermWindow::MenusBeginning().
Removed custom enums for encodings, just use the ones provided in UTF8.h.
I'm more and more convinced we should drop the custom conversion routines
and use the system ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-26 14:52:24 +00:00
Stefano Ceccherini
f14a8c5801 Removed more unused stuff. Cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-25 11:31:17 +00:00
Stefano Ceccherini
d75fc05829 Had switched rows and columns in SetTermSize() call inside TermView's
constructor. Made UpdateSIGWINCH() private and renamed it to 
_UpdateSIGWINCH().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-25 10:16:18 +00:00
Stefano Ceccherini
702e4be807 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
2007-07-25 09:50:34 +00:00
Stefano Ceccherini
abc4720231 Moved cursor blinking functionality from TermParse into TermView (and
from a BMessageRunner into Pulse()). Removed more unused stuff. 
Moved around some constants and definitions. Many style changes. Sorry, 
I know the two should be separated, but I had already done so many changes...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-24 12:18:24 +00:00
Stefano Ceccherini
6fbf283fb5 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
2007-07-22 13:26:17 +00:00
Stefano Ceccherini
ac3a8f5446 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
2007-07-21 20:50:06 +00:00
Stefano Ceccherini
0ed5650b01 Got rid of TermBaseView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:56:55 +00:00
Stefano Ceccherini
90c6c3e8a4 Sorry, the previous commit also contained broken WIP stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:22:53 +00:00
Stefano Ceccherini
0d32d905e9 Minor cleanup, Updated some copyrights
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:11:41 +00:00
Stefano Ceccherini
892bf0d5fd fixed a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 09:50:06 +00:00
Stefano Ceccherini
894e5a26d3 Renamed a variable to fit our guidelines. Removed typedef
from UTF8WidthTbl.c. Use typedef from SupportDefs.h instead


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 09:42:34 +00:00
Stefano Ceccherini
12999e13de Removed unused files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 09:19:02 +00:00
Stefano Ceccherini
dc25fe8173 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
2007-07-17 09:14:44 +00:00
Stefano Ceccherini
37b209af04 Renamed spawn.cpp/h to Shell.cpp/h and updated the other source files to
take this change into account


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 08:04:36 +00:00
Stefano Ceccherini
f3d05c8b3a 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
2007-07-17 07:58:37 +00:00
Stefano Ceccherini
2b0f12f79e Moved spawning the shell from TermApp to TermWindow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-13 11:27:59 +00:00
Stefano Ceccherini
85f69514f4 More style changes, replaced sprintf use with snprintf. Removed unused
variables and code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-13 10:38:58 +00:00
Marcus Overhagen
ad1d8116a6 compile fix, header file for strcmp was missing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-07 00:37:11 +00:00
Stefano Ceccherini
4ec75bbee6 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
2007-07-04 20:11:17 +00:00
Stefano Ceccherini
e1628af583 more style cleanups, removed unused global
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-02 20:37:45 +00:00
Stefano Ceccherini
1bf81a0b8d Moved gTermPref to TermApp.cpp. Moved deleting of gTermPref to the
TermApp destructor, so it's symmetric to its creation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-02 20:13:40 +00:00
Stefano Ceccherini
e0ba8e50cc Got rid of the drawing thread, drawing is faster using the "correct"
approach. There are still some leftovers, will be taken care in the next 
commits (not today though)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-29 11:48:40 +00:00
Stefano Ceccherini
d342dd3f50 a small step towards removing (duplicate) selection logic from
TermBuffer. Enabled invalidating in TextView instead of weird redrawing. 
Seems much faster.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-29 11:18:41 +00:00
Stefano Ceccherini
6b5ac907c4 Made TermBuffer fit a bit better into our coding style. Removed some
useless stuff. Not yet finished.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-29 10:43:17 +00:00
Stefano Ceccherini
645b01f225 Got rid of fSelected, no need to maintain a separate variable to check
if we have a selection. Now there's a "HasSelection()" method which just 
checks if fSelStart and fSelEnd are different. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-28 12:58:03 +00:00
Stephan Aßmus
252fb08a83 * remove Terminal from the test environment
* small update to icon
* link with libgame.so (includes set_mouse_position())


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-21 18:42:17 +00:00
Axel Dörfler
66eba86f4b * Applied patch by Jonas Sundstrom: fixed the usage of B_UTF8_ELLIPSIS hopefully
everywhere in the tree.
* Added the ellipsis to "About Haiku" in Deskbar as well.
* Minor cleanup of Deskbar's StatusView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-16 16:34:09 +00:00
François Revol
b741fc8986 Fix building on R5 (dano at least).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-07 23:05:52 +00:00
Axel Dörfler
d1c710a7d8 * Implemented the Terminal-ID search using a BClipboard and the new atomicity
feature of BClipboard::Commit().
* The file based version is now only used when the Terminal is built for BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-30 21:22:26 +00:00
Stefano Ceccherini
5240f11543 Removed unused methods and variables, small style cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-26 19:51:09 +00:00
Axel Dörfler
7f1085115e * 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
2007-04-25 17:00:51 +00:00
Axel Dörfler
ef502a7eb3 * Removed useless context menu.
* Removed useless mouse button preferences.
* The secondary and tertiary buttons now both paste the selection (or clipboard data)
  into the Terminal, this fixes bug #1159.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-20 16:09:27 +00:00
Axel Dörfler
15b4543f2c Header was not self-containing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-20 15:58:16 +00:00
Stefano Ceccherini
7e99a484fb 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
2007-04-13 16:41:44 +00:00
Stefano Ceccherini
f8cc2a74e4 Renamed *Dlg to *Window, since the term "Dialog" is alien to the beos
api. Thanks to Vasilis Kaoutsis for the suggestion. I'll rename the 
classes with the next commit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-13 16:35:50 +00:00
Ingo Weinhold
467b8adffa For some reason a Terminal started by Tracker or Deskbar does not have a
valid stderr. Thus one of the FDs for the pipes created for the initial
handshake with the fork()ed child process exec()ing the shell would have
number 2 and would be closed when the child process set up the
stdin/out/err environment for the shell, leading to the child and the
parent being killed by a SIGPIPE when they tried to access the pipes.

This change replaces the pipes mechanism by one using send/receive_data(),
which is probably even faster. I also reduced the handshake_t::msg field
to 128 bytes and replaced the sprintf()s writing to it by snprintf()s.

Fixes bug #627. Although they looked related, bugs #113 and #928 still
persist.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-19 18:25:56 +00:00
Stefano Ceccherini
96d6092ef6 Re-enabled wait_for_thread() (in place of kill_thread()) inside
TermParse's destructor. PtyReader() was hanging on read(), since the 
fd was never closed. Now we do that in ~TermWindow() (for now, we might 
want to move some stuff around). Moved there the cleanup code too (from 
TermWindow::Quit()). Use B_QUIT_ON_WINDOW_CLOSE flag instead of sending 
a message to be_app in Quit().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-05 14:59:37 +00:00
Stefano Ceccherini
ff2184e07d temporary reverted to using kill_thread because of a deadlock on quit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-05 13:14:12 +00:00
Stefano Ceccherini
63dc9cc262 Got rid of the global gPfd variable. Big time cleanup, made TermParse a
bit more robust with error checks and likes. Removed unused 
TermPrint.cpp file. I hope I didn't get on your 
way, Vasilis :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-05 12:48:36 +00:00
Stefano Ceccherini
bb11b61bee Patch by Vasilis Kaoutsis:
* Use a BMessenger instead of a BWindow pointer
* Removed an useless SetTitle() call
* Lock the window before quitting it
* Style changes and cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-04 21:06:51 +00:00
Stefano Ceccherini
3e837bf6d0 Patch by Vasilis Kaoutsis:
* Style issues.
* Renamed CenteredRect to _CenteredRect
since is private and removed the static keyword.
* Corrected copyright dates.
Thank you!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 07:20:06 +00:00