--- /dev/null
+/*\r
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.html or http://ckeditor.com/license\r
+ */\r
+\r
+(function()\r
+{\r
+ function getListElement( editor, listTag )\r
+ {\r
+ var range;\r
+ try { range = editor.getSelection().getRanges()[ 0 ]; }\r
+ catch( e ) { return null; }\r
+\r
+ range.shrink( CKEDITOR.SHRINK_TEXT );\r
+ return range.getCommonAncestor().getAscendant( listTag, 1 );\r
+ }\r
+\r
+ var mapListStyle = {\r
+ 'a' : 'lower-alpha',\r
+ 'A' : 'upper-alpha',\r
+ 'i' : 'lower-roman',\r
+ 'I' : 'upper-roman',\r
+ '1' : 'decimal',\r
+ 'disc' : 'disc',\r
+ 'circle': 'circle',\r
+ 'square' : 'square'\r
+ };\r
+\r
+ function listStyle( editor, startupPage )\r
+ {\r
+ var lang = editor.lang.list;\r
+ if ( startupPage == 'bulletedListStyle' )\r
+ {\r
+ return {\r
+ title : lang.bulletedTitle,\r
+ minWidth : 300,\r
+ minHeight : 50,\r
+ contents :\r
+ [\r
+ {\r
+ id : 'info',\r
+ accessKey : 'I',\r
+ elements :\r
+ [\r
+ {\r
+ type : 'select',\r
+ label : lang.type,\r
+ id : 'type',\r
+ style : 'width: 150px; margin: auto;',\r
+ items :\r
+ [\r
+ [ lang.notset, '' ],\r
+ [ lang.circle, 'circle' ],\r
+ [ lang.disc, 'disc' ],\r
+ [ lang.square, 'square' ]\r
+ ],\r
+ setup : function( element )\r
+ {\r
+ var value = element.getStyle( 'list-style-type' )\r
+ || mapListStyle[ element.getAttribute( 'type' ) ]\r
+ || element.getAttribute( 'type' )\r
+ || '';\r
+\r
+ this.setValue( value );\r
+ },\r
+ commit : function( element )\r
+ {\r
+ var value = this.getValue();\r
+ if ( value )\r
+ element.setStyle( 'list-style-type', value );\r
+ else\r
+ element.removeStyle( 'list-style-type' );\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ onShow: function()\r
+ {\r
+ var editor = this.getParentEditor(),\r
+ element = getListElement( editor, 'ul' );\r
+\r
+ element && this.setupContent( element );\r
+ },\r
+ onOk: function()\r
+ {\r
+ var editor = this.getParentEditor(),\r
+ element = getListElement( editor, 'ul' );\r
+\r
+ element && this.commitContent( element );\r
+ }\r
+ };\r
+ }\r
+ else if ( startupPage == 'numberedListStyle' )\r
+ {\r
+\r
+ var listStyleOptions =\r
+ [\r
+ [ lang.notset, '' ],\r
+ [ lang.lowerRoman, 'lower-roman' ],\r
+ [ lang.upperRoman, 'upper-roman' ],\r
+ [ lang.lowerAlpha, 'lower-alpha' ],\r
+ [ lang.upperAlpha, 'upper-alpha' ],\r
+ [ lang.decimal, 'decimal' ]\r
+ ];\r
+\r
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.version > 7 )\r
+ {\r
+ listStyleOptions.concat( [\r
+ [ lang.armenian, 'armenian' ],\r
+ [ lang.decimalLeadingZero, 'decimal-leading-zero' ],\r
+ [ lang.georgian, 'georgian' ],\r
+ [ lang.lowerGreek, 'lower-greek' ]\r
+ ]);\r
+ }\r
+\r
+ return {\r
+ title : lang.numberedTitle,\r
+ minWidth : 300,\r
+ minHeight : 50,\r
+ contents :\r
+ [\r
+ {\r
+ id : 'info',\r
+ accessKey : 'I',\r
+ elements :\r
+ [\r
+ {\r
+ type : 'hbox',\r
+ widths : [ '25%', '75%' ],\r
+ children :\r
+ [\r
+ {\r
+ label : lang.start,\r
+ type : 'text',\r
+ id : 'start',\r
+ validate : CKEDITOR.dialog.validate.integer( lang.validateStartNumber ),\r
+ setup : function( element )\r
+ {\r
+ var value = element.getAttribute( 'start' ) || 1;\r
+ value && this.setValue( value );\r
+ },\r
+ commit : function( element )\r
+ {\r
+ element.setAttribute( 'start', this.getValue() );\r
+ }\r
+ },\r
+ {\r
+ type : 'select',\r
+ label : lang.type,\r
+ id : 'type',\r
+ style : 'width: 100%;',\r
+ items : listStyleOptions,\r
+ setup : function( element )\r
+ {\r
+ var value = element.getStyle( 'list-style-type' )\r
+ || mapListStyle[ element.getAttribute( 'type' ) ]\r
+ || element.getAttribute( 'type' )\r
+ || '';\r
+\r
+ this.setValue( value );\r
+ },\r
+ commit : function( element )\r
+ {\r
+ var value = this.getValue();\r
+ if ( value )\r
+ element.setStyle( 'list-style-type', value );\r
+ else\r
+ element.removeStyle( 'list-style-type' );\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ onShow: function()\r
+ {\r
+ var editor = this.getParentEditor(),\r
+ element = getListElement( editor, 'ol' );\r
+\r
+ element && this.setupContent( element );\r
+ },\r
+ onOk: function()\r
+ {\r
+ var editor = this.getParentEditor(),\r
+ element = getListElement( editor, 'ol' );\r
+\r
+ element && this.commitContent( element );\r
+ }\r
+ };\r
+ }\r
+ }\r
+\r
+ CKEDITOR.dialog.add( 'numberedListStyle', function( editor )\r
+ {\r
+ return listStyle( editor, 'numberedListStyle' );\r
+ });\r
+\r
+ CKEDITOR.dialog.add( 'bulletedListStyle', function( editor )\r
+ {\r
+ return listStyle( editor, 'bulletedListStyle' );\r
+ });\r
+})();\r