new terminal behaves like r5 terminal, 1 terminal window per terminal application

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4256 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
shatty
2003-08-10 06:03:51 +00:00
parent e789715f25
commit 2deca29a77
8 changed files with 269 additions and 259 deletions
+4 -2
View File
@@ -2,13 +2,15 @@ SubDir OBOS_TOP src apps terminal ;
AddResources Terminal :
Terminal.rdef
Terminal.icons.rdef
Terminal.version.rdef
;
App Terminal :
ToggleScrollView.cpp
Terminal.cpp
TerminalTextView.cpp
TerminalWindow.cpp
TerminalApp.cpp
;
LinkSharedOSLibs Terminal : be stdc++.r4 translation tracker ;
LinkSharedOSLibs Terminal : be translation tracker ;
+112
View File
@@ -0,0 +1,112 @@
/*
** Terminal.icons.rdef
**
*/
resource(2, "BEOS:L:application/x-vnd.Be-pref") #'ICON' array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0FF8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F0F0FF8F80000FFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F0E0F1C190000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F0E0F1A190000FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF00001B0F3F3F3F3F3F3F0E0F1A190000FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF003F001B0F3F3F3F3F3F3F3F3F0E0F1A00FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF003F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFFFFFF003F3F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFFFF003F3FFE3F001B183F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFF003F0000003F3F00001717183F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFF003F00191A1900003F3F000017173F3F3F3F3F17190000FFFFFFFF"
$"FFFFFFFF003F00191A0E3F191A00003F3F000017173F3F3F171900FE0000FFFF"
$"FFFFFF003F00191A0E3F190F3F191A00003F3F0000171718171A003FFEFE00FF"
$"FFFF003F3F000E0F1A190F3F190F3F191A00003F3F000017171A00FEFE00FFFF"
$"FF003FFEFEFE00000E0F1A190F3F190F3F191A00003F3F00001900FE000A0B0A"
$"0000FEFEFEFEFEFE29000E0F1A190F3F190F191A000F3F003F000000000A0BFF"
$"FF0A0000FEFEFEFEFEFE00000E0F1A610F3F190F00000F003FFD006262000AFF"
$"FFFF0A000000FDFDFDFDFDFD00000E0F1A610F000F0F003FFD006262FC00000A"
$"FFFFFF0A00890000FDFDFDFDFDFD00000E0F290F0FFDFDFD00620F00000A0B0A"
$"FFFFFFFF0A0089890000FCFCFCFCFCFC00000E0FFCFCFC006200000A0BFFFFFF"
$"FFFFFFFFFF0A006289890100FBFBFBFBFBFBFBFBFBFB0000000A0BFFFFFFFFFF"
$"FFFFFFFFFFFF0A00626289890100FAFAFAFAFAFAFA00000A0BFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF0A00FC626289890000FAFAFAFA000A0BFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF0A00FCFC626289890000FA000A0BFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF0A00FCFCFCFC00000A000B0AFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF0A00FC00000A0B0A0B0BFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF0A000B0AFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8F8F8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8F8F8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001BF8F8F8F8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F0F0FF8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F0E0FF8F80000FFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F0E0F1C1C0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F0E0F1C1C0000FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F0E0F1C1C0000FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F0E0F1A190000FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F0E1A1900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B183F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFF0000FFFFFF001B1C17183F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFF00191A0000FFFF00001B1C17183F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFF00191A191A190000FFFF0000191A17173F3F3F3F3F3F3F171900FFFFFF"
$"FFFF00191A190F3F191A190000FFFF0000191A17173F3F3F3F3F171900FFFFFF"
$"FF00191A0E3F191A0E3F191A190000FFFF0000191A17173F3F3F171900FFFFFF"
$"00191A191A190F3F191A0E3F191A190000FFFF0000191A17173F171900FFFFFF"
$"000E0F1A191A191A0F3F191A0E3F191A190000FFFF0000191A17171A00FFFFFF"
$"FF00000E0F1A191A191A0F3F191A0E3F191A190000FFFF0000191A1900FFFFFF"
$"FFFFFF00000E0F1A191A191A0F3F191A0E3F191A19000FFFFF00001900FFFFFF"
$"FFFFFFFFFF00000E0F1A191A191A0F3F191A191A0E000F0F0F000F0000FFFFFF"
$"FFFFFFFFFFFFFF00000E0F1A191A191A0F191A0F0E00000FFF000F0FFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF00000E0F1A191A191A0F0F000E0F000EFF00000EFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF00000E0F1A190F0F000F0FFF000EFFFFFF000EFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFF00000E0F0F000F0FFFFFFF000000000FFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000E0FFFFFFFFFFF0E0E0FFFFFFFFF"
};
resource(2, "BEOS:M:application/x-vnd.Be-pref") #'MICN' array {
$"FFFFFFFFFF0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF00F80000FFFFFFFFFFFFFF"
$"FFFFFFFFFF00F8F800FFFFFFFFFFFFFF"
$"FFFFFFFFFF0017F8170000FFFFFFFFFF"
$"FFFFFFFFFF00173F3F17170000FFFFFF"
$"FFFFFFFF0000173F3F3F3F1700FFFFFF"
$"FFFFFF0000000017173F3F1700FFFFFF"
$"FFFF0000193F000000171718000000FF"
$"FF00000E0F1A3F3F00000017003F0000"
$"00FEFE00000E0F1A3F3F00000000000A"
$"0B0000FDFD00000E0F0F00FD00890000"
$"FF0A000000FDFA000000FA0089000A0B"
$"FFFF0A00890000FAFAFA0000000AFFFF"
$"FFFFFF0A00628900FA000A0BFFFFFFFF"
$"FFFFFFFF0A000000000B0AFFFFFFFFFF"
$"FFFFFFFFFF0A000BFF0AFFFFFFFFFFFF"
};
resource mini_icon array {
$"FFFFFFFFFF0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF00F80000FFFFFFFFFFFFFF"
$"FFFFFFFFFF00F8F8F800FFFFFFFFFFFF"
$"FFFFFFFFFF00191A1900FFFFFFFFFFFF"
$"FFFFFFFFFF00193F191A0000FFFFFFFF"
$"FFFFFFFFFF00193F3F3F191A0000FFFF"
$"FFFFFFFFFF00193F3F3F3F3F191700FF"
$"FFFFFFFFFF00193F3F3F3F3F3F1700FF"
$"FFFF0000FF0017173F3F3F3F3F1700FF"
$"FF00191A0000191A17173F3F3F1700FF"
$"00191A191A1900001A1917183F1700FF"
$"000E0F1A191A191A0000191A171800FF"
$"FF00000E0F1A191A191A0000191A00FF"
$"FFFFFF00000E0F1A190F0F00000000FF"
$"FFFFFFFFFF00000E0F0F0000FF000EFF"
$"FFFFFFFFFFFFFF0000000EFF00000EFF"
};
+25 -140
View File
@@ -1,151 +1,36 @@
/*
** /boot/develop/obos/current/src/apps/terminal/Terminal.rdef
**
** Automatically generated by BResourceParser on
** Saturday, August 09, 2003 at 00:36:36.
** Terminal.rdef
**
*/
resource(1, "BEOS:APP_FLAGS") (#'APPF') $"01000000";
/* BEOS:APP_SIG :
application:/x-vnd.obos.app-name
*/
resource(1, "BEOS:APP_VERSION") #'APPV' array {
$"0500000000000000000000000500000001000000523500000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"000000000000000000000000000000000000000042654F53203520C2A9313939"
$"312D3230303020426520496E636F72706F726174656400000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000080050000000000000000000000"
$"0500000001000000523500000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"000000000000000042654F53203520C2A9313939312D3230303020426520496E"
$"636F72706F726174656400000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000000000000000000000000000000000000000000000000000"
$"0000000000000000"
};
resource app_signature "application/x-vnd.obos.terminal";
resource(2, "BEOS:L:application/x-vnd.Be-pref") #'ICON' array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0FF8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F0F0FF8F80000FFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F0E0F1C190000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F0E0F1A190000FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF00001B0F3F3F3F3F3F3F0E0F1A190000FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF003F001B0F3F3F3F3F3F3F3F3F0E0F1A00FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF003F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFFFFFF003F3F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFFFF003F3FFE3F001B183F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFFFF003F0000003F3F00001717183F3F3F3F3F3F171900FFFFFFFFFF"
$"FFFFFFFFFF003F00191A1900003F3F000017173F3F3F3F3F17190000FFFFFFFF"
$"FFFFFFFF003F00191A0E3F191A00003F3F000017173F3F3F171900FE0000FFFF"
$"FFFFFF003F00191A0E3F190F3F191A00003F3F0000171718171A003FFEFE00FF"
$"FFFF003F3F000E0F1A190F3F190F3F191A00003F3F000017171A00FEFE00FFFF"
$"FF003FFEFEFE00000E0F1A190F3F190F3F191A00003F3F00001900FE000A0B0A"
$"0000FEFEFEFEFEFE29000E0F1A190F3F190F191A000F3F003F000000000A0BFF"
$"FF0A0000FEFEFEFEFEFE00000E0F1A610F3F190F00000F003FFD006262000AFF"
$"FFFF0A000000FDFDFDFDFDFD00000E0F1A610F000F0F003FFD006262FC00000A"
$"FFFFFF0A00890000FDFDFDFDFDFD00000E0F290F0FFDFDFD00620F00000A0B0A"
$"FFFFFFFF0A0089890000FCFCFCFCFCFC00000E0FFCFCFC006200000A0BFFFFFF"
$"FFFFFFFFFF0A006289890100FBFBFBFBFBFBFBFBFBFB0000000A0BFFFFFFFFFF"
$"FFFFFFFFFFFF0A00626289890100FAFAFAFAFAFAFA00000A0BFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF0A00FC626289890000FAFAFAFA000A0BFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF0A00FCFC626289890000FA000A0BFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF0A00FCFCFCFC00000A000B0AFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF0A00FC00000A0B0A0B0BFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF0A000B0AFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};
/* BEOS:APP_FLAGS :
00000000 = SINGLE LAUNCH
01000000 = MULTIPLE LAUNCH
02000000 = EXCLUSIVE LAUNCH
04000000 = BACKGROUND APP + SINGLE LAUNCH
05000000 = BACKGROUND APP + MULTIPLE LAUNCH
06000000 = BACKGROUND APP + EXCLUSIVE LAUNCH
08000000 = ARGV_ONLY + SINGLE LAUNCH
09000000 = ARGV_ONLY + MULTIPLE LAUNCH
0A000000 = ARGV_ONLY + EXCLUSIVE LAUNCH
0C000000 = ARGV_ONLY + BACKGROUND APP + SINGLE LAUNCH
0D000000 = ARGV_ONLY + BACKGROUND APP + MULTIPLE LAUNCH
0E000000 = ARGV_ONLY + BACKGROUND APP + EXCLUSIVE LAUNCH
*/
resource(101, "BEOS:L:STD_ICON") #'ICON' array {
$"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8F8F8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00FAF8F8F8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001BF8F8F8F8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F0F0FF8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F0E0FF8F80000FFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F0E0F1C1C0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F0E0F1C1C0000FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F0E0F1C1C0000FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F0E0F1A190000FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F0E1A1900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFFFFFFFFFFFF001B183F3F3F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFFFF0000FFFFFF001B1C17183F3F3F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFFFF00191A0000FFFF00001B1C17183F3F3F3F3F3F3F3F3F171900FFFFFF"
$"FFFFFF00191A191A190000FFFF0000191A17173F3F3F3F3F3F3F171900FFFFFF"
$"FFFF00191A190F3F191A190000FFFF0000191A17173F3F3F3F3F171900FFFFFF"
$"FF00191A0E3F191A0E3F191A190000FFFF0000191A17173F3F3F171900FFFFFF"
$"00191A191A190F3F191A0E3F191A190000FFFF0000191A17173F171900FFFFFF"
$"000E0F1A191A191A0F3F191A0E3F191A190000FFFF0000191A17171A00FFFFFF"
$"FF00000E0F1A191A191A0F3F191A0E3F191A190000FFFF0000191A1900FFFFFF"
$"FFFFFF00000E0F1A191A191A0F3F191A0E3F191A19000FFFFF00001900FFFFFF"
$"FFFFFFFFFF00000E0F1A191A191A0F3F191A191A0E000F0F0F000F0000FFFFFF"
$"FFFFFFFFFFFFFF00000E0F1A191A191A0F191A0F0E00000FFF000F0FFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF00000E0F1A191A191A0F0F000E0F000EFF00000EFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFF00000E0F1A190F0F000F0FFF000EFFFFFF000EFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFF00000E0F0F000F0FFFFFFF000000000FFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000E0FFFFFFFFFFF0E0E0FFFFFFFFF"
};
resource app_flags 0x01000000;
resource(2, "BEOS:M:application/x-vnd.Be-pref") #'MICN' array {
$"FFFFFFFFFF0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF00F80000FFFFFFFFFFFFFF"
$"FFFFFFFFFF00F8F800FFFFFFFFFFFFFF"
$"FFFFFFFFFF0017F8170000FFFFFFFFFF"
$"FFFFFFFFFF00173F3F17170000FFFFFF"
$"FFFFFFFF0000173F3F3F3F1700FFFFFF"
$"FFFFFF0000000017173F3F1700FFFFFF"
$"FFFF0000193F000000171718000000FF"
$"FF00000E0F1A3F3F00000017003F0000"
$"00FEFE00000E0F1A3F3F00000000000A"
$"0B0000FDFD00000E0F0F00FD00890000"
$"FF0A000000FDFA000000FA0089000A0B"
$"FFFF0A00890000FAFAFA0000000AFFFF"
$"FFFFFF0A00628900FA000A0BFFFFFFFF"
$"FFFFFFFF0A000000000B0AFFFFFFFFFF"
$"FFFFFFFFFF0A000BFF0AFFFFFFFFFFFF"
};
/* BEOS:FILE_TYPES :
"types" = "text/plain",
"types" = ....
*/
resource(101, "BEOS:M:STD_ICON") #'MICN' array {
$"FFFFFFFFFF0000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF00F80000FFFFFFFFFFFFFF"
$"FFFFFFFFFF00F8F8F800FFFFFFFFFFFF"
$"FFFFFFFFFF00191A1900FFFFFFFFFFFF"
$"FFFFFFFFFF00193F191A0000FFFFFFFF"
$"FFFFFFFFFF00193F3F3F191A0000FFFF"
$"FFFFFFFFFF00193F3F3F3F3F191700FF"
$"FFFFFFFFFF00193F3F3F3F3F3F1700FF"
$"FFFF0000FF0017173F3F3F3F3F1700FF"
$"FF00191A0000191A17173F3F3F1700FF"
$"00191A191A1900001A1917183F1700FF"
$"000E0F1A191A191A0000191A171800FF"
$"FF00000E0F1A191A191A0000191A00FF"
$"FFFFFF00000E0F1A190F0F00000000FF"
$"FFFFFFFFFF00000E0F0F0000FF000EFF"
$"FFFFFFFFFFFFFF0000000EFF00000EFF"
};
resource(1, "BEOS:APP_SIG") (#'MIMS') "application/x-vnd.obos.terminal";
resource(2, "BEOS:TYPE") (#'MIMS') "application/x-vnd.Be-elfexecutable";
resource(1, "BEOS:FILE_TYPES") message {
resource file_types message {
"types" = "application/x-vnd.Be-pref"
};
+28
View File
@@ -0,0 +1,28 @@
/*
** Terminal.version.rdef
**
*/
/*
BEOS:APP_VERSION resources have a specific format, see also
<be/storage/AppFileInfo.h:26>
But thanks to the rc resource compiler, you don't have to worry
about any of that ;-)
*/
resource app_version {
major = 1,
middle = 0,
minor = 0,
/* 0 = development 1 = alpha 2 = beta
3 = gamma 4 = golden master 5 = final */
variety = 0,
internal = 1,
short_info = "R1.0.0d1",
long_info = "OpenBeOS 1.0.0d1 ©2002 OpenBeOS Project"
};
+61 -78
View File
@@ -9,19 +9,21 @@
#include <stdio.h>
#include <getopt.h>
BPoint windowPoint(7,26);
BPoint cascadeOffset(15,15);
TerminalApp * terminal_app;
TerminalApp::TerminalApp()
: BApplication(APP_SIGNATURE)
{
fWindowCount = 0;
fNext_Terminal_Window = 1;
fWindowOpened = false;
fArgvOkay = true;
terminal_app = this;
}
TerminalApp::~TerminalApp()
{
}
void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
{
if ( msg->what == B_ARGV_RECEIVED ) {
@@ -29,10 +31,15 @@ void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
if (msg->FindInt32("argc",&argc) != B_OK) {
argc = 0;
}
const char ** argv = new (const char*)[argc];
char ** argv = new (char*)[argc];
for (int arg = 0; (arg < argc) ; arg++) {
if (msg->FindString("argv",arg,&argv[arg]) != B_OK) {
BString string;
if (msg->FindString("argv",arg,&string) != B_OK) {
argv[arg] = "";
} else {
char * chars = new char[string.Length()];
strcpy(chars,string.String());
argv[arg] = chars;
}
}
const char * cwd;
@@ -45,16 +52,30 @@ void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
}
}
#include <Alert.h>
void
TerminalApp::MessageReceived(BMessage *message)
{
switch (message->what) {
case TERMINAL_START_NEW_TERMINAL:
OpenTerminal();
case TERMINAL_START_NEW_TERMINAL: {
status_t result = be_roster->Launch(APP_SIGNATURE);
if (result != B_OK) {
// TODO: notify user
}
}
break;
case B_SILENT_RELAUNCH:
case B_SILENT_RELAUNCH: {
BAlert * go = new BAlert("SILENT","RELAUNCH","OH YEAH");
go->Go();
OpenTerminal();
}
break;
case B_REFS_RECEIVED: {
BAlert * go = new BAlert("REFS","RECEIVED","OH YEAH");
go->Go();
OpenTerminal(message);
}
break;
default:
BApplication::MessageReceived(message);
@@ -63,28 +84,10 @@ TerminalApp::MessageReceived(BMessage *message)
}
void
TerminalApp::OpenTerminal()
TerminalApp::OpenTerminal(BMessage * message)
{
new TerminalWindow(windowPoint,fNext_Terminal_Window++);
windowPoint += cascadeOffset; // TODO: wrap around screen
fWindowCount++;
}
void
TerminalApp::OpenTerminal(entry_ref * ref)
{
new TerminalWindow(ref,fNext_Terminal_Window++);
fWindowCount++;
}
void
TerminalApp::CloseTerminal()
{
fWindowCount--;
if (fWindowCount == 0) {
BAutolock lock(this);
Quit();
}
BPoint windowPoint(7,26);
TerminalWindow * terminal = new TerminalWindow(windowPoint,message);
}
void
@@ -99,8 +102,11 @@ TerminalApp::RefsReceived(BMessage *message)
err = message->FindRef("refs", refNum, &ref);
if (err != B_OK)
return;
OpenTerminal(&ref);
BMessage single(OPEN_TERMINAL);
single.AddRef("refs",&ref);
OpenTerminal(&single);
refNum++;
printf("refNum = %ld\n",refNum);
} while (true);
}
@@ -168,21 +174,21 @@ string2color (const char * name, rgb_color * color) {
// TODO: implement the arguments for Terminal
void
TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
TerminalApp::ArgvReceived(int32 argc, char * const argv[], const char * cwd)
{
BMessage * terminal = new BMessage(OPEN_TERMINAL);
BMessage terminal(OPEN_TERMINAL);
fArgvOkay = false;
if (argc > 1) {
if (argv[1][0] == '-') {
const char * execname = (argc >= 1 ? argv[0] : "");
const char * title = 0;
int indexptr = 0;
int ch;
char * const * optargv = (char * const *)argv;
char * const * optargv = argv;
while ((ch = getopt_long_only(argc, optargv, "hg:mp:t:", options, &indexptr)) != -1) {
switch (ch) {
case 'h':
PrintUsage(execname);
delete terminal;
return;
break;
case 'g':
@@ -191,20 +197,19 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
if ((sscanf(optarg,"%ldx%ld%s",&m,&n) != 2) || (m < 0) || (n < 0)) {
printf("??\n");
printf("geometry must be of the format MxN where M and N are positive integers\n");
delete terminal;
return;
}
printf("%ld,%ld\n",m,n);
terminal->AddInt32("columns",m);
terminal->AddInt32("rows",n);
terminal.AddInt32("columns",m);
terminal.AddInt32("rows",n);
break;
case 'm':
printf("pass meta through to shell\n");
terminal->AddBool("meta",true);
terminal.AddBool("meta",true);
break;
case 't':
printf("title is %s\n",optarg);
terminal->AddString("title",optarg);
terminal.AddString("title",optarg);
break;
case 'p': {
printf("prefs file is %s\n",optarg);
@@ -220,37 +225,31 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
break;
case B_ENTRY_NOT_FOUND:
printf("could not find entry for prefs file '%s'\n",optarg);
delete terminal;
return;
break;
case B_NO_MEMORY:
printf("not enough memory in get_ref_for_path\n");
delete terminal;
return;
break;
default:
printf("unknown error in get_ref_for_path\n");
delete terminal;
return;
}
terminal->AddRef("pref",&ref);
terminal.AddRef("refs",&ref);
}
break;
case ':':
switch (optopt) {
case 't':
printf("-t option must be specified with a title\n");
delete terminal;
return;
break;
default:
printf("-%c missing argument\n", optopt);
delete terminal;
return;
}
break;
case '?':
delete terminal;
return;
break;
default:
@@ -260,10 +259,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for curbg\n");
delete terminal;
return;
}
terminal->AddData("curbg",B_RGB_32_BIT_TYPE,
terminal.AddData("curbg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
@@ -272,10 +270,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for curfg\n");
delete terminal;
return;
}
terminal->AddData("curfg",B_RGB_32_BIT_TYPE,
terminal.AddData("curfg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
@@ -284,10 +281,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for bg\n");
delete terminal;
return;
}
terminal->AddData("bg",B_RGB_32_BIT_TYPE,
terminal.AddData("bg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
@@ -296,10 +292,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for fg\n");
delete terminal;
return;
}
terminal->AddData("fg",B_RGB_32_BIT_TYPE,
terminal.AddData("fg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
@@ -308,10 +303,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for selbg\n");
delete terminal;
return;
}
terminal->AddData("selbg",B_RGB_32_BIT_TYPE,
terminal.AddData("selbg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
@@ -320,16 +314,14 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
rgb_color color;
if (string2color(optarg,&color) != B_OK) {
printf("invalid color specifier for selfg\n");
delete terminal;
return;
}
terminal->AddData("selfg",B_RGB_32_BIT_TYPE,
terminal.AddData("selfg",B_RGB_32_BIT_TYPE,
&color,sizeof(color),true,1);
}
break;
default:
printf("invalid indexptr %ld\n",indexptr);
delete terminal;
return;
}
}
@@ -337,31 +329,22 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
}
while (optind < argc) {
printf("adding string %s\n",argv[optind]);
terminal->AddString("argv",argv[optind++]);
terminal.AddString("argv",argv[optind++]);
}
}
PostMessage(terminal);
OpenTerminal(&terminal);
fArgvOkay = true;
return;
}
void
TerminalApp::ReadyToRun()
{
if (fWindowCount == 0) {
if (!fArgvOkay) {
Quit();
return;
}
if (!fWindowOpened) {
OpenTerminal();
}
}
int32
TerminalApp::NumberOfWindows()
{
return fWindowCount;
}
int
main()
{
TerminalApp terminal;
terminal.Run();
return 0;
}
+6 -8
View File
@@ -3,6 +3,7 @@
#include <Application.h>
#include <Message.h>
#include <Roster.h>
class TerminalWindow;
@@ -11,23 +12,20 @@ class TerminalApp
{
public:
TerminalApp();
virtual ~TerminalApp();
virtual void MessageReceived(BMessage *message);
virtual void ArgvReceived(int32 argc, const char *argv[], const char * cwd);
virtual void ArgvReceived(int32 argc, char * const argv[], const char * cwd);
virtual void RefsReceived(BMessage *message);
virtual void ReadyToRun();
virtual void DispatchMessage(BMessage *an_event, BHandler *handler);
int32 NumberOfWindows();
void OpenTerminal();
void OpenTerminal(entry_ref * ref);
void OpenTerminal(BMessage * message = 0);
void CloseTerminal();
private:
void PrintUsage(const char * execname);
int32 fWindowCount;
int32 fNext_Terminal_Window;
bool fWindowOpened;
bool fArgvOkay;
};
extern TerminalApp * terminal_app;
+20 -19
View File
@@ -16,26 +16,20 @@
#include <TextControl.h>
#include <TranslationUtils.h>
#include <Window.h>
#include "Constants.h"
#include "ToggleScrollView.h"
#include "TerminalApp.h"
#include "TerminalTextView.h"
#include "TerminalWindow.h"
TerminalWindow::TerminalWindow(BPoint topLeft, int32 id)
#include <Constants.h>
#include <TerminalApp.h>
#include <TerminalTextView.h>
#include <TerminalWindow.h>
int id = 1;
TerminalWindow::TerminalWindow(BPoint topLeft, BMessage * settings)
: BWindow(BRect(topLeft,topLeft+BPoint(560,390)),
"terminal",B_DOCUMENT_WINDOW,0)
{
status_t status = InitWindow(id);
// TODO: handle error status
Show();
}
TerminalWindow::TerminalWindow(entry_ref *ref, int32 id)
: BWindow(BRect(7,16,567,406),"terminal",B_DOCUMENT_WINDOW,0)
{
status_t status = InitWindow(id,ref);
// TODO: handle error status
fInitStatus = B_ERROR;
fInitStatus = InitWindow(id++);
Show();
}
@@ -44,13 +38,17 @@ TerminalWindow::~TerminalWindow()
delete fLogToFilePanel;
delete fWriteSelectionPanel;
delete fSaveAsSettingsFilePanel;
// if (fSaveMessage)
// delete fSaveMessage;
// if (fPrintSettings)
// delete fPrintSettings;
}
status_t
TerminalWindow::InitCheck(void)
{
return fInitStatus;
}
status_t
TerminalWindow::InitWindow(int32 id, entry_ref * settingsRef)
@@ -83,7 +81,7 @@ TerminalWindow::InitWindow(int32 id, entry_ref * settingsRef)
fTextView = new TerminalTextView(viewFrame, textBounds, this);
fTextView->SetStylable(true);
fScrollView = new ToggleScrollView("scrollview", fTextView, 0, false, true, B_PLAIN_BORDER);
fScrollView = new BScrollView("scrollview", fTextView, 0, false, true, B_PLAIN_BORDER);
AddChild(fScrollView);
fTextView->MakeFocus(true);
@@ -301,7 +299,10 @@ TerminalWindow::MenusBeginning()
void
TerminalWindow::Quit()
{
terminal_app->CloseTerminal();
{
BAutolock lock(terminal_app);
terminal_app->Quit();
}
BWindow::Quit();
}
+13 -12
View File
@@ -8,26 +8,26 @@
#include <String.h>
#include <TextView.h>
#include <Window.h>
#include <Message.h>
class ToggleScrollView;
class TerminalTextView;
class TerminalWindow
: public BWindow
{
public:
TerminalWindow(BPoint topLeft, int32 id);
TerminalWindow(entry_ref * ref, int32 id);
~TerminalWindow();
TerminalWindow(BPoint topLeft, BMessage * settings = 0);
virtual ~TerminalWindow();
virtual void Quit();
virtual bool QuitRequested();
virtual void MessageReceived(BMessage *message);
virtual void MenusBeginning();
virtual void Quit(void);
virtual bool QuitRequested(void);
virtual void MessageReceived(BMessage *message);
virtual void MenusBeginning(void);
virtual status_t InitCheck(void);
private:
status_t InitWindow(int32 id, entry_ref * settingsRef = 0);
status_t RestoreSettings(entry_ref * settingsRef = 0);
status_t InitWindow(int32 id, entry_ref * settingsRef = 0);
status_t RestoreSettings(entry_ref * settingsRef = 0);
// Menu variables
BMenuBar *fMenuBar;
@@ -65,7 +65,7 @@ private:
// Main views
TerminalTextView*fTextView;
ToggleScrollView*fScrollView;
BScrollView *fScrollView;
// File panels
BFilePanel *fLogToFilePanel;
@@ -76,7 +76,8 @@ private:
BMenu *fSaveAsSettingsFilePanelEncodingMenu;
BTextControl *fSavePanelTextView;
status_t fInitStatus;
};
#endif // TERMINAL_WINDOW_H