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