diff --git a/2Term.xcodeproj/kelvin.pbxuser b/2Term.xcodeproj/kelvin.pbxuser index b237609..7bf51f1 100644 --- a/2Term.xcodeproj/kelvin.pbxuser +++ b/2Term.xcodeproj/kelvin.pbxuser @@ -9,9 +9,9 @@ }; 256AC3D90F4B6AC300CF3369 /* TwoTermAppDelegate.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1513, 1053}}"; - sepNavSelRange = "{783, 0}"; - sepNavVisRange = "{446, 683}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1066}}"; + sepNavSelRange = "{1541, 0}"; + sepNavVisRange = "{3, 1666}"; }; }; 256AC3F00F4B6AF500CF3369 /* TwoTerm_Prefix.pch */ = { @@ -30,8 +30,8 @@ ); breakpoints = ( B676066111DEBFB000D6B66C /* TwoTermAppDelegate.m:34 */, - B676066711DEC06900D6B66C /* TermWindowController.mm:35 */, - B65FA27911E29E8D00EB447E /* EmulatorView.mm:126 */, + B676066711DEC06900D6B66C /* TermWindowController.mm:42 */, + B65FA27911E29E8D00EB447E /* EmulatorView.mm:169 */, B649E13D11E2BC7A0061921F /* VT52View.mm:460 */, B649E15211E2BF130061921F /* VT52View.mm:107 */, B649E17111E2C3C50061921F /* VT52View.mm:598 */, @@ -43,25 +43,23 @@ B66979AB11E6A8B4002ED475 /* VT52.mm:296 */, B66979AE11E6A8C5002ED475 /* VT52.mm:290 */, B66979B111E6A8D0002ED475 /* VT52.mm:258 */, - B66979E511E6BD8B002ED475 /* EmulatorView.mm:50 */, - B60EBD4E11E8DF0D00C1974F /* EmulatorView.mm:72 */, B60EBE0511E916BD00C1974F /* ScanLineFilter.m:23 */, B60EBE0711E916C000C1974F /* ScanLineFilter.m:24 */, - B6E6A7DE11EAAB3A00A24C0C /* Screen.cpp:449 */, - B6E6A7F711EAAEC100A24C0C /* EmulatorView.mm:490 */, - B6E6A80A11EAB13000A24C0C /* EmulatorView.mm:472 */, + B6E6A7DE11EAAB3A00A24C0C /* Screen.cpp:498 */, + B6E6A7F711EAAEC100A24C0C /* EmulatorView.mm:556 */, B64925ED11EE73ED0065E73A /* VT52.mm:82 */, B649260011EE74E30065E73A /* VT52.mm:149 */, B6358D0111F6846C00437AA2 /* VT100.mm:502 */, B6358D0311F6846F00437AA2 /* VT100.mm:477 */, B6358D0B11F6852300437AA2 /* VT100.mm:457 */, - B6358D0E11F685B600437AA2 /* Screen.cpp:205 */, + B6358D0E11F685B600437AA2 /* Screen.cpp:254 */, B642D32A11FFA06800CBB349 /* VT100.mm:611 */, - B672877712B9C2E600774C3B /* PTSE.mm:78 */, - B67287A312B9CF0A00774C3B /* PTSE.mm:135 */, - B67287A512B9CF1100774C3B /* PTSE.mm:110 */, - B67287A712B9CF2300774C3B /* PTSE.mm:114 */, - B67287E312BB1E0000774C3B /* PTSE.mm:86 */, + B6F243ED12BDA1280071AF8A /* EmulatorView.mm:471 */, + B6F2442012BDB49A0071AF8A /* PTSE.mm:108 */, + B6F2442B12BDB4F10071AF8A /* PTSE.mm:136 */, + B637CD0B12BEAA05009FDC31 /* PTSE.mm:312 */, + B637CD0E12BEAA18009FDC31 /* PTSE.mm:78 */, + B6C99E5C12BF030500C379FF /* EmulatorView.mm:539 */, ); codeSenseManager = B676054911DADB9100D6B66C /* Code sense */; executables = ( @@ -164,21 +162,21 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 314163002; - PBXWorkspaceStateSaveDate = 314163002; + PBXPerProjectTemplateStateSaveDate = 314500304; + PBXWorkspaceStateSaveDate = 314500304; }; perUserProjectItems = { B60EBDFB11E916AE00C1974F /* PBXTextBookmark */ = B60EBDFB11E916AE00C1974F /* PBXTextBookmark */; B60EBDFC11E916AE00C1974F /* PBXTextBookmark */ = B60EBDFC11E916AE00C1974F /* PBXTextBookmark */; B60EBE6211E91C5900C1974F /* PBXTextBookmark */ = B60EBE6211E91C5900C1974F /* PBXTextBookmark */; B61069C412B72942007204C0 /* PBXTextBookmark */ = B61069C412B72942007204C0 /* PBXTextBookmark */; + B637CCFC12BEA992009FDC31 /* PBXTextBookmark */ = B637CCFC12BEA992009FDC31 /* PBXTextBookmark */; B641C88811EA8DCC00B6359F /* PBXTextBookmark */ = B641C88811EA8DCC00B6359F /* PBXTextBookmark */; - B644FBDD1269343B009523CE /* PBXTextBookmark */ = B644FBDD1269343B009523CE /* PBXTextBookmark */; B64925C411EE622D0065E73A /* PBXTextBookmark */ = B64925C411EE622D0065E73A /* PBXTextBookmark */; B65FA2FE11E2A5D200EB447E /* PBXTextBookmark */ = B65FA2FE11E2A5D200EB447E /* PBXTextBookmark */; + B662524E12BD9D14002B1529 /* PBXBookmark */ = B662524E12BD9D14002B1529 /* PBXBookmark */; B66979BD11E6ACB9002ED475 /* PBXTextBookmark */ = B66979BD11E6ACB9002ED475 /* PBXTextBookmark */; B6697A1B11E6C28A002ED475 /* PBXTextBookmark */ = B6697A1B11E6C28A002ED475 /* PBXTextBookmark */; - B6697A5211E7E072002ED475 /* PBXTextBookmark */ = B6697A5211E7E072002ED475 /* PBXTextBookmark */; B6697A5311E7E072002ED475 /* PBXTextBookmark */ = B6697A5311E7E072002ED475 /* PBXTextBookmark */; B6697A5411E7E072002ED475 /* PBXTextBookmark */ = B6697A5411E7E072002ED475 /* PBXTextBookmark */; B6697A5511E7E072002ED475 /* PBXTextBookmark */ = B6697A5511E7E072002ED475 /* PBXTextBookmark */; @@ -187,10 +185,6 @@ B6697A5911E7E072002ED475 /* PBXTextBookmark */ = B6697A5911E7E072002ED475 /* PBXTextBookmark */; B6697A5A11E7E072002ED475 /* PBXTextBookmark */ = B6697A5A11E7E072002ED475 /* PBXTextBookmark */; B672878912B9C36800774C3B /* PBXBookmark */ = B672878912B9C36800774C3B /* PBXBookmark */; - B67287EC12BD29A100774C3B /* PBXTextBookmark */ = B67287EC12BD29A100774C3B /* PBXTextBookmark */; - B67287ED12BD29A100774C3B /* PBXTextBookmark */ = B67287ED12BD29A100774C3B /* PBXTextBookmark */; - B67287EF12BD29A100774C3B /* PBXTextBookmark */ = B67287EF12BD29A100774C3B /* PBXTextBookmark */; - B67287F012BD29A100774C3B /* PBXTextBookmark */ = B67287F012BD29A100774C3B /* PBXTextBookmark */; B676058811DAE21100D6B66C /* PBXTextBookmark */ = B676058811DAE21100D6B66C /* PBXTextBookmark */; B676058911DAE21100D6B66C /* PBXTextBookmark */ = B676058911DAE21100D6B66C /* PBXTextBookmark */; B676058B11DAE21100D6B66C /* PlistBookmark */ = B676058B11DAE21100D6B66C /* PlistBookmark */; @@ -198,13 +192,17 @@ B676060711DD4FA600D6B66C /* PBXTextBookmark */ = B676060711DD4FA600D6B66C /* PBXTextBookmark */; B676064811DEB80600D6B66C /* PBXTextBookmark */ = B676064811DEB80600D6B66C /* PBXTextBookmark */; B67606C811DED91C00D6B66C /* PBXTextBookmark */ = B67606C811DED91C00D6B66C /* PBXTextBookmark */; - B67B3CD912B6F9F50033AE07 /* PBXTextBookmark */ = B67B3CD912B6F9F50033AE07 /* PBXTextBookmark */; - B67B3D0E12B724790033AE07 /* PBXTextBookmark */ = B67B3D0E12B724790033AE07 /* PBXTextBookmark */; B67B3D1212B724790033AE07 /* PBXTextBookmark */ = B67B3D1212B724790033AE07 /* PBXTextBookmark */; B699A0C211E58D3B00F54CC8 /* PBXTextBookmark */ = B699A0C211E58D3B00F54CC8 /* PBXTextBookmark */; B6A0F71A11F22CD200AC3547 /* PBXTextBookmark */ = B6A0F71A11F22CD200AC3547 /* PBXTextBookmark */; + B6C99E2712BEF7BF00C379FF /* PBXTextBookmark */ = B6C99E2712BEF7BF00C379FF /* PBXTextBookmark */; + B6C99E4D12BF011300C379FF /* PBXTextBookmark */ = B6C99E4D12BF011300C379FF /* PBXTextBookmark */; + B6C99E6912BF064F00C379FF /* PBXTextBookmark */ = B6C99E6912BF064F00C379FF /* PBXTextBookmark */; B6D1D11711FFA83D00196D8E /* PBXTextBookmark */ = B6D1D11711FFA83D00196D8E /* PBXTextBookmark */; B6E6A7BD11EAA92100A24C0C /* PBXTextBookmark */ = B6E6A7BD11EAA92100A24C0C /* PBXTextBookmark */; + B6F243C512BD9E070071AF8A /* PBXTextBookmark */ = B6F243C512BD9E070071AF8A /* PBXTextBookmark */; + B6F243D812BD9E1A0071AF8A /* PBXTextBookmark */ = B6F243D812BD9E1A0071AF8A /* PBXTextBookmark */; + B6F243F112BDA12E0071AF8A /* PBXTextBookmark */ = B6F243F112BDA12E0071AF8A /* PBXTextBookmark */; B6FA9C5411FCE85B00F38EC1 /* PBXTextBookmark */ = B6FA9C5411FCE85B00F38EC1 /* PBXTextBookmark */; B6FA9C6611FCE9BC00F38EC1 /* PBXTextBookmark */ = B6FA9C6611FCE9BC00F38EC1 /* PBXTextBookmark */; }; @@ -232,24 +230,6 @@ sepNavVisRange = "{0, 760}"; }; }; - B60EBD4E11E8DF0D00C1974F /* EmulatorView.mm:72 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; - functionName = "-awakeFromNib"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 72; - location = 2Term; - modificationTime = 314168095.036609; - originalNumberOfMultipleMatches = 1; - state = 2; - }; B60EBDE111E90FC300C1974F /* ScanLineFilter.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {780, 1018}}"; @@ -259,16 +239,16 @@ }; B60EBDE211E90FC300C1974F /* ScanLineFilter.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {999, 1001}}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1023}}"; sepNavSelRange = "{363, 0}"; - sepNavVisRange = "{227, 561}"; + sepNavVisRange = "{0, 2036}"; }; }; B60EBDE711E9143F00C1974F /* ScanLineFilter.cikernel */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {653, 369}}"; - sepNavSelRange = "{231, 0}"; - sepNavVisRange = "{0, 396}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{446, 0}"; + sepNavVisRange = "{0, 446}"; }; }; B60EBDFB11E916AE00C1974F /* PBXTextBookmark */ = { @@ -305,7 +285,7 @@ ignoreCount = 0; lineNumber = 23; location = 2Term; - modificationTime = 314168095.036785; + modificationTime = 314508599.515075; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -323,7 +303,7 @@ ignoreCount = 0; lineNumber = 24; location = 2Term; - modificationTime = 314168095.036914; + modificationTime = 314508599.515301; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -347,11 +327,32 @@ vrLen = 457; vrLoc = 0; }; + B61D0D5E125B7ACA001C713B /* NewTerminalWindowController.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{319, 119}"; + sepNavVisRange = "{0, 822}"; + }; + }; B61D0D5F125B7ACA001C713B /* NewTerminalWindowController.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1053}}"; - sepNavSelRange = "{720, 36}"; - sepNavVisRange = "{0, 1516}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1170}}"; + sepNavSelRange = "{484, 0}"; + sepNavVisRange = "{0, 1983}"; + }; + }; + B61D0D67125B8E06001C713B /* Defaults.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{405, 0}"; + sepNavVisRange = "{0, 439}"; + }; + }; + B61D0D68125B8E06001C713B /* Defaults.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{176, 24}"; + sepNavVisRange = "{0, 412}"; }; }; B6358D0111F6846C00437AA2 /* VT100.mm:502 */ = { @@ -368,7 +369,7 @@ ignoreCount = 0; lineNumber = 502; location = 2Term; - modificationTime = 314168095.037946; + modificationTime = 314508599.516886; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -386,7 +387,7 @@ ignoreCount = 0; lineNumber = 477; location = 2Term; - modificationTime = 314168095.038104; + modificationTime = 314508599.517101; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -404,11 +405,11 @@ ignoreCount = 0; lineNumber = 457; location = 2Term; - modificationTime = 314168095.038238; + modificationTime = 314508599.517321; originalNumberOfMultipleMatches = 1; state = 2; }; - B6358D0E11F685B600437AA2 /* Screen.cpp:205 */ = { + B6358D0E11F685B600437AA2 /* Screen.cpp:254 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -420,9 +421,55 @@ functionName = "Screen::erase(EraseRegion region)"; hitCount = 0; ignoreCount = 0; - lineNumber = 205; + lineNumber = 254; location = 2Term; - modificationTime = 314168095.038371; + modificationTime = 314508599.517538; + originalNumberOfMultipleMatches = 1; + state = 2; + }; + B637CCFC12BEA992009FDC31 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; + name = "PTSE.mm: 231"; + rLen = 0; + rLoc = 6673; + rType = 0; + vrLen = 547; + vrLoc = 6541; + }; + B637CD0B12BEAA05009FDC31 /* PTSE.mm:312 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; + functionName = "-keyDown:screen:output:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 312; + location = 2Term; + modificationTime = 314508599.518868; + originalNumberOfMultipleMatches = 1; + state = 2; + }; + B637CD0E12BEAA18009FDC31 /* PTSE.mm:78 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; + functionName = "-processCharacter:screen:output:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 78; + location = 2Term; + modificationTime = 314508599.519105; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -450,26 +497,16 @@ ignoreCount = 0; lineNumber = 611; location = 2Term; - modificationTime = 314168095.038504; + modificationTime = 314508599.51776; originalNumberOfMultipleMatches = 1; state = 2; }; - B644FBDD1269343B009523CE /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 256AC3D90F4B6AC300CF3369 /* TwoTermAppDelegate.m */; - name = "TwoTermAppDelegate.m: 35"; - rLen = 0; - rLoc = 783; - rType = 0; - vrLen = 683; - vrLoc = 446; - }; B64925C411EE622D0065E73A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = B699A02F11E528BC00F54CC8 /* Screen.cpp */; name = "Screen.cpp: 383"; rLen = 0; - rLoc = 9812; + rLoc = 10997; rType = 0; vrLen = 772; vrLoc = 4080; @@ -502,7 +539,7 @@ ignoreCount = 0; lineNumber = 82; location = 2Term; - modificationTime = 314168095.037642; + modificationTime = 314508599.516414; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -520,7 +557,7 @@ ignoreCount = 0; lineNumber = 149; location = 2Term; - modificationTime = 314168095.037783; + modificationTime = 314508599.516672; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -538,7 +575,7 @@ ignoreCount = 0; lineNumber = 460; location = 2Term; - modificationTime = 314168095.025092; + modificationTime = 314508599.51114; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -556,7 +593,7 @@ ignoreCount = 0; lineNumber = 107; location = 2Term; - modificationTime = 314168095.025214; + modificationTime = 314508599.511371; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -574,7 +611,7 @@ ignoreCount = 0; lineNumber = 598; location = 2Term; - modificationTime = 314168095.025335; + modificationTime = 314508599.512569; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -592,7 +629,7 @@ ignoreCount = 0; lineNumber = 607; location = 2Term; - modificationTime = 314168095.025454; + modificationTime = 314508599.513315; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -610,7 +647,7 @@ ignoreCount = 0; lineNumber = 170; location = 2Term; - modificationTime = 314168095.025677; + modificationTime = 314508599.513556; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -628,11 +665,11 @@ ignoreCount = 0; lineNumber = 113; location = 2Term; - modificationTime = 314168095.025795; + modificationTime = 314508599.513762; originalNumberOfMultipleMatches = 1; state = 2; }; - B65FA27911E29E8D00EB447E /* EmulatorView.mm:126 */ = { + B65FA27911E29E8D00EB447E /* EmulatorView.mm:169 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -644,9 +681,9 @@ functionName = "-drawRect:"; hitCount = 0; ignoreCount = 0; - lineNumber = 126; + lineNumber = 169; location = 2Term; - modificationTime = 314168095.024878; + modificationTime = 314508599.510732; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -667,6 +704,10 @@ path = "/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_vector.h"; sourceTree = ""; }; + B662524E12BD9D14002B1529 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = B67B3CE312B6FA040033AE07 /* a2-charset-40.png */; + }; B669798311E6A786002ED475 /* Lock.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {653, 422}}"; @@ -695,7 +736,7 @@ ignoreCount = 0; lineNumber = 202; location = 2Term; - modificationTime = 314168095.025956; + modificationTime = 314508599.513965; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -713,7 +754,7 @@ ignoreCount = 0; lineNumber = 201; location = 2Term; - modificationTime = 314168095.026081; + modificationTime = 314508599.514165; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -731,7 +772,7 @@ ignoreCount = 0; lineNumber = 296; location = 2Term; - modificationTime = 314168095.026197; + modificationTime = 314508599.514387; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -749,7 +790,7 @@ ignoreCount = 0; lineNumber = 290; location = 2Term; - modificationTime = 314168095.036001; + modificationTime = 314508599.5146; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -767,7 +808,7 @@ ignoreCount = 0; lineNumber = 258; location = 2Term; - modificationTime = 314168095.036199; + modificationTime = 314508599.514853; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -781,36 +822,18 @@ vrLen = 320; vrLoc = 0; }; - B66979E511E6BD8B002ED475 /* EmulatorView.mm:50 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; - functionName = "-awakeFromNib"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 50; - location = 2Term; - modificationTime = 314168095.036334; - originalNumberOfMultipleMatches = 1; - state = 2; - }; B6697A0D11E6BF95002ED475 /* CurveView.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1023}}"; - sepNavSelRange = "{280, 0}"; - sepNavVisRange = "{0, 297}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{268, 0}"; + sepNavVisRange = "{0, 275}"; }; }; B6697A0E11E6BF95002ED475 /* CurveView.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1209}}"; - sepNavSelRange = "{577, 0}"; - sepNavVisRange = "{0, 2021}"; + sepNavIntBoundsRect = "{{0, 0}, {1513, 1066}}"; + sepNavSelRange = "{214, 0}"; + sepNavVisRange = "{135, 481}"; }; }; B6697A1B11E6C28A002ED475 /* PBXTextBookmark */ = { @@ -825,28 +848,18 @@ }; B6697A3B11E7CCA0002ED475 /* PTSE.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1023}}"; sepNavSelRange = "{312, 0}"; sepNavVisRange = "{0, 328}"; }; }; B6697A3C11E7CCA0002ED475 /* PTSE.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1859, 4043}}"; - sepNavSelRange = "{2160, 0}"; - sepNavVisRange = "{3186, 675}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 4069}}"; + sepNavSelRange = "{8084, 0}"; + sepNavVisRange = "{7049, 2162}"; }; }; - B6697A5211E7E072002ED475 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B6697A0E11E6BF95002ED475 /* CurveView.m */; - name = "CurveView.m: 12"; - rLen = 0; - rLoc = 214; - rType = 0; - vrLen = 593; - vrLoc = 0; - }; B6697A5311E7E072002ED475 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = B699A05B11E54D4500F54CC8 /* OutputChannel.h */; @@ -917,145 +930,10 @@ vrLen = 387; vrLoc = 0; }; - B672877712B9C2E600774C3B /* PTSE.mm:78 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - functionName = "-processCharacter:screen:output:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 78; - location = 2Term; - modificationTime = 314168095.038639; - originalNumberOfMultipleMatches = 1; - state = 2; - }; B672878912B9C36800774C3B /* PBXBookmark */ = { isa = PBXBookmark; fRef = B67B3CE412B6FA040033AE07 /* a2-charset-80.png */; }; - B67287A312B9CF0A00774C3B /* PTSE.mm:135 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - functionName = "-processCharacter:screen:output:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 135; - location = 2Term; - modificationTime = 314168095.03889; - originalNumberOfMultipleMatches = 1; - state = 2; - }; - B67287A512B9CF1100774C3B /* PTSE.mm:110 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - functionName = "-processCharacter:screen:output:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 110; - location = 2Term; - modificationTime = 314168095.039096; - originalNumberOfMultipleMatches = 1; - state = 2; - }; - B67287A712B9CF2300774C3B /* PTSE.mm:114 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - functionName = "-processCharacter:screen:output:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 114; - location = 2Term; - modificationTime = 314168095.039332; - originalNumberOfMultipleMatches = 1; - state = 2; - }; - B67287E312BB1E0000774C3B /* PTSE.mm:86 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - functionName = "-processCharacter:screen:output:"; - hitCount = 1; - ignoreCount = 0; - lineNumber = 86; - location = 2Term; - modificationTime = 314253077.898513; - originalNumberOfMultipleMatches = 1; - state = 1; - }; - B67287EC12BD29A100774C3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; - name = "EmulatorView.mm: 364"; - rLen = 0; - rLoc = 8350; - rType = 0; - vrLen = 842; - vrLoc = 3775; - }; - B67287ED12BD29A100774C3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B67287EE12BD29A100774C3B /* Diff BASE vs. Local — EmulatorView.mm */; - name = "Diff BASE vs. Local — EmulatorView.mm: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 916; - vrLoc = 1133; - }; - B67287EE12BD29A100774C3B /* Diff BASE vs. Local — EmulatorView.mm */ = { - isa = PBXFileReference; - path = "Diff BASE vs. Local — EmulatorView.mm"; - sourceTree = ""; - }; - B67287EF12BD29A100774C3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - name = "PTSE.mm: 114"; - rLen = 0; - rLoc = 2160; - rType = 0; - vrLen = 960; - vrLoc = 2404; - }; - B67287F012BD29A100774C3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; - name = "PTSE.mm: 114"; - rLen = 0; - rLoc = 2160; - rType = 0; - vrLen = 1011; - vrLoc = 2404; - }; B676053511DADB8100D6B66C /* 2Term */ = { isa = PBXExecutable; activeArgIndices = ( @@ -1169,16 +1047,16 @@ }; B676063911DEAD3500D6B66C /* TermWindowController.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 998}}"; - sepNavSelRange = "{236, 1}"; - sepNavVisRange = "{0, 659}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; + sepNavSelRange = "{549, 0}"; + sepNavVisRange = "{0, 762}"; }; }; B676063A11DEAD3500D6B66C /* TermWindowController.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 2470}}"; - sepNavSelRange = "{3662, 0}"; - sepNavVisRange = "{2095, 1674}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 2912}}"; + sepNavSelRange = "{288, 0}"; + sepNavVisRange = "{2809, 1831}"; }; }; B676064811DEB80600D6B66C /* PBXTextBookmark */ = { @@ -1205,11 +1083,11 @@ ignoreCount = 0; lineNumber = 34; location = 2Term; - modificationTime = 314168095.024329; + modificationTime = 314508599.510016; originalNumberOfMultipleMatches = 1; state = 2; }; - B676066711DEC06900D6B66C /* TermWindowController.mm:35 */ = { + B676066711DEC06900D6B66C /* TermWindowController.mm:42 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -1221,9 +1099,9 @@ functionName = "-awakeFromNib"; hitCount = 0; ignoreCount = 0; - lineNumber = 35; + lineNumber = 42; location = 2Term; - modificationTime = 314168095.024683; + modificationTime = 314508599.510467; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -1254,38 +1132,18 @@ }; B67606D811DF6DAB00D6B66C /* EmulatorView.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1274}}"; - sepNavSelRange = "{1335, 38}"; - sepNavVisRange = "{213, 1381}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1378}}"; + sepNavSelRange = "{1578, 0}"; + sepNavVisRange = "{324, 1522}"; }; }; B67606D911DF6DAB00D6B66C /* EmulatorView.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1513, 8242}}"; - sepNavSelRange = "{8350, 0}"; - sepNavVisRange = "{3775, 842}"; + sepNavIntBoundsRect = "{{0, 0}, {1513, 9191}}"; + sepNavSelRange = "{15910, 8}"; + sepNavVisRange = "{11682, 537}"; }; }; - B67B3CD912B6F9F50033AE07 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B676063A11DEAD3500D6B66C /* TermWindowController.mm */; - name = "TermWindowController.mm: 73"; - rLen = 0; - rLoc = 1407; - rType = 0; - vrLen = 695; - vrLoc = 941; - }; - B67B3D0E12B724790033AE07 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = B699A09011E572A300F54CC8 /* VT52.mm */; - name = "VT52.mm: 156"; - rLen = 0; - rLoc = 3524; - rType = 0; - vrLen = 838; - vrLoc = 2888; - }; B67B3D1212B724790033AE07 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = B6EBE2B411E0EA9100EA0458 /* CharacterGenerator.m */; @@ -1298,16 +1156,16 @@ }; B699A02E11E528BC00F54CC8 /* Screen.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1859, 2912}}"; - sepNavSelRange = "{2875, 0}"; - sepNavVisRange = "{2821, 297}"; + sepNavIntBoundsRect = "{{0, 0}, {1859, 2769}}"; + sepNavSelRange = "{3511, 0}"; + sepNavVisRange = "{3307, 377}"; }; }; B699A02F11E528BC00F54CC8 /* Screen.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1859, 6097}}"; - sepNavSelRange = "{1262, 0}"; - sepNavVisRange = "{1026, 447}"; + sepNavIntBoundsRect = "{{0, 0}, {1859, 7319}}"; + sepNavSelRange = "{3709, 0}"; + sepNavVisRange = "{3484, 377}"; }; }; B699A03211E528DE00F54CC8 /* iGeometry.h */ = { @@ -1326,9 +1184,9 @@ }; B699A05C11E54D4500F54CC8 /* OutputChannel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {999, 975}}"; + sepNavIntBoundsRect = "{{0, 0}, {1022, 1046}}"; sepNavSelRange = "{293, 0}"; - sepNavVisRange = "{148, 328}"; + sepNavVisRange = "{0, 1348}"; }; }; B699A08B11E5720F00F54CC8 /* Emulator.h */ = { @@ -1347,9 +1205,9 @@ }; B699A09011E572A300F54CC8 /* VT52.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 7280}}"; - sepNavSelRange = "{14594, 28}"; - sepNavVisRange = "{13552, 1484}"; + sepNavIntBoundsRect = "{{0, 0}, {1513, 7137}}"; + sepNavSelRange = "{3524, 0}"; + sepNavVisRange = "{3019, 707}"; }; }; B699A0C211E58D3B00F54CC8 /* PBXTextBookmark */ = { @@ -1378,11 +1236,51 @@ name = ttydefaults.h; path = /Developer/SDKs/MacOSX10.6.sdk/usr/include/sys/ttydefaults.h; sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1022, 1625}}"; - sepNavSelRange = "{3998, 0}"; - sepNavVisRange = "{1891, 2927}"; - }; + }; + B6C99E2712BEF7BF00C379FF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B699A09011E572A300F54CC8 /* VT52.mm */; + name = "VT52.mm: 156"; + rLen = 0; + rLoc = 3524; + rType = 0; + vrLen = 707; + vrLoc = 3019; + }; + B6C99E4D12BF011300C379FF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; + rLen = 8; + rLoc = 15910; + rType = 0; + }; + B6C99E5C12BF030500C379FF /* EmulatorView.mm:539 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; + functionName = "-setFrame:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 539; + location = 2Term; + modificationTime = 314508599.519342; + originalNumberOfMultipleMatches = 1; + state = 2; + }; + B6C99E6912BF064F00C379FF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; + name = "EmulatorView.mm: 703"; + rLen = 8; + rLoc = 15910; + rType = 0; + vrLen = 537; + vrLoc = 11682; }; B6D1D11711FFA83D00196D8E /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -1404,7 +1302,7 @@ vrLen = 767; vrLoc = 278; }; - B6E6A7DE11EAAB3A00A24C0C /* Screen.cpp:449 */ = { + B6E6A7DE11EAAB3A00A24C0C /* Screen.cpp:498 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -1416,13 +1314,13 @@ functionName = "Screen::setSize(unsigned width, unsigned height)"; hitCount = 0; ignoreCount = 0; - lineNumber = 449; + lineNumber = 498; location = 2Term; - modificationTime = 314168095.037059; + modificationTime = 314508599.515652; originalNumberOfMultipleMatches = 1; state = 2; }; - B6E6A7F711EAAEC100A24C0C /* EmulatorView.mm:490 */ = { + B6E6A7F711EAAEC100A24C0C /* EmulatorView.mm:556 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -1434,26 +1332,9 @@ functionName = "ViewScreen::setSize(unsigned width, unsigned height, bool resizeView)"; hitCount = 0; ignoreCount = 0; - lineNumber = 490; + lineNumber = 556; location = 2Term; - modificationTime = 314168095.03719; - originalNumberOfMultipleMatches = 1; - state = 2; - }; - B6E6A80A11EAB13000A24C0C /* EmulatorView.mm:472 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; - hitCount = 0; - ignoreCount = 0; - lineNumber = 472; - location = 2Term; - modificationTime = 314168095.03741; + modificationTime = 314508599.515955; originalNumberOfMultipleMatches = 1; state = 2; }; @@ -1471,6 +1352,90 @@ sepNavVisRange = "{1051, 2027}"; }; }; + B6F243C512BD9E070071AF8A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B6697A0E11E6BF95002ED475 /* CurveView.m */; + name = "CurveView.m: 12"; + rLen = 0; + rLoc = 214; + rType = 0; + vrLen = 481; + vrLoc = 135; + }; + B6F243D812BD9E1A0071AF8A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 256AC3D90F4B6AC300CF3369 /* TwoTermAppDelegate.m */; + name = "TwoTermAppDelegate.m: 75"; + rLen = 0; + rLoc = 1659; + rType = 0; + vrLen = 528; + vrLoc = 1084; + }; + B6F243ED12BDA1280071AF8A /* EmulatorView.mm:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B67606D911DF6DAB00D6B66C /* EmulatorView.mm */; + functionName = "-resizeTo:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = 2Term; + modificationTime = 314508599.518015; + originalNumberOfMultipleMatches = 1; + state = 2; + }; + B6F243F112BDA12E0071AF8A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = B676063A11DEAD3500D6B66C /* TermWindowController.mm */; + name = "TermWindowController.mm: 178"; + rLen = 0; + rLoc = 4440; + rType = 0; + vrLen = 560; + vrLoc = 3210; + }; + B6F2442012BDB49A0071AF8A /* PTSE.mm:108 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; + functionName = "-processCharacter:screen:output:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 108; + location = 2Term; + modificationTime = 314508599.518389; + originalNumberOfMultipleMatches = 1; + state = 2; + }; + B6F2442B12BDB4F10071AF8A /* PTSE.mm:136 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = B6697A3C11E7CCA0002ED475 /* PTSE.mm */; + functionName = "-processCharacter:screen:output:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 136; + location = 2Term; + modificationTime = 314508599.518633; + originalNumberOfMultipleMatches = 1; + state = 2; + }; B6F444C611E41AC000C3A836 /* VT05.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {653, 422}}"; @@ -1490,7 +1455,7 @@ fRef = B699A02E11E528BC00F54CC8 /* Screen.h */; name = "Screen.h: 203"; rLen = 0; - rLoc = 3647; + rLoc = 3701; rType = 0; vrLen = 266; vrLoc = 2850; diff --git a/2Term.xcodeproj/kelvin.perspectivev3 b/2Term.xcodeproj/kelvin.perspectivev3 index bcc2488..7588aca 100644 --- a/2Term.xcodeproj/kelvin.perspectivev3 +++ b/2Term.xcodeproj/kelvin.perspectivev3 @@ -3,7 +3,7 @@ ActivePerspectiveName - Project + Debug AllowedModules @@ -272,6 +272,7 @@ 080E96DDFE201D6D7F000001 29B97315FDCFA39411CA2CEA 29B97317FDCFA39411CA2CEA + B66979CE11E6BCAE002ED475 1DDD58140DA1D0A300B32029 B676065011DEBAE900D6B66C 29B97323FDCFA39411CA2CEA @@ -284,13 +285,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 12 - 8 + 26 + 19 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 151}, {324, 1060}} + {{0, 0}, {324, 1060}} PBXTopSmartGroupGIDs @@ -306,8 +307,6 @@ MainColumn 324 - RubberWindowFrame - 0 59 1920 1119 0 0 1920 1178 Module PBXSmartGroupTreeModule @@ -323,7 +322,7 @@ PBXProjectModuleGUID B676054211DADB9000D6B66C PBXProjectModuleLabel - PTSE.mm + EmulatorView.mm PBXSplitModuleInNavigatorKey Split0 @@ -331,11 +330,11 @@ PBXProjectModuleGUID B676054311DADB9000D6B66C PBXProjectModuleLabel - PTSE.mm + EmulatorView.mm _historyCapacity 0 bookmark - B67287F012BD29A100774C3B + B6C99E6912BF064F00C379FF history B676058811DAE21100D6B66C @@ -349,7 +348,6 @@ B699A0C211E58D3B00F54CC8 B66979BD11E6ACB9002ED475 B6697A1B11E6C28A002ED475 - B6697A5211E7E072002ED475 B6697A5311E7E072002ED475 B6697A5411E7E072002ED475 B6697A5511E7E072002ED475 @@ -367,15 +365,16 @@ B6FA9C5411FCE85B00F38EC1 B6FA9C6611FCE9BC00F38EC1 B6D1D11711FFA83D00196D8E - B644FBDD1269343B009523CE - B67B3CD912B6F9F50033AE07 - B67B3D0E12B724790033AE07 B67B3D1212B724790033AE07 B61069C412B72942007204C0 B672878912B9C36800774C3B - B67287EC12BD29A100774C3B - B67287ED12BD29A100774C3B - B67287EF12BD29A100774C3B + B662524E12BD9D14002B1529 + B6F243C512BD9E070071AF8A + B6F243D812BD9E1A0071AF8A + B6F243F112BDA12E0071AF8A + B637CCFC12BEA992009FDC31 + B6C99E2712BEF7BF00C379FF + B6C99E4D12BF011300C379FF SplitCount @@ -389,18 +388,16 @@ GeometryConfiguration Frame - {{0, 0}, {1574, 414}} - RubberWindowFrame - 0 59 1920 1119 0 0 1920 1178 + {{0, 0}, {1574, 361}} Module PBXNavigatorGroup Proportion - 414pt + 361pt Proportion - 659pt + 712pt Tabs @@ -414,7 +411,7 @@ GeometryConfiguration Frame - {{10, 27}, {1574, 632}} + {{10, 27}, {1574, 685}} Module XCDetailModule @@ -430,14 +427,12 @@ GeometryConfiguration Frame - {{10, 27}, {1574, 560}} + {{10, 27}, {1574, 685}} Module PBXProjectFindModule - BecomeActive - ContentConfiguration PBXCVSModuleFilterTypeKey @@ -471,9 +466,7 @@ GeometryConfiguration Frame - {{10, 27}, {1574, 632}} - RubberWindowFrame - 0 59 1920 1119 0 0 1920 1178 + {{10, 27}, {1574, 645}} Module PBXCVSModule @@ -493,7 +486,7 @@ GeometryConfiguration Frame - {{10, 27}, {1574, 571}} + {{10, 27}, {1574, 685}} Module PBXBuildResultsModule @@ -521,11 +514,11 @@ TableOfContents - B672875112B9BF4800774C3B + B6C99DFA12BEF1DC00C379FF 1CA23ED40692098700951B8B - B672875212B9BF4800774C3B + B6C99DFB12BEF1DC00C379FF B676054211DADB9000D6B66C - B672875312B9BF4800774C3B + B6C99DFC12BEF1DC00C379FF 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -577,6 +570,8 @@ Frame {{0, 0}, {1920, 403}} + RubberWindowFrame + -1 59 1920 1119 0 0 1920 1178 Module PBXDebugCLIModule @@ -651,7 +646,11 @@ Frame {{937, 0}, {983, 328}} + RubberWindowFrame + -1 59 1920 1119 0 0 1920 1178 + RubberWindowFrame + -1 59 1920 1119 0 0 1920 1178 Module PBXDebugSessionModule @@ -674,14 +673,14 @@ TableOfContents - B672876412B9C27F00774C3B + B6C99DFD12BEF1DC00C379FF 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - B672876512B9C27F00774C3B - B672876612B9C27F00774C3B - B672876712B9C27F00774C3B - B672876812B9C27F00774C3B - B672876912B9C27F00774C3B + B6C99DFE12BEF1DC00C379FF + B6C99DFF12BEF1DC00C379FF + B6C99E0012BEF1DC00C379FF + B6C99E0112BEF1DC00C379FF + B6C99E0212BEF1DC00C379FF ToolbarConfigUserDefaultsMinorVersion 2 @@ -716,13 +715,16 @@ WindowOrderList 1C530D5B069F1CE1000CFCEE - B67287F212BD29A100774C3B - B672876B12B9C27F00774C3B - B672876C12B9C27F00774C3B + B6C99E3812BEF98500C379FF + B6C99E3912BEF98500C379FF + B6C99E0412BEF1DC00C379FF + B6C99E0612BEF1DC00C379FF + B6C99E2A12BEF7BF00C379FF /Users/kelvin/Projects/2Term/2Term.xcodeproj + B6C99E2B12BEF7BF00C379FF WindowString - 0 59 1920 1119 0 0 1920 1178 + -1 59 1920 1119 0 0 1920 1178 WindowToolsV3 @@ -1095,7 +1097,7 @@ TableOfContents 1C530D5B069F1CE1000CFCEE - B67287F112BD29A100774C3B + B6C99E6A12BF064F00C379FF 1C78EAAC065D492600B07095 ToolbarConfiguration diff --git a/CurveView.h b/CurveView.h index ee8dfbb..c205d7f 100644 --- a/CurveView.h +++ b/CurveView.h @@ -16,6 +16,5 @@ @property (nonatomic, retain) NSColor *color; --(void)initScanLines; @end diff --git a/CurveView.m b/CurveView.m index 636c2c4..6f4c156 100644 --- a/CurveView.m +++ b/CurveView.m @@ -21,33 +21,7 @@ return self; } --(void)initScanLines -{ - NSMutableArray *filters; - CIFilter *filter; - - [self setWantsLayer: YES]; - - filters = [NSMutableArray arrayWithCapacity: 3]; - - - - //add the scanlines (which are vertical and must therfore be rotated - - filter = [[ScanLineFilter new] autorelease]; - [filter setValue: [NSNumber numberWithFloat: 0.75] forKey: @"inputOpacity"]; - [filters addObject: filter]; - - //blur it a bit... - - filter = [CIFilter filterWithName: @"CIGaussianBlur"]; - [filter setDefaults]; - [filter setValue: [NSNumber numberWithFloat: 0.33] forKey: @"inputRadius"]; - - [filters addObject: filter]; - - [self setContentFilters: filters]; -} + #define curveSize 4 diff --git a/Defaults.h b/Defaults.h index bae2af9..6afbeb2 100644 --- a/Defaults.h +++ b/Defaults.h @@ -14,6 +14,12 @@ extern "C" { #endif extern NSString *kNotificationNewTerminal; + + extern NSString *kForegroundColor; + extern NSString *kBackgroundColor; + extern NSString *kScanLines; + extern NSString *kClass; + #ifdef __cplusplus diff --git a/Defaults.m b/Defaults.m index 150d224..a5ec199 100644 --- a/Defaults.m +++ b/Defaults.m @@ -9,4 +9,11 @@ #import "Defaults.h" -NSString *kNotificationNewTerminal = @"com.ksherlock.iiTerm: New Terminal"; +NSString *kNotificationNewTerminal = @"com.ksherlock.TwoTerm: New Terminal"; + + +NSString *kForegroundColor = @"Foreground Color"; +NSString *kBackgroundColor = @"Background Color"; +NSString *kScanLines = @"Scan Lines"; + +NSString *kClass = @"Class"; \ No newline at end of file diff --git a/EmulatorView.h b/EmulatorView.h index c736ea9..eedefb8 100644 --- a/EmulatorView.h +++ b/EmulatorView.h @@ -65,6 +65,11 @@ private: NSImage *_cursorImg; NSTimer *_cursorTimer; BOOL _cursorOn; + + + BOOL _scanLines; + BOOL _inResizeTo; + #ifdef __cplusplus @@ -73,12 +78,15 @@ private: #endif } +@property (nonatomic, assign) BOOL scanLines; @property (nonatomic, assign) int fd; + +@property (nonatomic, retain) NSColor *foregroundColor; +@property (nonatomic, retain) NSColor *backgroundColor; @property (nonatomic, retain) NSObject *emulator; //@property (nonatomic, assign) iPoint cursor; - -(void)startBackgroundReader; -(void)dataAvailable; -(void)invalidateIRect: (iRect)rect; diff --git a/EmulatorView.mm b/EmulatorView.mm index 49fd191..2fb576a 100644 --- a/EmulatorView.mm +++ b/EmulatorView.mm @@ -27,6 +27,11 @@ @synthesize fd = _fd; @synthesize emulator = _emulator; +@synthesize foregroundColor = _foregroundColor; +@synthesize backgroundColor = _backgroundColor; +@synthesize scanLines = _scanLines; + + #pragma mark - #pragma mark properties @@ -40,12 +45,11 @@ -(void)awakeFromNib { - //CIFilter *filter; - //NSMutableArray *filters; - _charWidth = 7; _charHeight = 16; + _paddingLeft = 8; + _paddingTop = 8; //_foregroundColor = [[NSColor greenColor] retain]; @@ -54,36 +58,16 @@ _foregroundColor = [[NSColor whiteColor] retain]; _backgroundColor = [[NSColor blueColor] retain]; - /* - [self setWantsLayer: YES]; - - filters = [NSMutableArray arrayWithCapacity: 3]; - - - - //add the scanlines (which are vertical and must therfore be rotated - - filter = [[ScanLineFilter new] autorelease]; - [filter setValue: [NSNumber numberWithFloat: 0.75] forKey: @"inputOpacity"]; - [filters addObject: filter]; - - //blur it a bit... - - filter = [CIFilter filterWithName: @"CIGaussianBlur"]; - [filter setDefaults]; - [filter setValue: [NSNumber numberWithFloat: 0.33] forKey: @"inputRadius"]; - - [filters addObject: filter]; - - [self setContentFilters: filters]; - */ + + + //[self initScanLines]; _screen.setFD(_fd); _screen.setView(self); _charGen = [[CharacterGenerator generator] retain]; - _cursorImg = [[_charGen imageForCharacter: 0x7f] retain]; + _cursorImg = [[_charGen imageForCharacter: '_'] retain]; //_emulator = [VT52 new]; @@ -95,6 +79,65 @@ } +-(void)setBackgroundColor:(NSColor *)color +{ + if (_backgroundColor == color) return; + + [_backgroundColor release]; + _backgroundColor = [color retain]; + + [self setNeedsDisplay: YES]; +} + +-(void)setForegroundColor:(NSColor *)color +{ + if (_foregroundColor == color) return; + + [_foregroundColor release]; + _foregroundColor = [color retain]; + + [self setNeedsDisplay: YES]; +} + +-(void)setScanLines:(BOOL)scanLines +{ + if (_scanLines == scanLines) return; + + _scanLines = scanLines; + + if (_scanLines) + { + NSMutableArray *filters; + CIFilter *filter; + + [self setWantsLayer: YES]; + + filters = [NSMutableArray arrayWithCapacity: 3]; + + + + //add the scanlines (which are vertical and must therfore be rotated + + filter = [[ScanLineFilter new] autorelease]; + [filter setValue: [NSNumber numberWithFloat: 0.75] forKey: @"inputOpacity"]; + [filters addObject: filter]; + + //blur it a bit... + + filter = [CIFilter filterWithName: @"CIGaussianBlur"]; + [filter setDefaults]; + [filter setValue: [NSNumber numberWithFloat: 0.33] forKey: @"inputRadius"]; + + [filters addObject: filter]; + + [self setContentFilters: filters]; + } + else + { + [self setContentFilters: nil]; + } +} + -(BOOL)isFlipped { return YES; @@ -181,9 +224,10 @@ for (y = minY; y <= maxY; ++y) { NSRect charRect = NSMakeRect(_paddingLeft + x * _charWidth, _paddingTop + y *_charHeight, _charWidth, _charHeight); - NSImage *img; + //NSImage *img; CharInfo ci = _screen.getc(x, y); unsigned flag = ci.flag; + uint8_t c = ci.c; // todo -- check flags to determine fg/bg color, etc. // need to draw background individually.... @@ -196,7 +240,13 @@ currentFront = _boldColor; - img = [_charGen imageForCharacter: ci.c]; + if (flag & Screen::FlagMouseText) + { + if (c >= '@' && c <= '_') c |= 0x80; + } + + + //img = [_charGen imageForCharacter: c]; if (flag & Screen::FlagInverse) { @@ -211,26 +261,12 @@ } if (_foregroundColor != currentFront) setFront = YES; - + if (setFront) [currentFront setFill]; + + [_charGen drawCharacter: c atPoint: NSMakePoint(_paddingLeft + x * _charWidth, _paddingTop + y * _charHeight)]; - /* - [img drawAtPoint: NSMakePoint(x * _charWidth, y * _charHeight) - fromRect: NSZeroRect - operation:NSCompositeCopy - fraction: 1.0]; - */ - if (img) - { - if (setFront) [currentFront setFill]; - - [img drawInRect: charRect - fromRect: NSZeroRect - operation: NSCompositeCopy - fraction: 1.0 - respectFlipped: YES - hints: nil]; - } + } } @@ -371,6 +407,7 @@ uint8_t buffer[512]; ssize_t size; + size = read(_fd, buffer, sizeof(buffer)); if (size == 0) break; @@ -381,8 +418,13 @@ perror("[EmulatorView dataAvailable]"); break; } - - + +#if 0 + FILE *debug = fopen("/tmp/debug.txt", "a"); + fwrite(buffer, 1, size, debug); + fflush(debug); + fclose(debug); +#endif pool = [NSAutoreleasePool new]; _screen.beginUpdate(); @@ -447,7 +489,9 @@ wframe.size.height += newSize.height - bounds.size.height; wframe.size.width += newSize.width - bounds.size.width; + _inResizeTo = YES; [window setFrame: wframe display: YES animate: YES]; + _inResizeTo = NO; } @@ -470,29 +514,52 @@ #if 0 -(void)viewWillStartLiveResize { - NSLog(@"%s", sel_getName(_cmd)); -} - --(void)viewDidEndLiveResize -{ - NSLog(@"%s", sel_getName(_cmd)); + //NSLog(@"%s", sel_getName(_cmd)); + } #endif +-(void)viewDidEndLiveResize +{ + //NSLog(@"%s", sel_getName(_cmd)); + [super viewDidEndLiveResize]; + + [self setNeedsDisplay: YES]; +} + +/* + * inLiveResize indicates the user is resizing the window -or- the -(void)setWindowFrame: animated: YES. + * non-live resize indicates zooming or resizeTo w/o animation. + * + * + */ -(void)setFrame:(NSRect)frameRect { //NSLog(@"%s", sel_getName(_cmd)); - if ([self inLiveResize]) + BOOL inLiveResize = [self inLiveResize]; + + [super setFrame: frameRect]; + + + if (inLiveResize && _inResizeTo) { - unsigned width = floor((frameRect.size.width - _paddingLeft) / _charWidth); - unsigned height = floor((frameRect.size.height - _paddingTop) / _charHeight); + return; + } + + if (/* inLiveResize */ YES) + { + // user is resizing window. + // or zoom. + unsigned width = floor((frameRect.size.width - _paddingLeft * 2) / _charWidth); + unsigned height = floor((frameRect.size.height - _paddingTop * 2) / _charHeight); _screen.lock(); _screen.setSize(width, height, false); _screen.unlock(); + + return; } - [super setFrame: frameRect]; } diff --git a/English.lproj/NewTerminal.xib b/English.lproj/NewTerminal.xib index f9263b2..7d259c5 100644 --- a/English.lproj/NewTerminal.xib +++ b/English.lproj/NewTerminal.xib @@ -41,7 +41,7 @@ 263 2 - {{196, 240}, {400, 175}} + {{196, 232}, {400, 200}} 544736256 New Terminal NSWindow @@ -52,86 +52,22 @@ 256 YES - - - 266 - {{121, 130}, {259, 26}} - - - YES - - -2080244160 - 2048 - - LucidaGrande - 13 - 1044 - - - -2035269377 - 163 - - - 400 - 75 - - - VT 52 - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - 1 - - - YES - - OtherViews - - YES - - - - VT 100 - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - - 2 - YES - YES - 2 - - 268 - {{17, 135}, {99, 17}} + {{17, 160}, {99, 17}} - + YES 68288064 71304192 Terminal Type: - + + LucidaGrande + 13 + 1044 + 6 @@ -156,7 +92,7 @@ 268 - {{17, 104}, {99, 17}} + {{17, 129}, {99, 17}} YES @@ -220,19 +156,19 @@ NSColor pasteboard type - {{121, 101}, {44, 23}} + {{121, 126}, {44, 23}} YES YES 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA + MCAxIDAAA 268 - {{17, 76}, {99, 17}} + {{17, 101}, {99, 17}} YES @@ -255,17 +191,116 @@ NSColor pasteboard type - {{121, 73}, {44, 23}} + {{121, 98}, {44, 23}} YES YES 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA + MCAwIDAAA + + + + + 268 + {{121, 155}, {259, 25}} + + YES + + -2076049856 + 2048 + + + -2036317953 + 163 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{119, 74}, {88, 18}} + + YES + + -2080244224 + 0 + Scan Lines + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 - {400, 175} + {400, 200} @@ -310,11 +345,35 @@ - _terminalTypeButton + foregroundColorControl - + - 42 + 64 + + + + backgroundColorControl + + + + 65 + + + + scanLineButton + + + + 66 + + + + terminalTypeButton + + + + 67 @@ -359,54 +418,17 @@ YES - + + - - 3 - - - YES - - - - - - 4 - - - YES - - - - - - 5 - - - YES - - - - - - - 6 - - - - - 7 - - - 9 @@ -487,6 +509,64 @@ + + 55 + + + YES + + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + 58 + + + + + 59 + + + + + 60 + + + + + 62 + + + YES + + + + + + 63 + + + @@ -508,8 +588,6 @@ 19.IBPluginDependency 2.IBPluginDependency 20.IBPluginDependency - 3.IBPluginDependency - 4.IBPluginDependency 49.IBPluginDependency 49.IBViewBoundsToFrameTransform 50.IBPluginDependency @@ -524,6 +602,17 @@ 53.IBPluginDependency 53.IBViewBoundsToFrameTransform 54.IBPluginDependency + 55.IBPluginDependency + 55.IBViewBoundsToFrameTransform + 56.IBPluginDependency + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 58.IBPluginDependency + 59.IBPluginDependency + 60.IBPluginDependency + 62.IBPluginDependency + 62.IBViewBoundsToFrameTransform + 63.IBPluginDependency 9.IBPluginDependency 9.IBViewBoundsToFrameTransform @@ -532,9 +621,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{107, 494}, {400, 175}} + {{107, 469}, {400, 200}} com.apple.InterfaceBuilder.CocoaPlugin - {{107, 494}, {400, 175}} + {{107, 469}, {400, 200}} {196, 240} {{357, 418}, {480, 270}} @@ -545,8 +634,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin AULyAABCygAAA @@ -569,6 +656,21 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDjAAAwxoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{217, 586}, {259, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB8AAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin P4AAAL+AAABBiAAAwxYAAA @@ -590,7 +692,7 @@ - 54 + 67 @@ -631,14 +733,49 @@ - _terminalTypeButton - NSPopUpButton + YES + + YES + backgroundColorControl + foregroundColorControl + scanLineButton + terminalTypeButton + + + YES + NSColorWell + NSColorWell + NSButton + NSPopUpButton + - _terminalTypeButton - - _terminalTypeButton - NSPopUpButton + YES + + YES + backgroundColorControl + foregroundColorControl + scanLineButton + terminalTypeButton + + + YES + + backgroundColorControl + NSColorWell + + + foregroundColorControl + NSColorWell + + + scanLineButton + NSButton + + + terminalTypeButton + NSPopUpButton + @@ -1169,11 +1306,13 @@ YES NSMenuCheckmark NSMenuMixedState + NSSwitch YES {9, 8} {7, 2} + {15, 15} diff --git a/NewTerminalWindowController.h b/NewTerminalWindowController.h index b140582..6adeb6e 100644 --- a/NewTerminalWindowController.h +++ b/NewTerminalWindowController.h @@ -12,9 +12,19 @@ @interface NewTerminalWindowController : NSWindowController { @private - IBOutlet NSPopUpButton *_terminalTypeButton; + NSPopUpButton *_terminalTypeButton; + NSButton *_scanLineButton; + + NSColorWell *_foregroundColorControl; + NSColorWell *_backgroundColorControl; + } +@property (nonatomic, retain) IBOutlet NSPopUpButton *terminalTypeButton; +@property (nonatomic, retain) IBOutlet NSButton *scanLineButton; +@property (nonatomic, retain) IBOutlet NSColorWell *foregroundColorControl; +@property (nonatomic, retain) IBOutlet NSColorWell *backgroundColorControl; + -(IBAction)cancelButton: (id)sender; -(IBAction)connectButton: (id)sender; diff --git a/NewTerminalWindowController.m b/NewTerminalWindowController.m index fee910c..cb32c68 100644 --- a/NewTerminalWindowController.m +++ b/NewTerminalWindowController.m @@ -12,6 +12,11 @@ @implementation NewTerminalWindowController +@synthesize terminalTypeButton = _terminalTypeButton; +@synthesize scanLineButton = _scanLineButton; +@synthesize foregroundColorControl = _foregroundColorControl; +@synthesize backgroundColorControl = _backgroundColorControl; + +(id)new { @@ -23,7 +28,10 @@ - (void)dealloc { // Clean-up code here. - //[_terminalTypeButton release]; + [_terminalTypeButton release]; + [_backgroundColorControl release]; + [_foregroundColorControl release]; + [_scanLineButton release]; [super dealloc]; } @@ -56,7 +64,10 @@ { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: - klass, @"Class", + klass, kClass, + [NSNumber numberWithBool: [_scanLineButton intValue]], kScanLines, + [_foregroundColorControl color], kForegroundColor, + [_backgroundColorControl color], kBackgroundColor, nil]; [nc postNotificationName: kNotificationNewTerminal object: self userInfo: userInfo]; diff --git a/PTSE.mm b/PTSE.mm index 25deb5d..6ee3556 100644 --- a/PTSE.mm +++ b/PTSE.mm @@ -107,11 +107,12 @@ enum { break; case CTRL('J'): //Move cursor down one line. - screen->incrementY(); + //screen->incrementY(); + screen->lineFeed(); break; case CTRL('I'): //Move cursor to next tab stop (every 8 chars). - screen->setX((screen->x() + 8) & ~0x07); + screen->tabTo((screen->x() + 8) & ~0x07); break; case CTRL('A'): //Move cursor to beginning of line. @@ -132,7 +133,7 @@ enum { break; case CTRL('M'): - screen->lineFeed(); + //screen->lineFeed(); screen->setX(0); break; @@ -140,15 +141,23 @@ enum { case CTRL('D'): //Delete current character (under cursor). // TODO -- does this shift the rest of the row? + screen->deletec(); break; case CTRL('F'): //Insert space at cursor. + screen->insertc(' '); break; + case CTRL('Z'): //Delete current line. + screen->removeLine(screen->y()); break; case CTRL('V'): //Insert blank like. + // TODO -- verify if the line is before or after the current line, + // TODO -- verify if x/y change + // TODO -- verify scrolling behavior. + screen->addLine(screen->y()); break; case CTRL('Y'): //Clear to end of line. @@ -278,6 +287,20 @@ enum { switch (uc) { + case NSEnterCharacter: + output->write(CTRL('M')); + break; + + case NSDeleteCharacter: + output->write(0x7f); + break; + + + // backspace and left arrow use the same code, alas. + case NSBackspaceCharacter: + output->write(CTRL('H')); + break; + case NSLeftArrowFunctionKey: output->write(CTRL('H')); break; @@ -293,6 +316,7 @@ enum { case NSDownArrowFunctionKey: output->write(CTRL('J')); break; + default: if (uc <= 0x7f) diff --git a/ScanLineFilter.cikernel b/ScanLineFilter.cikernel index 61d81e9..4b1dec4 100644 --- a/ScanLineFilter.cikernel +++ b/ScanLineFilter.cikernel @@ -13,7 +13,7 @@ kernel vec4 scanline(sampler image, float opacity) // isOdd == 0 --> return pixel // isOdd == 1 --> return pixel * opacity - float multiplier = compare(isOdd - 1.0, 1.0, opacity); - + //float multiplier = compare(isOdd - 1.0, 1.0, opacity); + float multiplier = isOdd == 0.0 ? 1.0 : opacity; return pixel * multiplier; } diff --git a/Screen.cpp b/Screen.cpp index 6f1080c..0ddc359 100644 --- a/Screen.cpp +++ b/Screen.cpp @@ -87,6 +87,52 @@ void Screen::putc(uint8_t c, bool incrementX) } } +void Screen::deletec() +{ + // delete character at cursor. + // move following character up + // set final character to ' ' (retaining flags from previous char) + + if (_cursor.x >= _width) return; + + _updates.push_back(_cursor); + _updates.push_back(iPoint(_width - 1, _cursor.y)); + + + CharInfoIterator end = _screen[_cursor.y].end() - 1; + CharInfoIterator iter = _screen[_cursor.y].begin() + _cursor.x; + + + for ( ; iter != end; ++iter) + { + iter[0] = iter[1]; + + } + // retain the flags previously there. + end->c = ' '; +} + +void Screen::insertc(uint8_t c) +{ + // insert character at cursor. + // move following characters up (retaining flags). + + if (_cursor.x >= _width) return; + + _updates.push_back(_cursor); + _updates.push_back(iPoint(_width - 1, _cursor.y)); + + CharInfoIterator end = _screen[_cursor.y].end() - 1; + CharInfoIterator iter = _screen[_cursor.y].begin() + _cursor.x; + + for ( ; iter != end; ++iter) + { + iter[1] = iter[0]; + } + + iter->c = ' '; +} + void Screen::tabTo(unsigned xPos) { @@ -96,6 +142,9 @@ void Screen::tabTo(unsigned xPos) xPos = std::min(xPos, _width - 1); + _updates.push_back(_cursor); + _updates.push_back(iPoint(xPos, _cursor.y)); + for (unsigned x = _cursor.x; x < xPos; ++x) { _screen[_cursor.y][x] = clear; diff --git a/Screen.h b/Screen.h index 3d426cc..1ada997 100644 --- a/Screen.h +++ b/Screen.h @@ -83,10 +83,13 @@ public: void setFlag(uint8_t flag); void putc(uint8_t c, bool incrementX = true); + CharInfo getc(int x, int y) const; + + void deletec(); + void insertc(uint8_t c); void tabTo(unsigned x); - CharInfo getc(int x, int y) const; void erase(EraseRegion); diff --git a/TermWindowController.h b/TermWindowController.h index 330d9d8..7893861 100644 --- a/TermWindowController.h +++ b/TermWindowController.h @@ -16,15 +16,21 @@ @interface TermWindowController : NSWindowController { + NSDictionary *_parameters; + EmulatorView *_emulatorView; CurveView *_curveView; + + NSObject *_emulator; int _child; } +@property (nonatomic, retain) NSDictionary *parameters; + @property (nonatomic, retain) IBOutlet EmulatorView *emulatorView; @property (nonatomic, retain) IBOutlet CurveView *curveView; diff --git a/TermWindowController.mm b/TermWindowController.mm index dd0ea5b..abe2411 100644 --- a/TermWindowController.mm +++ b/TermWindowController.mm @@ -13,6 +13,9 @@ #import "VT52.h" #import "PTSE.h" +#import "Defaults.h" + + #define TTYDEFCHARS #include @@ -30,6 +33,10 @@ @synthesize emulatorView = _emulatorView; @synthesize curveView = _curveView; +@synthesize parameters = _parameters; + + + +(id)new { return [[self alloc] initWithWindowNibName: @"TermWindow"]; @@ -41,6 +48,7 @@ [_emulatorView release]; [_curveView release]; + [_parameters release]; [super dealloc]; } @@ -138,6 +146,8 @@ if (fcntl(fd, F_GETFL, &flags) < 0) flags = 0; fcntl(fd, F_SETFL, flags | O_NONBLOCK); */ + + [_emulatorView resizeTo: iSize(ws.ws_col, ws.ws_row)]; if (![_emulator resizable]) { @@ -163,20 +173,44 @@ - (void)windowDidLoad { + + BOOL scanLines; + NSColor *foregroundColor; + NSColor *backgroundColor; + Class klass; + id o; + [super windowDidLoad]; - if (!_emulator) + klass = [_parameters objectForKey: kClass]; + if (!klass || ![klass conformsToProtocol: @protocol(Emulator)]) { - // window title is bound to _emulator - [self willChangeValueForKey: @"emulator"]; - _emulator = [PTSE new]; - [self didChangeValueForKey: @"emulator"]; + klass = [VT52 class]; } - [_emulatorView setEmulator: _emulator]; + o = [_parameters objectForKey: kScanLines]; + scanLines = o ? [(NSNumber *)o boolValue] : YES; - [_curveView initScanLines]; - [_curveView setColor: [NSColor blueColor]]; + o = [_parameters objectForKey: kForegroundColor]; + foregroundColor = o ? (NSColor *)o : [NSColor greenColor]; + + o = [_parameters objectForKey: kBackgroundColor]; + backgroundColor = o ? (NSColor *)o : [NSColor blackColor]; + + + [self willChangeValueForKey: @"emulator"]; + _emulator = [klass new]; + [self didChangeValueForKey: @"emulator"]; + + + [_emulatorView setEmulator: _emulator]; + [_emulatorView setForegroundColor: foregroundColor]; + [_emulatorView setBackgroundColor: backgroundColor]; + [_emulatorView setScanLines: scanLines]; + + + //[_curveView initScanLines]; + //[_curveView setColor: [NSColor blueColor]]; [self initPTY]; } diff --git a/TwoTermAppDelegate.m b/TwoTermAppDelegate.m index 4b70b9a..dc93982 100644 --- a/TwoTermAppDelegate.m +++ b/TwoTermAppDelegate.m @@ -61,15 +61,17 @@ NSDictionary *userInfo = [notification userInfo]; - + /* Class klass = [userInfo objectForKey: @"Class"]; if (![klass conformsToProtocol: @protocol(Emulator)]) klass = [VT52 class]; - + */ controller = [TermWindowController new]; - [controller setEmulator: [[klass new] autorelease]]; + [controller setParameters: userInfo]; + + //[controller setEmulator: [[klass new] autorelease]]; [controller showWindow: nil]; // this leak is ok. }