openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stev...@apache.org
Subject svn commit: r1418198 [3/4] - in /openoffice/branches/ia2: ./ main/ main/framework/ main/framework/inc/ main/framework/inc/classes/ main/framework/inc/framework/ main/framework/inc/uielement/ main/framework/source/classes/ main/framework/source/fwe/clas...
Date Fri, 07 Dec 2012 06:37:13 GMT
Modified: openoffice/branches/ia2/main/offapi/com/sun/star/awt/XGraphics.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/com/sun/star/awt/XGraphics.idl?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/com/sun/star/awt/XGraphics.idl (original)
+++ openoffice/branches/ia2/main/offapi/com/sun/star/awt/XGraphics.idl Fri Dec  7 06:37:02 2012
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,311 +7,271 @@
  * 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.
- * 
+ *
  *************************************************************/
 
+#ifndef __com_sun_star_awt_XGraphics_idl__
+#define __com_sun_star_awt_XGraphics_idl__
 
-#ifndef __com_sun_star_awt_XGraphics_idl__ 
-#define __com_sun_star_awt_XGraphics_idl__ 
- 
-#ifndef __com_sun_star_uno_XInterface_idl__ 
-#include <com/sun/star/uno/XInterface.idl> 
-#endif 
- 
-#ifndef __com_sun_star_util_Color_idl__
+#include <com/sun/star/uno/XInterface.idl>
 #include <com/sun/star/util/Color.idl>
-#endif
+#include <com/sun/star/awt/SimpleFontMetric.idl>
+#include <com/sun/star/awt/FontDescriptor.idl>
+#include <com/sun/star/awt/RasterOperation.idl>
+#include <com/sun/star/awt/Gradient.idl>
+#include <com/sun/star/awt/Rectangle.idl>
+#include <com/sun/star/graphic/XGraphic.idl>
+
+module com {  module sun {  module star {  module awt {
+
+published interface XRegion;
+published interface XDisplayBitmap;
+published interface XFont;
+published interface XDevice;
 
-#ifndef __com_sun_star_awt_SimpleFontMetric_idl__ 
-#include <com/sun/star/awt/SimpleFontMetric.idl> 
-#endif 
- 
-#ifndef __com_sun_star_awt_FontDescriptor_idl__ 
-#include <com/sun/star/awt/FontDescriptor.idl> 
-#endif 
- 
-#ifndef __com_sun_star_awt_RasterOperation_idl__ 
-#include <com/sun/star/awt/RasterOperation.idl> 
-#endif 
- 
-#ifndef __com_sun_star_awt_Gradient_idl__ 
-#include <com/sun/star/awt/Gradient.idl> 
-#endif 
- 
-//============================================================================= 
- 
- module com {  module sun {  module star {  module awt {  
- 
- published interface XRegion; 
- published interface XDisplayBitmap; 
- published interface XFont; 
- published interface XDevice; 
- 
-//============================================================================= 
- 
 /** provides the basic output operation of a device.
  */
 published interface XGraphics: com::sun::star::uno::XInterface
-{ 
-	//------------------------------------------------------------------------- 
-	 
-	/** returns the device of this graphics.
-	 */
-	XDevice getDevice(); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** returns the font metric of the current font.
-	 */
-	SimpleFontMetric getFontMetric(); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the font used by text operations.
-	 */
-	[oneway] void setFont( [in] XFont xNewFont ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** creates a new font and sets the font.
-	 */
-	[oneway] void selectFont( [in] FontDescriptor aDescription ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the text color used by text operations.
-	 */
-	[oneway] void setTextColor( [in] com::sun::star::util::Color nColor ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the fill color used by text operations.
-	 */
-	[oneway] void setTextFillColor( [in] com::sun::star::util::Color nColor ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the line color.
-	 */
-	[oneway] void setLineColor( [in] com::sun::star::util::Color nColor ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the fill color.
-	 */
-	[oneway] void setFillColor( [in] com::sun::star::util::Color nColor ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the raster operation. 
-						
-		<p>If the device does not support raster operations 
-		then this call is ignored.</p>
-	 */
-	[oneway] void setRasterOp( [in] RasterOperation ROP ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets the clip region to specified clipping.
-	 */
-	[oneway] void setClipRegion( [in] XRegion Clipping ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** builds the intersection with the current region.
-	 */
-	[oneway] void intersectClipRegion( [in] XRegion xClipping ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** saves all current settings (Font, TextColor, TextFillColor,
-		LineColor, FillColor, RasterOp, ClipRegion).
-	 */
-	[oneway] void push(); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** restores all previous saved settings.
-	 */
-	[oneway] void pop(); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** copies a rectangle of pixels from another device into this one.
-	 */
-	[oneway] void copy( [in] XDevice xSource, 
-			 [in] long nSourceX, 
-			 [in] long nSourceY, 
-			 [in] long nSourceWidth, 
-			 [in] long nSourceHeight, 
-			 [in] long nDestX, 
-			 [in] long nDestY, 
-			 [in] long nDestWidth, 
-			 [in] long nDestHeight ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a part of the specified bitmap to the output device.
-	 */
-	[oneway] void draw( [in] XDisplayBitmap xBitmapHandle, 
-			 [in] long SourceX, 
-			 [in] long SourceY, 
-			 [in] long SourceWidth, 
-			 [in] long SourceHeight, 
-			 [in] long DestX, 
-			 [in] long DestY, 
-			 [in] long DestWidth, 
-			 [in] long DestHeight ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** sets a single pixel in the output device.
-	 */
-	[oneway] void drawPixel( [in] long X, 
-			 [in] long Y ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a line in the output device.
-	 */
-	[oneway] void drawLine( [in] long X1, 
-			 [in] long Y1, 
-			 [in] long X2, 
-			 [in] long Y2 ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a rectangle in the output device.
-	 */
-	[oneway] void drawRect( [in] long X, 
-			 [in] long Y, 
-			 [in] long Width, 
-			 [in] long Height ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a rectangle with rounded corners in the output device.
-	 */
-	[oneway] void drawRoundedRect( [in] long X, 
-			 [in] long Y, 
-			 [in] long Width, 
-			 [in] long Height, 
-			 [in] long nHorzRound, 
-			 [in] long nVertRound ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws multiple lines in the output device at once.
-	 */
-	[oneway] void drawPolyLine( [in] sequence<long> DataX, 
-			 [in] sequence<long> DataY ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a polygon line in the output device.
-	 */
-	[oneway] void drawPolygon( [in] sequence<long> DataX, 
-			 [in] sequence<long> DataY ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws multiple polygons in the output device at once.
-	 */
-	[oneway] void drawPolyPolygon( [in] sequence< sequence<long> > DataX, 
-			 [in] sequence< sequence<long> > DataY ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws an ellipse in the output device.
-	 */
-	[oneway] void drawEllipse( [in] long X, 
-			 [in] long Y, 
-			 [in] long Width, 
-			 [in] long Height ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws an arc (part of a circle) in the output device.
-	 */
-	[oneway] void drawArc( [in] long X, 
-			 [in] long Y, 
-			 [in] long Width, 
-			 [in] long Height, 
-			 [in] long X1, 
-			 [in] long Y1, 
-			 [in] long X2, 
-			 [in] long Y2 ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a circular area in the output device.
-	 */
-	[oneway] void drawPie( [in] long X, 
-			 [in] long Y, 
-			 [in] long Width, 
-			 [in] long Height, 
-			 [in] long X1, 
-			 [in] long Y1, 
-			 [in] long X2, 
-			 [in] long Y2 ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a chord of a circular area in the output device.
-						
-		<p>A chord is a segment of a circle. You get two chords from a 
-		circle if you intersect the circle with a straight line 
-		joining two points on the circle.</p>
-	 */
-	[oneway] void drawChord( [in] long nX, 
-			 [in] long nY, 
-			 [in] long nWidth, 
-			 [in] long nHeight, 
-			 [in] long nX1, 
-			 [in] long nY1, 
-			 [in] long nX2, 
-			 [in] long nY2 ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws a color dispersion in the output device.
-	 */
-	[oneway] void drawGradient( [in] long nX, 
-			 [in] long nY, 
-			 [in] long nWidth, 
-			 [in] long Height, 
-			 [in] Gradient aGradient ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws text in the output device.
-	 */
-	[oneway] void drawText( [in] long X, 
-			 [in] long Y, 
-			 [in] string Text ); 
- 
-	//------------------------------------------------------------------------- 
-	 
-	/** draws texts in the output device using an explicit kerning table.
-	 */
-	[oneway] void drawTextArray( [in] long X, 
-			 [in] long Y, 
-			 [in] string Text, 
-			 [in] sequence<long> Longs ); 
- 
-}; 
- 
-//============================================================================= 
- 
-}; }; }; };  
- 
-#endif 
+{
+    /** the device of this graphics
+     */
+    [attribute, readonly] XDevice Device;
+
+    /** the text color used by text operations.
+     */
+    [attribute] com::sun::star::util::Color TextColor;
+
+    /** the fill color used by text operations.
+     */
+    [attribute] com::sun::star::util::Color TextFillColor;
+
+    /** the line color.
+     */
+    [attribute] com::sun::star::util::Color LineColor;
+
+    /** the fill color.
+     */
+    [attribute] com::sun::star::util::Color FillColor;
+
+    /** the raster operation.
+
+        <p>If the device does not support raster operations,
+        this attribute is ignored.</p>
+     */
+    [attribute] RasterOperation RasterOp;
+
+    /** the font used by text operations.
+     */
+    [attribute] XFont Font;
+
+    /** the font metric of the current font.
+     */
+    [attribute, readonly] SimpleFontMetric FontMetric;
+
+    /** creates a new font and sets the font.
+     */
+    [oneway] void selectFont( [in] FontDescriptor aDescription );
+
+    /** sets the clip region to specified clipping.
+     */
+    [oneway] void setClipRegion( [in] XRegion Clipping );
+ 
+    /** builds the intersection with the current region.
+     */
+    [oneway] void intersectClipRegion( [in] XRegion xClipping );
+
+    /** saves all current settings (Font, TextColor, TextFillColor,
+        LineColor, FillColor, RasterOp, ClipRegion).
+     */
+    [oneway] void push();
+
+    /** restores all previous saved settings.
+     */
+    [oneway] void pop();
+
+    /** clears the given rectangle on the device
+
+        @since Apache OpenOffice 4.0
+     */
+    [oneway] void clear( [in] Rectangle aRect );
+
+    /** copies a rectangle of pixels from another device into this one.
+     */
+    [oneway] void copy( [in] XDevice xSource,
+             [in] long nSourceX,
+             [in] long nSourceY,
+             [in] long nSourceWidth,
+             [in] long nSourceHeight,
+             [in] long nDestX,
+             [in] long nDestY,
+             [in] long nDestWidth,
+             [in] long nDestHeight );
+
+    /** draws a part of the specified bitmap to the output device.
+     */
+    [oneway] void draw( [in] XDisplayBitmap xBitmapHandle,
+             [in] long SourceX,
+             [in] long SourceY,
+             [in] long SourceWidth,
+             [in] long SourceHeight,
+             [in] long DestX,
+             [in] long DestY,
+             [in] long DestWidth,
+             [in] long DestHeight );
+
+    /** sets a single pixel in the output device.
+     */
+    [oneway] void drawPixel( [in] long X,
+             [in] long Y );
+
+    /** draws a line in the output device.
+     */
+    [oneway] void drawLine( [in] long X1,
+             [in] long Y1,
+             [in] long X2,
+             [in] long Y2 );
+
+    /** draws a rectangle in the output device.
+     */
+    [oneway] void drawRect( [in] long X,
+             [in] long Y,
+             [in] long Width,
+             [in] long Height );
+
+    /** draws a rectangle with rounded corners in the output device.
+     */
+    [oneway] void drawRoundedRect( [in] long X,
+             [in] long Y,
+             [in] long Width,
+             [in] long Height,
+             [in] long nHorzRound,
+             [in] long nVertRound );
+
+    /** draws multiple lines in the output device at once.
+     */
+    [oneway] void drawPolyLine( [in] sequence<long> DataX,
+             [in] sequence<long> DataY );
+
+    /** draws a polygon line in the output device.
+     */
+    [oneway] void drawPolygon( [in] sequence<long> DataX,
+             [in] sequence<long> DataY );
+
+    /** draws multiple polygons in the output device at once.
+     */
+    [oneway] void drawPolyPolygon( [in] sequence< sequence<long> > DataX,
+             [in] sequence< sequence<long> > DataY );
+
+    /** draws an ellipse in the output device.
+     */
+    [oneway] void drawEllipse( [in] long X,
+             [in] long Y,
+             [in] long Width,
+             [in] long Height );
+
+    /** draws an arc (part of a circle) in the output device.
+     */
+    [oneway] void drawArc( [in] long X,
+             [in] long Y,
+             [in] long Width,
+             [in] long Height,
+             [in] long X1,
+             [in] long Y1,
+             [in] long X2,
+             [in] long Y2 );
+
+    /** draws a circular area in the output device.
+     */
+    [oneway] void drawPie( [in] long X,
+             [in] long Y,
+             [in] long Width,
+             [in] long Height,
+             [in] long X1,
+             [in] long Y1,
+             [in] long X2,
+             [in] long Y2 );
+
+    /** draws a chord of a circular area in the output device.
+
+        <p>A chord is a segment of a circle. You get two chords from a
+        circle if you intersect the circle with a straight line
+        joining two points on the circle.</p>
+     */
+    [oneway] void drawChord( [in] long nX,
+             [in] long nY,
+             [in] long nWidth,
+             [in] long nHeight,
+             [in] long nX1,
+             [in] long nY1,
+             [in] long nX2,
+             [in] long nY2 );
+
+    /** draws a color dispersion in the output device.
+     */
+    [oneway] void drawGradient( [in] long nX,
+             [in] long nY,
+             [in] long nWidth,
+             [in] long Height,
+             [in] Gradient aGradient );
+
+    /** draws text in the output device.
+     */
+    [oneway] void drawText( [in] long X,
+             [in] long Y,
+             [in] string Text );
+
+    /** draws texts in the output device using an explicit kerning table.
+     */
+    [oneway] void drawTextArray( [in] long X,
+             [in] long Y,
+             [in] string Text,
+             [in] sequence<long> Longs );
+
+    /** draws a <type scope="com::sun::star::graphic">XGraphic</type>
+        in the output device.
+
+        <p>Note that some devices may not support this operation.</p>
+
+        @since Apache OpenOffice 4.0
+
+        @param  nX
+            the X coordinate on the device where the graphic will be drawn
+
+        @param  nY
+            the Y coordinate on the device where the graphic will be drawn
+
+        @param  nWidth
+            the width of the region on the device
+
+        @param  nHeight
+            the height of the region on the device
+
+        @param  nStyle
+            the style used to draw the image.
+            See <type scope="com::sun::star::awt">ImageDrawMode</type>.
+
+        @param  aGraphic
+            the <type scope="com::sun::star::graphic">XGraphic</type>
+            to be drawn onto the device
+     */
+    [oneway] void drawImage( [in] long nX,
+                             [in] long nY,
+                             [in] long nWidth,
+                             [in] long nHeight,
+                             [in] short nStyle,
+                             [in] ::com::sun::star::graphic::XGraphic aGraphic );
+
+};
+
+}; }; }; };
+
+#endif

Modified: openoffice/branches/ia2/main/offapi/com/sun/star/awt/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/com/sun/star/awt/makefile.mk?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/com/sun/star/awt/makefile.mk (original)
+++ openoffice/branches/ia2/main/offapi/com/sun/star/awt/makefile.mk Fri Dec  7 06:37:02 2012
@@ -100,6 +100,7 @@ IDLFILES=\
 	Gradient.idl\
 	GradientStyle.idl\
     ImageAlign.idl\
+    ImageDrawMode.idl\
     ImagePosition.idl\
     ImageScaleMode.idl\
     ImageStatus.idl\

Modified: openoffice/branches/ia2/main/offapi/com/sun/star/frame/StatusbarController.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/com/sun/star/frame/StatusbarController.idl?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/com/sun/star/frame/StatusbarController.idl (original)
+++ openoffice/branches/ia2/main/offapi/com/sun/star/frame/StatusbarController.idl Fri Dec  7 06:37:02 2012
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,53 +7,38 @@
  * 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.
- * 
+ *
  *************************************************************/
 
 
 #ifndef __com_sun_star_frame_StatusbarController_idl__
 #define __com_sun_star_frame_StatusbarController_idl__
 
-#ifndef __com_sun_star_lang_XInitialization_idl__
-#include <com/sun/star/lang/XInitialization.idl>
-#endif
-
-#ifndef __com_sun_star_util_XUpdatable_idl__
-#include <com/sun/star/util/XUpdatable.idl>
-#endif
-
-#ifndef __com_sun_star_frame_XStatusListener_idl__
-#include <com/sun/star/frame/XStatusListener.idl>
-#endif
-
-#ifndef __com_sun_star_frame_XStatusbarController_idl__
 #include <com/sun/star/frame/XStatusbarController.idl>
-#endif
 
-//=============================================================================
+module com {  module sun {  module star {  module frame {
 
- module com {  module sun {  module star {  module frame {
+interface XStatusbarController;
 
-//=============================================================================
-/** is an abstract service for a component which offers a more complex user 
+/** is an abstract service for a component which offers a more complex user
     interface to users within a status bar.
 
     <p>
-    A generic status bar function is represented as a text field which 
-    provides status information to the user. A status bar controller can be 
-    added to a status bar and provides information or functions with a more 
+    A generic status bar function is represented as a text field which
+    provides status information to the user. A status bar controller can be
+    added to a status bar and provides information or functions with a more
     sophisticated user interface.<br/>
-    A typical example for a status bar controller is the zoom level chooser 
-    within the statusbar. It provides an option to change the zoom level of 
+    A typical example for a status bar controller is the zoom level chooser
+    within the statusbar. It provides an option to change the zoom level of
     an application.
     <p>
 
@@ -62,77 +47,10 @@
 
     @since OOo 2.0
  */
-
-service StatusbarController
+service StatusbarController : XStatusbarController
 {
-    //-------------------------------------------------------------------------
-    /** with this interface a component can receive events if a feature has 
-        changed.
-
-        <p>
-        The status bar controller implementation should register itself as a 
-        listener when its <member scope="com::sun::star::util">XUpdatable</member> 
-        interface has been called.
-        </p>
-     */
-    interface com::sun::star::frame::XStatusListener;
-
-    /** used to initialize a component with required arguments.
-
-        <b>A status bar controller needs at least three additional arguments 
-        provided as <type scope="com::sun::star::beans">PropertyValue</type>:
-        <ul>
-            <li><b>Frame</b><br>a 
-                   <type scope="com::sun::star::frame">XFrame</type> instance
-                   to which the status bar controller belongs.</li>
-            <li><b>CommandURL</b><br>a string which specifies the command 
-                   associated with the statusbar controller. The command is 
-                   used to identify the status bar controller 
-                   implementation.</li>
-            <li><b>ServiceManager</b><br>a <type scope="com::sun::star::lang">
-                   XMultiServiceFactory</type> instance which can be used to 
-                   create additional UNO services.</li>
-            <li><b>Parent</b><br>a <type scope="com::sun::star::awt">Window</type>
-                   instance which represents the parent window (status bar 
-                   window).</li>
-            <li><b>Identifier</b><br>an integer value which is the unique id 
-                   used by the status bar implementation to identify a status 
-                   bar entry. This value is currently only used by internal 
-                   OpenOffice.org status bar controller implementations.</li>
-        </ul>
-    */
-    interface com::sun::star::lang::XInitialization;
-
-    /** used to notify an implementation that it needs to add its listener or 
-        remove and add them again.
-
-        <p>
-        A status bar controller instance is ready for use after this call has 
-        been made the first time. The status bar implementation guarentees that 
-        the controller's item window has been added to the status bar and its 
-        reference is held by it.
-        </p>
-    */
-    interface com::sun::star::util::XUpdatable;
-
-    //-------------------------------------------------------------------------
-    /** used to notify changed features and requests for additional user 
-        interface items.
-
-        <p>
-        Mostly used by a status bar implementation to forward information to 
-        and request services from a status bar controller component. This 
-        interface must be useable after 
-        <member scope="com::sun::star::lang">XInitialitation::initialize</member> 
-        has been called.  The behavior of the interface is undefined if the 
-        controller component hasn't been initialized.
-        </p>
-     */
-    interface com::sun::star::frame::XStatusbarController;
 };
 
-//=============================================================================
-
 }; }; }; };
 
 #endif

Modified: openoffice/branches/ia2/main/offapi/com/sun/star/frame/XStatusbarController.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/com/sun/star/frame/XStatusbarController.idl?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/com/sun/star/frame/XStatusbarController.idl (original)
+++ openoffice/branches/ia2/main/offapi/com/sun/star/frame/XStatusbarController.idl Fri Dec  7 06:37:02 2012
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,97 +7,134 @@
  * 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.
- * 
+ *
  *************************************************************/
 
-
 #ifndef __com_sun_star_frame_XStatusbarController_idl__
 #define __com_sun_star_frame_XStatusbarController_idl__
 
-#ifndef __com_sun_star_awt_Point_idl__
-#include <com/sun/star/awt/Point.idl>
-#endif
-
-#ifndef __com_sun_star_awt_MouseEvent_idl__
 #include <com/sun/star/awt/MouseEvent.idl>
-#endif
-
-#ifndef __com_sun_star_awt_Rectangle_idl__
+#include <com/sun/star/awt/Point.idl>
 #include <com/sun/star/awt/Rectangle.idl>
-#endif
-
-#ifndef __com_sun_star_awt_XGraphics_idl__
 #include <com/sun/star/awt/XGraphics.idl>
-#endif
-
-//=============================================================================
+#include <com/sun/star/frame/XStatusListener.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/util/XUpdatable.idl>
 
 module com {  module sun {  module star {  module frame {
 
-//=============================================================================
-/** is an abstract service for a component which offers a more complex user interface
-    to users within a status bar.
+/** interface to be implemented by a component offering a more complex user
+    interface to users within a status bar.
 
     <p>
-    A generic status bar field is represented as a simple text field. A status 
-    bar controller can be added to a Statusbar and provide information or 
+    A generic status bar field is represented as a simple text field. A status
+    bar controller can be added to a Statusbar and provide information or
     functions with a more sophisticated user interface.<br/>
-    A typical example for status bar controller is a zoom chooser. It shows 
-    the current zoom and provides general zoom levels on a popup menu 
+    A typical example for status bar controller is a zoom chooser. It shows
+    the current zoom and provides general zoom levels on a popup menu
     that can be activated by a mouse action for context menus.
     <p>
 
     @see com::sun::star::frame::XDispatchProvider
-    
+
     @since OOo 2.0
- */
-interface XStatusbarController : ::com::sun::star::uno::XInterface
+*/
+interface XStatusbarController
 {
-    //=============================================================================
-    /** is called by a status bar if the mouse position is within the controller 
-        and a mouse button has been pressed. If the controller has captured the 
-        mouse input this function is also called when the mouse position is not 
+    /** used to initialize a component with required arguments.
+
+        <p>A status bar controller is initialized with <b>five</b> additional
+        arguments provided as a sequence of
+        <type scope="com::sun::star::beans">PropertyValue</type>:</p>
+
+        <ul>
+            <li><b>Frame</b><br/>a <type scope="com::sun::star::frame">XFrame</type>
+                instance to which the status bar controller belongs.
+            </li>
+            <li><b>CommandURL</b><br/>a string which specifies the command
+                associated with the statusbar controller.</br>
+                The command is used to identify the status bar controller
+                implementation.
+            </li>
+            <li><b>StatusbarItem</b><br/>a <type scope="com::sun::star::ui">XStatusbarItem</type>
+                instance which represents the status bar item asociated with
+                this controller.
+            </li>
+            <li><b>ParentWindow</b><br/>a <type scope="com::sun::star::awt">Window</type>
+                instance which represents the parent window (status bar window).
+            </li>
+            <li><b>ModuleName</b><br/>a string which specifies the name of the
+                office module attached to the frame to which this controller
+                belongs; the value is taken from
+                <member scope="com::sun::star::frame">XModuleManager::identify()</member>.
+            </li>
+        </ul>
+    */
+    interface com::sun::star::lang::XInitialization;
+
+    /** with this interface a component can receive events if a feature has
+        changed.
+
+        <p>The status bar controller implementation should register itself as a
+        listener when its <member scope="com::sun::star::util">XUpdatable</member>
+        interface has been called.</p>
+    */
+    interface com::sun::star::frame::XStatusListener;
+
+    /** used to notify an implementation that it needs to add its listener or
+        remove and add them again.
+
+        <p>
+        A status bar controller instance is ready for use after this call has
+        been made the first time. The status bar implementation guarentees that
+        the controller's item window has been added to the status bar and its
+        reference is held by it.
+        </p>
+    */
+    interface com::sun::star::util::XUpdatable;
+
+    /** is called by a status bar if the mouse position is within the controller
+        and a mouse button has been pressed. If the controller has captured the
+        mouse input this function is also called when the mouse position is not
         within the controller.
-    
+
         @param aMouseEvent
             current information about the mouse pointer.
 
         @return
-            return <TRUE/> if the event should not be processed and <FALSE/> 
+            return <TRUE/> if the event should not be processed and <FALSE/>
             if the event should be processed by the status bar.
     */
     boolean mouseButtonDown( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );
 
-    //=============================================================================
-    /** is called by a status bar if the mouse position is within the controller 
-        and a mouse has been moved. If the controller has captured the 
-        mouse input this function is also called when the mouse position is not 
+    /** is called by a status bar if the mouse position is within the controller
+        and a mouse has been moved. If the controller has captured the
+        mouse input this function is also called when the mouse position is not
         within the controller.
-    
+
         @param aMouseEvent
             current information about the mouse pointer.
 
         @return
-            return <TRUE/> if the event should not be processed and <FALSE/> 
+            return <TRUE/> if the event should not be processed and <FALSE/>
             if the event should be processed by the status bar.
     */
     boolean mouseMove( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );
 
-    //=============================================================================
-    /** is called by a status bar if the mouse position is within the controller 
-        and a mouse button has been released. If the controller has captured the 
-        mouse input this function is also called when the mouse position is not 
+    /** is called by a status bar if the mouse position is within the controller
+        and a mouse button has been released. If the controller has captured the
+        mouse input this function is also called when the mouse position is not
         within the controller.
-    
+
         @param aMouseEvent
             current information about the mouse pointer.
 
@@ -107,14 +144,15 @@ interface XStatusbarController : ::com::
     */
     boolean mouseButtonUp( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );
 
-    //=============================================================================
     /** is called by a status bar if a command event is available for a controller.
-    
+
         @param aPos
             the current mouse position in pixel.
 
         @param nCommand
             describes which command has been invoked.
+            <br/>See <type scope="com::sun::star::awt">Command</type> for
+            possible values.
 
         @param bMouseEvent
             <TRUE/> if the command is based on a mouse event, otherwise <FALSE/>.
@@ -126,11 +164,10 @@ interface XStatusbarController : ::com::
                   [in] long nCommand,
                   [in] boolean bMouseEvent,
                   [in] any aData );
-    
-    //=============================================================================
+
     /** is called by a status bar if the controller has to update the visual
         representation.
-    
+
         @param xGraphics
             a reference to a <type scope="com::sun::star::awt">XGraphics</type>
             which has to be used to update the visual representation.
@@ -139,29 +176,29 @@ interface XStatusbarController : ::com::
             a <type scope="com::sun::star::awt">Rectangle</type> which
             determine the output rectangle for all drawing operations
 
-        @param nItemID
-            the unique ID of the control within the status bar.
-
         @param nStyle
             reserved for future use.
     */
     void paint( [in] ::com::sun::star::awt::XGraphics xGraphics,
                 [in] ::com::sun::star::awt::Rectangle rOutputRectangle,
-                [in] long nItemId,
                 [in] long nStyle );
-    
-    //=============================================================================
-    /** is called by a status bar if the user clicked with mouse into the 
+
+    /** is called by a status bar if the user clicked with mouse into the
         field of the corresponding control.
+
+        @param aPos
+            the current mouse position in pixel.
     */
-    void click();
+    void click( [in] ::com::sun::star::awt::Point aPos );
 
-    //=============================================================================
-    /** is called by a status bar if the user double-clicked with mouse 
+    /** is called by a status bar if the user double-clicked with mouse
         into the field of the corresponding control.
+
+        @param aPos
+            the current mouse position in pixel.
     */
-    void doubleClick();
-};          
+    void doubleClick( [in] ::com::sun::star::awt::Point aPos );
+};
 
 }; }; }; };
 

Modified: openoffice/branches/ia2/main/offapi/com/sun/star/ui/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/com/sun/star/ui/makefile.mk?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/com/sun/star/ui/makefile.mk (original)
+++ openoffice/branches/ia2/main/offapi/com/sun/star/ui/makefile.mk Fri Dec  7 06:37:02 2012
@@ -70,6 +70,7 @@ IDLFILES=\
     XImageManager.idl                           \
     XModuleUIConfigurationManager.idl           \
     XModuleUIConfigurationManagerSupplier.idl   \
+    XStatusbarItem.idl                          \
     XUIConfiguration.idl                        \
     XUIConfigurationListener.idl                \
     XUIConfigurationManager.idl                 \

Modified: openoffice/branches/ia2/main/offapi/type_reference/typelibrary_history.txt
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/type_reference/typelibrary_history.txt?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/offapi/type_reference/typelibrary_history.txt (original)
+++ openoffice/branches/ia2/main/offapi/type_reference/typelibrary_history.txt Fri Dec  7 06:37:02 2012
@@ -189,3 +189,6 @@
 
 06/11/2012 (JSC): TaskID=119944
   Update reference type library to 3.4 version
+
+06/12/2012 (arielch): TaskID=121442
+  Extend css::awt::XGraphics for StatusbarController implementation

Modified: openoffice/branches/ia2/main/offapi/type_reference/types.rdb
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/offapi/type_reference/types.rdb?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
Binary files - no diff available.

Modified: openoffice/branches/ia2/main/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu (original)
+++ openoffice/branches/ia2/main/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu Fri Dec  7 06:37:02 2012
@@ -459,28 +459,6 @@
         </prop>
       </node>
       <node oor:name="c5" oor:op="replace">
-		<prop oor:name="Command">
-			<value>.uno:StatusbarLogo</value>
-		</prop>
-		<prop oor:name="Module">
-			<value/>
-		</prop>
-		<prop oor:name="Controller">
-			<value>com.sun.star.comp.framework.LogoImageStatusbarController</value>
-		</prop>
-	  </node>
-	  <node oor:name="c6" oor:op="replace">
-		<prop oor:name="Command">
-			<value>.uno:StatusbarLogoText</value>
-		</prop>
-		<prop oor:name="Module">
-			<value/>
-		</prop>
-		<prop oor:name="Controller">
-			<value>com.sun.star.comp.framework.LogoTextStatusbarController</value>
-		</prop>
-	  </node>
-      <node oor:name="c7" oor:op="replace">
         <prop oor:name="Command">
             <value>.uno:LanguageStatus</value>
         </prop>

Modified: openoffice/branches/ia2/main/officecfg/registry/schema/org/openoffice/Office/Addons.xcs
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/officecfg/registry/schema/org/openoffice/Office/Addons.xcs?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/officecfg/registry/schema/org/openoffice/Office/Addons.xcs (original)
+++ openoffice/branches/ia2/main/officecfg/registry/schema/org/openoffice/Office/Addons.xcs Fri Dec  7 06:37:02 2012
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--***********************************************************
- * 
+ *
  * 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
@@ -8,16 +8,16 @@
  * 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.
- * 
+ *
  ***********************************************************-->
 
 
@@ -197,6 +197,103 @@
 			    </info>
 			</prop>
 		</group>
+        <group oor:name="MergeStatusBarInstruction">
+            <info>
+                <desc>Describes a merge status bar instruction of an external component. The name must be unique and should be written using a package-scheme like org.openoffice.external.applicationexecuter to minimize name clashes. A merge instruction describes how the attached status bar items should be merged into the Office status bar.</desc>
+            </info>
+            <prop oor:name="MergePoint" oor:type="xs:string">
+                <info>
+                    <desc>Describes the command that should be used as a reference point for the merge command.</desc>
+                </info>
+            </prop>
+            <prop oor:name="MergeCommand" oor:type="xs:string">
+                <info>
+                    <desc>A command to be processed for this merge instruction.</desc>
+                </info>
+            </prop>
+            <prop oor:name="MergeCommandParameter" oor:type="xs:string">
+                <info>
+                    <desc>Optional parameters for a merge command. Interpretation depends on the individual command.</desc>
+                </info>
+            </prop>
+            <prop oor:name="MergeFallback" oor:type="xs:string">
+                <info>
+                    <desc>A fallback command to be used if MergeCommand cannot be applied.</desc>
+                </info>
+            </prop>
+            <prop oor:name="MergeContext" oor:type="xs:string">
+                <info>
+                    <desc>A property to define the context of this merge instruction. It can be empty or a colon separated list of the supported application modules.</desc>
+                </info>
+            </prop>
+            <set oor:name="StatusBarItems" oor:node-type="StatusBarItem">
+                <info>
+                    <desc>Contains a list of status bar items used by an Add-On.</desc>
+                </info>
+            </set>
+        </group>
+        <group oor:name="StatusBarItem">
+            <info>
+                <desc>Describes a status bar item representing a function of an external component. The name must be unique and should be written using a package-scheme like org.openoffice.external.applicationexecuter to minimize name clashes.</desc>
+            </info>
+            <prop oor:name="Context" oor:type="xs:string">
+                <info>
+                    <desc>A property to define the context of a status bar item. It can be empty or a colon separated list of the supported application modules.</desc>
+                </info>
+            </prop>
+            <prop oor:name="URL" oor:type="xs:string">
+                <info>
+                    <desc>A command URL which represents the function to execute.</desc>
+                </info>
+            </prop>
+            <prop oor:name="Title" oor:type="xs:string" oor:localized="true">
+                <info>
+                    <desc>A localized string used as the status bar item label.</desc>
+                </info>
+                <value></value>
+            </prop>
+            <prop oor:name="Alignment" oor:type="xs:string">
+                <info>
+                    <desc>The alignment of the status bar item.</desc>
+                </info>
+                <constraints>
+                    <enumeration oor:value="left">
+                        <info>
+                            <desc>The status bar control is aligned to the left</desc>
+                        </info>
+                    </enumeration>
+                    <enumeration oor:value="center">
+                        <info>
+                            <desc>The status bar control is aligned in the center</desc>
+                        </info>
+                    </enumeration>
+                    <enumeration oor:value="right">
+                        <info>
+                            <desc>The status bar control is aligned to the right</desc>
+                        </info>
+                    </enumeration>
+                </constraints>
+                <value>left</value>
+            </prop>
+            <prop oor:name="AutoSize" oor:type="xs:boolean">
+                <info>
+                    <desc>Specifies whether the size of the status bar item is fixed (false) or not (true).</desc>
+                </info>
+                <value>false</value>
+            </prop>
+            <prop oor:name="OwnerDraw" oor:type="xs:boolean">
+                <info>
+                    <desc>Specifies whether the contents of the status bar item are drawn by the client (true) or by the internal implemenetation (false).</desc>
+                </info>
+                <value>false</value>
+            </prop>
+            <prop oor:name="Width" oor:type="xs:long">
+                <info>
+                    <desc>A property to define the size of a status bar item.</desc>
+                </info>
+                <value>0</value>
+            </prop>
+        </group>
 		<group oor:name="UserDefinedImages">
 			<info>
 				<desc>A group of optional user-defined images. There are two ways to define image - 1. Embed the image data directly into the configuration. 2. Use file URLs to address external bitmap files. Embedded image data has a higher priority than file URLs.</desc>
@@ -272,6 +369,11 @@
 				<desc>Contains a list of merge toolbar instructions defined by an Add-On which specify how to merge toolbar items into an existing toolbar.</desc>
 			</info>
 		</set>
+        <set oor:name="MergeStatusBarItems" oor:node-type="MergeStatusBarInstruction">
+            <info>
+                <desc>Contains a list of merge status bar instructions defined by an Add-On which specify how to merge status bar items into an existing status bar.</desc>
+            </info>
+        </set>
 	</templates>
 	<component>
 		<group oor:name="AddonUI">
@@ -308,6 +410,11 @@
 			        <desc>Contains a list of toolbar merging instructions of different add-ons. </desc>
 			    </info>
 			</set>
+            <set oor:name="OfficeStatusbarMerging" oor:node-type="MergeStatusBarItems">
+                <info>
+                    <desc>Contains a list of status bar merging instructions of different add-ons. </desc>
+                </info>
+            </set>
 			<set oor:name="OfficeHelp" oor:node-type="MenuItem">
 				<info>
 					<desc>Contains a list of functions inserted into the Office help menu. The optional property 'Submeno' will be ignored for this set.</desc>

Modified: openoffice/branches/ia2/main/reportdesign/source/ui/inc/statusbarcontroller.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/reportdesign/source/ui/inc/statusbarcontroller.hxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/reportdesign/source/ui/inc/statusbarcontroller.hxx (original)
+++ openoffice/branches/ia2/main/reportdesign/source/ui/inc/statusbarcontroller.hxx Fri Dec  7 06:37:02 2012
@@ -27,20 +27,19 @@
 #include <comphelper/uno3.hxx>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <cppuhelper/implbase1.hxx>
-#include <comphelper/implementationreference.hxx>
 
 class SfxStatusBarControl;
 namespace rptui
 {
-    typedef ::comphelper::ImplementationReference<SfxStatusBarControl,::com::sun::star::frame::XStatusbarController> TStatusbarHelper;
+    typedef com::sun::star::uno::Reference< com::sun::star::frame::XStatusbarController > TStatusbarRef;
 
 	typedef ::cppu::ImplHelper1	<	::com::sun::star::lang::XServiceInfo> OStatusbarController_BASE;
 	class OStatusbarController : public ::svt::StatusbarController,
 								 public OStatusbarController_BASE
 	{
-        TStatusbarHelper m_pController;
-        sal_uInt16		 m_nSlotId;
-        sal_uInt16		 m_nId;
+        TStatusbarRef   m_rController;
+        sal_uInt16      m_nSlotId;
+        sal_uInt16      m_nId;
 	public:
 		OStatusbarController(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
 
@@ -79,9 +78,9 @@ namespace rptui
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics, 
                                      const ::com::sun::star::awt::Rectangle& rOutputRectangle, 
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 	};
 }
 #endif // DBAUI_STATUSBARCONTROLLER_HXX

Modified: openoffice/branches/ia2/main/reportdesign/source/ui/misc/statusbarcontroller.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/reportdesign/source/ui/misc/statusbarcontroller.cxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/reportdesign/source/ui/misc/statusbarcontroller.cxx (original)
+++ openoffice/branches/ia2/main/reportdesign/source/ui/misc/statusbarcontroller.cxx Fri Dec  7 06:37:02 2012
@@ -105,19 +105,25 @@ void SAL_CALL OStatusbarController::init
 			    break;
 		    }
 	    }
+
+	    SfxStatusBarControl *pController = 0;
         if ( m_aCommandURL.equalsAscii(".uno:ZoomSlider") )
-        {  
-            m_pController = TStatusbarHelper::createFromQuery(new SvxZoomSliderControl(m_nSlotId = SID_ATTR_ZOOMSLIDER,m_nId,*pStatusBar));
+        {
+            pController = new SvxZoomSliderControl(m_nSlotId = SID_ATTR_ZOOMSLIDER,m_nId,*pStatusBar);
         } // if ( m_aCommandURL.equalsAscii(".uno:ZoomSlider") )
         else if ( m_aCommandURL.equalsAscii(".uno:Zoom") )
-        {  
-            m_pController = TStatusbarHelper::createFromQuery(new SvxZoomStatusBarControl(m_nSlotId = SID_ATTR_ZOOM,m_nId,*pStatusBar));
+        {
+            pController = new SvxZoomStatusBarControl(m_nSlotId = SID_ATTR_ZOOM,m_nId,*pStatusBar);
         }
 
-        if ( m_pController.is() )
+        if ( pController )
         {
-	        m_pController->initialize(_rArguments);
-            m_pController->update();
+            m_rController.set( pController );
+            if ( m_rController.is() )
+            {
+                m_rController->initialize(_rArguments);
+                m_rController->update();
+            }
         }
 
         addStatusListener(m_aCommandURL);
@@ -130,7 +136,7 @@ void SAL_CALL OStatusbarController::stat
     ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
     ::osl::MutexGuard aGuard(m_aMutex);
 
-    if ( m_pController.is() )
+    if ( m_rController.is() )
     {
         if ( m_aCommandURL.equalsAscii(".uno:ZoomSlider") )
         {
@@ -139,7 +145,7 @@ void SAL_CALL OStatusbarController::stat
             {
                 SvxZoomSliderItem aZoomSlider(100,20,400);
                 aZoomSlider.PutValue(_aEvent.State);
-                static_cast<SvxZoomSliderControl*>(m_pController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoomSlider);
+                static_cast<SvxZoomSliderControl*>(m_rController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoomSlider);
             }
         } // if ( m_aCommandURL.equalsAscii(".uno:ZoomSlider") )
         else if ( m_aCommandURL.equalsAscii(".uno:Zoom") )
@@ -149,7 +155,7 @@ void SAL_CALL OStatusbarController::stat
             {
                 SvxZoomItem aZoom;
                 aZoom.PutValue(_aEvent.State);
-                static_cast<SvxZoomStatusBarControl*>(m_pController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoom);
+                static_cast<SvxZoomStatusBarControl*>(m_rController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoom);
             }
         }
     }
@@ -158,17 +164,17 @@ void SAL_CALL OStatusbarController::stat
 // XStatusbarController
 ::sal_Bool SAL_CALL OStatusbarController::mouseButtonDown(const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseButtonDown(_aEvent);
+    return m_rController.is() && m_rController->mouseButtonDown(_aEvent);
 }
 
 ::sal_Bool SAL_CALL OStatusbarController::mouseMove(    const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseMove(_aEvent);
+    return m_rController.is() && m_rController->mouseMove(_aEvent);
 }
 
 ::sal_Bool SAL_CALL OStatusbarController::mouseButtonUp(    const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseButtonUp(_aEvent);
+    return m_rController.is() && m_rController->mouseButtonUp(_aEvent);
 }
 
 void SAL_CALL OStatusbarController::command(
@@ -178,47 +184,49 @@ void SAL_CALL OStatusbarController::comm
     const ::com::sun::star::uno::Any& aData )
 throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->command( aPos, nCommand, bMouseEvent, aData );
+    if ( m_rController.is() )
+        m_rController->command( aPos, nCommand, bMouseEvent, aData );
 }
 
 void SAL_CALL OStatusbarController::paint(
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
     ::sal_Int32 nStyle )
 throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->paint( xGraphics, rOutputRectangle, nItemId, nStyle );
+    if ( m_rController.is() )
+        m_rController->paint( xGraphics, rOutputRectangle, nStyle );
 }
 
-void SAL_CALL OStatusbarController::click() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL OStatusbarController::click(
+    const ::com::sun::star::awt::Point& aPos )
+throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->click();
+    if ( m_rController.is() )
+        m_rController->click( aPos );
 }
 
-void SAL_CALL OStatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL OStatusbarController::doubleClick(
+    const ::com::sun::star::awt::Point& aPos )
+throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->doubleClick();
+    if ( m_rController.is() )
+        m_rController->doubleClick( aPos );
 }
 // -----------------------------------------------------------------------------
 void SAL_CALL OStatusbarController::update() throw ( RuntimeException )
 {
     ::svt::StatusbarController::update();
-    Reference< XUpdatable > xUp(m_pController.getRef(),UNO_QUERY);
-    if ( xUp.is() )
-        xUp->update();
+    if ( m_rController.is() )
+        m_rController->update();
 }
 // -----------------------------------------------------------------------------
 // XComponent
 void SAL_CALL OStatusbarController::dispose() throw (::com::sun::star::uno::RuntimeException)
 {
-    Reference< XComponent > xComp( m_pController.getRef(), UNO_QUERY );
-    ::comphelper::disposeComponent(xComp);
-    m_pController.dispose();
+    if ( m_rController.is() )
+        ::comphelper::disposeComponent( m_rController );
+
     svt::StatusbarController::dispose();
 }
 // =============================================================================

Modified: openoffice/branches/ia2/main/sc/source/core/tool/interpr1.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/tool/interpr1.cxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/tool/interpr1.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/tool/interpr1.cxx Fri Dec  7 06:37:02 2012
@@ -1544,45 +1544,44 @@ void ScInterpreter::ScRandom()
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScRandom" );
 
-    static sal_Int32 aScRandomIx = 0, aScRandomIy = 0, aScRandomIz = 0, aScRandomIt = 0;
+    static sal_Int32 nScRandomIx = 0, nScRandomIy = 0, nScRandomIz = 0, nScRandomIt = 0;
     static rtlRandomPool aPool = rtl_random_createPool();
+    double fScRandomW;
 
     // Seeding for the PRNG: should be good enough but we
     // monitor the values to keep things under control.
-    if (aScRandomIx <= 0)
-	rtl_random_getBytes(aPool, &aScRandomIx, sizeof(aScRandomIx));
-    if (aScRandomIy <= 0)
-	rtl_random_getBytes(aPool, &aScRandomIy, sizeof(aScRandomIy));
-    if (aScRandomIz <= 0)
-	rtl_random_getBytes(aPool, &aScRandomIz, sizeof(aScRandomIz));
-    if (aScRandomIt <= 0)
-	rtl_random_getBytes(aPool, &aScRandomIt, sizeof(aScRandomIt));
+    if (nScRandomIx <= 0)
+	rtl_random_getBytes(aPool, &nScRandomIx, sizeof(nScRandomIx));
+    if (nScRandomIy <= 0)
+	rtl_random_getBytes(aPool, &nScRandomIy, sizeof(nScRandomIy));
+    if (nScRandomIz <= 0)
+	rtl_random_getBytes(aPool, &nScRandomIz, sizeof(nScRandomIz));
+    if (nScRandomIt <= 0)
+	rtl_random_getBytes(aPool, &nScRandomIt, sizeof(nScRandomIt));
     
     // Basically unmodified algorithm from
     // Wichman and Hill, "Generating good pseudo-random numbers",
     //		December 5, 2005.
-
-    double aScRandomW;
     
-    aScRandomIx = 11600L * (aScRandomIx % 185127L) - 10379L * (aScRandomIx / 185127L);
-    aScRandomIy = 47003L * (aScRandomIy %  45688L) - 10479L * (aScRandomIy /  45688L);
-    aScRandomIz = 23000L * (aScRandomIz %  93368L) - 19423L * (aScRandomIz /  93368L);
-    aScRandomIt = 33000L * (aScRandomIt %  65075L) -  8123L * (aScRandomIt /  65075L);
-    if (aScRandomIx < 0)
-	aScRandomIx += 2147483579L;
-    if (aScRandomIy < 0)
-	aScRandomIy += 2147483543L;
-    if (aScRandomIz < 0)
-	aScRandomIz += 2147483123L;
-    if (aScRandomIt < 0)
-	aScRandomIt += 2147483123L;
-
-    aScRandomW = (double)aScRandomIx*0.0000000004656613022697297188506231646486 +
-	      	(double)aScRandomIy*0.0000000004656613100759859932486569933169 +
-		(double)aScRandomIz*0.0000000004656613360968421314794009471615 +
-		(double)aScRandomIt*0.0000000004656614011489951998100056779817;
+    nScRandomIx = 11600L * (nScRandomIx % 185127L) - 10379L * (nScRandomIx / 185127L);
+    nScRandomIy = 47003L * (nScRandomIy %  45688L) - 10479L * (nScRandomIy /  45688L);
+    nScRandomIz = 23000L * (nScRandomIz %  93368L) - 19423L * (nScRandomIz /  93368L);
+    nScRandomIt = 33000L * (nScRandomIt %  65075L) -  8123L * (nScRandomIt /  65075L);
+    if (nScRandomIx < 0)
+	nScRandomIx += 2147483579L;
+    if (nScRandomIy < 0)
+	nScRandomIy += 2147483543L;
+    if (nScRandomIz < 0)
+	nScRandomIz += 2147483123L;
+    if (nScRandomIt < 0)
+	nScRandomIt += 2147483123L;
+
+    fScRandomW = (double)nScRandomIx*0.0000000004656613022697297188506231646486 +
+	      	(double)nScRandomIy*0.0000000004656613100759859932486569933169 +
+		(double)nScRandomIz*0.0000000004656613360968421314794009471615 +
+		(double)nScRandomIt*0.0000000004656614011489951998100056779817;
 
-    PushDouble(aScRandomW - (sal_Int64)aScRandomW);
+    PushDouble(fScRandomW - (sal_Int32)fScRandomW);
 }
 
 

Modified: openoffice/branches/ia2/main/sfx2/inc/sfx2/stbitem.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sfx2/inc/sfx2/stbitem.hxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sfx2/inc/sfx2/stbitem.hxx (original)
+++ openoffice/branches/ia2/main/sfx2/inc/sfx2/stbitem.hxx Fri Dec  7 06:37:02 2012
@@ -94,10 +94,10 @@ protected:
                                     ::sal_Bool bMouseEvent,
                                     const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
     virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                    const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                    ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                 const ::com::sun::star::awt::Rectangle& rOutputRectangle,
+                                 ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 
     // Old sfx2 interface
     virtual void	StateChanged( sal_uInt16 nSID, SfxItemState eState,

Modified: openoffice/branches/ia2/main/sfx2/source/statbar/stbitem.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sfx2/source/statbar/stbitem.cxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sfx2/source/statbar/stbitem.cxx (original)
+++ openoffice/branches/ia2/main/sfx2/source/statbar/stbitem.cxx Fri Dec  7 06:37:02 2012
@@ -396,7 +396,6 @@ throw (::com::sun::star::uno::RuntimeExc
 void SAL_CALL SfxStatusBarControl::paint(
     const uno::Reference< awt::XGraphics >& xGraphics,
     const awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
     ::sal_Int32 nStyle )
 throw ( ::uno::RuntimeException )
 {
@@ -406,14 +405,14 @@ throw ( ::uno::RuntimeException )
     if ( pOutDev )
     {
         ::Rectangle aRect = VCLRectangle( rOutputRectangle );
-        UserDrawEvent aUserDrawEvent( pOutDev, aRect, (sal_uInt16)nItemId, (sal_uInt16)nStyle );
+        UserDrawEvent aUserDrawEvent( pOutDev, aRect, pBar->GetCurItemId(), (sal_uInt16)nStyle );
         Paint( aUserDrawEvent );
     }
 }
 
 //--------------------------------------------------------------------
 
-void SAL_CALL SfxStatusBarControl::click()
+void SAL_CALL SfxStatusBarControl::click( const awt::Point& )
 throw ( uno::RuntimeException )
 {
     ::vos::OGuard aGuard( Application::GetSolarMutex() );
@@ -422,7 +421,7 @@ throw ( uno::RuntimeException )
 
 //--------------------------------------------------------------------
 
-void SAL_CALL SfxStatusBarControl::doubleClick()
+void SAL_CALL SfxStatusBarControl::doubleClick( const awt::Point& )
 throw ( uno::RuntimeException )
 {
     ::vos::OGuard aGuard( Application::GetSolarMutex() );

Modified: openoffice/branches/ia2/main/svtools/inc/svtools/statusbarcontroller.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svtools/inc/svtools/statusbarcontroller.hxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svtools/inc/svtools/statusbarcontroller.hxx (original)
+++ openoffice/branches/ia2/main/svtools/inc/svtools/statusbarcontroller.hxx Fri Dec  7 06:37:02 2012
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,16 +7,16 @@
  * 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.
- * 
+ *
  *************************************************************/
 
 
@@ -25,12 +25,10 @@
 #define _SVTOOLS_STATUSBARCONTROLLER_HXX
 
 #include "svtools/svtdllapi.h"
+#include <com/sun/star/ui/XStatusbarItem.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/util/XUpdatable.hpp>
 #include <com/sun/star/frame/XFrame.hpp>
 #include <com/sun/star/frame/XDispatch.hpp>
-#include <com/sun/star/frame/XStatusListener.hpp>
 #include <com/sun/star/frame/XStatusbarController.hpp>
 #include <com/sun/star/util/XURLTransformer.hpp>
 #include <com/sun/star/frame/XLayoutManager.hpp>
@@ -48,10 +46,8 @@
 namespace svt
 {
 
-class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatusListener,
+class SVT_DLLPUBLIC StatusbarController :
                             public ::com::sun::star::frame::XStatusbarController,
-                            public ::com::sun::star::lang::XInitialization,
-                            public ::com::sun::star::util::XUpdatable,
                             public ::com::sun::star::lang::XComponent,
                             public ::comphelper::OBaseMutex,
                             public ::cppu::OWeakObject
@@ -106,9 +102,9 @@ class SVT_DLLPUBLIC StatusbarController 
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics, 
                                      const ::com::sun::star::awt::Rectangle& rOutputRectangle, 
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
  
     protected:
         struct Listener
@@ -147,6 +143,7 @@ class SVT_DLLPUBLIC StatusbarController 
         URLToDispatchMap                                                                    m_aListenerMap;
         ::cppu::OMultiTypeInterfaceContainerHelper                                          m_aListenerContainer;   /// container for ALL Listener
         mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer;
+        ::com::sun::star::uno::Reference< ::com::sun::star::ui::XStatusbarItem >           m_xStatusbarItem;
 };
 
 }

Modified: openoffice/branches/ia2/main/svtools/source/uno/statusbarcontroller.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svtools/source/uno/statusbarcontroller.cxx?rev=1418198&r1=1418197&r2=1418198&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svtools/source/uno/statusbarcontroller.cxx (original)
+++ openoffice/branches/ia2/main/svtools/source/uno/statusbarcontroller.cxx Fri Dec  7 06:37:02 2012
@@ -35,7 +35,7 @@
 #include <vcl/status.hxx>
 #include <svtools/imgdef.hxx>
 #include <svtools/miscopt.hxx>
-#include <toolkit/unohlp.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
 
 using namespace ::cppu;
 using namespace ::com::sun::star::awt;
@@ -157,12 +157,6 @@ void SAL_CALL StatusbarController::relea
 void SAL_CALL StatusbarController::initialize( const Sequence< Any >& aArguments )
 throw ( Exception, RuntimeException )
 {
-    const rtl::OUString aFrameName( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
-    const rtl::OUString aCommandURLName( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
-    const rtl::OUString aServiceManagerName( RTL_CONSTASCII_USTRINGPARAM( "ServiceManager" ));
-    const rtl::OUString aParentWindow( RTL_CONSTASCII_USTRINGPARAM( "ParentWindow" ));
-    const rtl::OUString aIdentifier( RTL_CONSTASCII_USTRINGPARAM( "Identifier" ));
-
     bool bInitialized( true );
 
     {
@@ -184,16 +178,18 @@ throw ( Exception, RuntimeException )
         {
             if ( aArguments[i] >>= aPropValue )
             {
-                if ( aPropValue.Name.equalsAscii( "Frame" ))
+                if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Frame" )))
                     aPropValue.Value >>= m_xFrame;
-                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CommandURL" )))
                     aPropValue.Value >>= m_aCommandURL;
-                else if ( aPropValue.Name.equalsAscii( "ServiceManager" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ServiceManager" )))
                     aPropValue.Value >>= m_xServiceManager;
-                else if ( aPropValue.Name.equalsAscii( "ParentWindow" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ParentWindow" )))
                     aPropValue.Value >>= m_xParentWindow;
-				else if ( aPropValue.Name.equalsAscii( "Identifier" ))
+				else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Identifier" )))
 					aPropValue.Value >>= m_nID;
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "StatusbarItem" )))
+                    aPropValue.Value >>= m_xStatusbarItem;
             }
         }
 
@@ -261,6 +257,7 @@ throw (::com::sun::star::uno::RuntimeExc
     m_xServiceManager.clear();
     m_xFrame.clear();
     m_xParentWindow.clear();
+    m_xStatusbarItem.clear();
 
     m_bDisposed = sal_True;
 }
@@ -281,26 +278,31 @@ throw ( RuntimeException )
 void SAL_CALL StatusbarController::disposing( const EventObject& Source )
 throw ( RuntimeException )
 {
-    Reference< XInterface > xSource( Source.Source );
-
     vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
 
     if ( m_bDisposed )
         return;
 
+    Reference< XFrame > xFrame( Source.Source, UNO_QUERY );
+    if ( xFrame.is() )
+    {
+        if ( xFrame == m_xFrame )
+            m_xFrame.clear();
+        return;
+    }
+
+    Reference< XDispatch > xDispatch( Source.Source, UNO_QUERY );
+    if ( !xDispatch.is() )
+        return;
+
     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
     while ( pIter != m_aListenerMap.end() )
     {
         // Compare references and release dispatch references if they are equal.
-        Reference< XInterface > xIfac( pIter->second, UNO_QUERY );
-        if ( xSource == xIfac )
+        if ( xDispatch == pIter->second )
             pIter->second.clear();
         pIter++;
     }
-
-    Reference< XInterface > xIfac( m_xFrame, UNO_QUERY );
-    if ( xIfac == xSource )
-        m_xFrame.clear();
 }
 
 // XStatusListener
@@ -359,18 +361,17 @@ throw (::com::sun::star::uno::RuntimeExc
 void SAL_CALL StatusbarController::paint(
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >&,
     const ::com::sun::star::awt::Rectangle&,
-    ::sal_Int32,
     ::sal_Int32 )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::click()
+void SAL_CALL StatusbarController::click( const ::com::sun::star::awt::Point& )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL StatusbarController::doubleClick( const ::com::sun::star::awt::Point& ) throw (::com::sun::star::uno::RuntimeException)
 {
     vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
 
@@ -533,37 +534,29 @@ void StatusbarController::bindListener()
     }
 
     // Call without locked mutex as we are called back from dispatch implementation
-    if ( xStatusListener.is() )
+    if ( !xStatusListener.is() )
+        return;
+
+    for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
     {
         try
         {
-            for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
+            Listener& rListener = aDispatchVector[i];
+            if ( rListener.xDispatch.is() )
+                rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
+            else if ( rListener.aURL.Complete == m_aCommandURL )
             {
-                Listener& rListener = aDispatchVector[i];
-                if ( rListener.xDispatch.is() )
-                    rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
-                else if ( rListener.aURL.Complete == m_aCommandURL )
-                {
-                    try
-                    {
-                        // Send status changed for the main URL, if we cannot get a valid dispatch object.
-                        // UI disables the button. Catch exception as we release our mutex, it is possible
-                        // that someone else already disposed this instance!
-                        FeatureStateEvent aFeatureStateEvent;
-                        aFeatureStateEvent.IsEnabled = sal_False;
-                        aFeatureStateEvent.FeatureURL = rListener.aURL;
-                        aFeatureStateEvent.State = Any();
-                        xStatusListener->statusChanged( aFeatureStateEvent );
-                    }
-                    catch ( Exception& )
-                    {
-                    }
-                }
+                // Send status changed for the main URL, if we cannot get a valid dispatch object.
+                // UI disables the button. Catch exception as we release our mutex, it is possible
+                // that someone else already disposed this instance!
+                FeatureStateEvent aFeatureStateEvent;
+                aFeatureStateEvent.IsEnabled = sal_False;
+                aFeatureStateEvent.FeatureURL = rListener.aURL;
+                aFeatureStateEvent.State = Any();
+                xStatusListener->statusChanged( aFeatureStateEvent );
             }
         }
-        catch ( Exception& )
-        {
-        }
+        catch ( ... ){}
     }
 }
 
@@ -574,35 +567,30 @@ void StatusbarController::unbindListener
     if ( !m_bInitialized )
         return;
 
-    // Collect all registered command URL's and store them temporary
-    Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
-    if ( m_xServiceManager.is() && xDispatchProvider.is() )
+    Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+    while ( pIter != m_aListenerMap.end() )
     {
-        Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
-        URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
-        while ( pIter != m_aListenerMap.end() )
-        {
-            Reference< XURLTransformer > xURLTransformer = getURLTransformer();
-            com::sun::star::util::URL aTargetURL;
-            aTargetURL.Complete = pIter->first;
-            xURLTransformer->parseStrict( aTargetURL );
+        Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+        com::sun::star::util::URL aTargetURL;
+        aTargetURL.Complete = pIter->first;
+        xURLTransformer->parseStrict( aTargetURL );
 
-            Reference< XDispatch > xDispatch( pIter->second );
-            if ( xDispatch.is() )
+        Reference< XDispatch > xDispatch( pIter->second );
+        if ( xDispatch.is() )
+        {
+            // We already have a dispatch object => we have to requery.
+            // Release old dispatch object and remove it as listener
+            try
+            {
+                xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+            }
+            catch ( Exception& )
             {
-                // We already have a dispatch object => we have to requery.
-                // Release old dispatch object and remove it as listener
-                try
-                {
-                    xDispatch->removeStatusListener( xStatusListener, aTargetURL );
-                }
-                catch ( Exception& )
-                {
-                }
             }
-            pIter->second.clear();
-            ++pIter;
         }
+        pIter->second.clear();
+        ++pIter;
     }
 }
 



Mime
View raw message