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

Generated by: LCOV version 1.10