From 2deca29a775cf6921d47823d1b27a5c64393a9ec Mon Sep 17 00:00:00 2001 From: shatty Date: Sun, 10 Aug 2003 06:03:51 +0000 Subject: [PATCH] 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 --- src/apps/terminal/Jamfile | 6 +- src/apps/terminal/Terminal.icons.rdef | 112 ++++++++++++++++ src/apps/terminal/Terminal.rdef | 165 ++++-------------------- src/apps/terminal/Terminal.version.rdef | 28 ++++ src/apps/terminal/TerminalApp.cpp | 139 +++++++++----------- src/apps/terminal/TerminalApp.h | 14 +- src/apps/terminal/TerminalWindow.cpp | 39 +++--- src/apps/terminal/TerminalWindow.h | 25 ++-- 8 files changed, 269 insertions(+), 259 deletions(-) create mode 100644 src/apps/terminal/Terminal.icons.rdef create mode 100644 src/apps/terminal/Terminal.version.rdef diff --git a/src/apps/terminal/Jamfile b/src/apps/terminal/Jamfile index 751e5dc121..19cf68470a 100644 --- a/src/apps/terminal/Jamfile +++ b/src/apps/terminal/Jamfile @@ -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 ; diff --git a/src/apps/terminal/Terminal.icons.rdef b/src/apps/terminal/Terminal.icons.rdef new file mode 100644 index 0000000000..5cb7711e58 --- /dev/null +++ b/src/apps/terminal/Terminal.icons.rdef @@ -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" +}; diff --git a/src/apps/terminal/Terminal.rdef b/src/apps/terminal/Terminal.rdef index 6783749bd1..27d0d59b8a 100644 --- a/src/apps/terminal/Terminal.rdef +++ b/src/apps/terminal/Terminal.rdef @@ -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" }; - diff --git a/src/apps/terminal/Terminal.version.rdef b/src/apps/terminal/Terminal.version.rdef new file mode 100644 index 0000000000..2b9d446e0d --- /dev/null +++ b/src/apps/terminal/Terminal.version.rdef @@ -0,0 +1,28 @@ +/* +** Terminal.version.rdef +** +*/ + +/* + BEOS:APP_VERSION resources have a specific format, see also + + + 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" +}; diff --git a/src/apps/terminal/TerminalApp.cpp b/src/apps/terminal/TerminalApp.cpp index 483de2714a..6cece968ad 100644 --- a/src/apps/terminal/TerminalApp.cpp +++ b/src/apps/terminal/TerminalApp.cpp @@ -9,19 +9,21 @@ #include #include -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 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; -} diff --git a/src/apps/terminal/TerminalApp.h b/src/apps/terminal/TerminalApp.h index a8a115ee68..21c963a05a 100644 --- a/src/apps/terminal/TerminalApp.h +++ b/src/apps/terminal/TerminalApp.h @@ -3,6 +3,7 @@ #include #include +#include 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; diff --git a/src/apps/terminal/TerminalWindow.cpp b/src/apps/terminal/TerminalWindow.cpp index 79b73cac48..618c2d10b1 100644 --- a/src/apps/terminal/TerminalWindow.cpp +++ b/src/apps/terminal/TerminalWindow.cpp @@ -16,26 +16,20 @@ #include #include #include -#include "Constants.h" -#include "ToggleScrollView.h" -#include "TerminalApp.h" -#include "TerminalTextView.h" -#include "TerminalWindow.h" -TerminalWindow::TerminalWindow(BPoint topLeft, int32 id) +#include +#include +#include +#include + +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(); } diff --git a/src/apps/terminal/TerminalWindow.h b/src/apps/terminal/TerminalWindow.h index 31cd6335b8..353d3b8095 100644 --- a/src/apps/terminal/TerminalWindow.h +++ b/src/apps/terminal/TerminalWindow.h @@ -8,26 +8,26 @@ #include #include #include +#include -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