8
0
Просмотр исходного кода

Added ButtonDropdownModel#toolbarClassName attribute bound to ToolbarView#className inside the dropdown.

Aleksander Nowodzinski 8 лет назад
Родитель
Сommit
f173069d89

+ 10 - 0
packages/ckeditor5-ui/src/dropdown/button/buttondropdownmodel.jsdoc

@@ -59,3 +59,13 @@
  * @observable
  * @member {String} #icon
  */
+
+/**
+ * (Optional) A CSS class set to
+ * {@link module:ui/dropdown/button/buttondropdownview~ButtonDropdownView#toolbarView}.
+ *
+ * Also see {@link module:ui/toolbar/toolbarview~ToolbarView#className `ToolbarView#className`}.
+ *
+ * @observable
+ * @member {String} #toolbarClassName
+ */

+ 1 - 1
packages/ckeditor5-ui/src/dropdown/button/createbuttondropdown.js

@@ -81,7 +81,7 @@ export default function createButtonDropdown( model, locale ) {
 	const dropdownView = createDropdown( model, locale );
 	const toolbarView = dropdownView.toolbarView = new ToolbarView();
 
-	toolbarView.bind( 'isVertical' ).to( model, 'isVertical' );
+	toolbarView.bind( 'isVertical', 'className' ).to( model, 'isVertical', 'toolbarClassName' );
 
 	model.buttons.map( view => toolbarView.items.add( view ) );
 

+ 15 - 0
packages/ckeditor5-ui/tests/dropdown/button/createbuttondropdown.js

@@ -63,6 +63,21 @@ describe( 'createButtonDropdown', () => {
 
 				view.toolbarView.items.get( 0 ).fire( 'execute' );
 			} );
+
+			it( 'reacts on model#isVertical', () => {
+				model.isVertical = false;
+				expect( view.toolbarView.isVertical ).to.be.false;
+
+				model.isVertical = true;
+				expect( view.toolbarView.isVertical ).to.be.true;
+			} );
+
+			it( 'reacts on model#toolbarClassName', () => {
+				expect( view.toolbarView.className ).to.be.undefined;
+
+				model.set( 'toolbarClassName', 'foo' );
+				expect( view.toolbarView.className ).to.equal( 'foo' );
+			} );
 		} );
 
 		it( 'changes view#isOpen on view#execute', () => {