summaryrefslogtreecommitdiff
path: root/starmath/inc/dialog.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'starmath/inc/dialog.hxx')
-rw-r--r--starmath/inc/dialog.hxx537
1 files changed, 537 insertions, 0 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
new file mode 100644
index 000000000000..b019a5b08ee1
--- /dev/null
+++ b/starmath/inc/dialog.hxx
@@ -0,0 +1,537 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef DIALOG_HXX
+#define DIALOG_HXX
+
+#include <vcl/image.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/fixed.hxx>
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/image.hxx>
+#include <sfx2/tabdlg.hxx>
+#include <vcl/combobox.hxx>
+#include <svx/charmap.hxx>
+#include <sfx2/basedlgs.hxx>
+#include <vcl/field.hxx>
+#include <vcl/menubtn.hxx>
+#include <vcl/scrbar.hxx>
+#include <vcl/ctrl.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/outdev.hxx>
+#include <svtools/ctrlbox.hxx>
+#include <svtools/ctrltool.hxx>
+#include "utility.hxx"
+#include "format.hxx"
+#include "symbol.hxx"
+
+class SubsetMap;
+#define CATEGORY_NONE 0xFFFF
+
+/**************************************************************************/
+
+const XubString GetFontStyleName(const Font &rFont);
+void SetFontStyle(const XubString &rStyleName, Font &rFont);
+
+/**************************************************************************/
+
+class SmPrintOptionsTabPage : public SfxTabPage
+{
+ FixedLine aFixedLine1;
+ CheckBox aTitle;
+ CheckBox aText;
+ CheckBox aFrame;
+ FixedLine aFixedLine2;
+ RadioButton aSizeNormal;
+ RadioButton aSizeScaled;
+ RadioButton aSizeZoomed;
+ MetricField aZoom;
+ FixedLine aFixedLine3;
+ CheckBox aNoRightSpaces;
+
+ DECL_LINK(SizeButtonClickHdl, Button *);
+
+ virtual BOOL FillItemSet(SfxItemSet& rSet);
+ virtual void Reset(const SfxItemSet& rSet);
+
+public:
+ static SfxTabPage* Create(Window *pWindow, const SfxItemSet &rSet);
+
+ SmPrintOptionsTabPage(Window *pParent, const SfxItemSet &rOptions);
+};
+
+/**************************************************************************/
+
+class SmShowFont : public Control
+{
+ virtual void Paint(const Rectangle&);
+
+public:
+ SmShowFont(Window *pParent, const ResId& rResId) :
+ Control(pParent, rResId)
+ {
+ }
+
+ void SetFont(const Font& rFont);
+};
+
+class SmFontDialog : public ModalDialog
+{
+ FixedText aFixedText1;
+ ComboBox aFontBox;
+ CheckBox aBoldCheckBox;
+ CheckBox aItalicCheckBox;
+ OKButton aOKButton1;
+ CancelButton aCancelButton1;
+ SmShowFont aShowFont;
+ FixedText aFixedText2;
+
+ Font Face;
+
+ DECL_LINK(FontSelectHdl, ComboBox *);
+ DECL_LINK(FontModifyHdl, ComboBox *);
+ DECL_LINK(AttrChangeHdl, CheckBox *);
+
+ void InitColor_Impl();
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+public:
+ SmFontDialog(Window * pParent, OutputDevice *pFntListDevice, BOOL bHideCheckboxes, BOOL bFreeRes = TRUE);
+
+ const Font& GetFont() const { return Face; }
+ void SetFont(const Font &rFont);
+};
+
+/**************************************************************************/
+
+class SmFontSizeDialog : public ModalDialog
+{
+ FixedText aFixedText1;
+ MetricField aBaseSize;
+ FixedText aFixedText4;
+ MetricField aTextSize;
+ FixedText aFixedText5;
+ MetricField aIndexSize;
+ FixedText aFixedText6;
+ MetricField aFunctionSize;
+ FixedText aFixedText7;
+ MetricField aOperatorSize;
+ FixedText aFixedText8;
+ MetricField aBorderSize;
+ FixedLine aFixedLine1;
+ OKButton aOKButton1;
+ CancelButton aCancelButton1;
+ PushButton aDefaultButton;
+
+ DECL_LINK(DefaultButtonClickHdl, Button *);
+
+public:
+ SmFontSizeDialog(Window *pParent, BOOL bFreeRes = TRUE);
+
+ void ReadFrom(const SmFormat &rFormat);
+ void WriteTo (SmFormat &rFormat) const;
+};
+
+/**************************************************************************/
+
+class SmFontTypeDialog : public ModalDialog
+{
+ FixedText aFixedText1;
+ SmFontPickListBox aVariableFont;
+ FixedText aFixedText2;
+ SmFontPickListBox aFunctionFont;
+ FixedText aFixedText3;
+ SmFontPickListBox aNumberFont;
+ FixedText aFixedText4;
+ SmFontPickListBox aTextFont;
+ FixedText aFixedText5;
+ SmFontPickListBox aSerifFont;
+ FixedText aFixedText6;
+ SmFontPickListBox aSansFont;
+ FixedText aFixedText7;
+ SmFontPickListBox aFixedFont;
+ FixedLine aFixedLine1;
+ FixedLine aFixedLine2;
+ OKButton aOKButton1;
+ CancelButton aCancelButton1;
+ MenuButton aMenuButton;
+ PushButton aDefaultButton;
+
+ OutputDevice *pFontListDev;
+
+ DECL_LINK(MenuSelectHdl, Menu *);
+ DECL_LINK(DefaultButtonClickHdl, Button *);
+
+public:
+ SmFontTypeDialog(Window *pParent, OutputDevice *pFntListDevice, BOOL bFreeRes = TRUE);
+
+ void ReadFrom(const SmFormat &rFormat);
+ void WriteTo (SmFormat &rFormat) const;
+};
+
+/**************************************************************************/
+
+#define NOCATEGORIES 10
+
+class SmCategoryDesc : public Resource
+{
+ XubString Name;
+ XubString *Strings[4];
+ Bitmap *Graphics[4]; /* regular bitmaps */
+ Bitmap *GraphicsH[4]; /* high contrast bitmaps */
+ USHORT Minimum[4];
+ USHORT Maximum[4];
+ USHORT Value[4];
+ BOOL bIsHighContrast;
+
+public:
+ SmCategoryDesc(const ResId &rResId, USHORT nCategoryIdx);
+ ~SmCategoryDesc();
+
+ const XubString & GetName() const { return Name; }
+ const XubString * GetString(USHORT Index) const { return Strings[Index]; }
+ USHORT GetMinimum(USHORT Index) { return Minimum[Index]; }
+ USHORT GetMaximum(USHORT Index) { return Maximum[Index]; }
+ USHORT GetValue(USHORT Index) const { return Value[Index]; }
+ void SetValue(USHORT Index, USHORT nVal) { Value[Index] = nVal;}
+
+ void SetHighContrast( BOOL bVal ) { bIsHighContrast = bVal; }
+ const Bitmap * GetGraphic(USHORT Index) const
+ {
+ return bIsHighContrast ? GraphicsH[Index] : Graphics[Index];
+ }
+};
+
+
+class SmDistanceDialog : public ModalDialog
+{
+ FixedText aFixedText1;
+ MetricField aMetricField1;
+ FixedText aFixedText2;
+ MetricField aMetricField2;
+ FixedText aFixedText3;
+ MetricField aMetricField3;
+ CheckBox aCheckBox1;
+ FixedText aFixedText4;
+ MetricField aMetricField4;
+ OKButton aOKButton1;
+ CancelButton aCancelButton1;
+ MenuButton aMenuButton;
+ PushButton aDefaultButton;
+ FixedBitmap aBitmap;
+ FixedLine aFixedLine;
+
+ SmCategoryDesc *Categories[NOCATEGORIES];
+ USHORT nActiveCategory;
+ BOOL bScaleAllBrackets;
+
+ DECL_LINK(GetFocusHdl, Control *);
+ DECL_LINK(MenuSelectHdl, Menu *);
+ DECL_LINK(DefaultButtonClickHdl, Button *);
+ DECL_LINK(CheckBoxClickHdl, CheckBox *);
+
+ using Window::SetHelpId;
+ void SetHelpId(MetricField &rField, ULONG nHelpId);
+ void SetCategory(USHORT Category);
+
+ void ApplyImages();
+
+public:
+ SmDistanceDialog(Window *pParent, BOOL bFreeRes = TRUE);
+ ~SmDistanceDialog();
+
+ void ReadFrom(const SmFormat &rFormat);
+ void WriteTo (SmFormat &rFormat) /*const*/;
+
+ // Window
+ virtual void DataChanged( const DataChangedEvent &rEvt );
+};
+
+
+/**************************************************************************/
+
+
+class SmAlignDialog : public ModalDialog
+{
+ RadioButton aLeft;
+ RadioButton aCenter;
+ RadioButton aRight;
+ FixedLine aFixedLine1;
+ OKButton aOKButton1;
+ CancelButton aCancelButton1;
+ PushButton aDefaultButton;
+
+ DECL_LINK(DefaultButtonClickHdl, Button *);
+
+public:
+ SmAlignDialog(Window *pParent, BOOL bFreeRes = TRUE);
+
+ void ReadFrom(const SmFormat &rFormat);
+ void WriteTo (SmFormat &rFormat) const;
+};
+
+/**************************************************************************/
+
+class SmShowSymbolSet : public Control
+{
+ SmSymSet aSymbolSet;
+ ScrollBar aVScrollBar;
+ Size aOutputSize;
+ Link aSelectHdlLink;
+ Link aDblClickHdlLink;
+ USHORT nLen;
+ USHORT nRows, nColumns;
+ USHORT nSelectSymbol;
+
+ virtual void Paint(const Rectangle&);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+ virtual void KeyInput(const KeyEvent& rKEvt);
+
+ DECL_LINK( ScrollHdl, ScrollBar* );
+
+public:
+ SmShowSymbolSet(Window *pParent, const ResId& rResId);
+
+ void SetSymbolSet(const SmSymSet& rSymbolSet);
+
+ void SelectSymbol(USHORT nSymbol);
+ USHORT GetSelectSymbol() const { return nSelectSymbol; }
+
+ void SetSelectHdl(const Link& rLink) { aSelectHdlLink = rLink; }
+ void SetDblClickHdl(const Link& rLink) { aDblClickHdlLink = rLink; }
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+class SmShowSymbol : public Control
+{
+ Link aDblClickHdlLink;
+
+ virtual void Paint(const Rectangle&);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+
+public:
+ SmShowSymbol(Window *pParent, const ResId& rResId) :
+ Control(pParent, rResId) {}
+
+ void SetSymbol(const SmSym *pSymbol);
+ void SetDblClickHdl(const Link &rLink) { aDblClickHdlLink = rLink; }
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+class SmSymDefineDialog;
+
+class SmSymbolDialog : public ModalDialog
+{
+ FixedText aSymbolSetText;
+ ListBox aSymbolSets;
+ SmShowSymbolSet aSymbolSetDisplay;
+ FixedText aSymbolName;
+ SmShowSymbol aSymbolDisplay;
+ PushButton aGetBtn;
+ PushButton aCloseBtn;
+ PushButton aEditBtn;
+
+ SmViewShell &rViewSh;
+ SmSymSetManager &rSymSetMgr;
+ const SmSymSet *pSymSet;
+
+ OutputDevice *pFontListDev;
+
+ DECL_LINK(SymbolSetChangeHdl, ListBox *);
+ DECL_LINK(SymbolChangeHdl, SmShowSymbolSet *);
+ DECL_LINK(SymbolDblClickHdl, SmShowSymbolSet *);
+ DECL_LINK(CloseClickHdl, Button *);
+ DECL_LINK(EditClickHdl, Button *);
+ DECL_LINK(GetClickHdl, Button *);
+
+ void FillSymbolSets(BOOL bDeleteText = TRUE);
+ void SetSymbolSetManager(SmSymSetManager &rMgr);
+ const SmSym *GetSymbol() const;
+ void InitColor_Impl();
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+public:
+ SmSymbolDialog(Window * pParent, OutputDevice *pFntListDevice,
+ SmSymSetManager &rSymSetMgr, SmViewShell &rViewShell, BOOL bFreeRes = TRUE);
+ virtual ~SmSymbolDialog();
+
+ BOOL SelectSymbolSet(const XubString &rSymbolSetName);
+ void SelectSymbol(USHORT nSymbolPos);
+ USHORT GetSelectedSymbol() const { return aSymbolSetDisplay.GetSelectSymbol(); }
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+class SmShowChar : public Control
+{
+ virtual void Paint(const Rectangle&);
+
+public:
+ SmShowChar(Window *pParent, const ResId& rResId)
+ : Control(pParent, rResId)
+ {
+ }
+
+ void SetChar(xub_Unicode aChar);
+ void SetFont(const Font &rFont);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+class SmSymDefineDialog : public ModalDialog
+{
+ FixedText aOldSymbolText;
+ ComboBox aOldSymbols;
+ FixedText aOldSymbolSetText;
+ ComboBox aOldSymbolSets;
+ SvxShowCharSet aCharsetDisplay;
+ FixedText aSymbolText;
+ ComboBox aSymbols;
+ FixedText aSymbolSetText;
+ ComboBox aSymbolSets;
+ FixedText aFontText;
+ ListBox aFonts;
+ FixedText aFontsSubsetFT;
+ ListBox aFontsSubsetLB;
+ FixedText aStyleText;
+ FontStyleBox aStyles;
+ FixedText aOldSymbolName;
+ SmShowChar aOldSymbolDisplay;
+ FixedText aOldSymbolSetName;
+ FixedText aSymbolName;
+ SmShowChar aSymbolDisplay;
+ FixedText aSymbolSetName;
+ OKButton aOkBtn;
+ CancelButton aCancelBtn;
+ PushButton aAddBtn;
+ PushButton aChangeBtn;
+ PushButton aDeleteBtn;
+ FixedImage aRightArrow;
+ Image aRigthArrow_Im;
+ Image aRigthArrow_Im_HC; // hi-contrast version
+
+ SmSymSetManager aSymSetMgrCopy,
+ &rSymSetMgr;
+ const SmSym *pOrigSymbol;
+
+ const SubsetMap *pSubsetMap;
+ FontList *pFontList;
+
+ DECL_LINK(OldSymbolChangeHdl, ComboBox *);
+ DECL_LINK(OldSymbolSetChangeHdl, ComboBox *);
+ DECL_LINK(ModifyHdl, ComboBox *);
+ DECL_LINK(FontChangeHdl, ListBox *);
+ DECL_LINK(SubsetChangeHdl, ListBox*);
+ DECL_LINK(StyleChangeHdl, ComboBox *);
+ DECL_LINK(CharHighlightHdl, Control* pControl);
+ DECL_LINK(AddClickHdl, Button *);
+ DECL_LINK(ChangeClickHdl, Button *);
+ DECL_LINK(DeleteClickHdl, Button *);
+
+ void FillSymbols(ComboBox &rComboBox, BOOL bDeleteText = TRUE);
+ void FillSymbolSets(ComboBox &rComboBox, BOOL bDeleteText = TRUE);
+ void FillFonts(BOOL bDeleteText = TRUE);
+ void FillStyles(BOOL bDeleteText = TRUE);
+
+ void SetSymbolSetManager(const SmSymSetManager &rMgr);
+ void SetFont(const XubString &rFontName, const XubString &rStyleName);
+ void SetOrigSymbol(const SmSym *pSymbol, const XubString &rSymbolSetName);
+ void UpdateButtons();
+
+ BOOL SelectSymbolSet(ComboBox &rComboBox, const XubString &rSymbolSetName,
+ BOOL bDeleteText);
+ BOOL SelectSymbol(ComboBox &rComboBox, const XubString &rSymbolName,
+ BOOL bDeleteText);
+ BOOL SelectFont(const XubString &rFontName, BOOL bApplyFont);
+ BOOL SelectStyle(const XubString &rStyleName, BOOL bApplyFont);
+
+
+ SmSymSet *GetSymbolSet(const ComboBox &rComboBox);
+ inline const SmSymSet *GetSymbolSet(const ComboBox &rComboBox) const;
+ SmSym *GetSymbol(const ComboBox &rComboBox);
+ inline const SmSym *GetSymbol(const ComboBox &rComboBox) const;
+
+ void InitColor_Impl();
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+public:
+ SmSymDefineDialog(Window *pParent, OutputDevice *pFntListDevice, SmSymSetManager &rMgr, BOOL bFreeRes = TRUE);
+ ~SmSymDefineDialog();
+
+ using OutputDevice::SetFont;
+
+ // Dialog
+ virtual short Execute();
+
+ inline BOOL SelectOldSymbolSet(const XubString &rSymbolSetName);
+ inline BOOL SelectOldSymbol(const XubString &rSymbolName);
+ inline BOOL SelectSymbolSet(const XubString &rSymbolSetName);
+ inline BOOL SelectSymbol(const XubString &rSymbolName);
+ BOOL SelectFont(const XubString &rFontName) { return SelectFont(rFontName, TRUE); }
+ BOOL SelectStyle(const XubString &rStyleName) { return SelectStyle(rStyleName, TRUE); };
+ void SelectChar(xub_Unicode cChar);
+};
+
+inline const SmSymSet * SmSymDefineDialog::GetSymbolSet(const ComboBox &rComboBox) const
+{
+ return ((SmSymDefineDialog *) this)->GetSymbolSet(rComboBox);
+}
+
+inline const SmSym * SmSymDefineDialog::GetSymbol(const ComboBox &rComboBox) const
+{
+ return ((SmSymDefineDialog *) this)->GetSymbol(rComboBox);
+}
+
+inline BOOL SmSymDefineDialog::SelectOldSymbolSet(const XubString &rSymbolSetName)
+{
+ return SelectSymbolSet(aOldSymbolSets, rSymbolSetName, FALSE);
+}
+
+inline BOOL SmSymDefineDialog::SelectOldSymbol(const XubString &rSymbolName)
+{
+ return SelectSymbol(aOldSymbols, rSymbolName, FALSE);
+}
+
+inline BOOL SmSymDefineDialog::SelectSymbolSet(const XubString &rSymbolSetName)
+{
+ return SelectSymbolSet(aSymbolSets, rSymbolSetName, FALSE);
+}
+
+inline BOOL SmSymDefineDialog::SelectSymbol(const XubString &rSymbolName)
+{
+ return SelectSymbol(aSymbols, rSymbolName, FALSE);
+}
+
+
+#endif
+