LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/starmath/inc - dialog.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 49 0.0 %
Date: 2013-07-09 Functions: 0 49 0.0 %
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 DIALOG_HXX
      20             : #define DIALOG_HXX
      21             : 
      22             : #include <vcl/image.hxx>
      23             : #include <vcl/dialog.hxx>
      24             : #include <vcl/fixed.hxx>
      25             : #include <vcl/button.hxx>
      26             : #include <vcl/layout.hxx>
      27             : #include <sfx2/tabdlg.hxx>
      28             : #include <vcl/combobox.hxx>
      29             : #include <svx/charmap.hxx>
      30             : #include <sfx2/basedlgs.hxx>
      31             : #include <vcl/field.hxx>
      32             : #include <vcl/menubtn.hxx>
      33             : #include <vcl/scrbar.hxx>
      34             : #include <vcl/ctrl.hxx>
      35             : #include <vcl/menu.hxx>
      36             : #include <vcl/outdev.hxx>
      37             : #include <svtools/ctrlbox.hxx>
      38             : #include <svtools/ctrltool.hxx>
      39             : #include "utility.hxx"
      40             : #include "format.hxx"
      41             : #include "symbol.hxx"
      42             : 
      43             : class SubsetMap;
      44             : #define CATEGORY_NONE   0xFFFF
      45             : 
      46             : /**************************************************************************/
      47             : 
      48             : void SetFontStyle(const OUString &rStyleName, Font &rFont);
      49             : 
      50             : /**************************************************************************/
      51             : 
      52           0 : class SmPrintOptionsTabPage : public SfxTabPage
      53             : {
      54             :     CheckBox*       m_pTitle;
      55             :     CheckBox*       m_pText;
      56             :     CheckBox*       m_pFrame;
      57             :     RadioButton*    m_pSizeNormal;
      58             :     RadioButton*    m_pSizeScaled;
      59             :     RadioButton*    m_pSizeZoomed;
      60             :     MetricField*    m_pZoom;
      61             :     CheckBox*       m_pNoRightSpaces;
      62             :     CheckBox*       m_pSaveOnlyUsedSymbols;
      63             : 
      64             :     DECL_LINK(SizeButtonClickHdl, Button *);
      65             : 
      66             :     virtual sal_Bool    FillItemSet(SfxItemSet& rSet);
      67             :     virtual void    Reset(const SfxItemSet& rSet);
      68             : 
      69             : public:
      70             :     static SfxTabPage* Create(Window *pWindow, const SfxItemSet &rSet);
      71             : 
      72             :     SmPrintOptionsTabPage(Window *pParent, const SfxItemSet &rOptions);
      73             : };
      74             : 
      75             : /**************************************************************************/
      76             : 
      77           0 : class SmShowFont : public Control
      78             : {
      79             :     virtual void    Paint(const Rectangle&);
      80             : 
      81             : public:
      82           0 :     SmShowFont(Window *pParent, const ResId& rResId) :
      83           0 :         Control(pParent, rResId)
      84             :     {
      85           0 :     }
      86             : 
      87             :     void SetFont(const Font& rFont);
      88             : };
      89             : 
      90           0 : class SmFontDialog : public ModalDialog
      91             : {
      92             :     FixedText       aFixedText1;
      93             :     ComboBox        aFontBox;
      94             :     CheckBox        aBoldCheckBox;
      95             :     CheckBox        aItalicCheckBox;
      96             :     OKButton        aOKButton1;
      97             :     HelpButton      aHelpButton1;
      98             :     CancelButton    aCancelButton1;
      99             :     SmShowFont      aShowFont;
     100             :     FixedText       aFixedText2;
     101             : 
     102             :     Font    Face;
     103             : 
     104             :     DECL_LINK(FontSelectHdl, ComboBox *);
     105             :     DECL_LINK(FontModifyHdl, ComboBox *);
     106             :     DECL_LINK(AttrChangeHdl, CheckBox *);
     107             :     DECL_LINK(HelpButtonClickHdl, Button *);
     108             : 
     109             :     void            InitColor_Impl();
     110             : 
     111             :     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
     112             : 
     113             : public:
     114             :     SmFontDialog(Window * pParent, OutputDevice *pFntListDevice, bool bHideCheckboxes, bool bFreeRes = true);
     115             : 
     116           0 :     const Font& GetFont() const { return Face; }
     117             :     void        SetFont(const Font &rFont);
     118             : };
     119             : 
     120             : /**************************************************************************/
     121             : 
     122           0 : class SmFontSizeDialog : public ModalDialog
     123             : {
     124             :     MetricField* m_pBaseSize;
     125             :     MetricField* m_pTextSize;
     126             :     MetricField* m_pIndexSize;
     127             :     MetricField* m_pFunctionSize;
     128             :     MetricField* m_pOperatorSize;
     129             :     MetricField* m_pBorderSize;
     130             :     PushButton* m_pDefaultButton;
     131             : 
     132             :     DECL_LINK(DefaultButtonClickHdl, Button *);
     133             : 
     134             : public:
     135             :     SmFontSizeDialog(Window *pParent);
     136             : 
     137             :     void ReadFrom(const SmFormat &rFormat);
     138             :     void WriteTo (SmFormat &rFormat) const;
     139             : };
     140             : 
     141             : /**************************************************************************/
     142             : 
     143           0 : class SmFontTypeDialog : public ModalDialog
     144             : {
     145             :     SmFontPickListBox* m_pVariableFont;
     146             :     SmFontPickListBox* m_pFunctionFont;
     147             :     SmFontPickListBox* m_pNumberFont;
     148             :     SmFontPickListBox* m_pTextFont;
     149             :     SmFontPickListBox* m_pSerifFont;
     150             :     SmFontPickListBox* m_pSansFont;
     151             :     SmFontPickListBox* m_pFixedFont;
     152             :     MenuButton* m_pMenuButton;
     153             :     PushButton* m_pDefaultButton;
     154             : 
     155             :     OutputDevice       *pFontListDev;
     156             : 
     157             :     DECL_LINK(MenuSelectHdl, Menu *);
     158             :     DECL_LINK(DefaultButtonClickHdl, Button *);
     159             :     DECL_LINK(HelpButtonClickHdl, Button *);
     160             : 
     161             : public:
     162             :     SmFontTypeDialog(Window *pParent, OutputDevice *pFntListDevice);
     163             : 
     164             :     void ReadFrom(const SmFormat &rFormat);
     165             :     void WriteTo (SmFormat &rFormat) const;
     166             : };
     167             : 
     168             : /**************************************************************************/
     169             : 
     170             : #define NOCATEGORIES    10
     171             : 
     172             : class SmCategoryDesc
     173             : {
     174             :     OUString Name;
     175             :     OUString  *Strings[4];
     176             :     Image *Graphics[4];    /* regular bitmaps */
     177             :     sal_uInt16 Minimum[4];
     178             :     sal_uInt16 Maximum[4];
     179             :     sal_uInt16 Value[4];
     180             : 
     181             : public:
     182             :     SmCategoryDesc(VclBuilderContainer& rBuilder, sal_uInt16 nCategoryIdx);
     183             :     ~SmCategoryDesc();
     184             : 
     185           0 :     const OUString& GetName() const                 { return Name; }
     186           0 :     const OUString* GetString(sal_uInt16 Index) const   { return Strings[Index];  }
     187           0 :     sal_uInt16          GetMinimum(sal_uInt16 Index)        { return Minimum[Index]; }
     188           0 :     sal_uInt16          GetMaximum(sal_uInt16 Index)        { return Maximum[Index]; }
     189           0 :     sal_uInt16          GetValue(sal_uInt16 Index) const    { return Value[Index]; }
     190           0 :     void            SetValue(sal_uInt16 Index, sal_uInt16 nVal) { Value[Index] = nVal;}
     191             : 
     192           0 :     const Image *  GetGraphic(sal_uInt16 Index) const
     193             :     {
     194           0 :         return Graphics[Index];
     195             :     }
     196             : };
     197             : 
     198             : 
     199             : class SmDistanceDialog : public ModalDialog
     200             : {
     201             :     VclFrame*       m_pFrame;
     202             :     FixedText*      m_pFixedText1;
     203             :     MetricField*    m_pMetricField1;
     204             :     FixedText*      m_pFixedText2;
     205             :     MetricField*    m_pMetricField2;
     206             :     FixedText*      m_pFixedText3;
     207             :     MetricField*    m_pMetricField3;
     208             :     CheckBox*       m_pCheckBox1;
     209             :     FixedText*      m_pFixedText4;
     210             :     MetricField*    m_pMetricField4;
     211             :     MenuButton*     m_pMenuButton;
     212             :     PushButton*     m_pDefaultButton;
     213             :     FixedImage*     m_pBitmap;
     214             : 
     215             :     SmCategoryDesc *Categories[NOCATEGORIES];
     216             :     sal_uInt16          nActiveCategory;
     217             :     bool            bScaleAllBrackets;
     218             : 
     219             :     DECL_LINK(GetFocusHdl, Control *);
     220             :     DECL_LINK(MenuSelectHdl, Menu *);
     221             :     DECL_LINK(DefaultButtonClickHdl, Button *);
     222             :     DECL_LINK(CheckBoxClickHdl, CheckBox *);
     223             : 
     224             :     using   Window::SetHelpId;
     225             :     void    SetHelpId(MetricField &rField, const OString& sHelpId);
     226             :     void    SetCategory(sal_uInt16 Category);
     227             : 
     228             : public:
     229             :     SmDistanceDialog(Window *pParent);
     230             :     ~SmDistanceDialog();
     231             : 
     232             :     void ReadFrom(const SmFormat &rFormat);
     233             :     void WriteTo (SmFormat &rFormat) /*const*/;
     234             : 
     235             :     // Window
     236             :     virtual void    DataChanged( const DataChangedEvent &rEvt );
     237             : };
     238             : 
     239             : 
     240             : /**************************************************************************/
     241             : 
     242             : 
     243           0 : class SmAlignDialog : public ModalDialog
     244             : {
     245             :     RadioButton* m_pLeft;
     246             :     RadioButton* m_pCenter;
     247             :     RadioButton* m_pRight;
     248             :     PushButton*  m_pDefaultButton;
     249             : 
     250             :     DECL_LINK(DefaultButtonClickHdl, Button *);
     251             : 
     252             : public:
     253             :     SmAlignDialog(Window *pParent);
     254             : 
     255             :     void ReadFrom(const SmFormat &rFormat);
     256             :     void WriteTo (SmFormat &rFormat) const;
     257             : };
     258             : 
     259             : /**************************************************************************/
     260             : 
     261           0 : class SmShowSymbolSetWindow : public Control
     262             : {
     263             :     ScrollBar*  m_pVScrollBar;
     264             :     SymbolPtrVec_t aSymbolSet;
     265             :     Link        aSelectHdlLink;
     266             :     Link        aDblClickHdlLink;
     267             :     sal_uInt16  nLen;
     268             :     sal_uInt16  nRows, nColumns;
     269             :     sal_uInt16  nXOffset, nYOffset;
     270             :     sal_uInt16  nSelectSymbol;
     271             : 
     272             :     void SetScrollBarRange();
     273             :     Point OffsetPoint(const Point &rPoint) const;
     274             : 
     275             :     virtual void    Paint(const Rectangle&);
     276             :     virtual void    MouseButtonDown(const MouseEvent& rMEvt);
     277             :     virtual void    KeyInput(const KeyEvent& rKEvt);
     278             :     virtual void    Resize();
     279             :     virtual Size    GetOptimalSize() const;
     280             : 
     281             :     DECL_LINK( ScrollHdl, ScrollBar* );
     282             : public:
     283             :     SmShowSymbolSetWindow(Window *pParent, WinBits nStyle);
     284             :     void setScrollbar(ScrollBar *pVScrollBar);
     285             :     void calccols();
     286             :     void    SelectSymbol(sal_uInt16 nSymbol);
     287           0 :     sal_uInt16  GetSelectSymbol() const { return nSelectSymbol; }
     288             :     void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
     289           0 :     void SetSelectHdl(const Link& rLink)   { aSelectHdlLink = rLink; }
     290           0 :     void SetDblClickHdl(const Link& rLink) { aDblClickHdlLink = rLink; }
     291             : };
     292             : 
     293           0 : class SmShowSymbolSet : public VclHBox
     294             : {
     295             :     SmShowSymbolSetWindow aSymbolWindow;
     296             :     ScrollBar   aVScrollBar;
     297             :     Size        aOutputSize;
     298             : 
     299             : public:
     300             :     SmShowSymbolSet(Window *pParent);
     301             : 
     302           0 :     void    SetSymbolSet(const SymbolPtrVec_t& rSymbolSet) { aSymbolWindow.SetSymbolSet(rSymbolSet); }
     303             : 
     304           0 :     void    SelectSymbol(sal_uInt16 nSymbol) { aSymbolWindow.SelectSymbol(nSymbol); }
     305           0 :     sal_uInt16  GetSelectSymbol() const { return aSymbolWindow.GetSelectSymbol(); }
     306             : 
     307           0 :     void SetSelectHdl(const Link& rLink)   { aSymbolWindow.SetSelectHdl(rLink); }
     308           0 :     void SetDblClickHdl(const Link& rLink) { aSymbolWindow.SetDblClickHdl(rLink); }
     309             : };
     310             : 
     311             : ////////////////////////////////////////////////////////////////////////////////
     312             : 
     313           0 : class SmShowSymbol : public Control
     314             : {
     315             :     Link  aDblClickHdlLink;
     316             : 
     317             :     virtual void    Paint(const Rectangle&);
     318             :     virtual void    MouseButtonDown(const MouseEvent& rMEvt);
     319             :     virtual void    Resize();
     320             : 
     321             :     void setFontSize(Font &rFont) const;
     322             : 
     323             : public:
     324           0 :     SmShowSymbol(Window *pParent, WinBits nStyle)
     325           0 :         : Control(pParent, nStyle)
     326             :     {
     327           0 :     }
     328             : 
     329             :     void    SetSymbol(const SmSym *pSymbol);
     330           0 :     void    SetDblClickHdl(const Link &rLink) { aDblClickHdlLink = rLink; }
     331             : };
     332             : 
     333             : ////////////////////////////////////////////////////////////////////////////////
     334             : 
     335             : class SmSymDefineDialog;
     336             : 
     337           0 : class SmSymbolDialog : public ModalDialog
     338             : {
     339             :     ListBox*         m_pSymbolSets;
     340             :     SmShowSymbolSet* m_pSymbolSetDisplay;
     341             :     FixedText*       m_pSymbolName;
     342             :     SmShowSymbol*    m_pSymbolDisplay;
     343             :     PushButton*      m_pGetBtn;
     344             :     PushButton*      m_pEditBtn;
     345             : 
     346             :     SmViewShell        &rViewSh;
     347             :     SmSymbolManager    &rSymbolMgr;
     348             : 
     349             :     OUString       aSymbolSetName;
     350             :     SymbolPtrVec_t      aSymbolSet;
     351             : 
     352             :     OutputDevice       *pFontListDev;
     353             : 
     354             :     DECL_LINK(SymbolSetChangeHdl, void*);
     355             :     DECL_LINK(SymbolChangeHdl, void*);
     356             :     DECL_LINK(SymbolDblClickHdl, void*);
     357             :     DECL_LINK(EditClickHdl, void*);
     358             :     DECL_LINK(GetClickHdl, void*);
     359             : 
     360             :     void            FillSymbolSets(bool bDeleteText = true);
     361             :     void            SetSymbolSetManager(SmSymbolManager &rMgr);
     362             :     const SmSym    *GetSymbol() const;
     363             :     void            InitColor_Impl();
     364             : 
     365             :     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
     366             : 
     367             : public:
     368             :     SmSymbolDialog(Window * pParent, OutputDevice *pFntListDevice,
     369             :             SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell);
     370             : 
     371             :     bool    SelectSymbolSet(const OUString &rSymbolSetName);
     372             :     void    SelectSymbol(sal_uInt16 nSymbolPos);
     373           0 :     sal_uInt16  GetSelectedSymbol() const   { return m_pSymbolSetDisplay->GetSelectSymbol(); }
     374             : };
     375             : 
     376             : ////////////////////////////////////////////////////////////////////////////////
     377             : 
     378           0 : class SmShowChar : public Control
     379             : {
     380             :     virtual void    Paint(const Rectangle&);
     381             : 
     382             : public:
     383           0 :     SmShowChar(Window *pParent, const ResId& rResId)
     384           0 :     : Control(pParent, rResId)
     385             :     {
     386           0 :     }
     387             : 
     388             :     void    SetSymbol( const SmSym *pSym );
     389             :     void    SetSymbol( sal_UCS4 cChar, const Font &rFont );
     390             : };
     391             : 
     392             : ////////////////////////////////////////////////////////////////////////////////
     393             : 
     394             : class SmSymDefineDialog : public ModalDialog
     395             : {
     396             :     FixedText       aOldSymbolText;
     397             :     ComboBox        aOldSymbols;
     398             :     FixedText       aOldSymbolSetText;
     399             :     ComboBox        aOldSymbolSets;
     400             :     SvxShowCharSet  aCharsetDisplay;
     401             :     FixedText       aSymbolText;
     402             :     ComboBox        aSymbols;
     403             :     FixedText       aSymbolSetText;
     404             :     ComboBox        aSymbolSets;
     405             :     FixedText       aFontText;
     406             :     ListBox         aFonts;
     407             :     FixedText       aFontsSubsetFT;
     408             :     ListBox         aFontsSubsetLB;
     409             :     FixedText       aStyleText;
     410             :     FontStyleBox    aStyles;
     411             :     FixedText       aOldSymbolName;
     412             :     SmShowChar      aOldSymbolDisplay;
     413             :     FixedText       aOldSymbolSetName;
     414             :     FixedText       aSymbolName;
     415             :     SmShowChar      aSymbolDisplay;
     416             :     FixedText       aSymbolSetName;
     417             :     OKButton        aOkBtn;
     418             :     HelpButton      aHelpBtn;
     419             :     CancelButton    aCancelBtn;
     420             :     PushButton      aAddBtn;
     421             :     PushButton      aChangeBtn;
     422             :     PushButton      aDeleteBtn;
     423             :     FixedImage      aRightArrow;
     424             :     Image           aRigthArrow_Im;
     425             : 
     426             :     SmSymbolManager     aSymbolMgrCopy,
     427             :                        &rSymbolMgr;
     428             :     const SmSym        *pOrigSymbol;
     429             : 
     430             :     const SubsetMap    *pSubsetMap;
     431             :     FontList           *pFontList;
     432             : 
     433             :     DECL_LINK(OldSymbolChangeHdl, ComboBox *);
     434             :     DECL_LINK(OldSymbolSetChangeHdl, ComboBox *);
     435             :     DECL_LINK(ModifyHdl, ComboBox *);
     436             :     DECL_LINK(FontChangeHdl, ListBox *);
     437             :     DECL_LINK(SubsetChangeHdl, ListBox*);
     438             :     DECL_LINK(StyleChangeHdl, ComboBox *);
     439             :     DECL_LINK(CharHighlightHdl, void *);
     440             :     DECL_LINK(AddClickHdl, Button *);
     441             :     DECL_LINK(ChangeClickHdl, Button *);
     442             :     DECL_LINK(DeleteClickHdl, Button *);
     443             :     DECL_LINK(HelpButtonClickHdl, Button *);
     444             : 
     445             :     void    FillSymbols(ComboBox &rComboBox, bool bDeleteText = true);
     446             :     void    FillSymbolSets(ComboBox &rComboBox, bool bDeleteText = true);
     447             :     void    FillFonts(bool bDeleteText = true);
     448             :     void    FillStyles(bool bDeleteText = true);
     449             : 
     450             :     void    SetSymbolSetManager(const SmSymbolManager &rMgr);
     451             :     void    SetFont(const OUString &rFontName, const OUString &rStyleName);
     452             :     void    SetOrigSymbol(const SmSym *pSymbol, const OUString &rSymbolSetName);
     453             :     void    UpdateButtons();
     454             : 
     455             :     bool    SelectSymbolSet(ComboBox &rComboBox, const OUString &rSymbolSetName,
     456             :                             bool bDeleteText);
     457             :     bool    SelectSymbol(ComboBox &rComboBox, const OUString &rSymbolName,
     458             :                             bool bDeleteText);
     459             :     bool    SelectFont(const OUString &rFontName, bool bApplyFont);
     460             :     bool    SelectStyle(const OUString &rStyleName, bool bApplyFont);
     461             : 
     462             :     SmSym       * GetSymbol(const ComboBox &rComboBox);
     463             :     const SmSym * GetSymbol(const ComboBox &rComboBox) const
     464             :     {
     465             :         return ((SmSymDefineDialog *) this)->GetSymbol(rComboBox);
     466             :     }
     467             : 
     468             :     void            InitColor_Impl();
     469             : 
     470             :     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
     471             : 
     472             : public:
     473             :     SmSymDefineDialog(Window *pParent, OutputDevice *pFntListDevice, SmSymbolManager &rMgr, bool bFreeRes = true);
     474             :     ~SmSymDefineDialog();
     475             : 
     476             :     using OutputDevice::SetFont;
     477             : 
     478             :     // Dialog
     479             :     virtual short   Execute();
     480             : 
     481           0 :     bool SelectOldSymbolSet(const OUString &rSymbolSetName)
     482             :     {
     483           0 :         return SelectSymbolSet(aOldSymbolSets, rSymbolSetName, false);
     484             :     }
     485             : 
     486           0 :     bool SelectOldSymbol(const OUString &rSymbolName)
     487             :     {
     488           0 :         return SelectSymbol(aOldSymbols, rSymbolName, false);
     489             :     }
     490             : 
     491           0 :     bool SelectSymbolSet(const OUString &rSymbolSetName)
     492             :     {
     493           0 :         return SelectSymbolSet(aSymbolSets, rSymbolSetName, false);
     494             :     }
     495             : 
     496           0 :     bool SelectSymbol(const OUString &rSymbolName)
     497             :     {
     498           0 :         return SelectSymbol(aSymbols, rSymbolName, false);
     499             :     }
     500             : 
     501           0 :     bool        SelectFont(const OUString &rFontName)   { return SelectFont(rFontName, true); }
     502           0 :     bool        SelectStyle(const OUString &rStyleName) { return SelectStyle(rStyleName, true); };
     503             :     void        SelectChar(sal_Unicode cChar);
     504             : };
     505             : 
     506             : 
     507             : 
     508             : #endif
     509             : 
     510             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10