Changeset 691
- Timestamp:
- 08/20/07 18:21:03 (6 years ago)
- Location:
- FCKeditor/trunk/editor/_source
- Files:
-
- 5 edited
-
commandclasses/fcktablecommand.js (modified) (1 diff)
-
internals/fck_contextmenu.js (modified) (1 diff)
-
internals/fckcommands.js (modified) (1 diff)
-
internals/fcktablehandler.js (modified) (4 diffs)
-
internals/fcktools_gecko.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
FCKeditor/trunk/editor/_source/commandclasses/fcktablecommand.js
r672 r691 91 91 FCKTableCommand.prototype.GetState = function() 92 92 { 93 if ( FCK.EditorDocument != null )93 if ( FCK.EditorDocument != null && FCKSelection.HasAncestorNode( 'TABLE' ) ) 94 94 { 95 if( FCKSelection.HasAncestorNode( 'TABLE' ) ) 96 return FCK_TRISTATE_OFF ; 95 switch ( this.Name ) 96 { 97 case 'TableHorizontalSplitCell' : 98 case 'TableVerticalSplitCell' : 99 case 'TableMergeRight' : 100 case 'TableMergeDown' : 101 if ( FCKTableHandler.GetSelectedCells().length == 1 ) 102 return FCK_TRISTATE_OFF ; 103 else 104 return FCK_TRISTATE_DISABLED ; 105 break ; 106 case 'TableMergeCells' : 107 if ( FCKTableHandler.CheckIsSelectionRectangular() 108 && FCKTableHandler.GetSelectedCells().length > 1 ) 109 return FCK_TRISTATE_OFF ; 110 else 111 return FCK_TRISTATE_DISABLED ; 112 default : 113 return FCK_TRISTATE_OFF ; 114 } 97 115 } 98 return FCK_TRISTATE_DISABLED; 116 else 117 return FCK_TRISTATE_DISABLED; 99 118 } -
FCKeditor/trunk/editor/_source/internals/fck_contextmenu.js
r672 r691 71 71 menu.AddSeparator() ; 72 72 var oItem = menu.AddItem( 'Cell' , FCKLang.CellCM ) ; 73 oItem.AddItem( 'TableInsertCellBefore' , FCKLang.InsertCellBefore, 69 ) ; 73 oItem.AddItem( 'TableInsertCellBefore' , FCKLang.InsertCellBefore, 69 ) ; 74 74 oItem.AddItem( 'TableInsertCellAfter' , FCKLang.InsertCellAfter, 58 ) ; 75 75 oItem.AddItem( 'TableDeleteCells' , FCKLang.DeleteCells, 59 ) ; 76 76 if ( FCKBrowserInfo.IsIE ) 77 77 { 78 oItem.AddItem( 'TableMergeRight' , FCKLang.MergeRight, 60 ) ; 79 oItem.AddItem( 'TableMergeDown' , FCKLang.MergeDown, 60 ) ; 78 oItem.AddItem( 'TableMergeRight' , FCKLang.MergeRight, 60, 79 FCKCommands.GetCommand( 'TableMergeRight' ).GetState() == FCK_TRISTATE_DISABLED ) ; 80 oItem.AddItem( 'TableMergeDown' , FCKLang.MergeDown, 60, 81 FCKCommands.GetCommand( 'TableMergeDown' ).GetState() == FCK_TRISTATE_DISABLED ) ; 80 82 } 81 83 else 82 oItem.AddItem( 'TableMergeCells' , FCKLang.MergeCells, 60 ) ; 83 oItem.AddItem( 'TableHorizontalSplitCell' , FCKLang.HorizontalSplitCell, 61 ) ; 84 oItem.AddItem( 'TableVerticalSplitCell' , FCKLang.VerticalSplitCell, 61 ) ; 84 oItem.AddItem( 'TableMergeCells' , FCKLang.MergeCells, 60, 85 FCKCommands.GetCommand( 'TableMergeCells' ).GetState() == FCK_TRISTATE_DISABLED ) ; 86 oItem.AddItem( 'TableHorizontalSplitCell' , FCKLang.HorizontalSplitCell, 61, 87 FCKCommands.GetCommand( 'TableHorizontalSplitCell' ).GetState() == FCK_TRISTATE_DISABLED ) ; 88 oItem.AddItem( 'TableVerticalSplitCell' , FCKLang.VerticalSplitCell, 61, 89 FCKCommands.GetCommand( 'TableVerticalSplitCell' ).GetState() == FCK_TRISTATE_DISABLED ) ; 85 90 oItem.AddSeparator() ; 86 oItem.AddItem( 'TableCellProp' , FCKLang.CellProperties, 57 ) ; 91 oItem.AddItem( 'TableCellProp' , FCKLang.CellProperties, 57, 92 FCKCommands.GetCommand( 'TableCellProp' ).GetState() == FCK_TRISTATE_DISABLED ) ; 87 93 88 94 menu.AddSeparator() ; -
FCKeditor/trunk/editor/_source/internals/fckcommands.js
r672 r691 58 58 case 'Table' : oCommand = new FCKDialogCommand( 'Table' , FCKLang.DlgTableTitle , 'dialog/fck_table.html' , 450, 250 ) ; break ; 59 59 case 'TableProp' : oCommand = new FCKDialogCommand( 'Table' , FCKLang.DlgTableTitle , 'dialog/fck_table.html?Parent', 400, 250 ) ; break ; 60 case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell' , FCKLang.DlgCellTitle , 'dialog/fck_tablecell.html' , 550, 250 ) ; break ;60 case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell' , FCKLang.DlgCellTitle , 'dialog/fck_tablecell.html' , 550, 250, FCKTableHandler.TableCellPropGetStatus, null ) ; break ; 61 61 62 62 case 'Style' : oCommand = new FCKStyleCommand() ; break ; -
FCKeditor/trunk/editor/_source/internals/fcktablehandler.js
r690 r691 238 238 } 239 239 240 FCKTableHandler._MarkCells = function( cells, label ) 241 { 242 for ( var i = 0 ; i < cells.length ; i++ ) 243 cells[i][label] = true ; 244 } 245 246 FCKTableHandler._UnmarkCells = function( cells, label ) 247 { 248 for ( var i = 0 ; i < cells.length ; i++ ) 249 { 250 if ( FCKBrowserInfo.IsIE ) 251 cells[i].removeAttribute( label ) ; 252 else 253 delete cells[i][label] ; 254 } 255 } 256 257 FCKTableHandler._GetMarkerGeometry = function( tableMap, rowIdx, colIdx, markerName ) 258 { 259 var selectionWidth = 0 ; 260 var selectionHeight = 0 ; 261 var cellsLeft = 0 ; 262 var cellsUp = 0 ; 263 for ( var i = colIdx ; tableMap[rowIdx][i] && tableMap[rowIdx][i][markerName] ; i++ ) 264 selectionWidth++ ; 265 for ( var i = colIdx - 1 ; tableMap[rowIdx][i] && tableMap[rowIdx][i][markerName] ; i-- ) 266 { 267 selectionWidth++ ; 268 cellsLeft++ ; 269 } 270 for ( var i = rowIdx ; tableMap[i] && tableMap[i][colIdx] && tableMap[i][colIdx][markerName] ; i++ ) 271 selectionHeight++ ; 272 for ( var i = rowIdx - 1 ; tableMap[i] && tableMap[i][colIdx] && tableMap[i][colIdx][markerName] ; i-- ) 273 { 274 selectionHeight++ ; 275 cellsUp++ ; 276 } 277 return { width : selectionWidth, height : selectionHeight, x : cellsLeft, y : cellsUp } ; 278 } 279 280 FCKTableHandler.CheckIsSelectionRectangular = function() 281 { 282 // If every row and column in an area on a plane are of the same width and height, 283 // Then the area is a rectangle. 284 var cells = FCKTableHandler.GetSelectedCells() ; 285 if ( cells.length < 1 ) 286 return false ; 287 288 this._MarkCells( cells, '_CellSelected' ) ; 289 290 var tableMap = this._CreateTableMap( cells[0].parentNode.parentNode ) ; 291 var rowIdx = cells[0].parentNode.rowIndex ; 292 var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, cells[0] ) ; 293 294 var geometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ; 295 var baseColIdx = colIdx - geometry.x ; 296 var baseRowIdx = rowIdx - geometry.y ; 297 298 if ( geometry.width >= geometry.height ) 299 { 300 for ( colIdx = baseColIdx ; colIdx < baseColIdx + geometry.width ; colIdx++ ) 301 { 302 rowIdx = baseRowIdx + ( colIdx - baseColIdx ) % geometry.height ; 303 if ( ! tableMap[rowIdx] || ! tableMap[rowIdx][colIdx] ) 304 { 305 FCKDebug.Output( rowIdx + "," + colIdx + " not found" ) ; 306 this._UnmarkCells( cells, '_CellSelected' ) ; 307 return false ; 308 } 309 var g = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ; 310 if ( g.width != geometry.width || g.height != geometry.height ) 311 { 312 FCKDebug.Output( "size " + g.width + "x" + g.height + " not match" ) ; 313 this._UnmarkCells( cells, '_CellSelected' ) ; 314 return false ; 315 } 316 } 317 } 318 else 319 { 320 for ( rowIdx = baseRowIdx ; rowIdx < baseRowIdx + geometry.height ; rowIdx++ ) 321 { 322 colIdx = baseColIdx + ( rowIdx - baseRowIdx ) % geometry.width ; 323 if ( ! tableMap[rowIdx] || ! tableMap[rowIdx][colIdx] ) 324 { 325 FCKDebug.Output( rowIdx + "," + colIdx + " not found" ) ; 326 this._UnmarkCells( cells, '_CellSelected' ) ; 327 return false ; 328 } 329 var g = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ; 330 if ( g.width != geometry.width || g.height != geometry.height ) 331 { 332 FCKDebug.Output( "size " + g.width + "x" + g.height + " not match" ) ; 333 this._UnmarkCells( cells, '_CellSelected' ) ; 334 return false ; 335 } 336 } 337 } 338 339 this._UnmarkCells( cells, '_CellSelected' ) ; 340 return true ; 341 } 342 240 343 FCKTableHandler.MergeCells = function() 241 344 { … … 244 347 245 348 // TODO: Reimplement MergeCells() with this._InstallTableMap(). 349 246 350 } 247 351 … … 582 686 { 583 687 var cell = tableMap[i][j] ; 584 cell.removeAttribute( '_colScanned' ) ; 585 cell.removeAttribute( '_rowScanned' ) ; 688 if ( FCKBrowser.IsIE ) 689 { 690 cell.removeAttribute( '_colScanned' ) ; 691 cell.removeAttribute( '_rowScanned' ) ; 692 } 693 else 694 { 695 delete cell._colScanned ; 696 delete cell._rowScanned ; 697 } 586 698 } 587 699 } … … 624 736 } 625 737 } 738 739 FCKTableHandler.TableCellPropGetStatus = function() 740 { 741 if ( FCKTableHandler.GetSelectedCells().length == 1 ) 742 return FCK_TRISTATE_OFF ; 743 else 744 return FCK_TRISTATE_DISABLED ; 745 } -
FCKeditor/trunk/editor/_source/internals/fcktools_gecko.js
r681 r691 224 224 225 225 /* 226 FCKDebug.Output( el.tagName + ":" + "offset=" + el.offsetLeft + "," + el.offsetTop + " " + "scroll=" + el.scrollLeft + "," +227 el.scrollTop ) ;226 FCKDebug.Output( el.tagName + ":" + "offset=" + el.offsetLeft + "," + el.offsetTop + " " 227 + "scroll=" + el.scrollLeft + "," + el.scrollTop ) ; 228 228 */ 229 229 230 c.X += el.offsetLeft - el.scrollLeft ; 230 231 c.Y += el.offsetTop - el.scrollTop ;
Note: See TracChangeset
for help on using the changeset viewer.
