xref: /AOO41X/main/UnoControls/source/inc/progressbar.hxx (revision f6c049e22568bcf726837d66c15b178a9c9a692a)
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 _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
25 #define _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
26 
27 //____________________________________________________________________________________________________________
28 //  includes of other projects
29 //____________________________________________________________________________________________________________
30 
31 #include <com/sun/star/lang/XServiceName.hpp>
32 #include <com/sun/star/lang/XServiceInfo.hpp>
33 
34 //____________________________________________________________________________________________________________
35 //  includes of my own project
36 //____________________________________________________________________________________________________________
37 #include "basecontrol.hxx"
38 
39 //____________________________________________________________________________________________________________
40 //  namespaces
41 //____________________________________________________________________________________________________________
42 
43 namespace unocontrols{
44 
45 #define UNO3_REFERENCE                  ::com::sun::star::uno::Reference
46 #define UNO3_XMULTISERVICEFACTORY       ::com::sun::star::lang::XMultiServiceFactory
47 #define UNO3_RUNTIMEEXCEPTION           ::com::sun::star::uno::RuntimeException
48 #define UNO3_XCONTROLMODEL              ::com::sun::star::awt::XControlModel
49 #define UNO3_XPROGRESSBAR               ::com::sun::star::awt::XProgressBar
50 #define UNO3_ANY                        ::com::sun::star::uno::Any
51 #define UNO3_TYPE                       ::com::sun::star::uno::Type
52 #define UNO3_SEQUENCE                   ::com::sun::star::uno::Sequence
53 #define UNO3_XGRAPHICS                  ::com::sun::star::awt::XGraphics
54 #define UNO3_OUSTRING                   ::rtl::OUString
55 #define UNO3_SIZE                       ::com::sun::star::awt::Size
56 
57 //____________________________________________________________________________________________________________
58 //  defines
59 //____________________________________________________________________________________________________________
60 
61 #define SERVICENAME_PROGRESSBAR             "com.sun.star.awt.XProgressBar"
62 #define IMPLEMENTATIONNAME_PROGRESSBAR      "stardiv.UnoControls.ProgressBar"
63 #define FREESPACE                           4
64 #define DEFAULT_HORIZONTAL                  sal_True
65 #define DEFAULT_BLOCKDIMENSION              Size(1,1)
66 #define DEFAULT_BACKGROUNDCOLOR             TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 )    // lightgray
67 #define DEFAULT_FOREGROUNDCOLOR             TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x80 )    // blue
68 #define DEFAULT_MINRANGE                    INT_MIN
69 #define DEFAULT_MAXRANGE                    INT_MAX
70 #define DEFAULT_BLOCKVALUE                  1
71 #define DEFAULT_VALUE                       DEFAULT_MINRANGE
72 #define LINECOLOR_BRIGHT                    TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF )    // white
73 #define LINECOLOR_SHADOW                    TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 )    // black
74 
75 //____________________________________________________________________________________________________________
76 //  classes
77 //____________________________________________________________________________________________________________
78 
79 class ProgressBar   : public UNO3_XCONTROLMODEL
80                     , public UNO3_XPROGRESSBAR
81                     , public BaseControl
82 {
83 
84 //____________________________________________________________________________________________________________
85 //  public methods
86 //____________________________________________________________________________________________________________
87 
88 public:
89 
90     //________________________________________________________________________________________________________
91     //  construct/destruct
92     //________________________________________________________________________________________________________
93 
94     /**_________________________________________________________________________________________________________
95         @short
96         @descr
97 
98         @seealso
99 
100         @param
101 
102         @return
103 
104         @onerror
105     */
106 
107     ProgressBar( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
108 
109     /**_________________________________________________________________________________________________________
110         @short
111         @descr
112 
113         @seealso
114 
115         @param
116 
117         @return
118 
119         @onerror
120     */
121 
122     virtual ~ProgressBar();
123 
124     //__________________________________________________________________________________________________________
125     //  XInterface
126     //__________________________________________________________________________________________________________
127 
128     /**_________________________________________________________________________________________________________
129         @short
130         @descr
131 
132         @seealso
133 
134         @param
135 
136         @return
137 
138         @onerror
139     */
140 
141     virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
142 
143     /**_______________________________________________________________________________________________________
144         @short      increment refcount
145         @descr      -
146 
147         @seealso    XInterface
148         @seealso    release()
149 
150         @param      -
151 
152         @return     -
153 
154         @onerror    A RuntimeException is thrown.
155     */
156 
157     virtual void SAL_CALL acquire() throw();
158 
159     /**_______________________________________________________________________________________________________
160         @short      decrement refcount
161         @descr      -
162 
163         @seealso    XInterface
164         @seealso    acquire()
165 
166         @param      -
167 
168         @return     -
169 
170         @onerror    A RuntimeException is thrown.
171     */
172 
173     virtual void SAL_CALL release() throw();
174 
175     //__________________________________________________________________________________________________________
176     //  XTypeProvider
177     //__________________________________________________________________________________________________________
178 
179     /**_________________________________________________________________________________________________________
180         @short
181         @descr
182 
183         @seealso
184 
185         @param
186 
187         @return
188 
189         @onerror
190     */
191 
192     virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
193 
194     //__________________________________________________________________________________________________________
195     //  XAggregation
196     //__________________________________________________________________________________________________________
197 
198     /**_________________________________________________________________________________________________________
199         @short
200         @descr
201 
202         @seealso
203 
204         @param
205 
206         @return
207 
208         @onerror
209     */
210 
211     UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
212 
213     //________________________________________________________________________________________________________
214     //  XProgressBar
215     //________________________________________________________________________________________________________
216 
217     /**_________________________________________________________________________________________________________
218         @short
219         @descr
220 
221         @seealso
222 
223         @param
224 
225         @return
226 
227         @onerror
228     */
229 
230     virtual void SAL_CALL setForegroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
231 
232     /**_________________________________________________________________________________________________________
233         @short
234         @descr
235 
236         @seealso
237 
238         @param
239 
240         @return
241 
242         @onerror
243     */
244 
245     virtual void SAL_CALL setBackgroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
246 
247     /**_________________________________________________________________________________________________________
248         @short
249         @descr
250 
251         @seealso
252 
253         @param
254 
255         @return
256 
257         @onerror
258     */
259 
260     virtual void SAL_CALL setValue( sal_Int32 nValue ) throw( UNO3_RUNTIMEEXCEPTION );
261 
262     /**_________________________________________________________________________________________________________
263         @short
264         @descr
265 
266         @seealso
267 
268         @param
269 
270         @return
271 
272         @onerror
273     */
274 
275     virtual void SAL_CALL setRange( sal_Int32   nMin    ,
276                                     sal_Int32   nMax    ) throw( UNO3_RUNTIMEEXCEPTION );
277 
278     /**_________________________________________________________________________________________________________
279         @short
280         @descr
281 
282         @seealso
283 
284         @param
285 
286         @return
287 
288         @onerror
289     */
290 
291     virtual sal_Int32 SAL_CALL getValue() throw( UNO3_RUNTIMEEXCEPTION );
292 
293     //__________________________________________________________________________________________________________
294     //  XWindow
295     //__________________________________________________________________________________________________________
296 
297     /**_________________________________________________________________________________________________________
298         @short
299         @descr
300 
301         @seealso
302 
303         @param
304 
305         @return
306 
307         @onerror
308     */
309 
310     virtual void SAL_CALL setPosSize(   sal_Int32   nX      ,
311                                         sal_Int32   nY      ,
312                                         sal_Int32   nWidth  ,
313                                         sal_Int32   nHeight ,
314                                         sal_Int16   nFlags  ) throw( UNO3_RUNTIMEEXCEPTION );
315 
316     //__________________________________________________________________________________________________________
317     //  XControl
318     //__________________________________________________________________________________________________________
319 
320     /**_________________________________________________________________________________________________________
321         @short
322         @descr
323 
324         @seealso
325 
326         @param
327 
328         @return
329 
330         @onerror
331     */
332 
333     virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
334 
335     /**_________________________________________________________________________________________________________
336         @short
337         @descr
338 
339         @seealso
340 
341         @param
342 
343         @return
344 
345         @onerror
346     */
347 
348     virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
349 
350     //__________________________________________________________________________________________________________
351     //  BaseControl
352     //__________________________________________________________________________________________________________
353 
354     /**_________________________________________________________________________________________________________
355         @short
356         @descr
357 
358         @seealso
359 
360         @param
361 
362         @return
363 
364         @onerror
365     */
366 
367     static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
368 
369     /**_________________________________________________________________________________________________________
370         @short
371         @descr
372 
373         @seealso
374 
375         @param
376 
377         @return
378 
379         @onerror
380     */
381 
382     static const UNO3_OUSTRING impl_getStaticImplementationName();
383 
384 //____________________________________________________________________________________________________________
385 //  protected methods
386 //____________________________________________________________________________________________________________
387 
388 protected:
389 
390     /**_________________________________________________________________________________________________________
391         @short
392         @descr
393 
394         @seealso
395 
396         @param
397 
398         @return
399 
400         @onerror
401     */
402 
403     virtual void impl_paint(        sal_Int32                           nX          ,
404                                     sal_Int32                           nY          ,
405                             const   UNO3_REFERENCE< UNO3_XGRAPHICS >&   xGraphics   );
406 
407     /**_________________________________________________________________________________________________________
408         @short
409         @descr
410 
411         @seealso
412 
413         @param
414 
415         @return
416 
417         @onerror
418     */
419 
420     void impl_recalcRange();
421 
422 //____________________________________________________________________________________________________________
423 //  private variables
424 //____________________________________________________________________________________________________________
425 
426 private:
427 
428     sal_Bool    m_bHorizontal       ;   // orientation for steps            [true=horizontal/false=vertikal]
429     UNO3_SIZE   m_aBlockSize        ;   // width and height of a block      [>=0,0]
430     sal_Int32   m_nForegroundColor  ;   //                                  (alpha,r,g,b)
431     sal_Int32   m_nBackgroundColor  ;   //                                  (alpha,r,g,b)
432     sal_Int32   m_nMinRange         ;   // lowest value  =   0%             [long, <_nMaxRange]
433     sal_Int32   m_nMaxRange         ;   // highest value = 100%             [long, >_nMinRange]
434     double      m_nBlockValue       ;   // value for one block              [long, >0]
435     sal_Int32   m_nValue            ;   // value for progress               [long]
436 
437 };  // class ProgressBar
438 
439 }   // namespace unocontrols
440 
441 #endif  // #ifndef _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
442