--- /dev/null
+/*\r
+ * Copyright (c) 2003-2010, 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, true );\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
+ if ( startupPage == 'bulletedListStyle' )\r
+ {\r
+ return {\r
+ title : editor.lang.list.bulletedTitle,\r
+ minWidth : 300,\r
+ minHeight : 50,\r
+ contents :\r
+ [\r
+ {\r
+ elements :\r
+ [\r
+ {\r
+ type : 'select',\r
+ label : editor.lang.list.type,\r
+ id : 'type',\r
+ style : 'width: 150px; margin: auto;',\r
+ items :\r
+ [\r
+ [ editor.lang.list.notset, '' ],\r
+ [ editor.lang.list.circle, 'circle' ],\r
+ [ editor.lang.list.disc, 'disc' ],\r
+ [ editor.lang.list.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
+ return {\r
+ title : editor.lang.list.numberedTitle,\r
+ minWidth : 300,\r
+ minHeight : 50,\r
+ contents :\r
+ [\r
+ {\r
+ elements :\r
+ [\r
+ {\r
+ type : 'hbox',\r
+ widths : [ '25%', '75%' ],\r
+ children :\r
+ [\r
+ {\r
+ label : editor.lang.list.start,\r
+ type : 'text',\r
+ id : 'start',\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 : editor.lang.list.type,\r
+ id : 'type',\r
+ style : 'width: 100%;',\r
+ items :\r
+ [\r
+ [ editor.lang.list.notset, '' ],\r
+ [ editor.lang.list.armenian, 'armenian' ],\r
+ [ editor.lang.list.georgian, 'georgian' ],\r
+ [ editor.lang.list.lowerRoman, 'lower-roman' ],\r
+ [ editor.lang.list.upperRoman, 'upper-roman' ],\r
+ [ editor.lang.list.lowerAlpha, 'lower-alpha' ],\r
+ [ editor.lang.list.upperAlpha, 'upper-alpha' ],\r
+ [ editor.lang.list.lowerGreek, 'lower-greek' ],\r
+ [ editor.lang.list.decimal, 'decimal' ],\r
+ [ editor.lang.list.decimalLeadingZero, 'decimal-leading-zero' ]\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
+ }\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