Changeset 7318
- Timestamp:
- 03/01/08 15:11:23 (5 years ago)
- Files:
-
- 1 modified
-
lang/actionscript/FxTerm/trunk/FxTerm.as (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/actionscript/FxTerm/trunk/FxTerm.as
r7316 r7318 429 429 cursorCanvas.graphics.clear(); 430 430 // FIXME cursor color 431 var drow:int; 432 var dcol:int; 433 if( ccol >= cols ) { 434 drow = (crow+1 < rows ? crow+1 : rows - 1); 435 dcol = 0; 436 } else { 437 drow = crow; 438 dcol = ccol; 439 } 431 440 cursorCanvas.graphics.beginFill(ansiForegroundColors[7], 1.0); 432 441 cursorCanvas.graphics.drawRect( 433 (this.width / cols - 0.05) * ccol + 2,434 lineHeight * crow + lineGapFilling,435 ( screen[ crow][ccol].wide ?442 (this.width / cols - 0.05) * dcol + 2, 443 lineHeight * drow + lineGapFilling, 444 ( screen[drow][dcol].wide ? 436 445 calibrateFontWidth * 2 - 2 : // wide width 437 446 calibrateFontWidth ), … … 595 604 var screen:Array = _screen; 596 605 var wide:Boolean = isWideCharacter(c); 597 if( wide ) { 598 if( ccol+1 >= cols ) { 599 screen[crow][ccol].wide = false; 600 screen[crow][ccol].text = " "; 601 cursorLineDown(); 602 ccol = 0; 603 } 604 } else { 605 /* FIXME 606 if( ccol >= cols ) { 607 cursorLineDown(); 608 ccol = 0; 609 } 610 */ 606 if( ccol >= cols ) { 607 cursorLineDown(); 608 screen = _screen; 609 ccol = 0; 610 } else if( wide && ccol+1 >= cols ) { 611 screen[crow][ccol].wide = false; 612 screen[crow][ccol].text = " "; 613 cursorLineDown(); 614 screen = _screen; 615 ccol = 0; 611 616 } 612 617 screen[crow][ccol].text = c; … … 628 633 } 629 634 ccol++; 630 }631 if( ccol >= cols ) { // FIXME632 cursorLineDown();633 ccol = 0;634 635 } 635 636 cursorDirty = true; … … 894 895 var r:uint; 895 896 var c:uint; 897 var dcol:int; 896 898 if( param.length > 0 && param[0] == 2 ) { 897 899 // clear whole screen … … 907 909 } 908 910 lineDirty[crow] = true; 909 for(c = 0; c <= ccol; ++c) { 911 dcol = (ccol < cols ? ccol : cols - 1); 912 for(c = 0; c <= dcol; ++c) { 910 913 screen[crow][c].clear(curattr); 911 914 } … … 913 916 // clear from current cursor position to the end 914 917 lineDirty[crow] = true; 915 for(c = 0; c <= ccol; ++c) { 918 dcol = (ccol < cols ? ccol : cols - 1); 919 for(c = 0; c <= dcol; ++c) { 916 920 screen[crow][c].clear(curattr); 917 921 } … … 1004 1008 switch(cmd) { 1005 1009 case 1: 1006 for(c = 0; c <= ccol; ++c) { 1010 var dcol:int = (ccol < cols ? ccol : cols - 1); 1011 for(c = 0; c <= dcol; ++c) { 1007 1012 screen[crow][c].clear(curattr); 1008 1013 } … … 1012 1017 break; 1013 1018 default: 1014 for(c = ccol; c < cols; ++c) { 1019 for(c = ccol; c < cols; ++c) { // FIXME dcol? 1015 1020 screen[crow][c].clear(curattr); 1016 1021 } … … 1027 1032 var n:int = (param.length > 0 && param[0] > 0) ? param[0] : 1; 1028 1033 var c:int; 1029 1030 var poped:Array = screen[crow].splice(ccol + n); 1031 var range:Array = screen[crow].splice(ccol); 1034 var dcol:int = (ccol < cols ? ccol : cols - 1); 1035 1036 var poped:Array = screen[crow].splice(dcol + n); 1037 var range:Array = screen[crow].splice(dcol); 1032 1038 for each(var cell:TextCell in poped) { cell.clear(); } 1033 1039 screen[crow] = screen[crow].concat(poped); … … 1041 1047 { 1042 1048 var screen:Array = _screen; 1049 var dcol:int = (ccol < cols ? ccol : cols - 1); 1043 1050 1044 1051 var n:int = (param.length > 0 && param[0] > 0) ? param[0] : 1; 1045 1052 var range:Array = screen[crow].splice(cols - n); 1046 var poped:Array = screen[crow].splice( ccol);1053 var poped:Array = screen[crow].splice(dcol); 1047 1054 for each(var cell:TextCell in poped) { cell.clear(); } 1048 1055 screen[crow] = screen[crow].concat(poped); … … 1050 1057 1051 1058 var c:int; 1052 for(c = ccol; c < cols - n; ++c) {1059 for(c = dcol; c < cols - n; ++c) { 1053 1060 screen[crow][c].copy( screen[crow][c + n] ); 1054 1061 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)