LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/include/svx - dlgctrl.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 6 31 19.4 %
Date: 2013-07-09 Functions: 6 34 17.6 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : #ifndef _SVX_DLG_CTRL_HXX
      20             : #define _SVX_DLG_CTRL_HXX
      21             : 
      22             : #include <svtools/ctrlbox.hxx>
      23             : #include <sfx2/tabdlg.hxx>
      24             : #include "svx/svxdllapi.h"
      25             : #include <svx/rectenum.hxx>
      26             : #include <vcl/graph.hxx>
      27             : #include <svx/xtable.hxx>
      28             : 
      29             : class XOBitmap;
      30             : class XOutdevItemPool;
      31             : 
      32             : namespace com { namespace sun { namespace star { namespace awt {
      33             :     struct Point;
      34             : } } } }
      35             : 
      36             : /*************************************************************************
      37             : |* Derived from SfxTabPage for being able to get notified through the
      38             : |* virtual method from the control.
      39             : \************************************************************************/
      40             : 
      41           0 : class SvxTabPage : public SfxTabPage
      42             : {
      43             : 
      44             : public:
      45           0 :     SvxTabPage(Window* pParent, ResId Id, const SfxItemSet& rInAttrs)
      46           0 :         : SfxTabPage(pParent, Id, rInAttrs)
      47             :     {
      48           0 :     }
      49           0 :     SvxTabPage(Window *pParent, const OString& rID, const OUString& rUIXMLDescription, const SfxItemSet &rAttrSet)
      50           0 :         : SfxTabPage(pParent, rID, rUIXMLDescription, rAttrSet)
      51             :     {
      52           0 :     }
      53             :     virtual void PointChanged( Window* pWindow, RECT_POINT eRP ) = 0;
      54             : };
      55             : 
      56             : /*************************************************************************
      57             : |* Control for display and selection of the corner and center points of
      58             : |* an object
      59             : \************************************************************************/
      60             : 
      61             : typedef sal_uInt16 CTL_STATE;
      62             : #define CS_NOHORZ   1       // no horizontal input information is used
      63             : #define CS_NOVERT   2       // no vertikal input information is used
      64             : 
      65             : class SvxRectCtlAccessibleContext;
      66             : 
      67             : class SVX_DLLPUBLIC SvxRectCtl : public Control
      68             : {
      69             : private:
      70             :     SVX_DLLPRIVATE void             InitSettings( sal_Bool bForeground, sal_Bool bBackground );
      71             :     SVX_DLLPRIVATE void             InitRectBitmap( void );
      72             :     SVX_DLLPRIVATE Bitmap&          GetRectBitmap( void );
      73             :     SVX_DLLPRIVATE void             Resize_Impl();
      74             : 
      75             : protected:
      76             :     SvxRectCtlAccessibleContext*    pAccContext;
      77             :     sal_uInt16                          nBorderWidth;
      78             :     sal_uInt16                          nRadius;
      79             :     Size                            aSize;
      80             :     Point                           aPtLT, aPtMT, aPtRT;
      81             :     Point                           aPtLM, aPtMM, aPtRM;
      82             :     Point                           aPtLB, aPtMB, aPtRB;
      83             :     Point                           aPtNew;
      84             :     RECT_POINT                      eRP, eDefRP;
      85             :     CTL_STYLE                       eCS;
      86             :     Bitmap*                         pBitmap;
      87             :     CTL_STATE                       m_nState;
      88             : 
      89             :     sal_Bool                        mbCompleteDisable;
      90             : 
      91             :     RECT_POINT          GetRPFromPoint( Point ) const;
      92             :     Point               GetPointFromRP( RECT_POINT ) const;
      93             :     void                SetFocusRect( const Rectangle* pRect = NULL );      // pRect == NULL -> calculate rectangle in method
      94             :     Point               SetActualRPWithoutInvalidate( RECT_POINT eNewRP );  // returns the last point
      95             : 
      96             :     virtual void        GetFocus();
      97             :     virtual void        LoseFocus();
      98             : 
      99             :     Point               GetApproxLogPtFromPixPt( const Point& rRoughPixelPoint ) const;
     100             : public:
     101             :     SvxRectCtl( Window* pParent, const ResId& rResId, RECT_POINT eRpt = RP_MM,
     102             :                 sal_uInt16 nBorder = 200, sal_uInt16 nCircle = 80, CTL_STYLE eStyle = CS_RECT );
     103             :     SvxRectCtl( Window* pParent, RECT_POINT eRpt = RP_MM,
     104             :                 sal_uInt16 nBorder = 200, sal_uInt16 nCircle = 80, CTL_STYLE eStyle = CS_RECT );
     105             :     virtual ~SvxRectCtl();
     106             : 
     107             :     virtual void        Paint( const Rectangle& rRect );
     108             :     virtual void        MouseButtonDown( const MouseEvent& rMEvt );
     109             :     virtual void        KeyInput( const KeyEvent& rKeyEvt );
     110             :     virtual void        StateChanged( StateChangedType nStateChange );
     111             :     virtual void        DataChanged( const DataChangedEvent& rDCEvt );
     112             :     virtual void        Resize();
     113             : 
     114             :     void                Reset();
     115             :     RECT_POINT          GetActualRP() const;
     116             :     void                SetActualRP( RECT_POINT eNewRP );
     117             : 
     118             :     void                SetState( CTL_STATE nState );
     119             : 
     120             :     sal_uInt8               GetNumOfChildren( void ) const;   // returns number of usable radio buttons
     121             : 
     122             :     Rectangle           CalculateFocusRectangle( void ) const;
     123             :     Rectangle           CalculateFocusRectangle( RECT_POINT eRectPoint ) const;
     124             : 
     125             :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
     126             : 
     127             :     RECT_POINT          GetApproxRPFromPixPt( const ::com::sun::star::awt::Point& rPixelPoint ) const;
     128             : 
     129           0 :     sal_Bool IsCompletelyDisabled() const { return mbCompleteDisable; }
     130             :     void DoCompletelyDisable(sal_Bool bNew);
     131             :     void SetCS(CTL_STYLE eNew);
     132             : };
     133             : 
     134             : /*************************************************************************
     135             : |* Preview control for the display of bitmaps
     136             : \************************************************************************/
     137             : 
     138             : class SVX_DLLPUBLIC SvxBitmapCtl
     139             : {
     140             : protected:
     141             :     Size            aSize;
     142             :     sal_uInt16          nLines;
     143             :     Color           aPixelColor, aBackgroundColor;
     144             :     const sal_uInt16*   pBmpArray;
     145             : 
     146             : public:
     147             :             SvxBitmapCtl( Window* pParent, const Size& rSize );
     148             :             ~SvxBitmapCtl();
     149             : 
     150             :     BitmapEx GetBitmapEx();
     151             : 
     152           0 :     void    SetBmpArray( const sal_uInt16* pPixel ) { pBmpArray = pPixel; }
     153           0 :     void    SetLines( sal_uInt16 nLns ) { nLines = nLns; }
     154           0 :     void    SetPixelColor( Color aColor ) { aPixelColor = aColor; }
     155           0 :     void    SetBackgroundColor( Color aColor ) { aBackgroundColor = aColor; }
     156             : };
     157             : 
     158             : /*************************************************************************
     159             : |* Control for editing bitmaps
     160             : \************************************************************************/
     161             : 
     162             : class SVX_DLLPUBLIC SvxPixelCtl : public Control
     163             : {
     164             : private:
     165             :     using OutputDevice::SetLineColor;
     166             : 
     167             : protected:
     168             :     sal_uInt16      nLines, nSquares;
     169             :     Color       aPixelColor;
     170             :     Color       aBackgroundColor;
     171             :     Color       aLineColor;
     172             :     Size        aRectSize;
     173             :     sal_uInt16*     pPixel;
     174             :     sal_Bool        bPaintable;
     175             : 
     176             :     void    ChangePixel( sal_uInt16 nPixel );
     177             : 
     178             : public:
     179             :             SvxPixelCtl( Window* pParent, const ResId& rResId,
     180             :                         sal_uInt16 nNumber = 8 );
     181             :             ~SvxPixelCtl();
     182             : 
     183             :     virtual void Paint( const Rectangle& rRect );
     184             :     virtual void MouseButtonDown( const MouseEvent& rMEvt );
     185             : 
     186             :     void    SetXBitmap( const BitmapEx& rBitmapEx );
     187             : 
     188           0 :     void    SetPixelColor( const Color& rCol ) { aPixelColor = rCol; }
     189           0 :     void    SetBackgroundColor( const Color& rCol ) { aBackgroundColor = rCol; }
     190           0 :     void    SetLineColor( const Color& rCol ) { aLineColor = rCol; }
     191             : 
     192           0 :     sal_uInt16  GetLineCount() const { return nLines; }
     193             :     Color   GetPixelColor() const { return aPixelColor; }
     194             :     Color   GetBackgroundColor() const { return aBackgroundColor; }
     195             : 
     196           0 :     sal_uInt16* GetBitmapPixelPtr() { return pPixel; }
     197             : 
     198           0 :     void    SetPaintable( sal_Bool bTmp ) { bPaintable = bTmp; }
     199             :     void    Reset();
     200             : };
     201             : 
     202             : /************************************************************************/
     203             : 
     204          64 : class SVX_DLLPUBLIC ColorLB : public ColorListBox
     205             : {
     206             : 
     207             : public:
     208           0 :          ColorLB( Window* pParent, ResId Id ) : ColorListBox( pParent, Id ) {}
     209          64 :          ColorLB( Window* pParent, WinBits aWB ) : ColorListBox( pParent, aWB ) {}
     210             : 
     211             :     virtual void Fill( const XColorListRef &pTab );
     212             : 
     213             :     void Append( const XColorEntry& rEntry );
     214             :     void Modify( const XColorEntry& rEntry, sal_uInt16 nPos );
     215             : };
     216             : 
     217             : /************************************************************************/
     218             : 
     219           0 : class SVX_DLLPUBLIC HatchingLB : public ListBox
     220             : {
     221             :     XHatchListRef mpList;
     222             : public:
     223             :     explicit HatchingLB(Window* pParent, ResId Id);
     224             :     explicit HatchingLB(Window* pParent, WinBits aWB);
     225             : 
     226             :     virtual void Fill( const XHatchListRef &pList );
     227             : 
     228             :     void    Append( const XHatchEntry& rEntry, const Bitmap& rBitmap );
     229             :     void    Modify( const XHatchEntry& rEntry, sal_uInt16 nPos, const Bitmap& rBitmap );
     230             : };
     231             : 
     232             : /************************************************************************/
     233             : 
     234           0 : class SVX_DLLPUBLIC GradientLB : public ListBox
     235             : {
     236             :     XGradientListRef mpList;
     237             : public:
     238             :     explicit GradientLB(Window* pParent, ResId Id);
     239             :     explicit GradientLB(Window* pParent, WinBits aWB);
     240             : 
     241             :     virtual void Fill( const XGradientListRef &pList );
     242             : 
     243             :     void    Append( const XGradientEntry& rEntry, const Bitmap& rBitmap );
     244             :     void    Modify( const XGradientEntry& rEntry, sal_uInt16 nPos, const Bitmap& rBitmap );
     245             :     void    SelectEntryByList( const XGradientListRef &pList, const String& rStr,
     246             :                                const XGradient& rXGradient, sal_uInt16 nDist = 0 );
     247             : };
     248             : 
     249             : /************************************************************************/
     250             : 
     251           0 : class SVX_DLLPUBLIC BitmapLB : public ListBox
     252             : {
     253             : public:
     254             :     explicit BitmapLB(Window* pParent, ResId Id);
     255             : 
     256             :     virtual void Fill(const XBitmapListRef &pList);
     257             : 
     258             :     void Append(const Size& rSize, const XBitmapEntry& rEntry);
     259             :     void Modify(const Size& rSize, const XBitmapEntry& rEntry, sal_uInt16 nPos);
     260             :     void SelectEntryByList(const XBitmapList* pList, const String& rStr);
     261             : 
     262             : private:
     263             :     BitmapEx        maBitmapEx;
     264             : 
     265             :     XBitmapListRef  mpList;
     266             : };
     267             : 
     268             : /************************************************************************/
     269             : 
     270          64 : class FillAttrLB : public ColorListBox
     271             : {
     272             : private:
     273             :     BitmapEx        maBitmapEx;
     274             : 
     275             : public:
     276             :     FillAttrLB( Window* pParent, WinBits aWB );
     277             : 
     278             :     virtual void Fill( const XColorListRef    &pList );
     279             :     virtual void Fill( const XHatchListRef    &pList );
     280             :     virtual void Fill( const XGradientListRef &pList );
     281             :     virtual void Fill( const XBitmapListRef   &pList );
     282             : };
     283             : 
     284             : /************************************************************************/
     285             : 
     286          64 : class FillTypeLB : public ListBox
     287             : {
     288             : 
     289             : public:
     290             :          FillTypeLB( Window* pParent, ResId Id ) : ListBox( pParent, Id ) {}
     291          64 :          FillTypeLB( Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {}
     292             : 
     293             :     virtual void Fill();
     294             : };
     295             : 
     296             : /************************************************************************/
     297             : 
     298             : class SVX_DLLPUBLIC LineLB : public ListBox
     299             : {
     300             : private:
     301             :     /// bitfield
     302             :     /// defines if standard fields (none, solid) are added, default is true
     303             :     bool        mbAddStandardFields : 1;
     304             : 
     305             : public:
     306             :     LineLB(Window* pParent, ResId Id);
     307             :     LineLB(Window* pParent, WinBits aWB);
     308             :     virtual ~LineLB();
     309             : 
     310             :     virtual void Fill(const XDashListRef &pList);
     311          61 :     bool getAddStandardFields() const { return mbAddStandardFields; }
     312             :     void setAddStandardFields(bool bNew);
     313             : 
     314             :     void Append(const XDashEntry& rEntry, const Bitmap& rBitmap );
     315             :     void Modify(const XDashEntry& rEntry, sal_uInt16 nPos, const Bitmap& rBitmap );
     316             :     void SelectEntryByList(const XDashList* pList, const String& rStr, const XDash& rDash, sal_uInt16 nDist = 0);
     317             : };
     318             : 
     319             : /************************************************************************/
     320             : 
     321             : class SVX_DLLPUBLIC LineEndLB : public ListBox
     322             : {
     323             : 
     324             : public:
     325             :                           LineEndLB( Window* pParent, ResId Id );
     326             :                           LineEndLB( Window* pParent, WinBits aWB );
     327             :                  virtual ~LineEndLB (void);
     328             : 
     329             :     virtual void Fill( const XLineEndListRef &pList, bool bStart = true );
     330             : 
     331             :     void    Append( const XLineEndEntry& rEntry, const Bitmap& rBitmap, bool bStart = true );
     332             :     void    Modify( const XLineEndEntry& rEntry, sal_uInt16 nPos, const Bitmap& rBitmap, bool bStart = true );
     333             : };
     334             : 
     335             : //////////////////////////////////////////////////////////////////////////////
     336             : 
     337             : class SdrObject;
     338             : class SdrModel;
     339             : 
     340             : class SvxPreviewBase : public Control
     341             : {
     342             : private:
     343             :     SdrModel*                                       mpModel;
     344             :     VirtualDevice*                                  mpBufferDevice;
     345             : 
     346             : protected:
     347             :     void InitSettings(bool bForeground, bool bBackground);
     348             : 
     349             :     // prepare buffered paint
     350             :     void LocalPrePaint();
     351             : 
     352             :     // end and output buffered paint
     353             :     void LocalPostPaint();
     354             : 
     355             : public:
     356             :     SvxPreviewBase(Window* pParent, const ResId& rResId);
     357             :     SvxPreviewBase(Window* pParent);
     358             :     virtual ~SvxPreviewBase();
     359             : 
     360             :     // change support
     361             :     virtual void StateChanged(StateChangedType nStateChange);
     362             :     virtual void DataChanged(const DataChangedEvent& rDCEvt);
     363             : 
     364             :     // dada read access
     365           0 :     SdrModel& getModel() const { return *mpModel; }
     366           0 :     OutputDevice& getBufferDevice() const { return *mpBufferDevice; }
     367             : };
     368             : 
     369             : /*************************************************************************
     370             : |*
     371             : |* SvxLinePreview
     372             : |*
     373             : \************************************************************************/
     374             : 
     375             : class SVX_DLLPUBLIC SvxXLinePreview : public SvxPreviewBase
     376             : {
     377             : private:
     378             :     SdrObject*                                      mpLineObjA;
     379             :     SdrObject*                                      mpLineObjB;
     380             :     SdrObject*                                      mpLineObjC;
     381             : 
     382             :     Graphic*                                        mpGraphic;
     383             :     sal_Bool                                        mbWithSymbol;
     384             :     Size                                            maSymbolSize;
     385             : 
     386             : public:
     387             :     SvxXLinePreview( Window* pParent, const ResId& rResId );
     388             :     virtual ~SvxXLinePreview();
     389             : 
     390             :     void SetLineAttributes(const SfxItemSet& rItemSet);
     391             : 
     392           0 :     void ShowSymbol( sal_Bool b ) { mbWithSymbol = b; };
     393             :     void SetSymbol( Graphic* p, const Size& s );
     394             :     void ResizeSymbol( const Size& s );
     395             : 
     396             :     virtual void Paint( const Rectangle& rRect );
     397             : };
     398             : 
     399             : /*************************************************************************
     400             : |*
     401             : |* SvxXRectPreview
     402             : |*
     403             : \************************************************************************/
     404             : 
     405             : class SVX_DLLPUBLIC SvxXRectPreview : public SvxPreviewBase
     406             : {
     407             : private:
     408             :     SdrObject*                                      mpRectangleObject;
     409             : 
     410             : public:
     411             :     SvxXRectPreview(Window* pParent, const ResId& rResId);
     412             :     SvxXRectPreview(Window* pParent);
     413             :     virtual ~SvxXRectPreview();
     414             : 
     415             :     void SetAttributes(const SfxItemSet& rItemSet);
     416             : 
     417             :     virtual void    Paint( const Rectangle& rRect );
     418             :     virtual void Resize();
     419             : };
     420             : 
     421             : /*************************************************************************
     422             : |*
     423             : |* SvxXShadowPreview
     424             : |*
     425             : \************************************************************************/
     426             : 
     427             : class SVX_DLLPUBLIC SvxXShadowPreview : public SvxPreviewBase
     428             : {
     429             : private:
     430             :     SdrObject*                                      mpRectangleObject;
     431             :     SdrObject*                                      mpRectangleShadow;
     432             : 
     433             : public:
     434             :     SvxXShadowPreview( Window* pParent, const ResId& rResId );
     435             :     virtual ~SvxXShadowPreview();
     436             : 
     437             :     void SetRectangleAttributes(const SfxItemSet& rItemSet);
     438             :     void SetShadowAttributes(const SfxItemSet& rItemSet);
     439             :     void SetShadowPosition(const Point& rPos);
     440             : 
     441             :     virtual void    Paint( const Rectangle& rRect );
     442             : };
     443             : 
     444             : #endif // _SVX_DLG_CTRL_HXX
     445             : 
     446             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10