 			return _isOpen;
 		}
 		
-		private function onButtonDown(event:Event):void{
+		/**
+		 * Dispatches the <code>org.openPyro.controls.events.DropDownEvent</code> with type
+		 * "opening" or "closing". If that event is cancelled by calling event.stopImmediatePropagation,
+		 * the drop down will not open or close.
+		 */ 
+		protected function onButtonDown(event:Event):void{
 			if(_isOpen)
 			{
 				dispatchEvent( new DropDownEvent(DropDownEvent.CLOSING));

			});
		}
		
		
		
		override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
		{
			super.updateDisplayList(unscaledWidth, unscaledHeight);

			_bttn.addEventListener(MouseEvent.MOUSE_DOWN, onButtonDown)
		}
		
		/**
		 * Sets the list that will be used to display the options in the dataProvider.
		 * This is optional and if no list is provided, an instance of 
		 * <code> org.openPyro.controls.List</code> will be created and used.
		 */ 
		public function set list(l:List):void{
			if(_list){
				_list.removeEventListener(ListEvent.ITEM_CLICK,onListItemClick);
