Updated Branches:
  refs/heads/develop d0baf5f5e -> 579e7c307

FLEX-33350 updated CallOutButton - patch by Marcus Fritze


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/579e7c30
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/579e7c30
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/579e7c30

Branch: refs/heads/develop
Commit: 579e7c307f40d4948bfc083a43726b2a66decba8
Parents: d0baf5f
Author: cyrill.zadra <[email protected]>
Authored: Sun Apr 7 01:05:30 2013 +1100
Committer: cyrill.zadra <[email protected]>
Committed: Sun Apr 7 01:05:30 2013 +1100

----------------------------------------------------------------------
 .../src/spark/components/CallOutButton.as          |   16 +++-
 .../supportClasses/CallOutDropDownController.as    |   78 +++++++++++++++
 2 files changed, 91 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/579e7c30/frameworks/projects/experimental/src/spark/components/CallOutButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/experimental/src/spark/components/CallOutButton.as 
b/frameworks/projects/experimental/src/spark/components/CallOutButton.as
index 6a403a3..c2f8d24 100644
--- a/frameworks/projects/experimental/src/spark/components/CallOutButton.as
+++ b/frameworks/projects/experimental/src/spark/components/CallOutButton.as
@@ -28,11 +28,11 @@ package spark.components
        import mx.utils.BitFlagUtil;
        
        import spark.components.Button;
-       import spark.components.supportClasses.DropDownController;
        import spark.events.DropDownEvent;
        import spark.events.PopUpEvent;
        import spark.layouts.supportClasses.LayoutBase;
        
+       import spark.components.supportClasses.CallOutDropDownController;
        import spark.components.supportClasses.IDropDownContainer;
        
        use namespace mx_internal;
@@ -73,6 +73,8 @@ package spark.components
                [SkinPart(required="false")]
                public var dropDown:IFactory;
                
+               public var topCallOut:CallOut;
+               public var subCallOut:CallOut;
                
                private var _callout:CallOut;
                [Bindable("calloutChanged")]
@@ -115,7 +117,7 @@ package spark.components
                [Inspectable(category="General", enumeration="rollOver,click", 
defaultValue="rollOver")] //mouseOver
                public var triggerEvent:String = MouseEvent.ROLL_OVER;
                
-               private var dropDownController:DropDownController;
+               private var dropDownController:CallOutDropDownController;
                
                
//--------------------------------------------------------------------------
                //
@@ -219,7 +221,7 @@ package spark.components
                
                override public function initialize():void
                {
-                       dropDownController = new DropDownController();
+                       dropDownController = new CallOutDropDownController();
                        dropDownController.closeOnResize = false;
                        dropDownController.addEventListener(DropDownEvent.OPEN, 
handleDropDownOpen);
                        
dropDownController.addEventListener(DropDownEvent.CLOSE, handleDropDownClose);
@@ -294,6 +296,10 @@ package spark.components
                        if (!callout) 
setCallout(createDynamicPartInstance("dropDown") as CallOut);
                        if (!callout) return;
                        
+                       if(topCallOut != null)
+                               if(topCallOut.owner != null)
+                                       (this.topCallOut.owner as 
CallOutButton).subCallOut = callout;
+                       
                        addEventListener(Event.REMOVED_FROM_STAGE, 
handleButtonRemoved);
                        callout.open(this, false);
                }
@@ -345,5 +351,9 @@ package spark.components
                        dropDownController.closeDropDown(false);
                }
                
+               public function updatePopUpPosition():void
+               {
+                       callout.updatePopUpPosition();
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/579e7c30/frameworks/projects/experimental/src/spark/components/supportClasses/CallOutDropDownController.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/experimental/src/spark/components/supportClasses/CallOutDropDownController.as
 
b/frameworks/projects/experimental/src/spark/components/supportClasses/CallOutDropDownController.as
new file mode 100644
index 0000000..bff579b
--- /dev/null
+++ 
b/frameworks/projects/experimental/src/spark/components/supportClasses/CallOutDropDownController.as
@@ -0,0 +1,78 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package spark.components.supportClasses
+{
+       import flash.display.DisplayObject;
+       import flash.events.Event;
+       
+       import mx.collections.ArrayCollection;
+       import mx.core.mx_internal;
+       
+       import spark.components.supportClasses.DropDownController;
+       //import spark.events.DropDownEvent;
+       
+       import spark.components.CallOutButton;
+       
+       use namespace mx_internal;
+       
+       public class CallOutDropDownController extends DropDownController
+       {
+               //private var openDropDowns:ArrayCollection;
+               
+               public function CallOutDropDownController()
+               {
+                       super();
+                       
+                       //openDropDowns = new ArrayCollection();
+                       
+                       //this.addEventListener(DropDownEvent.OPEN, 
onOpenDropDown);
+               }
+               
+               override mx_internal function 
systemManager_mouseDownHandler(event:Event):void
+               {
+                       if((openButton as CallOutButton).subCallOut != null)
+                       {
+                               if( this.hitAreaAdditions)
+                               {
+                                       
if(this.hitAreaAdditions.indexOf((openButton as CallOutButton).subCallOut) == 
-1)
+                                               this.hitAreaAdditions = 
Vector.<DisplayObject>( [ (openButton as CallOutButton).subCallOut ] ).concat( 
this.hitAreaAdditions );
+                               }
+                               else
+                               {
+                                       this.hitAreaAdditions = 
Vector.<DisplayObject>( [ (openButton as CallOutButton).subCallOut ] );
+                               }
+                       }
+                       
+                       
super.mx_internal::systemManager_mouseDownHandler(event);
+               }
+               /*
+               private function onOpenDropDown(event:DropDownEvent):void
+               {
+                       var test:String = "neu";
+                       
+                       
openDropDowns.addItem({dropDownController:event.target});
+               }
+               
+               override public function closeDropDown(commit:Boolean):void
+               {
+                       var test:String = "neu";
+               }
+               */
+       }
+}
\ No newline at end of file

Reply via email to