Changeset 4653


Ignore:
Timestamp:
12/10/09 19:38:27 (6 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

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • CKEditor/branches/versions/3.1.x/_dev/releaser/release.bat

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • 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 – 2015 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy