Ticket #8823: 8823and8727.patch

File 8823and8727.patch, 25.7 KB (added by kaga, 10 years ago)
  • CKEditorConfig.cs

     
    181181                                else if (customName == "stylesSet" && ((string[])propertyInfo.GetValue(obj, new object[0])).Length == 1 && !((string[])propertyInfo.GetValue(obj, new object[0]))[0].StartsWith("{"))
    182182                                {
    183183                                        object staticValueToCompare = staticPropertyInfoDictionary[propertyInfo.Name];
    184                                         if (!campareArray(((string[]) propertyInfo.GetValue(obj, new object[0])), (string[]) staticValueToCompare))
     184                                        if (!campareArray(((string[])propertyInfo.GetValue(obj, new object[0])), (string[])staticValueToCompare))
    185185                                        {
    186                                                 string[] valueToJSON = (string[]) propertyInfo.GetValue(obj, new object[0]);
     186                                                string[] valueToJSON = (string[])propertyInfo.GetValue(obj, new object[0]);
    187187                                                sbJSON.Append("\"" + (string.IsNullOrEmpty(customName) ? propertyInfo.Name : customName) + "\" : ");
    188188                                                if ((valueToJSON[0].StartsWith("[") || valueToJSON[0].StartsWith("{")) &&
    189189                                                        (valueToJSON[0].EndsWith("]") || valueToJSON[0].EndsWith("}")))
    190190                                                        sbJSON.Append(EscapeStringForJavaScript(valueToJSON[0]).TrimStart(new char[] { '\'' }).TrimEnd(new char[] { '\'' }));
    191191                                                else
    192                                                         sbJSON.Append("\"" + EscapeStringForJavaScript(valueToJSON[0]).TrimStart(new char[] {'\''}).TrimEnd(new char[] {'\''}) + "\"");
     192                                                        sbJSON.Append("\"" + EscapeStringForJavaScript(valueToJSON[0]).TrimStart(new char[] { '\'' }).TrimEnd(new char[] { '\'' }) + "\"");
    193193                                                sbJSON.Append(", ");
    194194                                        }
    195195                                        continue;
     
    199199                                        object[] objArray = (object[])((object[])propertyInfo.GetValue(obj, new object[0]))[0];
    200200                                        oc.Append(", \"on\" : {").Append(((object[])objArray)[0]).Append(" : ").Append(((object[])objArray)[1]).Append(" } ");
    201201                                }
     202                                else if (propertyInfo.Name == "stylesheetParser_skipSelectors" || propertyInfo.Name == "stylesheetParser_validSelectors")
     203                                {
     204                                        string valueToJSON = (string)propertyInfo.GetValue(obj, new object[0]);
     205                                        string staticValueToCompare = (string)staticPropertyInfoDictionary[propertyInfo.Name];
     206                                        if (valueToJSON != staticValueToCompare)
     207                                                oc.Append(", " + propertyInfo.Name + ": " + valueToJSON);
     208                                }
     209                                else if (propertyInfo.Name == "entities_processNumerical")
     210                                {
     211                                        string valueToJSON = (string)propertyInfo.GetValue(obj, new object[0]);
     212                                        string staticValueToCompare = (string)staticPropertyInfoDictionary[propertyInfo.Name];
     213                                        if (valueToJSON != staticValueToCompare)
     214                                        {
     215                                                if (valueToJSON.ToLower() == false.ToString().ToLower() || valueToJSON.ToLower() == true.ToString().ToLower())
     216                                                        oc.Append(", " + propertyInfo.Name + ": " + bool.Parse(valueToJSON));
     217                                                else
     218                                                        oc.Append(", " + propertyInfo.Name + ": " + valueToJSON);
     219                                        }
     220                                }
    202221                                else
    203222                                {
    204223                                        object valueToJSON = propertyInfo.GetValue(obj, new object[0]);
    205224                                        object staticValueToCompare = staticPropertyInfoDictionary[propertyInfo.Name];
    206                                         if (!forceAddToJSON && !valueToJSON.GetType().IsArray && !staticValueToCompare.GetType().IsArray && staticValueToCompare.ToString() == valueToJSON.ToString())
     225                                        if (valueToJSON == null && staticValueToCompare == null)
    207226                                                continue;
     227                                        else if (valueToJSON.GetType().IsArray && staticValueToCompare == null) { }
     228                                        else if (!forceAddToJSON && !valueToJSON.GetType().IsArray && !staticValueToCompare.GetType().IsArray && staticValueToCompare.ToString() == valueToJSON.ToString())
     229                                                continue;
    208230                                        else if (!forceAddToJSON && valueToJSON.GetType().IsArray && staticValueToCompare.GetType().IsArray)
    209231                                        {
    210232                                                if (valueToJSON.GetType() == typeof(int[]) && campareArray((int[])valueToJSON, (int[])staticValueToCompare))
     
    363385                #region CKSerializable Property
    364386
    365387                /// <summary>
     388                /// Extra height in pixel to leave between the bottom boundary of content with document size when auto resizing.
     389                /// Default Value: 0
     390                /// </summary>
     391                public int autoGrow_bottomSpace { get; set; }
     392
     393                /// <summary>
    366394                /// The maximum height to which the editor can reach using AutoGrow. Zero means unlimited.
    367395                /// Default Value: 0
    368396                /// </summary>
     
    377405                public int autoGrow_minHeight { get; set; }
    378406
    379407                /// <summary>
     408                /// Whether to have the auto grow happen on editor creation.
     409                /// Default Value: false
     410                /// </summary>
     411                [CKSerializable]
     412                public bool autoGrow_onStartup { get; set; }
     413
     414                /// <summary>
     415                /// Whether automatically create wrapping blocks around inline contents inside document body, this helps to ensure the integrality of the block enter mode. Note: Changing the default value might introduce unpredictable usability issues.
     416                /// Default Value: true
     417                /// </summary>
     418                [CKSerializable]
     419                public bool autoParagraph { get; set; }
     420
     421                /// <summary>
    380422                /// Whether the replaced element (usually a textarea) is to be updated automatically when posting the form containing the editor.
    381423                /// Default Value: true
    382424                /// </summary>
     
    398440                public string baseHref { get; set; }
    399441
    400442                /// <summary>
     443                /// Whether to escape basic HTML entities in the document, including: nbsp, gt, lt, amp.
     444                /// Default Value: true
     445                /// </summary>
     446                [CKSerializable]
     447                public bool basicEntities { get; set; }
     448
     449                /// <summary>
    401450                /// A list of keystrokes to be blocked if not defined in the CKEDITOR.config.keystrokes setting. In this way it is possible
    402451                /// to block the default browser behavior for those keystrokes.
    403452                /// Default Value:
     
    459508                public string colorButton_colors { get; set; }
    460509
    461510                /// <summary>
     511                /// Whether to enable the More Colors button in the color selectors.
     512                /// Default Value: true
     513                /// </summary>
     514                [CKSerializable]
     515                public bool colorButton_enableMore { get; set; }
     516
     517                /// <summary>
    462518                /// Holds the style definition to be used to apply the text foreground color.
    463519                /// Default Value:
    464520                /// "{
     
    568624                public string defaultLanguage { get; set; }
    569625
    570626                /// <summary>
     627                /// A setting that stores CSS rules to be injected into the page with styles to be applied to the tooltip element.
     628                /// Default Value: ""
     629                /// </summary>
     630                [CKSerializable]
     631                public string devtools_styles { get; set; }
     632
     633                /// <summary>
    571634                /// The color of the dialog background cover. It should be a valid CSS color string.
    572635                /// Default Value: "white"
    573636                /// </summary>
     
    724787                public bool entities_latin { get; set; }
    725788
    726789                /// <summary>
     790                /// Whether to convert all remaining characters not included in the ASCII character table to their relative decimal numeric representation of HTML entity.
     791                /// When set to force, it will convert all entities into this format. For example the phrase "This is Chinese: 汉语." is output as "This is Chinese: &#27721;&#35821;."
     792                /// Default Value: false
     793                /// </summary>
     794                [CKSerializable]
     795                public string entities_processNumerical { get; set; }
     796
     797                /// <summary>
    727798                /// List of additional plugins to be loaded.
    728799                /// This is a tool setting which makes it easier to add new plugins, whithout having to touch and possibly breaking the CKEDITOR.config.plugins setting.
    729800                /// Default Value: ""
     
    10461117                public string indentUnit { get; set; }
    10471118
    10481119                /// <summary>
     1120                /// Allows CKEditor to override jQuery.fn.val(), making it possible to use the val() function on textareas, as usual, having it synchronized with CKEditor.
     1121                /// This configuration option is global and executed during the jQuery Adapter loading. It can't be customized across editor instances.
     1122                /// Default Value: true
     1123                /// </summary>
     1124                [CKSerializable]
     1125                public bool jqueryOverrideVal { get; set; }
     1126
     1127                /// <summary>
    10491128                /// A list associating keystrokes to editor commands. Each element in the list is an array where the first item is the keystroke,
    10501129                /// and the second is the name of the command to be executed.
     1130                /// Default Value: null
     1131                /// </summary>
     1132                [CKSerializable]
     1133                public object[] justifyClasses { get; set; }
     1134
     1135                /// <summary>
     1136                /// A list associating keystrokes to editor commands. Each element in the list is an array where the first item is the keystroke,
     1137                /// and the second is the name of the command to be executed.
    10511138                /// Default Value:
    10521139                /// GlobalConfigObj.keystrokes = new object[]
    10531140                /// {
     
    10841171                public string menu_groups { get; set; }
    10851172
    10861173                /// <summary>
     1174                /// The HTML to load in the editor when the "new page" command is executed.
     1175                /// Default Value: ""
     1176                /// </summary>
     1177                [CKSerializable]
     1178                public string newpage_html { get; set; }
     1179
     1180                /// <summary>
    10871181                /// The file that provides the MS Word cleanup function for pasting operations.
    10881182                /// Note: This is a global configuration shared by all editor instances present in the page.
    10891183                /// Default Value: "default"
     
    11351229                /// Default Value: []
    11361230                /// </summary>
    11371231                public string[] protectedSource { get; set; }
    1138                
     1232
    11391233                /// <summary>
     1234                /// If true, makes the editor start in read-only state. Otherwise, it will check if the linked <textarea> element has the disabled attribute.
     1235                /// Default Value: false
     1236                /// </summary>
     1237                [CKSerializable]
     1238                public bool readOnly { get; set; }
     1239
     1240                /// <summary>
    11401241                /// The dialog contents to removed. It's a string composed by dialog name and tab name with a colon between them.
    11411242                /// Separate each pair with semicolon (see example). Note: All names are case-sensitive.
    11421243                /// Note: Be cautious when specifying dialog tabs that are mandatory, like "info",
     
    14511552                public string[] specialChars { get; set; }
    14521553
    14531554                /// <summary>
     1555                /// Sets whether the editor should have the focus when the page loads.
     1556                /// Default Value: false
     1557                /// </summary>
     1558                [CKSerializable]
     1559                public bool startupFocus { get; set; }
     1560
     1561                /// <summary>
    14541562                /// The mode to load at the editor startup. It depends on the plugins loaded. By default, the "wysiwyg" and "source" modes are available.
    14551563                /// public enum StartupMode
    14561564                /// {
     
    14781586                public bool startupShowBorders { get; set; }
    14791587
    14801588                /// <summary>
     1589                /// A regular expression that defines whether a CSS rule will be skipped by the Stylesheet Parser plugin. A CSS rule matching the regular expression will be ignored and will not be available in the Styles drop-down list.
     1590                /// Default Value: /(^body\.|^\.)/i
     1591                /// </summary>
     1592                [CKSerializable]
     1593                public string stylesheetParser_skipSelectors { get; set; }
     1594
     1595                /// <summary>
     1596                /// A regular expression that defines which CSS rules will be used by the Stylesheet Parser plugin. A CSS rule matching the regular expression will be available in the Styles drop-down list.
     1597                /// Default Value: /\w+\.\w+/
     1598                /// </summary>
     1599                [CKSerializable]
     1600                public string stylesheetParser_validSelectors { get; set; }
     1601
     1602                /// <summary>
    14811603                /// The "styles definition set" to use in the editor. They will be used in the styles combo and the Style selector of the div container.
    14821604                /// The styles may be defined in the page containing the editor, or can be loaded on demand from an external file. In the second case,
    14831605                /// if this setting contains only a name, the styles definition file will be loaded from the "styles" folder inside the styles plugin folder.
     
    15171639                public int tabSpaces { get; set; }
    15181640
    15191641                /// <summary>
     1642                /// The templates definition set to use. It accepts a list of names separated by comma. It must match definitions loaded with the templates_files setting.
     1643                /// Default Value: "default"
     1644                /// </summary>
     1645                [CKSerializable]
     1646                public string templates { get; set; }
     1647
     1648                /// <summary>
    15201649                /// The list of templates definition files to load.
    15211650                /// Default Value: new string[] { "~/plugins/templates/templates/default.js" };
    15221651                /// </summary>
     
    16001729                public bool toolbarCanCollapse { get; set; }
    16011730
    16021731                /// <summary>
     1732                /// When enabled, makes the arrow keys navigation cycle within the current toolbar group. Otherwise the arrows will move trought all items available in the toolbar. The TAB key will still be used to quickly jump among the toolbar groups.
     1733                /// Default Value: true
     1734                /// </summary>
     1735                [CKSerializable]
     1736                public bool toolbarGroupCycling { get; set; }
     1737
     1738                /// <summary>
    16031739                /// The "theme space" to which rendering the toolbar. For the default theme, the recommended options are{
    16041740                /// public enum ToolbarLocation
    16051741                /// {
     
    17191855                static CKEditorConfig()
    17201856                {
    17211857                        CKEditorConfig GlobalConfigObj = new CKEditorConfig();
     1858                        GlobalConfigObj.autoGrow_bottomSpace = 0;
    17221859                        GlobalConfigObj.autoGrow_maxHeight = 0;
    17231860                        GlobalConfigObj.autoGrow_minHeight = 200;
     1861                        GlobalConfigObj.autoGrow_onStartup = false;
     1862                        GlobalConfigObj.autoParagraph = true;
    17241863                        GlobalConfigObj.autoUpdateElement = true;
    17251864                        GlobalConfigObj.baseFloatZIndex = 10000;
    17261865                        GlobalConfigObj.baseHref = string.Empty;
     1866                        GlobalConfigObj.basicEntities = true;
    17271867                        GlobalConfigObj.blockedKeystrokes = new int[] { CKEDITOR_CTRL + 66 /*B*/, CKEDITOR_CTRL + 73 /*I*/, CKEDITOR_CTRL + 85 /*U*/};
    17281868                        GlobalConfigObj.bodyClass = string.Empty;
    17291869                        GlobalConfigObj.bodyId = string.Empty;
    17301870                        GlobalConfigObj.browserContextMenuOnCtrl = true;
    17311871                        GlobalConfigObj.colorButton_backStyle = @"{ element : 'span', styles : { 'background-color' : '#(color)' } }";
    17321872                        GlobalConfigObj.colorButton_colors = "000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF";
     1873                        GlobalConfigObj.colorButton_enableMore = true;
    17331874                        GlobalConfigObj.colorButton_foreStyle = @"{ element : 'span',
    17341875styles : { 'color' : '#(color)' },
    17351876overrides : [ { element : 'font', attributes : { 'color' : null } } ] }";
     
    17441885                        GlobalConfigObj.coreStyles_underline = @"{ element : 'u' }";
    17451886                        GlobalConfigObj.customConfig = "config.js";
    17461887                        GlobalConfigObj.defaultLanguage = "en";
     1888                        GlobalConfigObj.devtools_styles = "";
    17471889                        GlobalConfigObj.dialog_backgroundCoverColor = "white";
    17481890                        GlobalConfigObj.dialog_backgroundCoverOpacity = 0.5;
    17491891                        GlobalConfigObj.dialog_buttonsOrder = DialogButtonsOrder.OS;
     
    17621904                        GlobalConfigObj.entities_additional = "#39";
    17631905                        GlobalConfigObj.entities_greek = true;
    17641906                        GlobalConfigObj.entities_latin = true;
     1907                        GlobalConfigObj.entities_processNumerical = false.ToString();
    17651908                        GlobalConfigObj.extraPlugins = string.Empty;
    17661909                        GlobalConfigObj.filebrowserBrowseUrl = string.Empty;
    17671910                        GlobalConfigObj.filebrowserFlashBrowseUrl = string.Empty;
     
    18141957                        GlobalConfigObj.indentClasses = new string[0];
    18151958                        GlobalConfigObj.indentOffset = 40;
    18161959                        GlobalConfigObj.indentUnit = "px";
     1960                        GlobalConfigObj.jqueryOverrideVal = true;
     1961                        GlobalConfigObj.justifyClasses = null;
    18171962                        GlobalConfigObj.keystrokes = new object[]
    18181963                        {
    18191964                                new object[] { CKEDITOR_ALT + 121 /*F10*/, "toolbarFocus" },
     
    18301975                        };
    18311976                        GlobalConfigObj.language = string.Empty;
    18321977                        GlobalConfigObj.menu_groups = "clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea";
     1978                        GlobalConfigObj.newpage_html = string.Empty;
    18331979                        GlobalConfigObj.pasteFromWordCleanupFile = "default";
    18341980                        GlobalConfigObj.pasteFromWordNumberedHeadingToList = false;
    18351981                        GlobalConfigObj.pasteFromWordPromptCleanup = false;
     
    18381984                        //      todo
    18391985                        //this.plugins = string.Empty;
    18401986                        GlobalConfigObj.protectedSource = new string[0];
     1987                        GlobalConfigObj.readOnly = false;
    18411988                        GlobalConfigObj.removeDialogTabs = string.Empty;
    18421989                        GlobalConfigObj.removeFormatAttributes = "class,style,lang,width,height,align,hspace,valign";
    18431990                        GlobalConfigObj.removeFormatTags = "b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var";
     
    18912038                                "{","|","}","~",
    18922039                                "€", "‘", "’", "“", "”", "–", "—", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "®", "¯", "°", "&", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "&", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ŵ", "Ŷ", "ŵ", "ŷ", "‚", "‛", "„", "…", "™", "►", "•", "→", "⇒", "⇔", "♦", "≈"
    18932040                        };
     2041                        GlobalConfigObj.startupFocus = false;
    18942042                        GlobalConfigObj.startupMode = StartupMode.Wysiwyg;
    18952043                        GlobalConfigObj.startupOutlineBlocks = false;
    18962044                        GlobalConfigObj.startupShowBorders = true;
     2045                        GlobalConfigObj.stylesheetParser_skipSelectors = @"/(^body\.|^\.)/i";
     2046                        GlobalConfigObj.stylesheetParser_validSelectors = @"/\w+\.\w+/";
    18972047                        GlobalConfigObj.stylesSet = new string[] { "default" };
    18982048                        GlobalConfigObj.tabIndex = 0;
    18992049                        GlobalConfigObj.tabSpaces = 0;
     2050                        GlobalConfigObj.templates = "default";
    19002051                        GlobalConfigObj.templates_files = new string[] { "~/plugins/templates/templates/default.js" };
    19012052                        GlobalConfigObj.templates_replaceContent = true;
    19022053                        GlobalConfigObj.theme = "default";
     
    19242075                                new object[] { "Maximize", "ShowBlocks", "-", "About" }
    19252076                        };
    19262077                        GlobalConfigObj.toolbarCanCollapse = true;
     2078                        GlobalConfigObj.toolbarGroupCycling = true;
    19272079                        GlobalConfigObj.toolbarLocation = ToolbarLocation.Top;
    19282080                        GlobalConfigObj.toolbarStartupExpanded = true;
    19292081                        GlobalConfigObj.uiColor = "#D3D3D3";
     
    19372089                private CKEditorConfig() { }
    19382090                public CKEditorConfig(string editorPath)
    19392091                {
     2092                        this.autoGrow_bottomSpace = CKEditorConfig.GlobalConfig.autoGrow_bottomSpace;
    19402093                        this.autoGrow_maxHeight = CKEditorConfig.GlobalConfig.autoGrow_maxHeight;
    19412094                        this.autoGrow_minHeight = CKEditorConfig.GlobalConfig.autoGrow_minHeight;
     2095                        this.autoGrow_onStartup = CKEditorConfig.GlobalConfig.autoGrow_onStartup;
     2096                        this.autoParagraph = CKEditorConfig.GlobalConfig.autoParagraph;
    19422097                        this.autoUpdateElement = CKEditorConfig.GlobalConfig.autoUpdateElement;
    19432098                        this.baseFloatZIndex = CKEditorConfig.GlobalConfig.baseFloatZIndex;
    19442099                        this.baseHref = CKEditorConfig.GlobalConfig.baseHref;
     2100                        this.basicEntities = CKEditorConfig.GlobalConfig.basicEntities;
    19452101                        this.blockedKeystrokes = CKEditorConfig.GlobalConfig.blockedKeystrokes;
    19462102                        this.bodyClass = CKEditorConfig.GlobalConfig.bodyClass;
    19472103                        this.bodyId = CKEditorConfig.GlobalConfig.bodyId;
    19482104                        this.browserContextMenuOnCtrl = CKEditorConfig.GlobalConfig.browserContextMenuOnCtrl;
    19492105                        this.colorButton_backStyle = CKEditorConfig.GlobalConfig.colorButton_backStyle;
    19502106                        this.colorButton_colors = CKEditorConfig.GlobalConfig.colorButton_colors;
     2107                        this.colorButton_enableMore = CKEditorConfig.GlobalConfig.colorButton_enableMore;
    19512108                        this.colorButton_foreStyle = CKEditorConfig.GlobalConfig.colorButton_foreStyle;
    19522109                        this.contentsCss = ResolveUrl(CKEditorConfig.GlobalConfig.contentsCss, editorPath);
    19532110                        this.contentsLangDirection = CKEditorConfig.GlobalConfig.contentsLangDirection;
     
    19602117                        this.coreStyles_underline = CKEditorConfig.GlobalConfig.coreStyles_underline;
    19612118                        this.customConfig = CKEditorConfig.GlobalConfig.customConfig;
    19622119                        this.defaultLanguage = CKEditorConfig.GlobalConfig.defaultLanguage;
     2120                        this.devtools_styles = CKEditorConfig.GlobalConfig.devtools_styles;
    19632121                        this.dialog_backgroundCoverColor = CKEditorConfig.GlobalConfig.dialog_backgroundCoverColor;
    19642122                        this.dialog_backgroundCoverOpacity = CKEditorConfig.GlobalConfig.dialog_backgroundCoverOpacity;
    19652123                        this.dialog_buttonsOrder = CKEditorConfig.GlobalConfig.dialog_buttonsOrder;
     
    19782136                        this.entities_additional = CKEditorConfig.GlobalConfig.entities_additional;
    19792137                        this.entities_greek = CKEditorConfig.GlobalConfig.entities_greek;
    19802138                        this.entities_latin = CKEditorConfig.GlobalConfig.entities_latin;
     2139                        this.entities_processNumerical = CKEditorConfig.GlobalConfig.entities_processNumerical;
    19812140                        this.extraPlugins = CKEditorConfig.GlobalConfig.extraPlugins;
    19822141                        this.filebrowserBrowseUrl = CKEditorConfig.GlobalConfig.filebrowserBrowseUrl;
    19832142                        this.filebrowserFlashBrowseUrl = CKEditorConfig.GlobalConfig.filebrowserFlashBrowseUrl;
     
    20172176                        this.image_removeLinkByEmptyURL = CKEditorConfig.GlobalConfig.image_removeLinkByEmptyURL;
    20182177                        this.indentClasses = CKEditorConfig.GlobalConfig.indentClasses;
    20192178                        this.indentOffset = CKEditorConfig.GlobalConfig.indentOffset;
     2179                        this.jqueryOverrideVal = CKEditorConfig.GlobalConfig.jqueryOverrideVal;
    20202180                        this.indentUnit = CKEditorConfig.GlobalConfig.indentUnit;
    20212181                        this.keystrokes = CKEditorConfig.GlobalConfig.keystrokes;
    20222182                        this.language = CKEditorConfig.GlobalConfig.language;
    20232183                        this.menu_groups = CKEditorConfig.GlobalConfig.menu_groups;
     2184                        this.newpage_html = CKEditorConfig.GlobalConfig.newpage_html;
    20242185                        this.pasteFromWordCleanupFile = CKEditorConfig.GlobalConfig.pasteFromWordCleanupFile;
    20252186                        this.pasteFromWordNumberedHeadingToList = CKEditorConfig.GlobalConfig.pasteFromWordNumberedHeadingToList;
    20262187                        this.pasteFromWordPromptCleanup = CKEditorConfig.GlobalConfig.pasteFromWordPromptCleanup;
    20272188                        this.pasteFromWordRemoveFontStyles = CKEditorConfig.GlobalConfig.pasteFromWordRemoveFontStyles;
    20282189                        this.pasteFromWordRemoveStyles = CKEditorConfig.GlobalConfig.pasteFromWordRemoveStyles;
    20292190                        this.protectedSource = CKEditorConfig.GlobalConfig.protectedSource;
     2191                        this.readOnly = CKEditorConfig.GlobalConfig.readOnly;
    20302192                        this.removeDialogTabs = CKEditorConfig.GlobalConfig.removeDialogTabs;
    20312193                        this.removeFormatAttributes = CKEditorConfig.GlobalConfig.removeFormatAttributes;
    20322194                        this.removeFormatTags = CKEditorConfig.GlobalConfig.removeFormatTags;
     
    20572219                        this.smiley_images = CKEditorConfig.GlobalConfig.smiley_images;
    20582220                        this.smiley_path = CKEditorConfig.GlobalConfig.smiley_path;
    20592221                        this.specialChars = CKEditorConfig.GlobalConfig.specialChars;
     2222                        this.startupFocus = CKEditorConfig.GlobalConfig.startupFocus;
    20602223                        this.startupMode = CKEditorConfig.GlobalConfig.startupMode;
    20612224                        this.startupOutlineBlocks = CKEditorConfig.GlobalConfig.startupOutlineBlocks;
    20622225                        this.startupShowBorders = CKEditorConfig.GlobalConfig.startupShowBorders;
     2226                        this.stylesheetParser_skipSelectors = CKEditorConfig.GlobalConfig.stylesheetParser_skipSelectors;
     2227                        this.stylesheetParser_validSelectors = CKEditorConfig.GlobalConfig.stylesheetParser_validSelectors;
    20632228                        this.stylesSet = CKEditorConfig.GlobalConfig.stylesSet;
    20642229                        this.tabIndex = CKEditorConfig.GlobalConfig.tabIndex;
    20652230                        this.tabSpaces = CKEditorConfig.GlobalConfig.tabSpaces;
     2231                        this.templates = CKEditorConfig.GlobalConfig.templates;
    20662232                        this.templates_files = ResolveUrl(CKEditorConfig.GlobalConfig.templates_files, editorPath);
    20672233                        this.templates_replaceContent = CKEditorConfig.GlobalConfig.templates_replaceContent;
    20682234                        this.theme = CKEditorConfig.GlobalConfig.theme;
     
    20702236                        this.toolbar_Basic = CKEditorConfig.GlobalConfig.toolbar_Basic;
    20712237                        this.toolbar_Full = CKEditorConfig.GlobalConfig.toolbar_Full;
    20722238                        this.toolbarCanCollapse = CKEditorConfig.GlobalConfig.toolbarCanCollapse;
     2239                        this.toolbarGroupCycling = CKEditorConfig.GlobalConfig.toolbarGroupCycling;
    20732240                        this.toolbarLocation = CKEditorConfig.GlobalConfig.toolbarLocation;
    20742241                        this.uiColor = CKEditorConfig.GlobalConfig.uiColor;
    20752242                        this.toolbarStartupExpanded = CKEditorConfig.GlobalConfig.toolbarStartupExpanded;
  • CKEditorControl.cs

     
    4242
    4343                public override TextBoxMode TextMode { get { return base.TextMode; } }
    4444
     45                [Description("If true, makes the editor start in read-only state. Otherwise, it will check if the linked <textarea> element has the disabled attribute.")]
     46                [DefaultValue(false)]
     47                public override bool ReadOnly
     48                {
     49                        get
     50                        {
     51                                return config.readOnly;
     52                        }
     53                        set
     54                        {
     55                                config.readOnly = base.ReadOnly = value;
     56                        }
     57                }
     58
    4559                #endregion
    4660
    4761                #region Private Property
     
    162176                #region Encaspulate config
    163177
    164178                [Category("CKEditor Other Settings")]
     179                [Description("Extra height in pixel to leave between the bottom boundary of content with document size when auto resizing.")]
     180                [DefaultValue(0)]
     181                public int AutoGrowBottomSpace { get { return config.autoGrow_bottomSpace; } set { config.autoGrow_bottomSpace = value; } }
     182
     183                [Category("CKEditor Other Settings")]
    165184                [Description("The maximum height to which the editor can reach using AutoGrow. Zero means unlimited.")]
    166185                [DefaultValue(0)]
    167186                public int AutoGrowMaxHeight { get { return config.autoGrow_maxHeight; } set { config.autoGrow_maxHeight = value; } }
     
    176195                [DefaultValue(true)]
    177196                public bool AutoUpdateElement { get { return config.autoUpdateElement; } set { config.autoUpdateElement = value; } }
    178197
     198                [Category("CKEditor Other Settings")]
     199                [Description("Whether to escape basic HTML entities in the document, including: nbsp, gt, lt, amp.")]
     200                [DefaultValue(true)]
     201                public bool BasicEntities { get { return config.basicEntities; } set { config.basicEntities = value; } }
     202
    179203                [Category("CKEditor Basic Settings")]
    180204                [Description("The base href URL used to resolve relative and absolute URLs in the editor content.")]
    181205                [DefaultValue("")]
     
    10761100                        if (isChanged) OnTextChanged(e);
    10771101                }
    10781102
     1103                public override void Focus()
     1104                {
     1105                        base.Focus();
     1106                        this.config.startupFocus = true;
     1107                }
    10791108                #endregion
    10801109
    10811110                #region Private Method
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy