Changeset 4653


Ignore:
Timestamp:
12/10/09 19:38:27 (4 years ago)
Author:
fredck
Message:

#4228 : Introduced the Shared Spaces feature. Merged the features/sharedspaces branch.

Location:
CKEditor/branches/versions/3.1.x
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/versions/3.1.x

  • CKEditor/branches/versions/3.1.x/CHANGES.html

    r4643 r4653  
    5252                <li><a href="http://dev.fckeditor.net/ticket/4342">#4342</a> : Introduced the bodyId and bodyClass settings to specify the id and class. to be used in the editing area at runtime.</li> 
    5353                <li><a href="http://dev.fckeditor.net/ticket/3401">#3401</a> : Introduced the baseHref setting so it's possible to set the URL to be used to resolve absolute and relative URLs in the contents.</li> 
     54                <li><a href="http://dev.fckeditor.net/ticket/4228">#4228</a> : Introduced the Shared Spaces feature.</li> 
    5455        </ul> 
    5556        <p> 
  • CKEditor/branches/versions/3.1.x/_dev/releaser/ckreleaser.release

  • CKEditor/branches/versions/3.1.x/_dev/releaser/release.bat

  • CKEditor/branches/versions/3.1.x/_samples/index.html

    r4636 r4653  
    3838                <li><a href="api_dialog.html">Using the JavaScript API to customize dialogs</a></li> 
    3939                <li><a href="enterkey.html">Using the "Enter" key in CKEditor</a></li> 
     40                <li><a href="sharedspaces.html">Shared toolbars</a></li> 
    4041                <li><a href="jqueryadapter.html">jQuery adapter example</a></li> 
    4142        </ul> 
  • CKEditor/branches/versions/3.1.x/_source/skins/kama/elementspath.css

    r3649 r4653  
    1414.cke_skin_kama .cke_path 
    1515{ 
    16         padding: 0 5px; 
    1716        display: inline-block; 
    1817        float: left; 
     18        margin-top: 5px; 
    1919} 
    2020 
     
    2424} 
    2525 
     26.cke_shared .cke_skin_kama .cke_path 
     27{ 
     28        margin: 0 0 5px; 
     29} 
     30 
    2631.cke_skin_kama .cke_path a, 
    2732.cke_skin_kama .cke_path .cke_empty 
     
    2934        display: inline-block; 
    3035        float: left; 
    31         padding-top: 1px; 
    32         padding-bottom: 1px; 
    33         padding-left: 4px; 
    34         padding-right: 4px; 
    35         margin-bottom : 3px; 
     36        padding: 1px 4px 0; 
    3637        color: #60676a; 
    3738} 
     
    5354{ 
    5455        background-color: #dff1ff; 
    55         padding-top: 1px; 
    56         padding-bottom: 1px; 
    57         padding-left: 4px; 
    58         padding-right: 4px; 
     56        padding: 1px 4px 0; 
    5957        outline: none; 
    6058        color : #000; 
  • CKEditor/branches/versions/3.1.x/_source/skins/kama/mainui.css

    r3927 r4653  
    3030        background-position: 0 -1950px; 
    3131        display: block; 
     32        padding: 5px; 
    3233 
    3334        /*background-color: Red;*/ 
     35} 
     36 
     37.cke_shared .cke_skin_kama .cke_wrapper 
     38{ 
     39        padding-bottom: 0; 
    3440} 
    3541 
     
    6773{ 
    6874        margin: 5px; 
    69         padding: 0 5px 5px; 
    7075} 
    7176 
     
    138143        top: 0; 
    139144} 
     145 
     146.cke_skin_kama .cke_browser_ie7 .cke_editor 
     147{ 
     148        display: inline-block; 
     149} 
     150 
     151.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper 
     152{ 
     153        padding-bottom: 5px; 
     154} 
     155 
  • CKEditor/branches/versions/3.1.x/_source/skins/kama/skin.js

    r4621 r4653  
    148148                                        var cssContent, 
    149149                                                uiStyle = getStylesheet( CKEDITOR.document ), 
    150                                                 cssId = '#cke_' + CKEDITOR.tools.escapeCssSelector( editor.name ); 
     150                                                cssId = '.cke_editor_' + CKEDITOR.tools.escapeCssSelector( editor.name ); 
    151151 
    152152                                        var cssSelectors = 
  • CKEditor/branches/versions/3.1.x/_source/skins/kama/toolbar.css

    r4555 r4653  
    2323{ 
    2424        clear: both; 
    25         padding: 5px 3px 5px 6px; 
    26 } 
    27  
    28 .cke_skin_kama .cke_rtl .cke_toolbox 
    29 { 
    30         padding: 5px 6px 5px 3px; 
    3125} 
    3226 
     
    4337        float: right; 
    4438        border: 1px outset #D3D3D3; 
    45         margin: 11px 4px 2px; 
     39        margin: 11px 0 2px; 
    4640        cursor: pointer; 
    4741} 
     
    396390        cursor: default; 
    397391} 
     392 
     393.cke_skin_kama .cke_browser_ie7 .cke_toolbox 
     394{ 
     395        margin-bottom: 2px; 
     396} 
     397 
     398.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_toolbox 
     399{ 
     400        margin-bottom: 0; 
     401} 
     402 
     403.cke_skin_kama .cke_browser_gecko .cke_toolbox 
     404{ 
     405        /* Define the padding-bottom otherwise the collapser button will not be clicable in FF */ 
     406        padding-bottom: 1px; 
     407} 
  • CKEditor/branches/versions/3.1.x/_source/skins/office2003/mainui.css

    r3927 r4653  
    1919} 
    2020 
    21 .cke_skin_office2003 .cke_top, .cke_skin_office2003 .cke_bottom 
     21.cke_skin_office2003 .cke_top, 
     22.cke_skin_office2003 .cke_bottom, 
     23 .cke_shared .cke_skin_office2003 
    2224{ 
    2325        background-color: #f7f8fd; 
  • CKEditor/branches/versions/3.1.x/_source/skins/v2/mainui.css

    r3927 r4653  
    2828} 
    2929 
    30 .cke_skin_v2 .cke_top, .cke_skin_v2 .cke_bottom 
     30.cke_skin_v2 .cke_top, 
     31.cke_skin_v2 .cke_bottom, 
     32 .cke_shared .cke_skin_v2 
    3133{ 
    3234        background-color: #efefde; 
  • CKEditor/branches/versions/3.1.x/_source/themes/default/theme.js

    r4463 r4653  
    66CKEDITOR.themes.add( 'default', (function() 
    77{ 
     8        function checkSharedSpace( editor, spaceName ) 
     9        { 
     10                var container, 
     11                        element; 
     12 
     13                // Try to retrieve the target element from the sharedSpaces settings.  
     14                element = editor.config.sharedSpaces; 
     15                element = element && element[ spaceName ]; 
     16                element = element && CKEDITOR.document.getById( element ); 
     17 
     18                // If the element is available, we'll then create the container for 
     19                // the space.                    
     20                if ( element ) 
     21                { 
     22                        // Creates an HTML structure that reproduces the editor class hierarchy. 
     23                        var html =  
     24                                '<span class="cke_shared">' + 
     25                                '<span class="' + editor.skinClass + ' cke_editor_' + editor.name + '">' + 
     26                                '<span class="' + CKEDITOR.env.cssClass + '">' + 
     27                                '<span class="cke_wrapper cke_' + editor.lang.dir + '">' + 
     28                                '<span class="cke_editor">' + 
     29                                '<div class="cke_' + spaceName + '">' + 
     30                                '</div></span></span></span></span></span>'; 
     31 
     32                        var mainContainer = element.append( CKEDITOR.dom.element.createFromHtml( html, element.getDocument() ) ); 
     33 
     34                        // Only the first container starts visible. Others get hidden. 
     35                        if ( element.getCustomData( 'cke_hasshared' ) ) 
     36                                mainContainer.hide(); 
     37                        else 
     38                                element.setCustomData( 'cke_hasshared', 1 ); 
     39                         
     40                        // Get the deeper inner <div>. 
     41                        container = mainContainer.getChild( [0,0,0,0] ); 
     42 
     43                        // When the editor gets focus, we show the space container, hiding others. 
     44                        editor.on( 'focus', function() 
     45                                { 
     46                                        for ( var i = 0, sibling, children = element.getChildren() ; ( sibling = children.getItem( i ) ) ; i++ ) 
     47                                        { 
     48                                                if ( sibling.type == CKEDITOR.NODE_ELEMENT  
     49                                                        && !sibling.equals( mainContainer )  
     50                                                        && sibling.hasClass( 'cke_shared' ) ) 
     51                                                { 
     52                                                        sibling.hide(); 
     53                                                } 
     54                                        } 
     55 
     56                                        mainContainer.show(); 
     57                                }); 
     58 
     59                        editor.on( 'destroy', function() 
     60                                { 
     61                                        mainContainer.remove(); 
     62                                }); 
     63                } 
     64 
     65                return container; 
     66        } 
     67 
    868        return { 
    969                build : function( editor, themePath ) 
     
    45105                        } 
    46106 
     107                        var sharedTop           = topHtml && checkSharedSpace( editor, 'top' ), 
     108                                sharedBottoms   = checkSharedSpace( editor, 'bottom' ); 
     109                                 
     110                        sharedTop               && ( sharedTop.setHtml( topHtml )               , topHtml = '' ); 
     111                        sharedBottoms   && ( sharedBottoms.setHtml( bottomHtml ), bottomHtml = '' ); 
     112 
    47113                        var container = CKEDITOR.dom.element.createFromHtml( [ 
    48114                                '<span' + 
    49115                                        ' id="cke_', name, '"' + 
    50116                                        ' onmousedown="return false;"' + 
    51                                         ' class="', editor.skinClass, '"' + 
     117                                        ' class="', editor.skinClass, ' cke_editor_', name, '"' + 
    52118                                        ' dir="', editor.lang.dir, '"' + 
    53119                                        ' title="', ( CKEDITOR.env.gecko ? ' ' : '' ), '"' + 
     
    99165 
    100166                        var element = CKEDITOR.dom.element.createFromHtml( [ 
    101                                         '<div id="cke_' + editor.name.replace('.', '\\.') + '_dialog" class="cke_skin_', editor.skinName, 
     167                                        '<div class="cke_editor_' + editor.name.replace('.', '\\.') + '_dialog cke_skin_', editor.skinName, 
    102168                                                '" dir="', editor.lang.dir, '"' + 
    103169                                                ' lang="', editor.langCode, '"' + 
     
    234300        return this.container.getChild( [ 0, 0 ] ); 
    235301}; 
     302 
     303/** 
     304 * Makes it possible to place some of the editor UI blocks, like the toolbar 
     305 * and the elements path, into any element in the page. 
     306 * The elements used to hold the UI blocks can be shared among several editor 
     307 * instances. In that case, only the blocks of the active editor instance will 
     308 * display. 
     309 * @name CKEDITOR.config.sharedSpaces 
     310 * @type Object 
     311 * @default undefined 
     312 * @example 
     313 * // Place the toolbar inside the element with ID "someElementId" and the 
     314 * // elements path into the element with ID "anotherId". 
     315 * config.sharedSpaces = 
     316 * { 
     317 *     top : 'someElementId', 
     318 *     bottom : 'anotherId' 
     319 * }; 
     320 * @example 
     321 * // Place the toolbar inside the element with ID "someElementId". The 
     322 * // elements path will remain attached to the editor UI. 
     323 * config.sharedSpaces = 
     324 * { 
     325 *     top : 'someElementId' 
     326 * }; 
     327 */ 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy