xref: /AOO41X/main/framework/inc/dispatch/selfdispatcher.hxx (revision f8e07b45f7e1fb69563504f404bb0b75210f0be6)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
25 #define __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
26 
27 //_________________________________________________________________________________________________________________
28 //  my own includes
29 //_________________________________________________________________________________________________________________
30 
31 #include <dispatch/basedispatcher.hxx>
32 
33 //_________________________________________________________________________________________________________________
34 //  interface includes
35 //_________________________________________________________________________________________________________________
36 
37 //_________________________________________________________________________________________________________________
38 //  other includes
39 //_________________________________________________________________________________________________________________
40 
41 //_________________________________________________________________________________________________________________
42 //  namespace
43 //_________________________________________________________________________________________________________________
44 
45 namespace framework{
46 
47 //_________________________________________________________________________________________________________________
48 //  exported const
49 //_________________________________________________________________________________________________________________
50 
51 //_________________________________________________________________________________________________________________
52 //  exported definitions
53 //_________________________________________________________________________________________________________________
54 
55 /*-************************************************************************************************************//**
56     @short          helper to dispatch into an existing owner frame
57     @descr          You should use it as dispatcher for "_self", flag::SELF ... cases, to load a document into an
58                     owner frame without creation of a new one.
59                     Use this class as member only! Never use it as baseclass.
60                     XInterface will be ambigous and we hold a weakreference to ouer OWNER - not to ouer SUPERCLASS!
61 
62     @implements     XInterface
63                     XDispatch
64                     XStatusListener
65                     XLoadEventListener
66                     XEventListener
67 
68     @base           BaseDispatcher
69                     OWeakObject
70 
71     @devstatus      ready to use
72     @threadsafe     yes
73 *//*-*************************************************************************************************************/
74 class SelfDispatcher   :   // -interfaces  ... are supported by our BaseDispatcher!
75                            // -baseclasses ... order is neccessary for right initialization!
76                            public BaseDispatcher
77 {
78     //-------------------------------------------------------------------------------------------------------------
79     //  public methods
80     //-------------------------------------------------------------------------------------------------------------
81     public:
82         //  ctor
83                               SelfDispatcher      ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory   ,
84                                                     const css::uno::Reference< css::frame::XFrame >&              xTarget    );
85         //  XDispatch
86         virtual void SAL_CALL dispatch            ( const css::util::URL&                                         aURL       ,
87                                                     const css::uno::Sequence< css::beans::PropertyValue >&        lArguments ) throw( css::uno::RuntimeException );
88 
89     //-------------------------------------------------------------------------------------------------------------
90     //  protected methods
91     //-------------------------------------------------------------------------------------------------------------
92     protected:
93         virtual void SAL_CALL reactForLoadingState ( const css::util::URL&                                      aURL        ,
94                                                      const css::uno::Sequence< css::beans::PropertyValue >&     lDescriptor ,
95                                                      const css::uno::Reference< css::frame::XFrame >&           xTarget     ,
96                                                            sal_Bool                                             bState      ,
97                                                      const css::uno::Any&                                       aAsyncInfo  );
98 
99         virtual void SAL_CALL reactForHandlingState( const css::util::URL&                                      aURL        ,
100                                                      const css::uno::Sequence< css::beans::PropertyValue >&     lDescriptor ,
101                                                            sal_Bool                                             bState      ,
102                                                      const css::uno::Any&                                       aAsyncInfo  );
103 
104 };      //  class SelfDispatcher
105 
106 }       //  namespace framework
107 
108 #endif  //  #ifndef __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
109