Changeset 3276


Ignore:
Timestamp:
03/25/09 10:30:05 (5 years ago)
Author:
martinkou
Message:

Fixed #3191 : Decoupled the logic in the dialog system from the default skin.

Location:
CKEditor/trunk/_source
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/_source/plugins/clipboard/dialogs/paste.js

    r3260 r3276  
    5656                title : editor.lang.clipboard.title, 
    5757 
    58                 minWidth : 400, 
    59                 minHeight : 330, 
     58                minWidth : 350, 
     59                minHeight : 240, 
    6060 
    6161                onShow : function() 
  • CKEditor/trunk/_source/plugins/dialog/plugin.js

    r3269 r3276  
    7373                return null; 
    7474        } 
     75 
     76        // Stores dialog related data from skin definitions. e.g. margin sizes. 
     77        var skinData = {}; 
    7578 
    7679        /** 
     
    109112                        , editor ).definition; 
    110113 
     114                var doc = CKEDITOR.document; 
     115 
    111116                var themeBuilt = editor.theme.buildDialog( editor ); 
    112117 
     
    137142                }; 
    138143 
    139                 /** 
    140                  * An associative map of elements in the dialog. It has the following members: 
    141                  * <ul> 
    142                  *      <li>tl - top left corner.</li> 
    143                  *      <li>tl_resize - resize handle at the top left corner.</li> 
    144                  *      <li>t - top side.</li> 
    145                  *      <li>t_resize - resize handle at the top.</li> 
    146                  *      <li>tr - top right corner.</li> 
    147                  *      <li>tr_resize - resize handle at the top right.</li> 
    148                  *      <li>l - left side.</li> 
    149                  *      <li>l_resize - resize handle at the left side.</li> 
    150                  *      <li>c - center area.</li> 
    151                  *      <li>r - right side.</li> 
    152                  *      <li>r_resize - resize handle at the right side.</li> 
    153                  *      <li>bl - bottom left corner.</li> 
    154                  *      <li>bl_resize - resize handle at the bottom left.</li> 
    155                  *      <li>b - bottom side.</li> 
    156                  *      <li>b_resize - resize handle at the bottom.</li> 
    157                  *      <li>br - bottom right corner.</li> 
    158                  *      <li>br_resize - resize handle at the bottom right.</li> 
    159                  *      <li>title - title area.</li> 
    160                  *      <li>close - close button.</li> 
    161                  *      <li>tabs - tabs area.</li> 
    162                  *      <li>contents - the content page area.</li> 
    163                  *      <li>footer - the footer area.</li> 
    164                  * </ul> 
    165                  * @type Object 
    166                  * @field 
    167                  */ 
    168                 this.parts = { 
    169                         'tl' : [0,0], 
    170                         'tl_resize' : [0,0,0], 
    171                         't' : [0,1], 
    172                         't_resize' : [0,1,0], 
    173                         'tr' : [0,2], 
    174                         'tr_resize' : [0,2,0], 
    175                         'l' : [1,0], 
    176                         'l_resize' : [1,0,0], 
    177                         'c' : [1,1], 
    178                         'r' : [1,2], 
    179                         'r_resize' : [1,2,0], 
    180                         'bl' : [2,0], 
    181                         'bl_resize' : [2,0,0], 
    182                         'b' : [2,1], 
    183                         'b_resize' : [2,1,0], 
    184                         'br' : [2,2], 
    185                         'br_resize' : [2,2,0], 
    186                         'title' : [1,1,0], 
    187                         'close' : [1,1,0,0], 
    188                         'tabs' : [1,1,1,0,0], 
    189                         'tabs_table' : [1,1,1], 
    190                         'contents' : [1,1,2], 
    191                         'footer' : [1,1,3] 
    192                 }; 
    193  
    194                 // Initialize the parts map. 
    195                 var element = this._.element.getFirst(); 
    196                 for ( var i in this.parts ) 
    197                         this.parts[i] = element.getChild( this.parts[i] ); 
    198  
     144                this.parts = themeBuilt.parts; 
     145                 
    199146                // Call the CKEDITOR.event constructor to initialize this instance. 
    200147                CKEDITOR.event.call( this ); 
     
    331278                                        var nextId = shiftPressed ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ); 
    332279                                        me.selectPage( nextId ); 
    333                                         me._.tabs[ nextId ][ 0 ].getFirst().focus(); 
     280                                        me._.tabs[ nextId ][ 0 ].focus(); 
    334281                                } 
    335282                                else 
     
    345292                                // Alt-F10 puts focus into the current tab item in the tab bar. 
    346293                                me._.tabBarMode = true; 
    347                                 me._.tabs[ me._.currentTabId ][ 0 ].getFirst().focus(); 
     294                                me._.tabs[ me._.currentTabId ][ 0 ].focus(); 
    348295                                processed = true; 
    349296                        } 
     
    353300                                var nextId = ( keystroke == 37 ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ) ); 
    354301                                me.selectPage( nextId ); 
    355                                 me._.tabs[ nextId ][ 0 ].getFirst().focus(); 
     302                                me._.tabs[ nextId ][ 0 ].focus(); 
    356303                                processed = true; 
    357304                        } 
     
    424371 
    425372                                        // Find the outer <td> container of the tab. 
    426                                         while ( target.getName() != 'td' || !tabOuterRegex.test( target.$.className ) ) 
    427                                         { 
    428                                                 target = target.getParent(); 
    429                                         } 
    430                                         id = target.$.id.substr( 0, target.$.id.lastIndexOf( '_' ) ); 
     373                                        var id = target.$.id.substr( 0, target.$.id.lastIndexOf( '_' ) ); 
    431374                                        this.selectPage( id ); 
    432375 
     
    455398                // Insert dummy text box for grabbing focus away from the editing area. 
    456399                this._.dummyText = CKEDITOR.dom.element.createFromHtml( '<input type="text" style="position: absolute; left: -100000px; top: -100000px" />' ); 
    457                 this._.dummyText.appendTo( element ); 
     400                this._.dummyText.appendTo( themeBuilt.element ); 
    458401 
    459402                CKEDITOR.skins.load( editor.config.skin, 'dialog' ); 
     
    497440                getSize : function() 
    498441                { 
    499                         return CKEDITOR.tools.extend( {}, this._.size ); 
     442                        var element = this._.element.getFirst(); 
     443                        return { width : element.$.offsetWidth, height : element.$.offsetHeight }; 
    500444                }, 
    501445 
     
    515459                                // The dialog may be fixed positioned or absolute positioned. Ask the 
    516460                                // browser what is the current situation first. 
     461                                var element = this._.element.getElementsByTag( 'div' ).getItem( 0 ); 
    517462                                if ( isFixed === undefined ) 
    518                                         isFixed = this._.element.getFirst().getComputedStyle( 'position' ) == 'fixed'; 
     463                                        isFixed = element.getComputedStyle( 'position' ) == 'fixed'; 
    519464 
    520465                                if ( isFixed && this._.position && this._.position.x == x && this._.position.y == y ) 
     
    532477                                } 
    533478 
    534                                 this._.element.getFirst().setStyles( 
     479                                element.setStyles( 
    535480                                                { 
    536481                                                        'left' : x + 'px', 
     
    733678                                                        className : 'cke_dialog_page_contents', 
    734679                                                        children : contents.elements, 
    735                                                         expand : !!contents.expand 
     680                                                        expand : !!contents.expand, 
     681                                                        padding : contents.padding, 
     682                                                        style : 'width: 100%; height: 100%;' 
    736683                                                }, pageHtml ); 
    737684 
     
    739686                        var page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) ); 
    740687                        var tab = CKEDITOR.dom.element.createFromHtml( [ 
    741                                         '<table><tbody><tr><td class="cke_dialog_tab">', 
    742                                         '<a href="javascript: void(0)"', titleHtml, ' style="display: block; outline: none;" hidefocus="true">', 
    743                                         '<table border="0" cellspacing="0" cellpadding="0"><tbody><tr>', 
    744                                                 '<td class="cke_dialog_tab_left"></td>', 
    745                                                 '<td class="cke_dialog_tab_center">', 
    746                                                         CKEDITOR.tools.htmlEncode( contents.label.replace( / /g, '\xa0' ) ), 
    747                                                 '</td>', 
    748                                                 '<td class="cke_dialog_tab_right"></td>', 
    749                                         '</tr></tbody></table></a></td></tr></tbody></table>' 
     688                                        '<a class="cke_dialog_tab"', 
     689                                                ( this._.pageCount > 0 ? ' cke_last' : 'cke_first' ), 
     690                                                titleHtml,  
     691                                                ' id="', contents.id + '_', CKEDITOR.tools.getNextNumber(), '"' + 
     692                                                ' href="javascript:void(0)"',  
     693                                                ' hidefocus="true">', 
     694                                                        contents.label, 
     695                                        '</a>' 
    750696                                ].join( '' ) ); 
    751                         tab = tab.getChild( [0,0,0] ); 
    752  
    753                         // First and last tab styles classes. 
    754                         if ( this._.lastTab ) 
    755                                 this._.lastTab.removeClass( 'last' ); 
    756                         tab.addClass( this._.pageCount > 0 ? 'last' : 'first' ); 
    757697 
    758698                        // If only a single page exist, a different style is used in the central pane. 
    759699                        if ( this._.pageCount === 0 ) 
    760                                 this.parts.c.addClass( 'single_page' ); 
     700                                this.parts.dialog.addClass( 'cke_single_page' ); 
    761701                        else 
    762                                 this.parts.c.removeClass( 'single_page' ); 
     702                                this.parts.dialog.removeClass( 'cke_single_page' ); 
    763703 
    764704                        // Take records for the tabs and elements created. 
     
    767707                        this._.pageCount++; 
    768708                        this._.lastTab = tab; 
     709 
    769710                        var contentMap = this._.contents[ contents.id ] = {}, 
    770711                                cursor, 
    771712                                children = vbox.getChild(); 
     713 
    772714                        while ( ( cursor = children.shift() ) ) 
    773715                        { 
     
    778720 
    779721                        // Attach the DOM nodes. 
     722 
     723                        page.setAttribute( 'name', contents.id ); 
     724                        page.appendTo( this.parts.contents ); 
     725 
    780726                        tab.unselectable(); 
    781                         page.appendTo( this.parts.contents ); 
    782                         tab.insertBefore( this.parts.tabs.getChild( this.parts.tabs.getChildCount() - 1 ) ); 
    783                         tab.setAttribute( 'id', contents.id + '_' + CKEDITOR.tools.getNextNumber() ); 
    784                         page.setAttribute( 'name', contents.id ); 
     727                        this.parts.tabs.append( tab ); 
    785728 
    786729                        // Add access key handlers if access key is defined. 
     
    10611004                                                type : 'button', 
    10621005                                                label : editor.lang.common.ok, 
    1063                                                 style : 'width: 60px', 
    10641006                                                onClick : function( evt ) 
    10651007                                                { 
     
    10951037                                                type : 'button', 
    10961038                                                label : editor.lang.common.cancel, 
    1097                                                 style : 'width: 60px', 
    10981039                                                onClick : function( evt ) 
    10991040                                                { 
     
    11211062                        addUIElement : function( typeName, builder ) 
    11221063                        { 
    1123                                 this._.uiElementBuilders[typeName] = builder; 
    1124                         }, 
    1125  
    1126                         /** 
    1127                          * Sets the width of margins of dialogs, which is used for the dialog moving and resizing logic. 
    1128                          * The margin here means the area between the dialog's container <div> and the visual boundary of the dialog. 
    1129                          * Typically this area is used for dialog shadows. 
    1130                          * This function is typically called in a skin's JavaScript files. 
    1131                          * @param {Number} top The top margin in pixels. 
    1132                          * @param {Number} right The right margin in pixels. 
    1133                          * @param {Number} bottom The bottom margin in pixels. 
    1134                          * @param {Number} left The left margin in pixels. 
    1135                          * @example 
    1136                          */ 
    1137                         setMargins : function( top, right, bottom, left ) 
    1138                         { 
    1139                                 this._.margins = [ top, right, bottom, left ]; 
     1064                                this._.uiElementBuilders[ typeName ] = builder; 
    11401065                        } 
    11411066                }); 
     
    11491074                currentTop : null, 
    11501075 
    1151                 currentZIndex : null, 
    1152  
    1153                 margins : [0, 0, 0, 0] 
     1076                currentZIndex : null 
    11541077        }; 
    11551078 
     
    13521275         *      } ); 
    13531276         */ 
    1354         var contentObject = function( dialog, contentDefinition ) 
     1277        function contentObject( dialog, contentDefinition ) 
    13551278        { 
    13561279                this._ = 
     
    13601283 
    13611284                CKEDITOR.tools.extend( this, contentDefinition ); 
    1362         }; 
     1285        } 
    13631286 
    13641287        contentObject.prototype = 
     
    14051328        }; 
    14061329 
    1407         var initDragAndDrop = function( dialog ) 
     1330        function initDragAndDrop( dialog ) 
    14081331        { 
    14091332                var lastCoords = null, 
    14101333                        abstractDialogCoords = null, 
    14111334                        element = dialog.getElement().getFirst(), 
    1412                         magnetDistance = dialog._.editor.config.dialog_magnetDistance, 
    1413                         mouseMoveHandler = function( evt ) 
    1414                         { 
    1415                                 var dialogSize = dialog.getSize(), 
    1416                                         viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), 
    1417                                         x = evt.data.$.screenX, 
    1418                                         y = evt.data.$.screenY, 
    1419                                         dx = x - lastCoords.x, 
    1420                                         dy = y - lastCoords.y, 
    1421                                         realX, realY; 
    1422  
    1423                                 lastCoords = { x : x, y : y }; 
    1424                                 abstractDialogCoords.x += dx; 
    1425                                 abstractDialogCoords.y += dy; 
    1426  
    1427                                 if ( abstractDialogCoords.x + CKEDITOR.dialog._.margins[3] < magnetDistance ) 
    1428                                         realX = - CKEDITOR.dialog._.margins[3]; 
    1429                                 else if ( abstractDialogCoords.x - CKEDITOR.dialog._.margins[1] > viewPaneSize.width - dialogSize.width - magnetDistance ) 
    1430                                         realX = viewPaneSize.width - dialogSize.width + CKEDITOR.dialog._.margins[1]; 
    1431                                 else 
    1432                                         realX = abstractDialogCoords.x; 
    1433  
    1434                                 if ( abstractDialogCoords.y + CKEDITOR.dialog._.margins[0] < magnetDistance ) 
    1435                                         realY = - CKEDITOR.dialog._.margins[0]; 
    1436                                 else if ( abstractDialogCoords.y - CKEDITOR.dialog._.margins[2] > viewPaneSize.height - dialogSize.height - magnetDistance ) 
    1437                                         realY = viewPaneSize.height - dialogSize.height + CKEDITOR.dialog._.margins[2]; 
    1438                                 else 
    1439                                         realY = abstractDialogCoords.y; 
    1440  
    1441                                 dialog.move( realX, realY ); 
     1335                        editor = dialog.getParentEditor(), 
     1336                        magnetDistance = editor.config.dialog_magnetDistance, 
     1337                        margins = skinData[ editor.config.skin ].margins || [ 0, 0, 0, 0 ]; 
     1338 
     1339                function mouseMoveHandler( evt ) 
     1340                { 
     1341                        var dialogSize = dialog.getSize(), 
     1342                                viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), 
     1343                                x = evt.data.$.screenX, 
     1344                                y = evt.data.$.screenY, 
     1345                                dx = x - lastCoords.x, 
     1346                                dy = y - lastCoords.y, 
     1347                                realX, realY; 
     1348 
     1349                        lastCoords = { x : x, y : y }; 
     1350                        abstractDialogCoords.x += dx; 
     1351                        abstractDialogCoords.y += dy; 
     1352 
     1353                        if ( abstractDialogCoords.x + margins[3] < magnetDistance ) 
     1354                                realX = - margins[3]; 
     1355                        else if ( abstractDialogCoords.x - margins[1] > viewPaneSize.width - dialogSize.width - magnetDistance ) 
     1356                                realX = viewPaneSize.width - dialogSize.width + margins[1]; 
     1357                        else 
     1358                                realX = abstractDialogCoords.x; 
     1359 
     1360                        if ( abstractDialogCoords.y + margins[0] < magnetDistance ) 
     1361                                realY = - margins[0]; 
     1362                        else if ( abstractDialogCoords.y - margins[2] > viewPaneSize.height - dialogSize.height - magnetDistance ) 
     1363                                realY = viewPaneSize.height - dialogSize.height + margins[2]; 
     1364                        else 
     1365                                realY = abstractDialogCoords.y; 
     1366 
     1367                        dialog.move( realX, realY ); 
     1368 
     1369                        evt.data.preventDefault(); 
     1370                } 
     1371 
     1372                function mouseUpHandler( evt ) 
     1373                { 
     1374                        CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); 
     1375                        CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); 
     1376 
     1377                        if ( CKEDITOR.env.ie6Compat ) 
     1378                        { 
     1379                                var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
     1380                                coverDoc.removeListener( 'mousemove', mouseMoveHandler ); 
     1381                                coverDoc.removeListener( 'mouseup', mouseUpHandler ); 
     1382                        } 
     1383                } 
     1384 
     1385                dialog.parts.title.on( 'mousedown', function( evt ) 
     1386                        { 
     1387                                lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 
     1388 
     1389                                CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); 
     1390                                CKEDITOR.document.on( 'mouseup', mouseUpHandler ); 
     1391                                abstractDialogCoords = dialog.getPosition(); 
     1392 
     1393                                if ( CKEDITOR.env.ie6Compat ) 
     1394                                { 
     1395                                        var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
     1396                                        coverDoc.on( 'mousemove', mouseMoveHandler ); 
     1397                                        coverDoc.on( 'mouseup', mouseUpHandler ); 
     1398                                } 
    14421399 
    14431400                                evt.data.preventDefault(); 
    1444                         }, 
    1445                         mouseUpHandler = function( evt ) 
    1446                         { 
    1447                                 CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); 
    1448                                 CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); 
    1449  
    1450                                 if ( CKEDITOR.env.ie6Compat ) 
    1451                                 { 
    1452                                         var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
    1453                                         coverDoc.removeListener( 'mousemove', mouseMoveHandler ); 
    1454                                         coverDoc.removeListener( 'mouseup', mouseUpHandler ); 
    1455                                 } 
    1456                         }; 
    1457  
    1458                 dialog.parts.title.on( 'mousedown', function( evt ) 
    1459                                 { 
    1460                                         lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 
    1461  
    1462                                         CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); 
    1463                                         CKEDITOR.document.on( 'mouseup', mouseUpHandler ); 
    1464                                         abstractDialogCoords = dialog.getPosition(); 
    1465  
    1466                                         if ( CKEDITOR.env.ie6Compat ) 
    1467                                         { 
    1468                                                 var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
    1469                                                 coverDoc.on( 'mousemove', mouseMoveHandler ); 
    1470                                                 coverDoc.on( 'mouseup', mouseUpHandler ); 
    1471                                         } 
    1472  
    1473                                         evt.data.preventDefault(); 
    1474                                 }, dialog ); 
    1475         }; 
    1476  
    1477         var initResizeHandles = function( dialog ) 
     1401                        }, dialog ); 
     1402        } 
     1403 
     1404        function initResizeHandles( dialog ) 
    14781405        { 
    14791406                var definition = dialog.definition, 
     
    14811408                        minHeight = definition.minHeight || 0, 
    14821409                        resizable = definition.resizable, 
    1483                         topSizer = function( coords, dy ) 
    1484                         { 
    1485                                 coords.y += dy; 
    1486                         }, 
    1487                         rightSizer = function( coords, dx ) 
    1488                         { 
    1489                                 coords.x2 += dx; 
    1490                         }, 
    1491                         bottomSizer = function( coords, dy ) 
    1492                         { 
    1493                                 coords.y2 += dy; 
    1494                         }, 
    1495                         leftSizer = function( coords, dx ) 
    1496                         { 
    1497                                 coords.x += dx; 
    1498                         }, 
    1499                         lastCoords = null, 
     1410                        margins = skinData[ dialog.getParentEditor().config.skin ].margins || [ 0, 0, 0, 0 ]; 
     1411 
     1412                function topSizer( coords, dy ) 
     1413                { 
     1414                        coords.y += dy; 
     1415                } 
     1416 
     1417                function rightSizer( coords, dx ) 
     1418                { 
     1419                        coords.x2 += dx; 
     1420                } 
     1421 
     1422                function bottomSizer( coords, dy ) 
     1423                { 
     1424                        coords.y2 += dy; 
     1425                } 
     1426 
     1427                function leftSizer( coords, dx ) 
     1428                { 
     1429                        coords.x += dx; 
     1430                } 
     1431 
     1432                var lastCoords = null, 
    15001433                        abstractDialogCoords = null, 
    15011434                        magnetDistance = dialog._.editor.config.magnetDistance, 
    1502                         parts = [ 'tl', 't', 'tr', 'l', 'r', 'bl', 'b', 'br' ], 
    1503                         mouseDownHandler = function( evt ) 
    1504                         { 
    1505                                 var partName = evt.listenerData.part, size = dialog.getSize(); 
    1506                                 abstractDialogCoords = dialog.getPosition(); 
    1507                                 CKEDITOR.tools.extend( abstractDialogCoords, 
    1508                                         { 
    1509                                                 x2 : abstractDialogCoords.x + size.width, 
    1510                                                 y2 : abstractDialogCoords.y + size.height 
    1511                                         } ); 
    1512                                 lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 
    1513  
    1514                                 CKEDITOR.document.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 
    1515                                 CKEDITOR.document.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 
    1516  
    1517                                 if ( CKEDITOR.env.ie6Compat ) 
    1518                                 { 
    1519                                         var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
    1520                                         coverDoc.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 
    1521                                         coverDoc.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 
    1522                                 } 
    1523  
    1524                                 evt.data.preventDefault(); 
    1525                         }, 
    1526                         mouseMoveHandler = function( evt ) 
    1527                         { 
    1528                                 var x = evt.data.$.screenX, 
    1529                                         y = evt.data.$.screenY, 
    1530                                         dx = x - lastCoords.x, 
    1531                                         dy = y - lastCoords.y, 
    1532                                         viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), 
    1533                                         partName = evt.listenerData.part; 
    1534  
    1535                                 if ( partName.search( 't' ) != -1 ) 
    1536                                         topSizer( abstractDialogCoords, dy ); 
    1537                                 if ( partName.search( 'l' ) != -1 ) 
    1538                                         leftSizer( abstractDialogCoords, dx ); 
    1539                                 if ( partName.search( 'b' ) != -1 ) 
    1540                                         bottomSizer( abstractDialogCoords, dy ); 
    1541                                 if ( partName.search( 'r' ) != -1 ) 
    1542                                         rightSizer( abstractDialogCoords, dx ); 
    1543  
    1544                                 lastCoords = { x : x, y : y }; 
    1545  
    1546                                 var realX, realY, realX2, realY2; 
    1547  
    1548                                 if ( abstractDialogCoords.x + CKEDITOR.dialog._.margins[3] < magnetDistance ) 
    1549                                         realX = - CKEDITOR.dialog._.margins[3]; 
    1550                                 else if ( partName.search( 'l' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 
    1551                                         realX = abstractDialogCoords.x2 - minWidth; 
    1552                                 else 
    1553                                         realX = abstractDialogCoords.x; 
    1554  
    1555                                 if ( abstractDialogCoords.y + CKEDITOR.dialog._.margins[0] < magnetDistance ) 
    1556                                         realY = - CKEDITOR.dialog._.margins[0]; 
    1557                                 else if ( partName.search( 't' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 
    1558                                         realY = abstractDialogCoords.y2 - minHeight; 
    1559                                 else 
    1560                                         realY = abstractDialogCoords.y; 
    1561  
    1562                                 if ( abstractDialogCoords.x2 - CKEDITOR.dialog._.margins[1] > viewPaneSize.width - magnetDistance ) 
    1563                                         realX2 = viewPaneSize.width + CKEDITOR.dialog._.margins[1] ; 
    1564                                 else if ( partName.search( 'r' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 
    1565                                         realX2 = abstractDialogCoords.x + minWidth; 
    1566                                 else 
    1567                                         realX2 = abstractDialogCoords.x2; 
    1568  
    1569                                 if ( abstractDialogCoords.y2 - CKEDITOR.dialog._.margins[2] > viewPaneSize.height - magnetDistance ) 
    1570                                         realY2= viewPaneSize.height + CKEDITOR.dialog._.margins[2] ; 
    1571                                 else if ( partName.search( 'b' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 
    1572                                         realY2 = abstractDialogCoords.y + minHeight; 
    1573                                 else 
    1574                                         realY2 = abstractDialogCoords.y2 ; 
    1575  
    1576                                 dialog.move( realX, realY ); 
    1577                                 dialog.resize( realX2 - realX, realY2 - realY ); 
    1578  
    1579                                 evt.data.preventDefault(); 
    1580                         }, 
    1581                         mouseUpHandler = function( evt ) 
    1582                         { 
    1583                                 CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); 
    1584                                 CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); 
    1585  
    1586                                 if ( CKEDITOR.env.ie6Compat ) 
    1587                                 { 
    1588                                         var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
    1589                                         coverDoc.removeListener( 'mouseup', mouseUpHandler ); 
    1590                                         coverDoc.removeListener( 'mousemove', mouseMoveHandler ); 
    1591                                 } 
    1592                         }; 
    1593  
    1594                 var widthTest = /[lr]/, 
    1595                         heightTest = /[tb]/; 
    1596                 for ( var i = 0 ; i < parts.length ; i++ ) 
    1597                 { 
    1598                         var element = dialog.parts[ parts[i] + '_resize' ]; 
    1599                         if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE || 
    1600                                         resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) || 
    1601                                         resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) ) 
    1602                         { 
    1603                                 element.hide(); 
    1604                                 continue; 
    1605                         } 
    1606                         element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } ); 
    1607                 } 
    1608         }; 
     1435                        parts = [ 'tl', 't', 'tr', 'l', 'r', 'bl', 'b', 'br' ]; 
     1436 
     1437                function mouseDownHandler( evt ) 
     1438                { 
     1439                        var partName = evt.listenerData.part, size = dialog.getSize(); 
     1440                        abstractDialogCoords = dialog.getPosition(); 
     1441                        CKEDITOR.tools.extend( abstractDialogCoords, 
     1442                                { 
     1443                                        x2 : abstractDialogCoords.x + size.width, 
     1444                                        y2 : abstractDialogCoords.y + size.height 
     1445                                } ); 
     1446                        lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 
     1447 
     1448                        CKEDITOR.document.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 
     1449                        CKEDITOR.document.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 
     1450 
     1451                        if ( CKEDITOR.env.ie6Compat ) 
     1452                        { 
     1453                                var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
     1454                                coverDoc.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 
     1455                                coverDoc.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 
     1456                        } 
     1457 
     1458                        evt.data.preventDefault(); 
     1459                } 
     1460 
     1461                function mouseMoveHandler( evt ) 
     1462                { 
     1463                        var x = evt.data.$.screenX, 
     1464                                y = evt.data.$.screenY, 
     1465                                dx = x - lastCoords.x, 
     1466                                dy = y - lastCoords.y, 
     1467                                viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), 
     1468                                partName = evt.listenerData.part; 
     1469 
     1470                        if ( partName.search( 't' ) != -1 ) 
     1471                                topSizer( abstractDialogCoords, dy ); 
     1472                        if ( partName.search( 'l' ) != -1 ) 
     1473                                leftSizer( abstractDialogCoords, dx ); 
     1474                        if ( partName.search( 'b' ) != -1 ) 
     1475                                bottomSizer( abstractDialogCoords, dy ); 
     1476                        if ( partName.search( 'r' ) != -1 ) 
     1477                                rightSizer( abstractDialogCoords, dx ); 
     1478 
     1479                        lastCoords = { x : x, y : y }; 
     1480 
     1481                        var realX, realY, realX2, realY2; 
     1482 
     1483                        if ( abstractDialogCoords.x + margins[3] < magnetDistance ) 
     1484                                realX = - margins[3]; 
     1485                        else if ( partName.search( 'l' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 
     1486                                realX = abstractDialogCoords.x2 - minWidth; 
     1487                        else 
     1488                                realX = abstractDialogCoords.x; 
     1489 
     1490                        if ( abstractDialogCoords.y + margins[0] < magnetDistance ) 
     1491                                realY = - margins[0]; 
     1492                        else if ( partName.search( 't' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 
     1493                                realY = abstractDialogCoords.y2 - minHeight; 
     1494                        else 
     1495                                realY = abstractDialogCoords.y; 
     1496 
     1497                        if ( abstractDialogCoords.x2 - margins[1] > viewPaneSize.width - magnetDistance ) 
     1498                                realX2 = viewPaneSize.width + margins[1] ; 
     1499                        else if ( partName.search( 'r' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 
     1500                                realX2 = abstractDialogCoords.x + minWidth; 
     1501                        else 
     1502                                realX2 = abstractDialogCoords.x2; 
     1503 
     1504                        if ( abstractDialogCoords.y2 - margins[2] > viewPaneSize.height - magnetDistance ) 
     1505                                realY2= viewPaneSize.height + margins[2] ; 
     1506                        else if ( partName.search( 'b' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 
     1507                                realY2 = abstractDialogCoords.y + minHeight; 
     1508                        else 
     1509                                realY2 = abstractDialogCoords.y2 ; 
     1510 
     1511                        dialog.move( realX, realY ); 
     1512                        dialog.resize( realX2 - realX, realY2 - realY ); 
     1513 
     1514                        evt.data.preventDefault(); 
     1515                } 
     1516 
     1517                function mouseUpHandler( evt ) 
     1518                { 
     1519                        CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); 
     1520                        CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); 
     1521 
     1522                        if ( CKEDITOR.env.ie6Compat ) 
     1523                        { 
     1524                                var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument(); 
     1525                                coverDoc.removeListener( 'mouseup', mouseUpHandler ); 
     1526                                coverDoc.removeListener( 'mousemove', mouseMoveHandler ); 
     1527                        } 
     1528                } 
     1529 
     1530// TODO : Simplify the resize logic, having just a single resize grip <div>. 
     1531//              var widthTest = /[lr]/, 
     1532//                      heightTest = /[tb]/; 
     1533//              for ( var i = 0 ; i < parts.length ; i++ ) 
     1534//              { 
     1535//                      var element = dialog.parts[ parts[i] + '_resize' ]; 
     1536//                      if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE || 
     1537//                                      resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) || 
     1538//                                      resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) ) 
     1539//                      { 
     1540//                              element.hide(); 
     1541//                              continue; 
     1542//                      } 
     1543//                      element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } ); 
     1544//              } 
     1545        } 
    16091546 
    16101547        var resizeCover; 
     
    16641601                        var size = win.getViewPaneSize(); 
    16651602                        element.setStyles( 
    1666                                         { 
    1667                                                 width : size.width + 'px', 
    1668                                                 height : size.height + 'px' 
    1669                                         }); 
     1603                                { 
     1604                                        width : size.width + 'px', 
     1605                                        height : size.height + 'px' 
     1606                                } ); 
    16701607                }; 
    16711608 
     
    20251962                                }; 
    20261963 
    2027                                 CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type : 'hbox' }, htmlList, 'table', styles, 
    2028                                                 { align : ( elementDefinition && elementDefinition.align ) || 
    2029                                                         ( dialog.getParentEditor().lang.dir == 'ltr' ? 'left' : 'right' ) }, innerHTML ); 
     1964                                CKEDITOR.ui.dialog.uiElement.call(  
     1965                                        this,  
     1966                                        dialog,  
     1967                                        elementDefinition || { type : 'hbox' },  
     1968                                        htmlList,  
     1969                                        'table',  
     1970                                        styles, 
     1971                                        elementDefinition && elementDefinition.align && { align : elementDefinition.align } || null, 
     1972                                        innerHTML ); 
    20301973                        }, 
    20311974 
     
    25982541        })(); 
    25992542 
     2543        // Grab the margin data from skin definition and store it away. 
     2544        CKEDITOR.skins.add = ( function() 
     2545        { 
     2546                var original = CKEDITOR.skins.add; 
     2547                return function( skinName, skinDefinition ) 
     2548                { 
     2549                        skinData[ skinName ] = { margins : skinDefinition.margins }; 
     2550                        return original.apply( this, arguments ); 
     2551                }; 
     2552        } )(); 
    26002553})(); 
    26012554 
  • CKEditor/trunk/_source/plugins/dialogui/plugin.js

    r3269 r3276  
    435435                        button : function( dialog, elementDefinition, htmlList ) 
    436436                        { 
    437                                 if ( arguments.length < 3) 
     437                                if ( !arguments.length ) 
    438438                                        return; 
    439439 
    440                                 if ( typeof( elementDefinition ) == 'function' ) 
     440                                if ( typeof elementDefinition == 'function' ) 
    441441                                        elementDefinition = elementDefinition( dialog.getParentEditor() ); 
     442 
    442443                                initPrivateObject.call( this, elementDefinition, { disabled : elementDefinition.disabled || false } ); 
    443  
    444                                 /** @ignore */ 
    445                                 var innerHTML = function() 
    446                                 { 
    447                                         var styles = [], 
    448                                                 align = elementDefinition.align || ( dialog.getParentEditor().lang.dir == 'ltr' ? 'left' : 'right' ); 
    449  
    450                                         if ( elementDefinition.style ) 
    451                                         { 
    452                                                 var defStyle = CKEDITOR.tools.trim( elementDefinition.style ); 
    453                                                 styles.push( defStyle ); 
    454                                                 if ( defStyle.charAt( defStyle.length - 1 ) != ';' ) 
    455                                                         styles.push( ';' ); 
    456                                         } 
    457  
    458                                         // IE6 & 7 BUG: Need to set margin as well as align. 
    459                                         if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) 
    460                                         { 
    461                                                 styles.push( [ 
    462                                                         'margin:', 
    463                                                         'auto', 
    464                                                         align == 'right' ? '0px' : 'auto', 
    465                                                         'auto', 
    466                                                         align == 'left' ? '0px' : 'auto' ].join( ' ' ), ';' ); 
    467                                         } 
    468  
    469                                         return [ 
    470                                                 '<table align="', align, '" ', styles.length > 0 ? 'style="' + styles.join( '' ) + '">' : '>', 
    471                                                 '<tbody><tr><td class="cke_dialog_ui_button_txt">', 
    472                                                 CKEDITOR.tools.htmlEncode( elementDefinition.label ), 
    473                                                 '</td></tr></tbody></table>' 
    474                                         ].join( '' ); 
    475                                 }; 
    476444 
    477445                                // Add OnClick event to this input. 
    478446                                CKEDITOR.event.implementOn( this ); 
    479447 
     448                                var me = this; 
     449 
    480450                                // Register an event handler for processing button clicks. 
    481                                 var me = this; 
    482451                                dialog.on( 'load', function( eventInfo ) 
     452                                        { 
     453                                                var element = this.getElement(); 
     454 
     455                                                element.on( 'mousedown', function( evt ) 
     456                                                        { 
     457                                                                // If button is disabled, don't do anything. 
     458                                                                if ( me._.disabled ) 
     459                                                                        return; 
     460 
     461                                                                // Store the currently active button. 
     462                                                                CKEDITOR.ui.dialog.button._.activeButton = [ me, me.getElement() ]; 
     463                                                        } ); 
     464 
     465                                                element.on( 'keydown', function( evt ) 
     466                                                        { 
     467                                                                // Click if Enter is pressed. 
     468                                                                if ( evt.data.$.keyCode == 13 ) 
     469                                                                { 
     470                                                                        me.fire( 'click', { dialog : me.getDialog() } ); 
     471                                                                        evt.data.preventDefault(); 
     472                                                                } 
     473                                                        } ); 
     474 
     475                                                if ( !eventInfo.data.buttonHandlerRegistered ) 
    483476                                                { 
    484                                                         var element = this.getElement(); 
    485                                                         (function() 
    486                                                         { 
    487                                                                 element.on( 'mousedown', function( evt ) 
    488                                                                         { 
    489                                                                                 // If button is disabled, don't do anything. 
    490                                                                                 if ( me._.disabled ) 
    491                                                                                         return; 
    492  
    493                                                                                 // Store the currently active button. 
    494                                                                                 CKEDITOR.ui.dialog.button._.activeButton = [ me, me.getElement() ]; 
    495                                                                         } ); 
    496  
    497                                                                 element.on( 'keydown', function( evt ) 
    498                                                                         { 
    499                                                                                 // Click if Enter is pressed. 
    500                                                                                 if ( evt.data.$.keyCode == 13 ) 
    501                                                                                 { 
    502                                                                                         me.fire( 'click', { dialog : me.getDialog() } ); 
    503                                                                                         evt.data.preventDefault(); 
    504                                                                                 } 
    505                                                                         } ); 
    506                                                         })(); 
    507  
    508                                                         // IE BUG: Padding attributes are ignored for <td> cells. 
    509                                                         if ( CKEDITOR.env.ie ) 
    510                                                                 element.getChild( [0, 0, 0, 0] ).$.innerHTML += ''; 
    511  
    512                                                         if ( !eventInfo.data.buttonHandlerRegistered ) 
    513                                                         { 
    514                                                                 CKEDITOR.document.on( 'mouseup', function( evt ) 
    515                                                                         { 
    516                                                                                 var target = evt.data.getTarget(), 
    517                                                                                         activeButton = CKEDITOR.ui.dialog.button._.activeButton; 
    518  
    519                                                                                 // If there's no active button, bail out. 
    520                                                                                 if ( !activeButton ) 
    521                                                                                         return; 
    522  
    523                                                                                 // Fire the click event - but only if the 
    524                                                                                 // active button is the same as target. 
    525                                                                                 if ( activeButton[1].equals( target.getAscendant( 'a' ) ) ) 
    526                                                                                         activeButton[0].fire( 'click', { dialog : activeButton[0].getDialog() } ); 
    527  
    528                                                                                 // Clear active button flag. 
    529                                                                                 CKEDITOR.ui.dialog.button._.activeButton = null; 
    530                                                                         } ); 
    531  
    532                                                                 eventInfo.data.buttonHandlerRegistered = true; 
    533                                                         } 
    534  
    535                                                         this.getElement().getFirst().unselectable(); 
    536                                                 }, this ); 
     477                                                        CKEDITOR.document.on( 'mouseup', function( evt ) 
     478                                                                { 
     479                                                                        var target = evt.data.getTarget(), 
     480                                                                                activeButton = CKEDITOR.ui.dialog.button._.activeButton; 
     481 
     482                                                                        // If there's no active button, bail out. 
     483                                                                        if ( !activeButton ) 
     484                                                                                return; 
     485 
     486                                                                        // Fire the click event - but only if the 
     487                                                                        // active button is the same as target. 
     488                                                                        if ( activeButton[1].equals( target.getAscendant( 'a' ) ) ) 
     489                                                                                activeButton[0].fire( 'click', { dialog : activeButton[0].getDialog() } ); 
     490 
     491                                                                        // Clear active button flag. 
     492                                                                        CKEDITOR.ui.dialog.button._.activeButton = null; 
     493                                                                } ); 
     494 
     495                                                        eventInfo.data.buttonHandlerRegistered = true; 
     496                                                } 
     497 
     498                                                this.getElement().getFirst().unselectable(); 
     499                                        }, this ); 
    537500 
    538501                                var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition ); 
    539502                                delete outerDefinition.style; 
    540503 
    541                                 CKEDITOR.ui.dialog.uiElement.call( this, dialog, outerDefinition, htmlList, 'a', { display : 'block', outline : 'none' }, 
    542                                                 { href : 'javascript:void(0);', title : elementDefinition.label, hidefocus : 'true' }, 
    543                                                 innerHTML ); 
     504                                CKEDITOR.ui.dialog.uiElement.call( 
     505                                        this,  
     506                                        dialog,  
     507                                        outerDefinition,  
     508                                        htmlList,  
     509                                        'a',  
     510                                        null, 
     511                                        { 
     512                                                style : elementDefinition.style, 
     513                                                href : 'javascript:void(0);',  
     514                                                title : elementDefinition.label,  
     515                                                hidefocus : 'true' 
     516                                        }, 
     517                                        '<span class="cke_dialog_ui_button">' +  
     518                                                CKEDITOR.tools.htmlEncode( elementDefinition.label ) +  
     519                                        '</span>' ); 
    544520                        }, 
    545521 
  • CKEditor/trunk/_source/plugins/find/dialogs/find.js

    r3260 r3276  
    555555                        title : editor.lang.findAndReplace.title, 
    556556                        resizable : CKEDITOR.DIALOG_RESIZE_NONE, 
    557                         minWidth : 400, 
    558                         minHeight : 255, 
     557                        minWidth : 350, 
     558                        minHeight : 165, 
    559559                        buttons : [ CKEDITOR.dialog.cancelButton ],             //Cancel button only. 
    560560                        contents : [ 
  • CKEditor/trunk/_source/plugins/flash/dialogs/flash.js

    r3260 r3276  
    180180                return { 
    181181                        title : editor.lang.flash.title, 
    182                         minWidth : 450, 
    183                         minHeight : 400, 
     182                        minWidth : 400, 
     183                        minHeight : 310, 
    184184                        onLoad : function() 
    185185                        { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/button.js

    r3114 r3276  
    77        return { 
    88                title : editor.lang.button.title, 
    9                 minWidth : 400, 
    10                 minHeight : 230, 
     9                minWidth : 350, 
     10                minHeight : 140, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/checkbox.js

    r3260 r3276  
    77        return { 
    88                title : editor.lang.checkboxAndRadio.checkboxTitle, 
    9                 minWidth : 400, 
    10                 minHeight : 230, 
     9                minWidth : 350, 
     10                minHeight : 140, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/form.js

    r3164 r3276  
    77        return { 
    88                title : editor.lang.form.title, 
    9                 minWidth : 400, 
    10                 minHeight : 270, 
     9                minWidth : 350, 
     10                minHeight : 190, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/hiddenfield.js

    r3114 r3276  
    77        return { 
    88                title : editor.lang.hidden.title, 
    9                 minWidth : 400, 
    10                 minHeight : 200, 
     9                minWidth : 350, 
     10                minHeight : 110, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/radio.js

    r3114 r3276  
    77        return { 
    88                title : editor.lang.checkboxAndRadio.radioTitle, 
    9                 minWidth : 400, 
    10                 minHeight : 200, 
     9                minWidth : 350, 
     10                minHeight : 130, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/select.js

    r3260 r3276  
    131131        return { 
    132132                title : editor.lang.select.title, 
    133                 minWidth : 400, 
    134                 minHeight : 370, 
     133                minWidth : 375, 
     134                minHeight : 270, 
    135135                onShow : function() 
    136136                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/textarea.js

    r3114 r3276  
    77        return { 
    88                title : editor.lang.textarea.title, 
    9                 minWidth : 400, 
    10                 minHeight : 230, 
     9                minWidth : 350, 
     10                minHeight : 140, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/forms/dialogs/textfield.js

    r3268 r3276  
    77        return { 
    88                title : editor.lang.textfield.title, 
    9                 minWidth : 400, 
    10                 minHeight : 230, 
     9                minWidth : 350, 
     10                minHeight : 140, 
    1111                onShow : function() 
    1212                { 
  • CKEditor/trunk/_source/plugins/image/dialogs/image.js

    r3262 r3276  
    187187                return { 
    188188                        title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton, 
    189                         minWidth : 450, 
    190                         minHeight : 400, 
     189                        minWidth : 420, 
     190                        minHeight : 310, 
    191191                        onShow : function() 
    192192                        { 
  • CKEditor/trunk/_source/plugins/link/dialogs/anchor.js

    r3049 r3276  
    2222        return { 
    2323                title : editor.lang.anchor.title, 
    24                 minWidth : 350, 
    25                 minHeight : 150, 
     24                minWidth : 300, 
     25                minHeight : 60, 
    2626                onOk : function() 
    2727                { 
  • CKEditor/trunk/_source/plugins/link/dialogs/link.js

    r3260 r3276  
    240240        return { 
    241241                title : editor.lang.link.title, 
    242                 minWidth : 400, 
    243                 minHeight : 320, 
     242                minWidth : 350, 
     243                minHeight : 230, 
    244244                contents : [ 
    245245                        { 
  • CKEditor/trunk/_source/plugins/pastefromword/dialogs/pastefromword.js

    r3260 r3276  
    88        return { 
    99                title : editor.lang.pastefromword.title, 
    10                 minWidth : 400, 
    11                 minHeight : 340, 
     10                minWidth : 350, 
     11                minHeight : 250, 
    1212                htmlToLoad : '<!doctype html><script type="text/javascript">' 
    1313                                + 'window.onload = function()' 
  • CKEditor/trunk/_source/plugins/pastetext/dialogs/pastetext.js

    r3260 r3276  
    1313                                title : editor.lang.pasteText.title, 
    1414 
    15                                 minWidth : 400, 
    16                                 minHeight : 330, 
     15                                minWidth : 350, 
     16                                minHeight : 240, 
    1717 
    1818                                onShow : function() 
  • CKEditor/trunk/_source/plugins/smiley/dialogs/smiley.js

    r3020 r3276  
    8080        return { 
    8181                title : editor.lang.smiley.title, 
    82                 minWidth : 320, 
    83                 minHeight : 210, 
     82                minWidth : 270, 
     83                minHeight : 120, 
    8484                contents : [ 
    8585                        { 
     
    8888                                title : '', 
    8989                                expand : true, 
     90                                padding : 0, 
    9091                                elements : [ 
    9192                                                smileySelector 
  • CKEditor/trunk/_source/plugins/specialchar/dialogs/specialchar.js

    r3089 r3276  
    88        return { 
    99                title : editor.lang.specialChar.title, 
    10                 minWidth : 450, 
    11                 minHeight : 350, 
     10                minWidth : 420, 
     11                minHeight : 270, 
    1212                buttons : [ CKEDITOR.dialog.cancelButton ], 
    1313                charColumns : 17, 
     
    8383                                label : editor.lang.common.generalTab, 
    8484                                title : editor.lang.common.generalTab, 
     85                                padding : 0, 
    8586                                align : top, 
    8687                                elements : [ 
  • CKEditor/trunk/_source/plugins/table/dialogs/table.js

    r3260 r3276  
    8585                return { 
    8686                        title : editor.lang.table.title, 
    87                         minWidth : 480, 
    88                         minHeight : 260, 
     87                        minWidth : 430, 
     88                        minHeight : 180, 
    8989                        onShow : function() 
    9090                        { 
  • CKEditor/trunk/_source/plugins/templates/dialogs/templates.js

    r3260 r3276  
    109109                                title :editor.lang.templates.title, 
    110110 
    111                                 minWidth :450, 
    112                                 minHeight :400, 
     111                                minWidth : 400, 
     112                                minHeight : 310, 
    113113 
    114114                                contents : 
  • CKEditor/trunk/_source/plugins/wsc/dialogs/wsc.js

    r3260 r3276  
    119119        return { 
    120120                title : editor.lang.spellCheck.title, 
    121                 minWidth : 540, 
    122                 minHeight : 480, 
     121                minWidth : 490, 
     122                minHeight : 390, 
    123123                buttons : [ CKEDITOR.dialog.cancelButton ], 
    124124                onShow : function() 
  • CKEditor/trunk/_source/skins/default/dialog.css

    r3231 r3276  
    1010} 
    1111 
    12 .cke_skin_default .cke_dialog_tl, 
    13 .cke_skin_default .cke_dialog_t, 
    14 .cke_skin_default .cke_dialog_tr, 
    15 .cke_skin_default .cke_dialog_l, 
    16 .cke_skin_default .cke_dialog_c, 
    17 .cke_skin_default .cke_dialog_r, 
    18 .cke_skin_default .cke_dialog_bl, 
    19 .cke_skin_default .cke_dialog_b, 
    20 .cke_skin_default .cke_dialog_br 
    21 { 
    22         float: left; 
    23 } 
    24  
    25 .cke_skin_default .cke_dialog_tl, 
    26 .cke_skin_default .cke_dialog_l, 
    27 .cke_skin_default .cke_dialog_bl 
    28 { 
    29         clear: left; 
     12.cke_skin_default .cke_dialog_body 
     13{ 
     14        margin-left: 16px; 
     15        margin-right: 16px; 
     16        margin-top: 2px; 
     17        margin-bottom: 20px; 
     18        position: relative; 
     19        z-index: 1; 
    3020} 
    3121 
    3222.cke_skin_default .cke_dialog_tl, 
    3323.cke_skin_default .cke_dialog_tr, 
    34 .cke_skin_default .cke_dialog_l, 
    35 .cke_skin_default .cke_dialog_r 
    36 { 
    37         width: 16px; 
    38 } 
    39  
    40 .cke_skin_default .cke_dialog_tl, 
    41 .cke_skin_default .cke_dialog_t, 
    42 .cke_skin_default .cke_dialog_tr 
    43 { 
    44         height: 16px; 
    45 } 
    46  
    47 .cke_skin_default .cke_dialog_tl, 
    48 .cke_skin_default .cke_dialog_t, 
    49 .cke_skin_default .cke_dialog_tr, 
     24.cke_skin_default .cke_dialog_tc, 
    5025.cke_skin_default .cke_dialog_bl, 
    51 .cke_skin_default .cke_dialog_b, 
    52 .cke_skin_default .cke_dialog_br 
     26.cke_skin_default .cke_dialog_br, 
     27.cke_skin_default .cke_dialog_bc 
    5328{ 
    5429        background-image: url(images/sprites.png); 
     30        background-repeat: no-repeat; 
     31        position: absolute; 
     32 
    5533        /* IE6 does not support full color transparent PNG. */ 
    5634        _background-image: url(images/sprites.gif); 
    57         background-repeat: no-repeat; 
    58 } 
    59  
    60 .cke_skin_default .cke_dialog_l, 
    61 .cke_skin_default .cke_dialog_r 
     35} 
     36 
     37.cke_skin_default .cke_dialog_tl 
     38{ 
     39        background-position: -16px -16px; 
     40        height: 16px; 
     41        width: 16px; 
     42        top: 0; 
     43        left: 0; 
     44} 
     45 
     46.cke_skin_default .cke_dialog_tr 
     47{ 
     48        background-position: -16px -76px; 
     49        height: 16px; 
     50        width: 16px; 
     51        top: 0; 
     52        right: 0; 
     53} 
     54 
     55.cke_skin_default .cke_dialog_tc 
     56{ 
     57        background-position: 0 -136px; 
     58        background-repeat: repeat-x; 
     59        height: 16px; 
     60        top: 0; 
     61        left: 16px; 
     62        right: 16px; 
     63} 
     64 
     65.cke_skin_default .cke_dialog_bl 
     66{ 
     67        background-position: -16px -196px; 
     68        height: 51px; 
     69        width: 30px; 
     70        bottom: 0; 
     71        left: 0; 
     72} 
     73 
     74.cke_skin_default .cke_dialog_br 
     75{ 
     76        background-position: -16px -263px; 
     77        height: 51px; 
     78        width: 30px; 
     79        bottom: 0; 
     80        right: 0; 
     81} 
     82 
     83.cke_skin_default .cke_dialog_bc 
     84{ 
     85        background-position: 0 -330px; 
     86        background-repeat: repeat-x; 
     87        height: 51px; 
     88        bottom: 0; 
     89        left: 30px; 
     90        right: 30px; 
     91} 
     92 
     93.cke_skin_default .cke_dialog_ml, 
     94.cke_skin_default .cke_dialog_mr 
    6295{ 
    6396        background-image: url(images/dialog.sides.png); 
     97        background-repeat: repeat-y; 
     98        position: absolute; 
     99        width: 16px; 
     100        top: 16px; 
     101        bottom: 51px; 
     102 
    64103        /* IE6 does not support full color transparent PNG. */ 
    65104        _background-image: url(images/dialog.sides.gif); 
    66         background-repeat: repeat-y; 
    67 } 
    68  
    69 .cke_skin_default.cke_rtl .cke_dialog_l, 
    70 .cke_skin_default.cke_rtl .cke_dialog_r 
    71 { 
    72         background-image: url(images/dialog.sides.rtl.png); 
    73         _background-image: url(images/dialog.sides.gif); 
    74 } 
    75  
    76 .cke_skin_default .cke_dialog_bl, 
    77 .cke_skin_default .cke_dialog_b, 
    78 .cke_skin_default .cke_dialog_br 
    79 { 
    80         height: 51px; 
    81 } 
    82  
    83 .cke_skin_default .cke_dialog_bl, 
    84 .cke_skin_default .cke_dialog_br 
    85 { 
    86         width: 30px; 
    87 } 
    88  
    89 .cke_skin_default .cke_dialog_tl 
    90 { 
    91         background-position: -16px -16px; 
    92 } 
    93  
    94 .cke_skin_default.cke_rtl .cke_dialog_tl 
    95 { 
    96         background-position: -16px -397px; 
    97 } 
    98  
    99 .cke_skin_default .cke_dialog_tr 
    100 { 
    101         background-position: -16px -76px; 
    102 } 
    103  
    104 .cke_skin_default.cke_rtl .cke_dialog_tr 
    105 { 
    106         background-position: -16px -457px; 
    107 } 
    108  
    109 .cke_skin_default .cke_dialog_t 
    110 { 
    111         background-position: 0px -136px; 
    112         background-repeat: repeat-x; 
    113 } 
    114  
    115 .cke_skin_default .cke_dialog_l 
    116 { 
    117         background-position: 0px 0px; 
    118 } 
    119  
    120 .cke_skin_default .cke_dialog_r 
    121 { 
    122         background-position: -16px 0px; 
    123 } 
    124  
    125 .cke_skin_default .cke_dialog_bl 
    126 { 
    127         background-position: -16px -196px; 
    128 } 
    129  
    130 .cke_skin_default.cke_rtl .cke_dialog_bl 
    131 { 
    132         background-position: -16px -517px; 
    133 } 
    134  
    135 .cke_skin_default .cke_dialog_b 
    136 { 
    137         background-position: 0px -330px; 
    138         background-repeat: repeat-x; 
    139 } 
    140  
    141 .cke_skin_default .cke_dialog_br 
    142 { 
    143         background-position: -16px -263px; 
    144 } 
    145  
    146 .cke_skin_default.cke_rtl .cke_dialog_br 
    147 { 
    148         background-position: -16px -584px; 
     105} 
     106 
     107.cke_skin_default .cke_dialog_ml 
     108{ 
     109        background-position: 0 0; 
     110        left: 0; 
     111} 
     112 
     113.cke_skin_default .cke_dialog_mr 
     114{ 
     115        background-position: -16px 0; 
     116        right: 0; 
     117} 
     118 
     119.cke_skin_default .cke_browser_iequirks .cke_dialog_ml, 
     120.cke_skin_default .cke_browser_iequirks .cke_dialog_mr 
     121{ 
     122        margin-top: 3px; 
    149123} 
    150124 
    151125.cke_skin_default .cke_dialog_title 
    152126{ 
    153         position: absolute; 
    154         top: 2px; 
    155         left: 16px; 
    156         height: 23px; 
    157         right: 16px; 
    158127        font-weight: bold; 
    159128        font-size: 14pt; 
    160129        color: #737357; 
    161130        background-color: #e3e3c7; 
    162         padding: 3px 10px 3px 10px; 
    163         overflow: hidden; 
     131        padding: 3px 10px 26px 10px; 
    164132        cursor: move; 
    165 } 
    166  
    167 .cke_skin_default .single_page .cke_dialog_tabs 
    168 { 
    169         display: none; 
    170 } 
     133        position: relative; 
     134} 
     135 
     136.cke_skin_default .cke_dialog_contents 
     137{ 
     138        background-color: #f1f1e3; 
     139        border: #d5d59d 1px solid; 
     140        overflow: auto; 
     141        padding: 5px 10px; 
     142} 
     143 
     144.cke_skin_default .cke_dialog_footer 
     145{ 
     146        background-color: #e3e3c7; 
     147        text-align: right; 
     148} 
     149 
     150/* tabs */ 
    171151 
    172152.cke_skin_default .cke_dialog_tabs 
    173153{ 
     154        height: 23px; 
     155        background-color: #e3e3c7; 
     156        float:left; 
     157        margin-left:10px; 
     158        margin-top:-23px; 
    174159        position: absolute; 
    175         top: 31px; 
    176         left: 16px; 
    177         height: 23px; 
    178         right: 16px; 
    179         background-color: #e3e3c7; 
    180         z-index: 1; 
    181         border-collapse: separate; 
    182 } 
    183  
    184 .cke_skin_default.cke_browser_ie .cke_dialog_tabs 
    185 { 
    186         border-collapse: collapse; 
    187 } 
    188  
    189 .cke_skin_default .cke_dialog_tabs .head_filler 
    190 { 
    191         padding-left: 10px; 
    192         border-bottom: 1px solid #D5D59D; 
    193         line-height: 50%; 
    194 } 
    195  
    196 .cke_skin_default .cke_dialog_tabs .tail_filler 
    197 { 
    198         width: 100%; 
    199         border-bottom: 1px solid #D5D59D; 
    200         line-height: 50%; 
    201 } 
    202  
    203 .cke_skin_default .cke_dialog_contents 
    204 { 
    205         position: absolute; 
    206         background-color: #f1f1e3; 
    207         top: 54px; 
    208         left: 16px; 
    209         bottom: 51px; 
    210         right: 16px; 
    211         border: #d5d59d 1px solid; 
    212         border-top: none; 
    213 } 
    214  
    215 .cke_skin_default .single_page .cke_dialog_contents 
    216 { 
    217         top: 31px; 
    218         border-top: #d5d59d 1px solid; 
    219 } 
    220  
    221 .cke_skin_default .cke_dialog_footer 
    222 { 
    223         position: absolute; 
    224         background-color: #e3e3c7; 
    225         height: 31px; 
    226         left: 16px; 
    227         right: 16px; 
    228         bottom: 20px; 
    229 } 
    230  
    231 .cke_skin_default .cke_dialog_page_contents 
    232 { 
    233         position: absolute; 
    234         top: 0px; 
    235         bottom: 0px; 
    236         left: 0px; 
    237         right: 0px; 
    238         padding: 5px 10px; 
    239 } 
    240  
    241 .cke_skin_default .cke_dialog_tab_center 
    242 { 
    243         cursor: pointer; 
    244 } 
    245  
    246 .cke_skin_default .cke_dialog_tab 
    247 { 
    248         border-bottom: 1px solid #D5D59D; 
    249 } 
    250  
    251 .cke_skin_default .cke_dialog_tab_left, 
    252 .cke_skin_default .cke_dialog_tab_right 
    253 { 
    254         cursor: pointer; 
    255 } 
    256  
    257 .cke_skin_default .cke_dialog_tab_center 
     160        z-index: 2; 
     161} 
     162 
     163.cke_skin_default a.cke_dialog_tab, 
     164.cke_skin_default a:link.cke_dialog_tab, 
     165.cke_skin_default a:active.cke_dialog_tab, 
     166.cke_skin_default a:hover.cke_dialog_tab, 
     167.cke_skin_default a:visited.cke_dialog_tab 
    258168{ 
    259169        color: #737357; 
     
    261171        border-right: 1px solid #d5d59d; 
    262172        border-top: 1px solid #d5d59d; 
    263         height: 15px; 
     173        height: 14px; 
    264174        padding: 4px 5px; 
    265 } 
    266  
    267 .cke_skin_default.cke_browser_webkit.cke_mode_quirks .cke_dialog_tab_center 
    268 { 
    269         padding: 4px 5px 5px 5px; 
    270 } 
    271  
    272 .cke_skin_default.cke_browser_webkit.cke_mode_standards .cke_dialog_tab_center 
    273 { 
    274         padding: 4px 5px 2px 5px; 
    275 } 
    276  
    277  
    278 .cke_skin_default .cke_dialog_tab_selected 
    279 { 
    280         border-bottom: 1px solid #F1F1E3; 
    281 } 
    282  
    283 .cke_skin_default .cke_dialog_tab_selected .cke_dialog_tab_left, 
    284 .cke_skin_default .cke_dialog_tab_selected .cke_dialog_tab_center, 
    285 .cke_skin_default .cke_dialog_tab_selected .cke_dialog_tab_right 
    286 { 
    287         cursor: default; 
    288 } 
    289  
    290 .cke_skin_default .cke_dialog_tab_selected .cke_dialog_tab_center 
    291 { 
     175        display: block; 
     176        float: left; 
     177        cursor: pointer; 
     178} 
     179 
     180.cke_skin_default a:hover.cke_dialog_tab 
     181{ 
     182        background-color: #f1f1e3; 
     183} 
     184 
     185.cke_skin_default a.cke_dialog_tab_selected, 
     186.cke_skin_default a:link.cke_dialog_tab_selected, 
     187.cke_skin_default a:active.cke_dialog_tab_selected, 
     188.cke_skin_default a:hover.cke_dialog_tab_selected, 
     189.cke_skin_default a:visited.cke_dialog_tab_selected 
     190{ 
     191        border-bottom: 1px solid #f1f1e3; 
    292192        background-color: #f1f1e3; 
    293193        font-weight: bold; 
     194        cursor: default; 
     195} 
     196 
     197/* single_page */ 
     198 
     199.cke_skin_default .cke_single_page .cke_dialog_tabs 
     200{ 
     201        display: none; 
     202} 
     203 
     204.cke_skin_default .cke_single_page .cke_dialog_title 
     205{ 
     206        padding-bottom: 3px; 
    294207} 
    295208 
     
    376289} 
    377290 
    378 .cke_skin_default .cke_dialog_ui_button table 
     291/* button */ 
     292 
     293.cke_skin_default a.cke_dialog_ui_button 
     294{ 
     295        border-collapse: separate; 
     296} 
     297 
     298.cke_skin_default span.cke_dialog_ui_button 
    379299{ 
    380300        border: #737357 1px solid; 
    381 } 
    382  
    383 .cke_skin_default .cke_dialog_ui_button.disabled table 
    384 { 
    385         border: #898980 1px solid; 
    386 } 
    387  
    388 .cke_skin_default .cke_dialog_ui_button_txt 
    389 { 
    390301        padding: 2px 10px; 
    391302        text-align: center; 
    392303        color: #3b3b1f; 
    393304        background-color: #c7c78f; 
    394 } 
    395  
    396 .cke_skin_default .cke_dialog_ui_button.disabled .cke_dialog_ui_button_txt 
    397 { 
     305        display: inline-block; 
     306} 
     307 
     308.cke_skin_default a.cke_dialog_ui_button span.cke_disabled 
     309{ 
     310        border: #898980 1px solid; 
    398311        color: #5e5e55; 
    399312        background-color: #c5c5b3; 
    400313} 
    401314 
    402 .cke_skin_default a:focus.cke_dialog_ui_button .cke_dialog_ui_button_txt, 
    403 .cke_skin_default a:active.cke_dialog_ui_button .cke_dialog_ui_button_txt 
     315.cke_skin_default a:focus span.cke_dialog_ui_button, 
     316.cke_skin_default a:active span.cke_dialog_ui_button 
    404317{ 
    405318        background-color: #e3e3c7; 
    406319} 
    407320 
     321.cke_skin_default .cke_dialog_footer_buttons 
     322{ 
     323        display: inline-table; 
     324        margin-right: 12px; 
     325        width: auto; 
     326        position: relative; 
     327} 
     328 
     329.cke_skin_default .cke_dialog_footer_buttons span.cke_dialog_ui_button 
     330{ 
     331        width: 60px; 
     332        margin: 7px 0; 
     333} 
     334 
    408335.cke_skin_default strong 
    409336{ 
     
    411338} 
    412339 
    413 .cke_skin_default .cke_dialog_footer_buttons 
    414 { 
    415         width: auto; 
    416         position: absolute; 
    417         right: 10px; 
    418         top: 7px; 
    419 } 
    420  
    421 .cke_skin_default.cke_rtl .cke_dialog_footer_buttons 
    422 { 
    423         right: auto; 
    424         left: 10px; 
    425 } 
     340/* close_button */ 
    426341 
    427342.cke_skin_default .cke_dialog_close_button 
    428343{ 
    429344        background-image: url(images/sprites.png); 
    430         /* IE6 does not support full color transparent PNG. */ 
    431         _background-image: url(images/sprites.gif); 
    432345        background-repeat: no-repeat; 
    433346        background-position: -16px -651px; 
     
    438351        right: 10px; 
    439352        top: 5px; 
     353 
     354        _right: 22px; 
     355 
     356        /* IE6 does not support full color transparent PNG. */ 
     357        _background-image: url(images/sprites.gif); 
    440358} 
    441359 
     
    451369} 
    452370 
    453 .cke_skin_default .cke_dialog_tl_resize, 
    454 .cke_skin_default .cke_dialog_t_resize, 
    455 .cke_skin_default .cke_dialog_tr_resize, 
    456 .cke_skin_default .cke_dialog_bl_resize, 
    457 .cke_skin_default .cke_dialog_b_resize, 
    458 .cke_skin_default .cke_dialog_br_resize 
    459 { 
    460         position: absolute; 
    461         height: 5px; 
    462         overflow: hidden; 
    463         background-color: transparent; 
    464 } 
    465  
    466 .cke_skin_default .cke_dialog_l_resize, 
    467 .cke_skin_default .cke_dialog_r_resize 
    468 { 
    469         position: absolute; 
    470         width: 5px; 
    471         overflow: hidden; 
    472         background-color: transparent; 
    473 } 
    474  
    475 .cke_skin_default .cke_dialog_tl_resize 
    476 { 
    477         width: 5px; 
    478         left: 11px; 
    479         top: -3px; 
    480         cursor: nw-resize; 
    481 } 
    482  
    483 .cke_skin_default .cke_dialog_t_resize 
    484 { 
    485         left: 16px; 
    486         top: -3px; 
    487         cursor: n-resize; 
    488 } 
    489  
    490 .cke_skin_default .cke_dialog_tr_resize 
    491 { 
    492         width: 5px; 
    493         right: 14px; 
    494         top: -3px; 
    495         cursor: ne-resize; 
    496 } 
    497  
    498 .cke_skin_default .cke_dialog_l_resize 
    499 { 
    500         top: 2px; 
    501         left: 11px; 
    502         cursor: w-resize; 
    503 } 
    504  
    505 .cke_skin_default .cke_dialog_r_resize 
    506 { 
    507         top: 2px; 
    508         right: 14px; 
    509         cursor: e-resize; 
    510 } 
    511  
    512 .cke_skin_default .cke_dialog_bl_resize 
    513 { 
    514         bottom: 18px; 
    515         left: 11px; 
    516         width: 5px; 
    517         cursor: sw-resize; 
    518 } 
    519  
    520 .cke_skin_default .cke_dialog_b_resize 
    521 { 
    522         bottom: 18px; 
    523         left: 16px; 
    524         cursor: s-resize; 
    525 } 
    526  
    527 .cke_skin_default .cke_dialog_br_resize 
    528 { 
    529         bottom: 18px; 
    530         right: 14px; 
    531         width: 8px; 
    532         height: 8px; 
    533         cursor: se-resize; 
    534 } 
    535  
    536371.cke_skin_default .cke_dialog_ui_input_select 
    537372{ 
     
    549384{ 
    550385        height: 25px; 
    551 } 
    552  
    553 /* 
    554  * Safari and Gecko on Mac actually distinguish between single-sided and 
    555  * double-sided resize cursors. The double-sided resize cursors should be used. 
    556  */ 
    557 .cke_skin_default.cke_browser_gecko .cke_dialog_tl_resize, 
    558 .cke_skin_default.cke_browser_webkit .cke_dialog_tl_resize, 
    559 .cke_skin_default.cke_browser_gecko .cke_dialog_br_resize, 
    560 .cke_skin_default.cke_browser_webkit .cke_dialog_br_resize 
    561 { 
    562         cursor: nwse-resize; 
    563 } 
    564  
    565 .cke_skin_default.cke_browser_gecko .cke_dialog_tr_resize, 
    566 .cke_skin_default.cke_browser_webkit .cke_dialog_tr_resize, 
    567 .cke_skin_default.cke_browser_gecko .cke_dialog_bl_resize, 
    568 .cke_skin_default.cke_browser_webkit .cke_dialog_bl_resize 
    569 { 
    570         cursor: nesw-resize; 
    571 } 
    572  
    573 .cke_skin_default.cke_browser_gecko .cke_dialog_l_resize, 
    574 .cke_skin_default.cke_browser_webkit .cke_dialog_l_resize, 
    575 .cke_skin_default.cke_browser_gecko .cke_dialog_r_resize, 
    576 .cke_skin_default.cke_browser_webkit .cke_dialog_r_resize 
    577 { 
    578         cursor: ew-resize; 
    579 } 
    580  
    581 .cke_skin_default.cke_browser_gecko .cke_dialog_t_resize, 
    582 .cke_skin_default.cke_browser_webkit .cke_dialog_t_resize, 
    583 .cke_skin_default.cke_browser_gecko .cke_dialog_b_resize, 
    584 .cke_skin_default.cke_browser_webkit .cke_dialog_b_resize 
    585 { 
    586         cursor: ns-resize; 
    587386} 
    588387 
  • CKEditor/trunk/_source/skins/default/skin.js

    r3260 r3276  
    77{ 
    88        var preload = []; 
    9         var dialogJs = []; 
    109 
    11         if ( CKEDITOR.env.ie && CKEDITOR.env.version <= 6 ) 
     10        if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 ) 
    1211        { 
    1312                // For IE6, we need to preload some images, otherwhise they will be 
    1413                // downloaded several times (CSS background bug). 
    1514                preload.push( 'icons.gif', 'images/sprites.gif', 'images/dialog.sides.gif' ); 
    16  
    17                 // The dialog must be fixed by code in IE6, as it doesn't support 
    18                 // several CSS features (absolute positioning). 
    19                 // dialogJs.push( 'dialog_ie6.js' ); 
    2015        } 
    2116 
    2217        return { 
    23                 preload : preload, 
    24                 editor : { css : [ 'editor.css' ] }, 
    25                 dialog : { css : [ 'dialog.css' ],  js : dialogJs }, 
    26                 templates : { css : [ 'templates.css' ] } 
     18                preload         : preload, 
     19                editor          : { css : [ 'editor.css' ] }, 
     20                dialog          : { css : [ 'dialog.css' ] }, 
     21                templates       : { css : [ 'templates.css' ] }, 
     22                margins         : [ 0, 14, 18, 14 ] 
    2723        }; 
    2824})() ); 
    2925 
    30 (function() 
     26if ( CKEDITOR.dialog ) 
    3127{ 
    32         // Define the function for resizing dialog parts at load to speed up 
    33         // the actual resize operation. 
    34         var skinName = 'default', 
    35                 setSize = function( dialog, partName, width, height ) 
     28        CKEDITOR.dialog.on( 'resize', function( evt ) 
    3629                { 
    37                         var element = partName ? dialog.parts[partName] : dialog._.element.getFirst(); 
    38                         if ( width ) 
    39                                 element.setStyle( 'width', width + 'px' ); 
    40                         if ( height ) 
    41                                 element.setStyle( 'height', height + 'px' ); 
    42                 }; 
     30                        var data = evt.data, 
     31                                width = data.width, 
     32                                height = data.height, 
     33                                dialog = data.dialog, 
     34                                standardsMode = !CKEDITOR.env.quirk; 
    4335 
    44         if ( CKEDITOR.dialog ) 
    45         { 
    46                 CKEDITOR.dialog.setMargins( 0, 14, 18, 14 ); 
     36                        if ( data.skin != 'default' ) 
     37                                return; 
    4738 
    48                 CKEDITOR.dialog.on( 'resize', function( evt ) 
    49                         { 
    50                                 var data = evt.data, 
    51                                         width = data.width, 
    52                                         height = data.height, 
    53                                         dialog = data.dialog, 
    54                                         standardsMode = ( CKEDITOR.document.$.compatMode == 'CSS1Compat' ); 
    55                                 if ( data.skin != skinName ) 
    56                                         return; 
     39                        dialog.parts.contents.setStyles( 
     40                                { 
     41                                        width : width + 'px', 
     42                                        height : height + 'px' 
     43                                }); 
    5744 
    58                                 // Dialog parts dimensions. 
    59                                 //  16x16  |  ?x16  |  16x16 
    60                                 //  16x?   |  ?x?   |  16x? 
    61                                 //  30x51  |  ?x51  |  30x51 
    62                                 setSize( dialog, 't', width - 32, 16 ); 
    63                                 setSize( dialog, 't_resize', width - 32, null ); 
    64                                 setSize( dialog, 'l', 16, height - 67 ); 
    65                                 setSize( dialog, 'l_resize', null, height - 22 ); 
    66                                 setSize( dialog, 'c', width - 32, height - 67 ); 
    67                                 setSize( dialog, 'r', 16, height - 67 ); 
    68                                 setSize( dialog, 'r_resize', null, height - 22 ); 
    69                                 setSize( dialog, 'b', width - 60, 51 ); 
    70                                 setSize( dialog, 'b_resize', width - 32, null ); 
    71                                 setSize( dialog, 'tabs_table', width - 32, null ); 
     45                        if ( !CKEDITOR.env.ie ) 
     46                                return; 
    7247 
    73                                 /* 
    74                                  * Although the following fix seems to be for IE6 only, it's also for IE7. 
    75                                  * While IE7 can render DIV nodes with left: and right: defined, it cannot 
    76                                  * put 100% height TABLES correctly inside those DIVs. Unless the width is 
    77                                  * set as well. 
    78                                  */ 
    79                                 if ( CKEDITOR.env.ie ) 
     48                        // Fix the size of the elements which have flexible lengths. 
     49                        setTimeout( function() 
    8050                                { 
    81                                         var contentWidth = width - 34, 
    82                                                 contentHeight = dialog.getPageCount() > 1 ? height - 106 : height - 84, 
    83                                                 contentsLength = dialog.parts.contents.getChildCount(); 
     51                                        var content = dialog.parts.contents, 
     52                                                body = content.getParent(), 
     53                                                innerDialog = body.getParent(); 
    8454 
    85                                         if ( !standardsMode ) 
    86                                         { 
    87                                                 contentWidth += 2; 
    88                                                 contentHeight += 2; 
    89                                                 dialog.parts.tabs.setStyle( 'top', '33px' ); 
    90                                         } 
     55                                        // tc 
     56                                        el = innerDialog.getChild( 2 ); 
     57                                        el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 
    9158 
    92                                         setSize( dialog, 'title', standardsMode ? width - 52 : width - 32, standardsMode ? null : 31 ); 
    93                                         setSize( dialog, 'contents', contentWidth, contentHeight ); 
    94                                         setSize( dialog, 'footer', width - 32); 
     59                                        // bc 
     60                                        el = innerDialog.getChild( 7 ); 
     61                                        el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' ); 
    9562 
    96                                         for ( var i = 0 ; i < contentsLength ; i++ ) 
    97                                         { 
    98                                                 var child = dialog.parts.contents.getChild( i ); 
    99                                                 if ( ( child instanceof CKEDITOR.dom.element ) && ( child.$.className || '' ).search( 'cke_dialog_page_contents' ) > -1 ) 
    100                                                         child.setStyles( 
    101                                                                 { 
    102                                                                         width : contentWidth - ( standardsMode ? 20 : 0 ) + 'px', 
    103                                                                         height : contentHeight - ( standardsMode ? 20 : 0 ) + 'px' 
    104                                                                 } ); 
    105                                         } 
    106                                 } 
     63                                        // ml 
     64                                        el = innerDialog.getChild( 4 ); 
     65                                        el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 
    10766 
    108                                 setSize( dialog, null, width, height ); 
    109                         }); 
    110         } 
    111 })(); 
     67                                        // mr 
     68                                        el = innerDialog.getChild( 5 ); 
     69                                        el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 
     70                                },  
     71                                0 ); 
     72                }); 
     73} 
  • CKEditor/trunk/_source/themes/default/theme.js

    r3260 r3276  
    113113 
    114114                        var element = CKEDITOR.dom.element.createFromHtml( [ 
    115                                         '<div class="cke_skin_', editor.config.skin, ' ', browserCssClass, ' ', 
    116                                                 CKEDITOR.document.$.compatMode == 'CSS1Compat' ? 'cke_mode_standards' : 'cke_mode_quirks', 
     115                                        '<div class="cke_skin_', editor.config.skin, 
     116                                                ' ', browserCssClass, 
     117                                                ' ', CKEDITOR.env.quirks ? 'cke_mode_quirks' : 'cke_mode_standards', 
    117118                                                ' cke_', editor.lang.dir, 
    118119                                                '" dir="', editor.lang.dir, '">' + 
    119                                                 '<div id="%#" class="cke_dialog" style="position:', 
    120                                                         ( CKEDITOR.env.ie6Compat ? 'absolute;' : 'fixed;' ), '">', 
    121                                                         '<div>'+ 
    122                                                                 '<div id="%tl_#" class="%tl">' + 
    123                                                                         '<div id="%tl_resize_#" class="%tl_resize"></div>' + 
    124                                                                 '</div>' + 
    125                                                                 '<div id="%t_#" class="%t">' + 
    126                                                                         '<div id="%t_resize_#" class="%t_resize"></div>' + 
    127                                                                 '</div>' + 
    128                                                                 '<div id="%tr_#" class="%tr">' + 
    129                                                                         '<div id="%tr_resize_#" class="%tr_resize"></div>' + 
    130                                                                 '</div>' + 
     120 
     121                                                '<div class="cke_dialog" style="position:absolute">' + 
     122                                                        '<div class="%body">' + 
     123                                                                '<div id="%title#" class="%title"></div>' + 
     124                                                                '<div id="%close_button#" class="%close_button"></div>' + 
     125                                                                '<div id="%tabs#" class="%tabs"></div>' + 
     126                                                                '<div id="%contents#" class="%contents"></div>' + 
     127                                                                '<div id="%footer#" class="%footer"></div>' + 
    131128                                                        '</div>' + 
    132                                                         '<div>' + 
    133                                                                 '<div id="%l_#" class="%l">' + 
    134                                                                         '<div id="%l_resize_#" class="%l_resize"></div>' + 
    135                                                                 '</div>' + 
    136                                                                 '<div id="%c_#" class="%c">' + 
    137                                                                         '<div id="%title_#" class="%title">' + 
    138                                                                                 '<div id="%close_button_#" class="%close_button"></div>' + 
    139                                                                         '</div>' + 
    140                                                                         '<table id="%tabs_#" class="%tabs" cellpadding="0" border="0" cellspacing="0"><tbody><tr>' + 
    141                                                                         '<td class="head_filler">&nbsp;</td>' + 
    142                                                                         '<td class="tail_filler">&nbsp;</td>' + 
    143                                                                         '</tr></tbody></table>' + 
    144                                                                         '<div id="%contents_#" class="%contents"></div>' + 
    145                                                                         '<div id="%footer_#" class="%footer"></div>' + 
    146                                                                 '</div>' + 
    147                                                                 '<div id="%r_#" class="%r">' + 
    148                                                                         '<div id="%r_resize_#" class="%r_resize"></div>' + 
    149                                                                 '</div>' + 
    150                                                         '</div>' + 
    151                                                         '<div>' + 
    152                                                                 '<div id="%bl_#" class="%bl">' + 
    153                                                                         '<div id="%bl_resize_#" class="%bl_resize"></div>' + 
    154                                                                 '</div>' + 
    155                                                                 '<div id="%b_#" class="%b">' + 
    156                                                                         '<div id="%b_resize_#" class="%b_resize"></div>' + 
    157                                                                 '</div>' + 
    158                                                                 '<div id="%br_#" class="%br">' + 
    159                                                                         '<div id="%br_resize_#" class="%br_resize"></div>' + 
    160                                                                 '</div>' + 
    161                                                         '</div>' + 
     129                                                        '<div id="%tl#" class="%tl"></div>' + 
     130                                                        '<div id="%tc#" class="%tc"></div>' + 
     131                                                        '<div id="%tr#" class="%tr"></div>' + 
     132                                                        '<div id="%ml#" class="%ml"></div>' + 
     133                                                        '<div id="%mr#" class="%mr"></div>' + 
     134                                                        '<div id="%bl#" class="%bl"></div>' + 
     135                                                        '<div id="%bc#" class="%bc"></div>' + 
     136                                                        '<div id="%br#" class="%br"></div>' + 
    162137                                                '</div>', 
     138 
    163139                                                //Hide the container when loading skins, later restored by skin css. 
    164140                                                ( CKEDITOR.env.ie ? '' : '<style>.cke_dialog{visibility:hidden;}</style>' ), 
     141 
    165142                                        '</div>' 
    166143                                ].join( '' ) 
    167                                         .replace( /#/g, baseIdNumber ) 
     144                                        .replace( /#/g, '_' + baseIdNumber ) 
    168145                                        .replace( /%/g, 'cke_dialog_' ) ); 
    169146 
     147                        var body = element.getChild( [ 0, 0 ] ); 
     148 
    170149                        // Make the Title unselectable. 
    171                         element.getChild( [0, 1, 1, 0] ).unselectable(); 
     150                        body.getChild( 0 ).unselectable(); 
     151 
    172152 
    173153                        return { 
    174154                                element : element, 
    175                                 titleId : 'cke_dialog_title_' + baseIdNumber, 
    176                                 contentsId : 'cke_dialog_contents_' + baseIdNumber, 
    177                                 footerId : 'cke_dialog_footer_' + baseIdNumber, 
    178                                 closeIds : [ 'cke_dialog_close_button_' + baseIdNumber ], 
    179                                 dragIds : [ 'cke_dialog_title_' + baseIdNumber, 'cke_dialog_tabs_' + baseIdNumber ] 
     155                                parts : 
     156                                { 
     157                                        dialog          : element.getChild( 0 ), 
     158                                        title           : body.getChild( 0 ), 
     159                                        close           : body.getChild( 1 ), 
     160                                        tabs            : body.getChild( 2 ), 
     161                                        contents        : body.getChild( 3 ), 
     162                                        footer          : body.getChild( 4 ) 
     163                                } 
    180164                        }; 
    181165                }, 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy