Files
libreoffice/starmath/inc/dialog.hxx

534 lines
16 KiB
C++
Raw Normal View History

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2000-09-18 16:07:07 +00:00
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2000-09-18 16:07:07 +00:00
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
2000-09-18 16:07:07 +00:00
*
* OpenOffice.org - a multi-platform office productivity suite
2000-09-18 16:07:07 +00:00
*
* This file is part of OpenOffice.org.
2000-09-18 16:07:07 +00:00
*
* 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.
2000-09-18 16:07:07 +00:00
*
* 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).
2000-09-18 16:07:07 +00:00
*
* 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.
2000-09-18 16:07:07 +00:00
*
************************************************************************/
#ifndef DIALOG_HXX
#define DIALOG_HXX
#include <vcl/image.hxx>
2000-09-18 16:07:07 +00:00
#include <vcl/dialog.hxx>
#include <vcl/fixed.hxx>
#include <vcl/button.hxx>
#include <sfx2/tabdlg.hxx>
#include <vcl/combobox.hxx>
#include <svx/charmap.hxx>
2000-09-18 16:07:07 +00:00
#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>
2000-09-18 16:07:07 +00:00
#include <svtools/ctrlbox.hxx>
#include <svtools/ctrltool.hxx>
#include "utility.hxx"
#include "format.hxx"
#include "symbol.hxx"
CWS-TOOLING: integrate CWS mba32issues01 2009-05-05 18:23:27 +0200 mba r271547 : apply diffs from m45->m47 for all files moved from dialog to cui 2009-05-05 18:22:02 +0200 mba r271545 : apply diffs from m45->m47 for all files moved from dialog to cui 2009-05-05 18:16:42 +0200 mba r271544 : apply diffs from m45->m47 for all files moved from dialog to cui 2009-04-29 19:35:58 +0200 mba r271392 : #i73672#: unify commands for inserting special characters 2009-04-29 18:01:27 +0200 mba r271391 : #i101337#: missing string resources 2009-04-29 18:01:10 +0200 mba r271390 : #i101337#: missing string resources 2009-04-29 15:42:47 +0200 mba r271380 : concurrency problem in multithreaded dmake due to missing dependency 2009-04-28 17:36:03 +0200 tbo r271336 : #i99432# 2009-04-28 13:57:52 +0200 mba r271322 : #i101302#: ctor might be called with pSet=0 2009-04-22 19:32:39 +0200 tbo r271138 : #i99432# 2009-04-09 14:46:03 +0200 mba r270709 : make sendreportw32.cxx compile with pch 2009-04-06 16:05:07 +0200 mba r270568 : #i99432#: some tweaks for build order 2009-04-06 15:38:52 +0200 mba r270558 : typo 2009-04-06 13:36:19 +0200 mba r270542 : #i99432#: split of localization also 2009-04-06 13:19:06 +0200 mba r270539 : #i99432#: split up srs files also 2009-04-03 17:57:59 +0200 mba r270513 : #i99432#: split dialog folder into two 2009-04-03 17:56:46 +0200 mba r270512 : #i99432#: split dialog folder into two 2009-04-01 22:15:00 +0200 mba r270364 : warnings on Linux 2009-04-01 22:10:44 +0200 mba r270363 : warnings on Linux 2009-04-01 21:43:54 +0200 mba r270362 : warning fixed 2009-04-01 21:41:27 +0200 mba r270361 : warning on Linux fixed 2009-04-01 21:35:44 +0200 mba r270360 : warning fixed 2009-04-01 20:19:59 +0200 mba r270358 : warning found on Linux fixed 2009-04-01 19:23:38 +0200 mba r270354 : warning due to missing eof 2009-04-01 18:56:25 +0200 mba r270352 : linking problem fixed that appeared only on mac 2009-04-01 18:41:30 +0200 mba r270350 : warnings discovered on Linux fixed 2009-04-01 18:34:28 +0200 mba r270349 : some fixes for warnings and include problems discoverd after resync and build on mac 2009-04-01 14:08:22 +0200 mba r270328 : CWS-TOOLING: rebase CWS mba32issues01 to trunk@270033 (milestone: DEV300:m45) 2009-03-04 18:13:35 +0100 mba r268858 : #i99432#: more dialogs moved to cui 2009-03-04 17:47:41 +0100 mba r268854 : #i99432#: more dialogs moved to cui 2009-03-04 17:32:39 +0100 mba r268851 : warning fixed 2009-03-04 12:59:26 +0100 mba r268814 : #i99432#: more dialogs moved to cui 2009-03-04 11:49:03 +0100 mba r268802 : #i99432#: CharmapDialog moved to cui 2009-03-04 10:46:00 +0100 mba r268795 : #i99432#: CharmapDialog moved to cui 2009-03-04 10:43:50 +0100 mba r268794 : #i99432#: CharmapDialog moved to cui 2009-03-04 10:00:29 +0100 mba r268792 : #i99432#: CharmapDialog moved to cui 2009-03-04 10:00:03 +0100 mba r268791 : #i99432#: CharmapDialog moved to cui 2009-03-04 09:59:43 +0100 mba r268790 : #i99432#: CharmapDialog moved to cui 2009-03-04 09:58:51 +0100 mba r268789 : #i99432#: CharmapDialog moved to cui 2009-03-04 09:58:16 +0100 mba r268788 : #i99432#: CharmapDialog moved to cui 2009-03-03 16:33:14 +0100 mba r268763 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:32:28 +0100 mba r268762 : #i99432#: some tabpages moved to cui 2009-03-03 16:32:09 +0100 mba r268761 : #i99432#: some tabpages moved to cui 2009-03-03 16:29:40 +0100 mba r268760 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:29:08 +0100 mba r268759 : #i99432#: MacroAssignment page moved to cui 2009-03-03 16:28:41 +0100 mba r268758 : #i99432#: MacroAssignment page moved to cui 2009-03-03 16:28:18 +0100 mba r268757 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:27:36 +0100 mba r268756 : #i99465#: replace FN_SYMBOL by SID_CHARMAP 2009-03-03 16:27:02 +0100 mba r268755 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:26:23 +0100 mba r268754 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:25:30 +0100 mba r268753 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:24:49 +0100 mba r268752 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:24:35 +0100 mba r268751 : #i99432#: MacroAssignment page moved to cui 2009-03-03 16:23:20 +0100 mba r268750 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:23:04 +0100 mba r268749 : #i99432#: MacroAssignment page moved to cui 2009-03-03 16:21:56 +0100 mba r268748 : #i99465#: new SfxAbstractDialog interface and creation methods 2009-03-03 16:18:39 +0100 mba r268747 : #i99432#: MacroAssignment page moved to cui 2009-03-03 16:13:14 +0100 mba r268745 : #i99465#: replace FN_SYMBOL by SID_CHARMAP 2009-03-03 16:02:54 +0100 mba r268738 : #i99432#: moved MacroAssignment TabPage from sfx2 2009-03-03 14:57:58 +0100 mba r268729 : #i99465#: transport return value via ItemSet 2009-03-03 00:08:10 +0100 mba r268701 : #i99432#: move acccfg to cuilib 2009-03-03 00:07:32 +0100 mba r268700 : #i99432#: move acccfg to cuilib 2009-03-03 00:02:01 +0100 mba r268699 : #i99432#: move acccfg to cuilib 2009-03-03 00:01:38 +0100 mba r268698 : #i99432#: move acccfg to cuilib 2009-03-03 00:01:11 +0100 mba r268697 : #i99432#: move acccfg to cuilib 2009-03-03 00:00:40 +0100 mba r268696 : #i99432#: move acccfg to cuilib 2009-03-03 00:00:06 +0100 mba r268695 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog 2009-03-02 23:59:22 +0100 mba r268694 : #i99432#: move acccfg to cuilib 2009-03-02 23:57:19 +0100 mba r268693 : #i99432#: move acccfg to svx 2009-03-02 23:56:14 +0100 mba r268692 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog 2009-03-02 23:49:37 +0100 mba r268691 : #i99785#: consolidate dialogs library 2009-03-02 17:26:40 +0100 mba r268683 : #i99785#: consolidate dialogs library 2009-03-02 17:24:28 +0100 mba r268682 : i99465#: consolidate slot for InsertSymbol command 2009-03-02 17:22:29 +0100 mba r268681 : #i99785#: consolidate dialogs library 2009-03-02 17:18:11 +0100 mba r268680 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 17:08:30 +0100 mba r268679 : #i99785#: consolidate dialogs library 2009-03-02 17:06:57 +0100 mba r268678 : #i99785#: consolidate dialogs library 2009-03-02 17:06:30 +0100 mba r268677 : #i99785#: consolidate dialogs library 2009-03-02 17:05:02 +0100 mba r268676 : #i99785#: consolidate dialogs library 2009-03-02 17:04:35 +0100 mba r268675 : #i99785#: consolidate dialogs library 2009-03-02 16:47:53 +0100 mba r268673 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:45:17 +0100 mba r268671 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:39:59 +0100 mba r268670 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:38:59 +0100 mba r268668 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:38:28 +0100 mba r268667 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:36:06 +0100 mba r268666 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:29:50 +0100 mba r268663 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:24:00 +0100 mba r268659 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:23:31 +0100 mba r268658 : i99432#: move accelconfig and macroassignment to cui 2009-03-02 16:22:41 +0100 mba r268657 : i99432#: move accelconfig and macroassignment to cui 2009-02-25 16:57:26 +0100 mba r268453 : obsolete 2009-02-17 10:50:51 +0100 mba r267846 : obsolete 2009-02-12 16:33:54 +0100 mba r267676 : #i96834#: warning fixed 2009-02-11 19:28:47 +0100 mba r267626 : #i91978#: unused code 2009-02-11 18:37:47 +0100 mba r267625 : metafile output, fixes for 3 layer office 2009-02-11 12:56:28 +0100 mba r267593 : selective trees; incomplete build lists; metafile output
2009-05-06 10:59:57 +00:00
class SubsetMap;
2000-09-18 16:07:07 +00:00
#define CATEGORY_NONE 0xFFFF
/**************************************************************************/
void SetFontStyle(const XubString &rStyleName, Font &rFont);
/**************************************************************************/
class SmPrintOptionsTabPage : public SfxTabPage
{
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine1;
2000-09-18 16:07:07 +00:00
CheckBox aTitle;
CheckBox aText;
CheckBox aFrame;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine2;
2000-09-18 16:07:07 +00:00
RadioButton aSizeNormal;
RadioButton aSizeScaled;
RadioButton aSizeZoomed;
MetricField aZoom;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine3;
CheckBox aNoRightSpaces;
CheckBox aSaveOnlyUsedSymbols;
2000-09-18 16:07:07 +00:00
DECL_LINK(SizeButtonClickHdl, Button *);
virtual sal_Bool FillItemSet(SfxItemSet& rSet);
2000-09-18 16:07:07 +00:00
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;
HelpButton aHelpButton1;
2000-09-18 16:07:07 +00:00
CancelButton aCancelButton1;
SmShowFont aShowFont;
2001-06-15 05:42:09 +00:00
FixedText aFixedText2;
2000-09-18 16:07:07 +00:00
Font Face;
DECL_LINK(FontSelectHdl, ComboBox *);
DECL_LINK(FontModifyHdl, ComboBox *);
2000-09-18 16:07:07 +00:00
DECL_LINK(AttrChangeHdl, CheckBox *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
void InitColor_Impl();
virtual void DataChanged( const DataChangedEvent& rDCEvt );
2000-09-18 16:07:07 +00:00
public:
SmFontDialog(Window * pParent, OutputDevice *pFntListDevice, bool bHideCheckboxes, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
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;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine1;
2000-09-18 16:07:07 +00:00
OKButton aOKButton1;
HelpButton aHelpButton1;
2000-09-18 16:07:07 +00:00
CancelButton aCancelButton1;
PushButton aDefaultButton;
DECL_LINK(DefaultButtonClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
public:
SmFontSizeDialog(Window *pParent, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
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;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine1;
FixedLine aFixedLine2;
2000-09-18 16:07:07 +00:00
OKButton aOKButton1;
HelpButton aHelpButton1;
2000-09-18 16:07:07 +00:00
CancelButton aCancelButton1;
MenuButton aMenuButton;
PushButton aDefaultButton;
OutputDevice *pFontListDev;
2000-09-18 16:07:07 +00:00
DECL_LINK(MenuSelectHdl, Menu *);
DECL_LINK(DefaultButtonClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
public:
SmFontTypeDialog(Window *pParent, OutputDevice *pFntListDevice, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
void ReadFrom(const SmFormat &rFormat);
void WriteTo (SmFormat &rFormat) const;
};
/**************************************************************************/
#define NOCATEGORIES 10
class SmCategoryDesc : public Resource
{
2012-01-24 21:20:24 +00:00
rtl::OUString Name;
rtl::OUString *Strings[4];
2002-05-24 11:12:46 +00:00
Bitmap *Graphics[4]; /* regular bitmaps */
sal_uInt16 Minimum[4];
sal_uInt16 Maximum[4];
sal_uInt16 Value[4];
2000-09-18 16:07:07 +00:00
public:
SmCategoryDesc(const ResId &rResId, sal_uInt16 nCategoryIdx);
2000-09-18 16:07:07 +00:00
~SmCategoryDesc();
2012-01-24 21:20:24 +00:00
const rtl::OUString& GetName() const { return Name; }
const rtl::OUString* GetString(sal_uInt16 Index) const { return Strings[Index]; }
sal_uInt16 GetMinimum(sal_uInt16 Index) { return Minimum[Index]; }
sal_uInt16 GetMaximum(sal_uInt16 Index) { return Maximum[Index]; }
sal_uInt16 GetValue(sal_uInt16 Index) const { return Value[Index]; }
void SetValue(sal_uInt16 Index, sal_uInt16 nVal) { Value[Index] = nVal;}
2002-05-24 11:12:46 +00:00
const Bitmap * GetGraphic(sal_uInt16 Index) const
2002-05-24 11:12:46 +00:00
{
2010-11-16 16:16:52 +00:00
return Graphics[Index];
2002-05-24 11:12:46 +00:00
}
2000-09-18 16:07:07 +00:00
};
class SmDistanceDialog : public ModalDialog
{
FixedText aFixedText1;
MetricField aMetricField1;
FixedText aFixedText2;
MetricField aMetricField2;
FixedText aFixedText3;
MetricField aMetricField3;
CheckBox aCheckBox1;
FixedText aFixedText4;
MetricField aMetricField4;
OKButton aOKButton1;
HelpButton aHelpButton1;
2000-09-18 16:07:07 +00:00
CancelButton aCancelButton1;
MenuButton aMenuButton;
PushButton aDefaultButton;
FixedBitmap aBitmap;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine;
2000-09-18 16:07:07 +00:00
SmCategoryDesc *Categories[NOCATEGORIES];
sal_uInt16 nActiveCategory;
bool bScaleAllBrackets;
2000-09-18 16:07:07 +00:00
DECL_LINK(GetFocusHdl, Control *);
DECL_LINK(MenuSelectHdl, Menu *);
DECL_LINK(DefaultButtonClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
DECL_LINK(CheckBoxClickHdl, CheckBox *);
using Window::SetHelpId;
void SetHelpId(MetricField &rField, const rtl::OString& sHelpId);
void SetCategory(sal_uInt16 Category);
2000-09-18 16:07:07 +00:00
public:
SmDistanceDialog(Window *pParent, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
~SmDistanceDialog();
void ReadFrom(const SmFormat &rFormat);
void WriteTo (SmFormat &rFormat) /*const*/;
2002-05-24 11:12:46 +00:00
// Window
virtual void DataChanged( const DataChangedEvent &rEvt );
2000-09-18 16:07:07 +00:00
};
/**************************************************************************/
class SmAlignDialog : public ModalDialog
{
RadioButton aLeft;
RadioButton aCenter;
RadioButton aRight;
2001-06-15 05:42:09 +00:00
FixedLine aFixedLine1;
2000-09-18 16:07:07 +00:00
OKButton aOKButton1;
HelpButton aHelpButton1;
2000-09-18 16:07:07 +00:00
CancelButton aCancelButton1;
PushButton aDefaultButton;
DECL_LINK(DefaultButtonClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
public:
SmAlignDialog(Window *pParent, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
void ReadFrom(const SmFormat &rFormat);
void WriteTo (SmFormat &rFormat) const;
};
/**************************************************************************/
class SmShowSymbolSet : public Control
{
SymbolPtrVec_t aSymbolSet;
2000-09-18 16:07:07 +00:00
ScrollBar aVScrollBar;
Size aOutputSize;
Link aSelectHdlLink;
Link aDblClickHdlLink;
sal_uInt16 nLen;
sal_uInt16 nRows, nColumns;
sal_uInt16 nSelectSymbol;
2000-09-18 16:07:07 +00:00
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 SymbolPtrVec_t& rSymbolSet);
2000-09-18 16:07:07 +00:00
void SelectSymbol(sal_uInt16 nSymbol);
sal_uInt16 GetSelectSymbol() const { return nSelectSymbol; }
2000-09-18 16:07:07 +00:00
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;
HelpButton aHelpBtn;
2001-06-15 05:42:09 +00:00
PushButton aGetBtn;
2000-09-18 16:07:07 +00:00
PushButton aCloseBtn;
PushButton aEditBtn;
SmViewShell &rViewSh;
SmSymbolManager &rSymbolMgr;
rtl::OUString aSymbolSetName;
SymbolPtrVec_t aSymbolSet;
2000-09-18 16:07:07 +00:00
OutputDevice *pFontListDev;
2000-09-18 16:07:07 +00:00
DECL_LINK(SymbolSetChangeHdl, ListBox *);
DECL_LINK(SymbolChangeHdl, SmShowSymbolSet *);
DECL_LINK(SymbolDblClickHdl, SmShowSymbolSet *);
DECL_LINK(CloseClickHdl, Button *);
DECL_LINK(EditClickHdl, Button *);
DECL_LINK(GetClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
void FillSymbolSets(bool bDeleteText = true);
void SetSymbolSetManager(SmSymbolManager &rMgr);
2000-09-18 16:07:07 +00:00
const SmSym *GetSymbol() const;
void InitColor_Impl();
virtual void DataChanged( const DataChangedEvent& rDCEvt );
2000-09-18 16:07:07 +00:00
public:
SmSymbolDialog(Window * pParent, OutputDevice *pFntListDevice,
SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell, bool bFreeRes = true);
virtual ~SmSymbolDialog();
2000-09-18 16:07:07 +00:00
bool SelectSymbolSet(const XubString &rSymbolSetName);
void SelectSymbol(sal_uInt16 nSymbolPos);
sal_uInt16 GetSelectedSymbol() const { return aSymbolSetDisplay.GetSelectSymbol(); }
2000-09-18 16:07:07 +00:00
};
////////////////////////////////////////////////////////////////////////////////
class SmShowChar : public Control
{
virtual void Paint(const Rectangle&);
public:
SmShowChar(Window *pParent, const ResId& rResId)
: Control(pParent, rResId)
{
}
void SetSymbol( const SmSym *pSym );
void SetSymbol( sal_UCS4 cChar, const Font &rFont );
2000-09-18 16:07:07 +00:00
};
////////////////////////////////////////////////////////////////////////////////
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;
HelpButton aHelpBtn;
CancelButton aCancelBtn;
PushButton aAddBtn;
PushButton aChangeBtn;
PushButton aDeleteBtn;
FixedImage aRightArrow;
Image aRigthArrow_Im;
2000-09-18 16:07:07 +00:00
SmSymbolManager aSymbolMgrCopy,
&rSymbolMgr;
2000-09-18 16:07:07 +00:00
const SmSym *pOrigSymbol;
const SubsetMap *pSubsetMap;
FontList *pFontList;
2000-09-18 16:07:07 +00:00
DECL_LINK(OldSymbolChangeHdl, ComboBox *);
DECL_LINK(OldSymbolSetChangeHdl, ComboBox *);
DECL_LINK(ModifyHdl, ComboBox *);
DECL_LINK(FontChangeHdl, ListBox *);
DECL_LINK(SubsetChangeHdl, ListBox*);
2000-09-18 16:07:07 +00:00
DECL_LINK(StyleChangeHdl, ComboBox *);
DECL_LINK(CharHighlightHdl, void *);
2000-09-18 16:07:07 +00:00
DECL_LINK(AddClickHdl, Button *);
DECL_LINK(ChangeClickHdl, Button *);
DECL_LINK(DeleteClickHdl, Button *);
DECL_LINK(HelpButtonClickHdl, Button *);
2000-09-18 16:07:07 +00:00
void FillSymbols(ComboBox &rComboBox, bool bDeleteText = true);
void FillSymbolSets(ComboBox &rComboBox, bool bDeleteText = true);
void FillFonts(bool bDeleteText = true);
void FillStyles(bool bDeleteText = true);
2000-09-18 16:07:07 +00:00
void SetSymbolSetManager(const SmSymbolManager &rMgr);
2000-09-18 16:07:07 +00:00
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);
2000-09-18 16:07:07 +00:00
SmSym * GetSymbol(const ComboBox &rComboBox);
const SmSym * GetSymbol(const ComboBox &rComboBox) const
{
return ((SmSymDefineDialog *) this)->GetSymbol(rComboBox);
}
2000-09-18 16:07:07 +00:00
void InitColor_Impl();
virtual void DataChanged( const DataChangedEvent& rDCEvt );
2000-09-18 16:07:07 +00:00
public:
SmSymDefineDialog(Window *pParent, OutputDevice *pFntListDevice, SmSymbolManager &rMgr, bool bFreeRes = true);
2000-09-18 16:07:07 +00:00
~SmSymDefineDialog();
using OutputDevice::SetFont;
2000-09-18 16:07:07 +00:00
// Dialog
virtual short Execute();
bool SelectOldSymbolSet(const XubString &rSymbolSetName)
{
return SelectSymbolSet(aOldSymbolSets, rSymbolSetName, false);
}
2000-09-18 16:07:07 +00:00
bool SelectOldSymbol(const XubString &rSymbolName)
{
return SelectSymbol(aOldSymbols, rSymbolName, false);
}
2000-09-18 16:07:07 +00:00
bool SelectSymbolSet(const XubString &rSymbolSetName)
{
return SelectSymbolSet(aSymbolSets, rSymbolSetName, false);
}
2000-09-18 16:07:07 +00:00
bool SelectSymbol(const XubString &rSymbolName)
{
return SelectSymbol(aSymbols, rSymbolName, false);
}
2000-09-18 16:07:07 +00:00
bool SelectFont(const XubString &rFontName) { return SelectFont(rFontName, true); }
bool SelectStyle(const XubString &rStyleName) { return SelectStyle(rStyleName, true); };
void SelectChar(xub_Unicode cChar);
};
2000-09-18 16:07:07 +00:00
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */