JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.2.2
[ckeditor.git] / _source / plugins / liststyle / dialogs / liststyle.js
diff --git a/_source/plugins/liststyle/dialogs/liststyle.js b/_source/plugins/liststyle/dialogs/liststyle.js
new file mode 100644 (file)
index 0000000..b874d53
--- /dev/null
@@ -0,0 +1,189 @@
+/*\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