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:
@@ -2,13 +2,15 @@ SubDir OBOS_TOP src apps terminal ;
|
|||||||
|
|
||||||
AddResources Terminal :
|
AddResources Terminal :
|
||||||
Terminal.rdef
|
Terminal.rdef
|
||||||
|
Terminal.icons.rdef
|
||||||
|
Terminal.version.rdef
|
||||||
;
|
;
|
||||||
|
|
||||||
App Terminal :
|
App Terminal :
|
||||||
ToggleScrollView.cpp
|
Terminal.cpp
|
||||||
TerminalTextView.cpp
|
TerminalTextView.cpp
|
||||||
TerminalWindow.cpp
|
TerminalWindow.cpp
|
||||||
TerminalApp.cpp
|
TerminalApp.cpp
|
||||||
;
|
;
|
||||||
|
|
||||||
LinkSharedOSLibs Terminal : be stdc++.r4 translation tracker ;
|
LinkSharedOSLibs Terminal : be translation tracker ;
|
||||||
|
|||||||
@@ -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
@@ -1,151 +1,36 @@
|
|||||||
/*
|
/*
|
||||||
** /boot/develop/obos/current/src/apps/terminal/Terminal.rdef
|
** Terminal.rdef
|
||||||
**
|
|
||||||
** Automatically generated by BResourceParser on
|
|
||||||
** Saturday, August 09, 2003 at 00:36:36.
|
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
|
|
||||||
resource(1, "BEOS:APP_FLAGS") (#'APPF') $"01000000";
|
/* BEOS:APP_SIG :
|
||||||
|
application:/x-vnd.obos.app-name
|
||||||
|
*/
|
||||||
|
|
||||||
resource(1, "BEOS:APP_VERSION") #'APPV' array {
|
resource app_signature "application/x-vnd.obos.terminal";
|
||||||
$"0500000000000000000000000500000001000000523500000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"000000000000000000000000000000000000000042654F53203520C2A9313939"
|
|
||||||
$"312D3230303020426520496E636F72706F726174656400000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000080050000000000000000000000"
|
|
||||||
$"0500000001000000523500000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"000000000000000042654F53203520C2A9313939312D3230303020426520496E"
|
|
||||||
$"636F72706F726174656400000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
|
||||||
$"0000000000000000"
|
|
||||||
};
|
|
||||||
|
|
||||||
resource(2, "BEOS:L:application/x-vnd.Be-pref") #'ICON' array {
|
/* BEOS:APP_FLAGS :
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
00000000 = SINGLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
01000000 = MULTIPLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFF"
|
02000000 = EXCLUSIVE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF00FAF8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFF"
|
04000000 = BACKGROUND APP + SINGLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0FF8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFF"
|
05000000 = BACKGROUND APP + MULTIPLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F0F0FF8F80000FFFFFFFFFFFFFFFFFFFFFF"
|
06000000 = BACKGROUND APP + EXCLUSIVE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F0E0F1C190000FFFFFFFFFFFFFFFFFF"
|
08000000 = ARGV_ONLY + SINGLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF001B0F3F3F3F3F0E0F1A190000FFFFFFFFFFFFFF"
|
09000000 = ARGV_ONLY + MULTIPLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFF00001B0F3F3F3F3F3F3F0E0F1A190000FFFFFFFFFF"
|
0A000000 = ARGV_ONLY + EXCLUSIVE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFFFF003F001B0F3F3F3F3F3F3F3F3F0E0F1A00FFFFFFFFFF"
|
0C000000 = ARGV_ONLY + BACKGROUND APP + SINGLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFFFF003F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
|
0D000000 = ARGV_ONLY + BACKGROUND APP + MULTIPLE LAUNCH
|
||||||
$"FFFFFFFFFFFFFFFF003F3F3F001B0F3F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
|
0E000000 = ARGV_ONLY + BACKGROUND APP + EXCLUSIVE LAUNCH
|
||||||
$"FFFFFFFFFFFFFF003F3FFE3F001B183F3F3F3F3F3F3F3F3F171900FFFFFFFFFF"
|
*/
|
||||||
$"FFFFFFFFFFFF003F0000003F3F00001717183F3F3F3F3F3F171900FFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFF003F00191A1900003F3F000017173F3F3F3F3F17190000FFFFFFFF"
|
|
||||||
$"FFFFFFFF003F00191A0E3F191A00003F3F000017173F3F3F171900FE0000FFFF"
|
|
||||||
$"FFFFFF003F00191A0E3F190F3F191A00003F3F0000171718171A003FFEFE00FF"
|
|
||||||
$"FFFF003F3F000E0F1A190F3F190F3F191A00003F3F000017171A00FEFE00FFFF"
|
|
||||||
$"FF003FFEFEFE00000E0F1A190F3F190F3F191A00003F3F00001900FE000A0B0A"
|
|
||||||
$"0000FEFEFEFEFEFE29000E0F1A190F3F190F191A000F3F003F000000000A0BFF"
|
|
||||||
$"FF0A0000FEFEFEFEFEFE00000E0F1A610F3F190F00000F003FFD006262000AFF"
|
|
||||||
$"FFFF0A000000FDFDFDFDFDFD00000E0F1A610F000F0F003FFD006262FC00000A"
|
|
||||||
$"FFFFFF0A00890000FDFDFDFDFDFD00000E0F290F0FFDFDFD00620F00000A0B0A"
|
|
||||||
$"FFFFFFFF0A0089890000FCFCFCFCFCFC00000E0FFCFCFC006200000A0BFFFFFF"
|
|
||||||
$"FFFFFFFFFF0A006289890100FBFBFBFBFBFBFBFBFBFB0000000A0BFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFF0A00626289890100FAFAFAFAFAFAFA00000A0BFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFF0A00FC626289890000FAFAFAFA000A0BFFFFFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFFFF0A00FCFC626289890000FA000A0BFFFFFFFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFFFFFF0A00FCFCFCFC00000A000B0AFFFFFFFFFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFFFFFFFF0A00FC00000A0B0A0B0BFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFF0A000B0AFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
||||||
};
|
|
||||||
|
|
||||||
resource(101, "BEOS:L:STD_ICON") #'ICON' array {
|
resource app_flags 0x01000000;
|
||||||
$"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 {
|
/* BEOS:FILE_TYPES :
|
||||||
$"FFFFFFFFFF0000FFFFFFFFFFFFFFFFFF"
|
"types" = "text/plain",
|
||||||
$"FFFFFFFFFF00F80000FFFFFFFFFFFFFF"
|
"types" = ....
|
||||||
$"FFFFFFFFFF00F8F800FFFFFFFFFFFFFF"
|
*/
|
||||||
$"FFFFFFFFFF0017F8170000FFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFF00173F3F17170000FFFFFF"
|
|
||||||
$"FFFFFFFF0000173F3F3F3F1700FFFFFF"
|
|
||||||
$"FFFFFF0000000017173F3F1700FFFFFF"
|
|
||||||
$"FFFF0000193F000000171718000000FF"
|
|
||||||
$"FF00000E0F1A3F3F00000017003F0000"
|
|
||||||
$"00FEFE00000E0F1A3F3F00000000000A"
|
|
||||||
$"0B0000FDFD00000E0F0F00FD00890000"
|
|
||||||
$"FF0A000000FDFA000000FA0089000A0B"
|
|
||||||
$"FFFF0A00890000FAFAFA0000000AFFFF"
|
|
||||||
$"FFFFFF0A00628900FA000A0BFFFFFFFF"
|
|
||||||
$"FFFFFFFF0A000000000B0AFFFFFFFFFF"
|
|
||||||
$"FFFFFFFFFF0A000BFF0AFFFFFFFFFFFF"
|
|
||||||
};
|
|
||||||
|
|
||||||
resource(101, "BEOS:M:STD_ICON") #'MICN' array {
|
resource file_types message {
|
||||||
$"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 {
|
|
||||||
"types" = "application/x-vnd.Be-pref"
|
"types" = "application/x-vnd.Be-pref"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
};
|
||||||
@@ -9,19 +9,21 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
BPoint windowPoint(7,26);
|
|
||||||
BPoint cascadeOffset(15,15);
|
|
||||||
|
|
||||||
TerminalApp * terminal_app;
|
TerminalApp * terminal_app;
|
||||||
|
|
||||||
TerminalApp::TerminalApp()
|
TerminalApp::TerminalApp()
|
||||||
: BApplication(APP_SIGNATURE)
|
: BApplication(APP_SIGNATURE)
|
||||||
{
|
{
|
||||||
fWindowCount = 0;
|
fWindowOpened = false;
|
||||||
fNext_Terminal_Window = 1;
|
fArgvOkay = true;
|
||||||
terminal_app = this;
|
terminal_app = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TerminalApp::~TerminalApp()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
|
void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
|
||||||
{
|
{
|
||||||
if ( msg->what == B_ARGV_RECEIVED ) {
|
if ( msg->what == B_ARGV_RECEIVED ) {
|
||||||
@@ -29,10 +31,15 @@ void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
|
|||||||
if (msg->FindInt32("argc",&argc) != B_OK) {
|
if (msg->FindInt32("argc",&argc) != B_OK) {
|
||||||
argc = 0;
|
argc = 0;
|
||||||
}
|
}
|
||||||
const char ** argv = new (const char*)[argc];
|
char ** argv = new (char*)[argc];
|
||||||
for (int arg = 0; (arg < argc) ; arg++) {
|
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] = "";
|
argv[arg] = "";
|
||||||
|
} else {
|
||||||
|
char * chars = new char[string.Length()];
|
||||||
|
strcpy(chars,string.String());
|
||||||
|
argv[arg] = chars;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const char * cwd;
|
const char * cwd;
|
||||||
@@ -45,16 +52,30 @@ void TerminalApp::DispatchMessage(BMessage *msg, BHandler *handler)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include <Alert.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
TerminalApp::MessageReceived(BMessage *message)
|
TerminalApp::MessageReceived(BMessage *message)
|
||||||
{
|
{
|
||||||
switch (message->what) {
|
switch (message->what) {
|
||||||
case TERMINAL_START_NEW_TERMINAL:
|
case TERMINAL_START_NEW_TERMINAL: {
|
||||||
OpenTerminal();
|
status_t result = be_roster->Launch(APP_SIGNATURE);
|
||||||
|
if (result != B_OK) {
|
||||||
|
// TODO: notify user
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case B_SILENT_RELAUNCH:
|
case B_SILENT_RELAUNCH: {
|
||||||
|
BAlert * go = new BAlert("SILENT","RELAUNCH","OH YEAH");
|
||||||
|
go->Go();
|
||||||
OpenTerminal();
|
OpenTerminal();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case B_REFS_RECEIVED: {
|
||||||
|
BAlert * go = new BAlert("REFS","RECEIVED","OH YEAH");
|
||||||
|
go->Go();
|
||||||
|
OpenTerminal(message);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
BApplication::MessageReceived(message);
|
BApplication::MessageReceived(message);
|
||||||
@@ -63,28 +84,10 @@ TerminalApp::MessageReceived(BMessage *message)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TerminalApp::OpenTerminal()
|
TerminalApp::OpenTerminal(BMessage * message)
|
||||||
{
|
{
|
||||||
new TerminalWindow(windowPoint,fNext_Terminal_Window++);
|
BPoint windowPoint(7,26);
|
||||||
windowPoint += cascadeOffset; // TODO: wrap around screen
|
TerminalWindow * terminal = new TerminalWindow(windowPoint,message);
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -99,8 +102,11 @@ TerminalApp::RefsReceived(BMessage *message)
|
|||||||
err = message->FindRef("refs", refNum, &ref);
|
err = message->FindRef("refs", refNum, &ref);
|
||||||
if (err != B_OK)
|
if (err != B_OK)
|
||||||
return;
|
return;
|
||||||
OpenTerminal(&ref);
|
BMessage single(OPEN_TERMINAL);
|
||||||
|
single.AddRef("refs",&ref);
|
||||||
|
OpenTerminal(&single);
|
||||||
refNum++;
|
refNum++;
|
||||||
|
printf("refNum = %ld\n",refNum);
|
||||||
} while (true);
|
} while (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,21 +174,21 @@ string2color (const char * name, rgb_color * color) {
|
|||||||
|
|
||||||
// TODO: implement the arguments for Terminal
|
// TODO: implement the arguments for Terminal
|
||||||
void
|
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 (argc > 1) {
|
||||||
if (argv[1][0] == '-') {
|
if (argv[1][0] == '-') {
|
||||||
const char * execname = (argc >= 1 ? argv[0] : "");
|
const char * execname = (argc >= 1 ? argv[0] : "");
|
||||||
const char * title = 0;
|
const char * title = 0;
|
||||||
int indexptr = 0;
|
int indexptr = 0;
|
||||||
int ch;
|
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) {
|
while ((ch = getopt_long_only(argc, optargv, "hg:mp:t:", options, &indexptr)) != -1) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'h':
|
case 'h':
|
||||||
PrintUsage(execname);
|
PrintUsage(execname);
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case 'g':
|
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)) {
|
if ((sscanf(optarg,"%ldx%ld%s",&m,&n) != 2) || (m < 0) || (n < 0)) {
|
||||||
printf("??\n");
|
printf("??\n");
|
||||||
printf("geometry must be of the format MxN where M and N are positive integers\n");
|
printf("geometry must be of the format MxN where M and N are positive integers\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
printf("%ld,%ld\n",m,n);
|
printf("%ld,%ld\n",m,n);
|
||||||
terminal->AddInt32("columns",m);
|
terminal.AddInt32("columns",m);
|
||||||
terminal->AddInt32("rows",n);
|
terminal.AddInt32("rows",n);
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
printf("pass meta through to shell\n");
|
printf("pass meta through to shell\n");
|
||||||
terminal->AddBool("meta",true);
|
terminal.AddBool("meta",true);
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
printf("title is %s\n",optarg);
|
printf("title is %s\n",optarg);
|
||||||
terminal->AddString("title",optarg);
|
terminal.AddString("title",optarg);
|
||||||
break;
|
break;
|
||||||
case 'p': {
|
case 'p': {
|
||||||
printf("prefs file is %s\n",optarg);
|
printf("prefs file is %s\n",optarg);
|
||||||
@@ -220,37 +225,31 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
break;
|
break;
|
||||||
case B_ENTRY_NOT_FOUND:
|
case B_ENTRY_NOT_FOUND:
|
||||||
printf("could not find entry for prefs file '%s'\n",optarg);
|
printf("could not find entry for prefs file '%s'\n",optarg);
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case B_NO_MEMORY:
|
case B_NO_MEMORY:
|
||||||
printf("not enough memory in get_ref_for_path\n");
|
printf("not enough memory in get_ref_for_path\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("unknown error in get_ref_for_path\n");
|
printf("unknown error in get_ref_for_path\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddRef("pref",&ref);
|
terminal.AddRef("refs",&ref);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ':':
|
case ':':
|
||||||
switch (optopt) {
|
switch (optopt) {
|
||||||
case 't':
|
case 't':
|
||||||
printf("-t option must be specified with a title\n");
|
printf("-t option must be specified with a title\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("-%c missing argument\n", optopt);
|
printf("-%c missing argument\n", optopt);
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case '?':
|
case '?':
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -260,10 +259,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for curbg\n");
|
printf("invalid color specifier for curbg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("curbg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("curbg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -272,10 +270,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for curfg\n");
|
printf("invalid color specifier for curfg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("curfg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("curfg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -284,10 +281,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for bg\n");
|
printf("invalid color specifier for bg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("bg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("bg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -296,10 +292,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for fg\n");
|
printf("invalid color specifier for fg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("fg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("fg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -308,10 +303,9 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for selbg\n");
|
printf("invalid color specifier for selbg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("selbg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("selbg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -320,16 +314,14 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
rgb_color color;
|
rgb_color color;
|
||||||
if (string2color(optarg,&color) != B_OK) {
|
if (string2color(optarg,&color) != B_OK) {
|
||||||
printf("invalid color specifier for selfg\n");
|
printf("invalid color specifier for selfg\n");
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal->AddData("selfg",B_RGB_32_BIT_TYPE,
|
terminal.AddData("selfg",B_RGB_32_BIT_TYPE,
|
||||||
&color,sizeof(color),true,1);
|
&color,sizeof(color),true,1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("invalid indexptr %ld\n",indexptr);
|
printf("invalid indexptr %ld\n",indexptr);
|
||||||
delete terminal;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -337,31 +329,22 @@ TerminalApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
|
|||||||
}
|
}
|
||||||
while (optind < argc) {
|
while (optind < argc) {
|
||||||
printf("adding string %s\n",argv[optind]);
|
printf("adding string %s\n",argv[optind]);
|
||||||
terminal->AddString("argv",argv[optind++]);
|
terminal.AddString("argv",argv[optind++]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PostMessage(terminal);
|
OpenTerminal(&terminal);
|
||||||
|
fArgvOkay = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TerminalApp::ReadyToRun()
|
TerminalApp::ReadyToRun()
|
||||||
{
|
{
|
||||||
if (fWindowCount == 0) {
|
if (!fArgvOkay) {
|
||||||
Quit();
|
Quit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!fWindowOpened) {
|
||||||
|
OpenTerminal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32
|
|
||||||
TerminalApp::NumberOfWindows()
|
|
||||||
{
|
|
||||||
return fWindowCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
TerminalApp terminal;
|
|
||||||
terminal.Run();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <Application.h>
|
#include <Application.h>
|
||||||
#include <Message.h>
|
#include <Message.h>
|
||||||
|
#include <Roster.h>
|
||||||
|
|
||||||
class TerminalWindow;
|
class TerminalWindow;
|
||||||
|
|
||||||
@@ -11,23 +12,20 @@ class TerminalApp
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TerminalApp();
|
TerminalApp();
|
||||||
|
virtual ~TerminalApp();
|
||||||
virtual void MessageReceived(BMessage *message);
|
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 RefsReceived(BMessage *message);
|
||||||
virtual void ReadyToRun();
|
virtual void ReadyToRun();
|
||||||
|
|
||||||
virtual void DispatchMessage(BMessage *an_event, BHandler *handler);
|
virtual void DispatchMessage(BMessage *an_event, BHandler *handler);
|
||||||
|
|
||||||
int32 NumberOfWindows();
|
void OpenTerminal(BMessage * message = 0);
|
||||||
void OpenTerminal();
|
|
||||||
void OpenTerminal(entry_ref * ref);
|
|
||||||
void CloseTerminal();
|
void CloseTerminal();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void PrintUsage(const char * execname);
|
void PrintUsage(const char * execname);
|
||||||
int32 fWindowCount;
|
bool fWindowOpened;
|
||||||
int32 fNext_Terminal_Window;
|
bool fArgvOkay;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern TerminalApp * terminal_app;
|
extern TerminalApp * terminal_app;
|
||||||
|
|||||||
@@ -16,26 +16,20 @@
|
|||||||
#include <TextControl.h>
|
#include <TextControl.h>
|
||||||
#include <TranslationUtils.h>
|
#include <TranslationUtils.h>
|
||||||
#include <Window.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)),
|
: BWindow(BRect(topLeft,topLeft+BPoint(560,390)),
|
||||||
"terminal",B_DOCUMENT_WINDOW,0)
|
"terminal",B_DOCUMENT_WINDOW,0)
|
||||||
{
|
{
|
||||||
status_t status = InitWindow(id);
|
fInitStatus = B_ERROR;
|
||||||
// TODO: handle error status
|
fInitStatus = InitWindow(id++);
|
||||||
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
|
|
||||||
Show();
|
Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,13 +38,17 @@ TerminalWindow::~TerminalWindow()
|
|||||||
delete fLogToFilePanel;
|
delete fLogToFilePanel;
|
||||||
delete fWriteSelectionPanel;
|
delete fWriteSelectionPanel;
|
||||||
delete fSaveAsSettingsFilePanel;
|
delete fSaveAsSettingsFilePanel;
|
||||||
|
|
||||||
// if (fSaveMessage)
|
// if (fSaveMessage)
|
||||||
// delete fSaveMessage;
|
// delete fSaveMessage;
|
||||||
// if (fPrintSettings)
|
// if (fPrintSettings)
|
||||||
// delete fPrintSettings;
|
// delete fPrintSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status_t
|
||||||
|
TerminalWindow::InitCheck(void)
|
||||||
|
{
|
||||||
|
return fInitStatus;
|
||||||
|
}
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
TerminalWindow::InitWindow(int32 id, entry_ref * settingsRef)
|
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 = new TerminalTextView(viewFrame, textBounds, this);
|
||||||
fTextView->SetStylable(true);
|
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);
|
AddChild(fScrollView);
|
||||||
fTextView->MakeFocus(true);
|
fTextView->MakeFocus(true);
|
||||||
|
|
||||||
@@ -301,7 +299,10 @@ TerminalWindow::MenusBeginning()
|
|||||||
void
|
void
|
||||||
TerminalWindow::Quit()
|
TerminalWindow::Quit()
|
||||||
{
|
{
|
||||||
terminal_app->CloseTerminal();
|
{
|
||||||
|
BAutolock lock(terminal_app);
|
||||||
|
terminal_app->Quit();
|
||||||
|
}
|
||||||
BWindow::Quit();
|
BWindow::Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,26 +8,26 @@
|
|||||||
#include <String.h>
|
#include <String.h>
|
||||||
#include <TextView.h>
|
#include <TextView.h>
|
||||||
#include <Window.h>
|
#include <Window.h>
|
||||||
|
#include <Message.h>
|
||||||
|
|
||||||
class ToggleScrollView;
|
|
||||||
class TerminalTextView;
|
class TerminalTextView;
|
||||||
|
|
||||||
class TerminalWindow
|
class TerminalWindow
|
||||||
: public BWindow
|
: public BWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TerminalWindow(BPoint topLeft, int32 id);
|
TerminalWindow(BPoint topLeft, BMessage * settings = 0);
|
||||||
TerminalWindow(entry_ref * ref, int32 id);
|
virtual ~TerminalWindow();
|
||||||
~TerminalWindow();
|
|
||||||
|
|
||||||
virtual void Quit();
|
virtual void Quit(void);
|
||||||
virtual bool QuitRequested();
|
virtual bool QuitRequested(void);
|
||||||
virtual void MessageReceived(BMessage *message);
|
virtual void MessageReceived(BMessage *message);
|
||||||
virtual void MenusBeginning();
|
virtual void MenusBeginning(void);
|
||||||
|
virtual status_t InitCheck(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
status_t InitWindow(int32 id, entry_ref * settingsRef = 0);
|
status_t InitWindow(int32 id, entry_ref * settingsRef = 0);
|
||||||
status_t RestoreSettings(entry_ref * settingsRef = 0);
|
status_t RestoreSettings(entry_ref * settingsRef = 0);
|
||||||
|
|
||||||
// Menu variables
|
// Menu variables
|
||||||
BMenuBar *fMenuBar;
|
BMenuBar *fMenuBar;
|
||||||
@@ -65,7 +65,7 @@ private:
|
|||||||
|
|
||||||
// Main views
|
// Main views
|
||||||
TerminalTextView*fTextView;
|
TerminalTextView*fTextView;
|
||||||
ToggleScrollView*fScrollView;
|
BScrollView *fScrollView;
|
||||||
|
|
||||||
// File panels
|
// File panels
|
||||||
BFilePanel *fLogToFilePanel;
|
BFilePanel *fLogToFilePanel;
|
||||||
@@ -76,7 +76,8 @@ private:
|
|||||||
BMenu *fSaveAsSettingsFilePanelEncodingMenu;
|
BMenu *fSaveAsSettingsFilePanelEncodingMenu;
|
||||||
|
|
||||||
BTextControl *fSavePanelTextView;
|
BTextControl *fSavePanelTextView;
|
||||||
|
|
||||||
|
status_t fInitStatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TERMINAL_WINDOW_H
|
#endif // TERMINAL_WINDOW_H
|
||||||
|
|||||||
Reference in New Issue
Block a user