Ticket #3191: dialog.patch

File dialog.patch, 46.8 KB (added by Martin Kou, 11 years ago)
  • _source/plugins/clipboard/dialogs/paste.js

     
    5555        return {
    5656                title : editor.lang.clipboard.title,
    5757
    58                 minWidth : 400,
    59                 minHeight : 330,
     58                minWidth : 350,
     59                minHeight : 240,
    6060
    6161                onShow : function()
    6262                {
  • _source/plugins/dialog/plugin.js

     
    108108                        }
    109109                        , editor ).definition;
    110110
     111                var doc = CKEDITOR.document;
     112
    111113                var themeBuilt = editor.theme.buildDialog( editor );
    112114
    113115                // Initialize some basic parameters.
     
    136138                        hasFocus : false
    137139                };
    138140
    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 
     141                this.parts = themeBuilt.parts;
     142               
    199143                // Call the CKEDITOR.event constructor to initialize this instance.
    200144                CKEDITOR.event.call( this );
    201145
     
    453397
    454398                // Insert dummy text box for grabbing focus away from the editing area.
    455399                this._.dummyText = CKEDITOR.dom.element.createFromHtml( '<input type="text" style="position: absolute; left: -100000px; top: -100000px" />' );
    456                 this._.dummyText.appendTo( element );
     400                this._.dummyText.appendTo( themeBuilt.element );
    457401
    458402                CKEDITOR.skins.load( editor.config.skin, 'dialog' );
    459403        };
     
    737681                        // Create the HTML for the tab and the content block.
    738682                        var page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) );
    739683                        var tab = CKEDITOR.dom.element.createFromHtml( [
    740                                         '<table><tbody><tr><td class="cke_dialog_tab">',
    741                                         '<a href="javascript: void(0)"', titleHtml, ' style="display: block; outline: none;" hidefocus="true">',
    742                                         '<table border="0" cellspacing="0" cellpadding="0"><tbody><tr>',
    743                                                 '<td class="cke_dialog_tab_left"></td>',
    744                                                 '<td class="cke_dialog_tab_center">',
    745                                                         CKEDITOR.tools.htmlEncode( contents.label.replace( / /g, '\xa0' ) ),
    746                                                 '</td>',
    747                                                 '<td class="cke_dialog_tab_right"></td>',
    748                                         '</tr></tbody></table></a></td></tr></tbody></table>'
     684                                        '<a class="cke_dialog_tab"',
     685                                                ( this._.pageCount > 0 ? ' cke_last' : 'cke_first' ),
     686                                                titleHtml,
     687//                                              ' id="', contents.id + '_', CKEDITOR.tools.getNextNumber(), '"' +
     688                                                ' href="javascript:void(0)"',
     689                                                ' hidefocus="true">',
     690                                                        contents.label,
     691                                        '</a>'
    749692                                ].join( '' ) );
    750                         tab = tab.getChild( [0,0,0] );
    751693
    752                         // First and last tab styles classes.
    753                         if ( this._.lastTab )
    754                                 this._.lastTab.removeClass( 'last' );
    755                         tab.addClass( this._.pageCount > 0 ? 'last' : 'first' );
    756 
    757694                        // If only a single page exist, a different style is used in the central pane.
    758695                        if ( this._.pageCount === 0 )
    759                                 this.parts.c.addClass( 'single_page' );
     696                                this.parts.dialog.addClass( 'cke_single_page' );
    760697                        else
    761                                 this.parts.c.removeClass( 'single_page' );
     698                                this.parts.dialog.removeClass( 'cke_single_page' );
    762699
    763700                        // Take records for the tabs and elements created.
    764701                        this._.tabs[ contents.id ] = [ tab, page ];
    765702                        this._.tabIdList.push( contents.id );
    766703                        this._.pageCount++;
    767704                        this._.lastTab = tab;
     705
    768706                        var contentMap = this._.contents[ contents.id ] = {},
    769707                                cursor,
    770708                                children = vbox.getChild();
     709
    771710                        while ( ( cursor = children.shift() ) )
    772711                        {
    773712                                contentMap[ cursor.id ] = cursor;
     
    776715                        }
    777716
    778717                        // Attach the DOM nodes.
    779                         tab.unselectable();
    780                         page.appendTo( this.parts.contents );
    781                         tab.insertBefore( this.parts.tabs.getChild( this.parts.tabs.getChildCount() - 1 ) );
    782                         tab.setAttribute( 'id', contents.id + '_' + CKEDITOR.tools.getNextNumber() );
     718
    783719                        page.setAttribute( 'name', contents.id );
     720                        page.appendTo( this.parts.contents );
    784721
     722                        tab.unselectable();
     723                        this.parts.tabs.append( tab );
     724
    785725                        // Add access key handlers if access key is defined.
    786726                        if ( contents.accessKey )
    787727                        {
     
    1059999                                                id : 'ok',
    10601000                                                type : 'button',
    10611001                                                label : editor.lang.common.ok,
    1062                                                 style : 'width: 60px',
    10631002                                                onClick : function( evt )
    10641003                                                {
    10651004                                                        var dialog = evt.data.dialog;
     
    10931032                                                id : 'cancel',
    10941033                                                type : 'button',
    10951034                                                label : editor.lang.common.cancel,
    1096                                                 style : 'width: 60px',
    10971035                                                onClick : function( evt )
    10981036                                                {
    10991037                                                        var dialog = evt.data.dialog;
     
    15901528                                }
    15911529                        };
    15921530
    1593                 var widthTest = /[lr]/,
    1594                         heightTest = /[tb]/;
    1595                 for ( var i = 0 ; i < parts.length ; i++ )
    1596                 {
    1597                         var element = dialog.parts[ parts[i] + '_resize' ];
    1598                         if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ||
    1599                                         resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) ||
    1600                                         resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) )
    1601                         {
    1602                                 element.hide();
    1603                                 continue;
    1604                         }
    1605                         element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } );
    1606                 }
     1531// TODO : Simplify the resize logic, having just a single resize grip <div>.
     1532//              var widthTest = /[lr]/,
     1533//                      heightTest = /[tb]/;
     1534//              for ( var i = 0 ; i < parts.length ; i++ )
     1535//              {
     1536//                      var element = dialog.parts[ parts[i] + '_resize' ];
     1537//                      if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ||
     1538//                                      resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) ||
     1539//                                      resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) )
     1540//                      {
     1541//                              element.hide();
     1542//                              continue;
     1543//                      }
     1544//                      element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } );
     1545//              }
    16071546        };
    16081547
    16091548        var resizeCover;
     
    19961935                                        return html.join( '' );
    19971936                                };
    19981937
    1999                                 CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type : 'hbox' }, htmlList, 'table', styles,
    2000                                                 { align : ( elementDefinition && elementDefinition.align ) ||
    2001                                                         ( dialog.getParentEditor().lang.dir == 'ltr' ? 'left' : 'right' ) }, innerHTML );
     1938                                CKEDITOR.ui.dialog.uiElement.call(
     1939                                        this,
     1940                                        dialog,
     1941                                        elementDefinition || { type : 'hbox' },
     1942                                        htmlList,
     1943                                        'table',
     1944                                        styles,
     1945                                        elementDefinition && elementDefinition.align && { align : elementDefinition.align } || null,
     1946                                        innerHTML );
    20021947                        },
    20031948
    20041949                        /**
  • _source/plugins/dialogui/plugin.js

     
    434434                         */
    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 } );
    443444
    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                                 };
    476 
    477445                                // Add OnClick event to this input.
    478446                                CKEDITOR.event.implementOn( this );
    479447
    480                                 // Register an event handler for processing button clicks.
    481448                                var me = this;
     449
     450                                // Register an event handler for processing button clicks.
    482451                                dialog.on( 'load', function( eventInfo )
    483                                                 {
    484                                                         var element = this.getElement();
    485                                                         (function()
     452                                        {
     453                                                var element = this.getElement();
     454
     455                                                element.on( 'mousedown', function( evt )
    486456                                                        {
    487                                                                 element.on( 'mousedown', function( evt )
    488                                                                         {
    489                                                                                 // If button is disabled, don't do anything.
    490                                                                                 if ( me._.disabled )
    491                                                                                         return;
     457                                                                // If button is disabled, don't do anything.
     458                                                                if ( me._.disabled )
     459                                                                        return;
    492460
    493                                                                                 // Store the currently active button.
    494                                                                                 CKEDITOR.ui.dialog.button._.activeButton = [ me, me.getElement() ];
    495                                                                         } );
     461                                                                // Store the currently active button.
     462                                                                CKEDITOR.ui.dialog.button._.activeButton = [ me, me.getElement() ];
     463                                                        } );
    496464
    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 )
     465                                                element.on( 'keydown', function( evt )
    513466                                                        {
    514                                                                 CKEDITOR.document.on( 'mouseup', function( evt )
    515                                                                         {
    516                                                                                 var target = evt.data.getTarget(),
    517                                                                                         activeButton = CKEDITOR.ui.dialog.button._.activeButton;
     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                                                        } );
    518474
    519                                                                                 // If there's no active button, bail out.
    520                                                                                 if ( !activeButton )
    521                                                                                         return;
     475                                                if ( !eventInfo.data.buttonHandlerRegistered )
     476                                                {
     477                                                        CKEDITOR.document.on( 'mouseup', function( evt )
     478                                                                {
     479                                                                        var target = evt.data.getTarget(),
     480                                                                                activeButton = CKEDITOR.ui.dialog.button._.activeButton;
    522481
    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() } );
     482                                                                        // If there's no active button, bail out.
     483                                                                        if ( !activeButton )
     484                                                                                return;
    527485
    528                                                                                 // Clear active button flag.
    529                                                                                 CKEDITOR.ui.dialog.button._.activeButton = null;
    530                                                                         } );
     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() } );
    531490
    532                                                                 eventInfo.data.buttonHandlerRegistered = true;
    533                                                         }
     491                                                                        // Clear active button flag.
     492                                                                        CKEDITOR.ui.dialog.button._.activeButton = null;
     493                                                                } );
    534494
    535                                                         this.getElement().getFirst().unselectable();
    536                                                 }, this );
     495                                                        eventInfo.data.buttonHandlerRegistered = true;
     496                                                }
    537497
     498                                                this.getElement().getFirst().unselectable();
     499                                        }, this );
     500
    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
    546522                        /**
  • _source/plugins/find/dialogs/find.js

     
    554554                return {
    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 : [
    561561                                {
  • _source/plugins/flash/dialogs/flash.js

     
    179179
    180180                return {
    181181                        title : editor.lang.flash.title,
    182                         minWidth : 450,
    183                         minHeight : 400,
     182                        minWidth : 400,
     183                        minHeight : 310,
    184184                        onLoad : function()
    185185                        {
    186186                                if ( editor.config.flashUploadTab == false )
  • _source/plugins/forms/dialogs/button.js

     
    66{
    77        return {
    88                title : editor.lang.button.title,
    9                 minWidth : 400,
    10                 minHeight : 230,
     9                minWidth : 350,
     10                minHeight : 140,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/checkbox.js

     
    66{
    77        return {
    88                title : editor.lang.checkboxAndRadio.checkboxTitle,
    9                 minWidth : 400,
    10                 minHeight : 230,
     9                minWidth : 350,
     10                minHeight : 140,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/form.js

     
    66{
    77        return {
    88                title : editor.lang.form.title,
    9                 minWidth : 400,
    10                 minHeight : 270,
     9                minWidth : 350,
     10                minHeight : 180,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/hiddenfield.js

     
    66{
    77        return {
    88                title : editor.lang.hidden.title,
    9                 minWidth : 400,
    10                 minHeight : 200,
     9                minWidth : 350,
     10                minHeight : 110,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/radio.js

     
    66{
    77        return {
    88                title : editor.lang.checkboxAndRadio.radioTitle,
    9                 minWidth : 400,
    10                 minHeight : 200,
     9                minWidth : 350,
     10                minHeight : 110,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/select.js

     
    130130
    131131        return {
    132132                title : editor.lang.select.title,
    133                 minWidth : 400,
    134                 minHeight : 370,
     133                minWidth : 350,
     134                minHeight : 280,
    135135                onShow : function()
    136136                {
    137137                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/textarea.js

     
    66{
    77        return {
    88                title : editor.lang.textarea.title,
    9                 minWidth : 400,
    10                 minHeight : 230,
     9                minWidth : 350,
     10                minHeight : 140,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/forms/dialogs/textfield.js

     
    66{
    77        return {
    88                title : editor.lang.textfield.title,
    9                 minWidth : 400,
    10                 minHeight : 230,
     9                minWidth : 350,
     10                minHeight : 140,
    1111                onShow : function()
    1212                {
    1313                        // IE BUG: Selection must be in the editor for getSelectedElement()
  • _source/plugins/image/dialogs/image.js

     
    186186                };
    187187                return {
    188188                        title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton,
    189                         minWidth : 450,
    190                         minHeight : 400,
     189                        minWidth : 400,
     190                        minHeight : 310,
    191191                        onShow : function()
    192192                        {
    193193                                this.imageElement = false;
  • _source/plugins/link/dialogs/anchor.js

     
    2121
    2222        return {
    2323                title : editor.lang.anchor.title,
    24                 minWidth : 350,
    25                 minHeight : 150,
     24                minWidth : 300,
     25                minHeight : 60,
    2626                onOk : function()
    2727                {
    2828                        // Always create a new anchor, because of IE BUG.
  • _source/plugins/link/dialogs/link.js

     
    239239
    240240        return {
    241241                title : editor.lang.link.title,
    242                 minWidth : 400,
    243                 minHeight : 320,
     242                minWidth : 350,
     243                minHeight : 230,
    244244                contents : [
    245245                        {
    246246                                id : 'info',
  • _source/plugins/pastefromword/dialogs/pastefromword.js

     
    77{
    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()'
    1414                                + '{'
  • _source/plugins/pastetext/dialogs/pastetext.js

     
    1212                        return {
    1313                                title : editor.lang.pasteText.title,
    1414
    15                                 minWidth : 400,
    16                                 minHeight : 330,
     15                                minWidth : 350,
     16                                minHeight : 240,
    1717
    1818                                onShow : function()
    1919                                {
  • _source/plugins/smiley/dialogs/smiley.js

     
    7979
    8080        return {
    8181                title : editor.lang.smiley.title,
    82                 minWidth : 320,
    83                 minHeight : 210,
     82                minWidth : 270,
     83                minHeight : 120,
    8484                contents : [
    8585                        {
    8686                                id : 'tab1',
  • _source/plugins/specialchar/dialogs/specialchar.js

     
    77{
    88        return {
    99                title : editor.lang.specialChar.title,
    10                 minWidth : 450,
    11                 minHeight : 350,
     10                minWidth : 400,
     11                minHeight : 260,
    1212                buttons : [ CKEDITOR.dialog.cancelButton ],
    1313                charColumns : 17,
    1414                chars :
  • _source/plugins/table/dialogs/table.js

     
    8484
    8585                return {
    8686                        title : editor.lang.table.title,
    87                         minWidth : 480,
    88                         minHeight : 260,
     87                        minWidth : 430,
     88                        minHeight : 170,
    8989                        onShow : function()
    9090                        {
    9191                                // Detect if there's a selected table.
  • _source/plugins/templates/dialogs/templates.js

     
    108108                        return {
    109109                                title :editor.lang.templates.title,
    110110
    111                                 minWidth :450,
    112                                 minHeight :400,
     111                                minWidth : 400,
     112                                minHeight : 310,
    113113
    114114                                contents :
    115115                                [
  • _source/plugins/wsc/dialogs/wsc.js

     
    118118
    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()
    125125                {
  • _source/skins/default/dialog.css

     
    99        visibility: visible;
    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
     12.cke_skin_default .cke_dialog_body
    2113{
    22         float: left;
     14        margin-left: 16px;
     15        margin-right: 16px;
     16        margin-top: 2px;
     17        margin-bottom: 20px;
     18        position: relative;
     19        z-index: 1;
    2320}
    2421
    2522.cke_skin_default .cke_dialog_tl,
    26 .cke_skin_default .cke_dialog_l,
    27 .cke_skin_default .cke_dialog_bl
    28 {
    29         clear: left;
    30 }
    31 
    32 .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);
    55         /* IE6 does not support full color transparent PNG. */
    56         _background-image: url(images/sprites.gif);
    5730        background-repeat: no-repeat;
    58 }
     31        position: absolute;
    5932
    60 .cke_skin_default .cke_dialog_l,
    61 .cke_skin_default .cke_dialog_r
    62 {
    63         background-image: url(images/dialog.sides.png);
    6433        /* IE6 does not support full color transparent PNG. */
    65         _background-image: url(images/dialog.sides.gif);
    66         background-repeat: repeat-y;
     34        _background-image: url(images/sprites.gif);
    6735}
    6836
    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 
    8937.cke_skin_default .cke_dialog_tl
    9038{
    9139        background-position: -16px -16px;
     40        height: 16px;
     41        width: 16px;
     42        top: 0;
     43        left: 0;
    9244}
    9345
    94 .cke_skin_default.cke_rtl .cke_dialog_tl
    95 {
    96         background-position: -16px -397px;
    97 }
    98 
    9946.cke_skin_default .cke_dialog_tr
    10047{
    10148        background-position: -16px -76px;
     49        height: 16px;
     50        width: 16px;
     51        top: 0;
     52        right: 0;
    10253}
    10354
    104 .cke_skin_default.cke_rtl .cke_dialog_tr
     55.cke_skin_default .cke_dialog_tc
    10556{
    106         background-position: -16px -457px;
    107 }
    108 
    109 .cke_skin_default .cke_dialog_t
    110 {
    111         background-position: 0px -136px;
     57        background-position: 0 -136px;
    11258        background-repeat: repeat-x;
     59        height: 16px;
     60        top: 0;
     61        left: 16px;
     62        right: 16px;
    11363}
    11464
    115 .cke_skin_default .cke_dialog_l
     65.cke_skin_default .cke_dialog_bl
    11666{
    117         background-position: 0px 0px;
     67        background-position: -16px -196px;
     68        height: 51px;
     69        width: 30px;
     70        bottom: 0;
     71        left: 0;
    11872}
    11973
    120 .cke_skin_default .cke_dialog_r
     74.cke_skin_default .cke_dialog_br
    12175{
    122         background-position: -16px 0px;
     76        background-position: -16px -263px;
     77        height: 51px;
     78        width: 30px;
     79        bottom: 0;
     80        right: 0;
    12381}
    12482
    125 .cke_skin_default .cke_dialog_bl
     83.cke_skin_default .cke_dialog_bc
    12684{
    127         background-position: -16px -196px;
     85        background-position: 0 -330px;
     86        background-repeat: repeat-x;
     87        height: 51px;
     88        bottom: 0;
     89        left: 30px;
     90        right: 30px;
    12891}
    12992
    130 .cke_skin_default.cke_rtl .cke_dialog_bl
     93.cke_skin_default .cke_dialog_ml,
     94.cke_skin_default .cke_dialog_mr
    13195{
    132         background-position: -16px -517px;
     96        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
     103        /* IE6 does not support full color transparent PNG. */
     104        _background-image: url(images/dialog.sides.gif);
    133105}
    134106
    135 .cke_skin_default .cke_dialog_b
     107.cke_skin_default .cke_dialog_ml
    136108{
    137         background-position: 0px -330px;
    138         background-repeat: repeat-x;
     109        background-position: 0 0;
     110        left: 0;
    139111}
    140112
    141 .cke_skin_default .cke_dialog_br
     113.cke_skin_default .cke_dialog_mr
    142114{
    143         background-position: -16px -263px;
     115        background-position: -16px 0;
     116        right: 0;
    144117}
    145118
    146 .cke_skin_default.cke_rtl .cke_dialog_br
     119.cke_skin_default .cke_browser_iequirks .cke_dialog_ml,
     120.cke_skin_default .cke_browser_iequirks .cke_dialog_mr
    147121{
    148         background-position: -16px -584px;
     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;
     133        position: relative;
    165134}
    166135
    167 .cke_skin_default .single_page .cke_dialog_tabs
    168 {
    169         display: none;
    170 }
    171 
    172 .cke_skin_default .cke_dialog_tabs
    173 {
    174         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 
    203136.cke_skin_default .cke_dialog_contents
    204137{
    205         position: absolute;
    206138        background-color: #f1f1e3;
    207         top: 54px;
    208         left: 16px;
    209         bottom: 51px;
    210         right: 16px;
    211139        border: #d5d59d 1px solid;
    212         border-top: none;
     140        overflow: auto;
    213141}
    214142
    215 .cke_skin_default .single_page .cke_dialog_contents
    216 {
    217         top: 31px;
    218         border-top: #d5d59d 1px solid;
    219 }
    220 
    221143.cke_skin_default .cke_dialog_footer
    222144{
    223         position: absolute;
    224145        background-color: #e3e3c7;
    225         height: 31px;
    226         left: 16px;
    227         right: 16px;
    228         bottom: 20px;
     146        text-align: right;
    229147}
    230148
    231149.cke_skin_default .cke_dialog_page_contents
    232150{
    233         position: absolute;
    234         top: 0px;
    235         bottom: 0px;
    236         left: 0px;
    237         right: 0px;
    238151        padding: 5px 10px;
    239152}
    240153
    241 .cke_skin_default .cke_dialog_tab_center
    242 {
    243         cursor: pointer;
    244 }
     154/* tabs */
    245155
    246 .cke_skin_default .cke_dialog_tab
     156.cke_skin_default .cke_dialog_tabs
    247157{
    248         border-bottom: 1px solid #D5D59D;
     158        height: 23px;
     159        background-color: #e3e3c7;
     160        float:left;
     161        margin-left:10px;
     162        margin-top:-23px;
     163        position: relative;
     164        z-index: 2;
    249165}
    250166
    251 .cke_skin_default .cke_dialog_tab_left,
    252 .cke_skin_default .cke_dialog_tab_right
     167.cke_skin_default a.cke_dialog_tab
    253168{
    254         cursor: pointer;
    255 }
    256 
    257 .cke_skin_default .cke_dialog_tab_center
    258 {
    259169        color: #737357;
    260170        border-left: 1px solid #d5d59d;
    261171        border-right: 1px solid #d5d59d;
    262172        border-top: 1px solid #d5d59d;
    263         height: 15px;
     173        height: 14px;
    264174        padding: 4px 5px;
     175        display: block;
     176        float: left;
     177        cursor: pointer;
    265178}
    266179
    267 .cke_skin_default.cke_browser_webkit.cke_mode_quirks .cke_dialog_tab_center
     180.cke_skin_default a:hover.cke_dialog_tab
    268181{
    269         padding: 4px 5px 5px 5px;
     182        background-color: #f1f1e3;
    270183}
    271184
    272 .cke_skin_default.cke_browser_webkit.cke_mode_standards .cke_dialog_tab_center
     185.cke_skin_default a.cke_dialog_tab_selected
    273186{
    274         padding: 4px 5px 2px 5px;
     187        border-bottom: 1px solid #f1f1e3;
     188        background-color: #f1f1e3;
     189        font-weight: bold;
     190        cursor: default;
    275191}
    276192
     193/* single_page */
    277194
    278 .cke_skin_default .cke_dialog_tab_selected
     195.cke_skin_default .cke_single_page .cke_dialog_tabs
    279196{
    280         border-bottom: 1px solid #F1F1E3;
     197        display: none;
    281198}
    282199
    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
     200.cke_skin_default .cke_single_page .cke_dialog_title
    286201{
    287         cursor: default;
     202        padding-bottom: 3px;
    288203}
    289204
    290 .cke_skin_default .cke_dialog_tab_selected .cke_dialog_tab_center
    291 {
    292         background-color: #f1f1e3;
    293         font-weight: bold;
    294 }
    295 
    296205.cke_skin_default .cke_dialog_ui_vbox table,
    297206.cke_skin_default .cke_dialog_ui_hbox table
    298207{
     
    375284        vertical-align: top;
    376285}
    377286
    378 .cke_skin_default .cke_dialog_ui_button table
    379 {
    380         border: #737357 1px solid;
    381 }
     287/* button */
    382288
    383 .cke_skin_default .cke_dialog_ui_button.disabled table
     289.cke_skin_default a.cke_dialog_ui_button
    384290{
    385         border: #898980 1px solid;
     291        border-collapse: separate;
    386292}
    387293
    388 .cke_skin_default .cke_dialog_ui_button_txt
     294.cke_skin_default span.cke_dialog_ui_button
    389295{
     296        border: #737357 1px solid;
    390297        padding: 2px 10px;
    391298        text-align: center;
    392299        color: #3b3b1f;
    393300        background-color: #c7c78f;
     301        display: inline-block;
    394302}
    395303
    396 .cke_skin_default .cke_dialog_ui_button.disabled .cke_dialog_ui_button_txt
     304.cke_skin_default a.cke_dialog_ui_button span.cke_disabled
    397305{
     306        border: #898980 1px solid;
    398307        color: #5e5e55;
    399308        background-color: #c5c5b3;
    400309}
    401310
    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
     311.cke_skin_default a:focus span.cke_dialog_ui_button,
     312.cke_skin_default a:active span.cke_dialog_ui_button
    404313{
    405314        background-color: #e3e3c7;
    406315}
    407316
     317.cke_skin_default .cke_dialog_footer_buttons
     318{
     319        display: inline-table;
     320        margin-right: 12px;
     321}
     322
     323.cke_skin_default .cke_dialog_footer_buttons span.cke_dialog_ui_button
     324{
     325        width: 60px;
     326        margin: 7px 0;
     327}
     328
    408329.cke_skin_default strong
    409330{
    410331        font-weight: bold;
     
    413334.cke_skin_default .cke_dialog_footer_buttons
    414335{
    415336        width: auto;
    416         position: absolute;
    417         right: 10px;
    418         top: 7px;
    419337}
    420338
    421 .cke_skin_default.cke_rtl .cke_dialog_footer_buttons
    422 {
    423         right: auto;
    424         left: 10px;
    425 }
     339/* close_button */
    426340
    427341.cke_skin_default .cke_dialog_close_button
    428342{
    429343        background-image: url(images/sprites.png);
    430         /* IE6 does not support full color transparent PNG. */
    431         _background-image: url(images/sprites.gif);
    432344        background-repeat: no-repeat;
    433345        background-position: -16px -651px;
    434346        position: absolute;
     
    437349        width: 20px;
    438350        right: 10px;
    439351        top: 5px;
     352
     353        _right: 22px;
     354
     355        /* IE6 does not support full color transparent PNG. */
     356        _background-image: url(images/sprites.gif);
    440357}
    441358
    442359.cke_skin_default .cke_dialog_close_button:hover
     
    450367        right: auto;
    451368}
    452369
    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 
    536370.cke_skin_default .cke_dialog_ui_input_select
    537371{
    538372        border: 1px solid #a0a0a0;
     
    551385}
    552386
    553387/*
    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;
    587 }
    588 
    589 /*
    590388 * Some utility CSS classes for dialog authors.
    591389 */
    592390.cke_skin_default .cke_dialog .dark_background
  • _source/skins/default/skin.js

     
    66CKEDITOR.skins.add( 'default', (function()
    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' ] }
    2722        };
    2823})() );
    2924
    30 (function()
     25if ( CKEDITOR.dialog )
    3126{
    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 )
     27        CKEDITOR.dialog.setMargins( 0, 14, 18, 14 );
     28
     29        CKEDITOR.dialog.on( 'resize', function( evt )
    3630                {
    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                 };
     31                        var data = evt.data,
     32                                width = data.width,
     33                                height = data.height,
     34                                dialog = data.dialog,
     35                                standardsMode = !CKEDITOR.env.quirk;
    4336
    44         if ( CKEDITOR.dialog )
    45         {
    46                 CKEDITOR.dialog.setMargins( 0, 14, 18, 14 );
     37                        if ( data.skin != 'default' )
     38                                return;
    4739
    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;
     40                        dialog.parts.contents.setStyles(
     41                                {
     42                                        width : width + 'px',
     43                                        height : height + 'px'
     44                                });
    5745
    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 );
     46                        if ( !CKEDITOR.env.ie )
     47                                return;
    7248
    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 )
     49                        // Fix the size of the elements which have flexible lengths.
     50
     51                        setTimeout( function()
    8052                                {
    81                                         var contentWidth = width - 34,
    82                                                 contentHeight = dialog.getPageCount() > 1 ? height - 106 : height - 84,
    83                                                 contentsLength = dialog.parts.contents.getChildCount();
     53                                        var content = dialog.parts.contents,
     54                                                body = content.getParent(),
     55                                                innerDialog = body.getParent();
    8456
    85                                         if ( !standardsMode )
    86                                         {
    87                                                 contentWidth += 2;
    88                                                 contentHeight += 2;
    89                                                 dialog.parts.tabs.setStyle( 'top', '33px' );
    90                                         }
     57                                        // tc
     58                                        el = innerDialog.getChild( 2 );
     59                                        el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
    9160
    92                                         setSize( dialog, 'title', standardsMode ? width - 52 : width - 32, standardsMode ? null : 31 );
    93                                         setSize( dialog, 'contents', contentWidth, contentHeight );
    94                                         setSize( dialog, 'footer', width - 32);
     61                                        // bc
     62                                        el = innerDialog.getChild( 7 );
     63                                        el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
    9564
    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                                 }
     65                                        // ml
     66                                        el = innerDialog.getChild( 4 );
     67                                        el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
    10768
    108                                 setSize( dialog, null, width, height );
    109                         });
    110         }
    111 })();
     69                                        // ml
     70                                        el = innerDialog.getChild( 5 );
     71                                        el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
     72                                },
     73                                0 );
     74                });
     75}
  • _source/themes/default/theme.js

     
    112112                        var baseIdNumber = CKEDITOR.tools.getNextNumber();
    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();
    172151
     152
    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                },
    182166
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy