xref: /aoo41x/main/padmin/source/fontentry.hxx (revision cdf0e10c)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef _PAD_FONTENTRY_HXX_
29*cdf0e10cSrcweir #define _PAD_FONTENTRY_HXX_
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include "progress.hxx"
32*cdf0e10cSrcweir #include "helper.hxx"
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir #include "vcl/timer.hxx"
35*cdf0e10cSrcweir #include "vcl/dialog.hxx"
36*cdf0e10cSrcweir #include "vcl/button.hxx"
37*cdf0e10cSrcweir #include "vcl/combobox.hxx"
38*cdf0e10cSrcweir #include "vcl/lstbox.hxx"
39*cdf0e10cSrcweir #include "vcl/group.hxx"
40*cdf0e10cSrcweir #include "vcl/fontmanager.hxx"
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir #include "tools/urlobj.hxx"
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir namespace padmin {
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir 	class FontImportDialog :
47*cdf0e10cSrcweir 		public ModalDialog,
48*cdf0e10cSrcweir 		public ::psp::PrintFontManager::ImportFontCallback
49*cdf0e10cSrcweir 	{
50*cdf0e10cSrcweir 		OKButton							m_aOKBtn;
51*cdf0e10cSrcweir 		CancelButton						m_aCancelBtn;
52*cdf0e10cSrcweir         PushButton							m_aSelectAllBtn;
53*cdf0e10cSrcweir         ListBox								m_aNewFontsBox;
54*cdf0e10cSrcweir 		FixedLine							m_aFromFL;
55*cdf0e10cSrcweir 		Edit								m_aFromDirEdt;
56*cdf0e10cSrcweir 		PushButton							m_aFromBtn;
57*cdf0e10cSrcweir         CheckBox							m_aSubDirsBox;
58*cdf0e10cSrcweir         FixedLine							m_aTargetOptFL;
59*cdf0e10cSrcweir         CheckBox							m_aLinkOnlyBox;
60*cdf0e10cSrcweir         FixedText							m_aFixedText;
61*cdf0e10cSrcweir 		bool								m_bOverwriteAll;
62*cdf0e10cSrcweir 		bool								m_bOverwriteNone;
63*cdf0e10cSrcweir 		ProgressDialog*						m_pProgress;
64*cdf0e10cSrcweir 		int									m_nFont;
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir 		String								m_aImportOperation;
67*cdf0e10cSrcweir 		String								m_aOverwriteQueryText;
68*cdf0e10cSrcweir 		String								m_aOverwriteAllText;
69*cdf0e10cSrcweir 		String								m_aOverwriteNoneText;
70*cdf0e10cSrcweir 		String								m_aNoAfmText;
71*cdf0e10cSrcweir 		String								m_aAfmCopyFailedText;
72*cdf0e10cSrcweir 		String								m_aFontCopyFailedText;
73*cdf0e10cSrcweir 		String								m_aNoWritableFontsDirText;
74*cdf0e10cSrcweir 		String								m_aFontsImportedText;
75*cdf0e10cSrcweir 
76*cdf0e10cSrcweir         ::std::hash_map< ::rtl::OString, ::std::list< ::psp::FastPrintFontInfo >, ::rtl::OStringHash >
77*cdf0e10cSrcweir         									m_aNewFonts;
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir         Timer								m_aRefreshTimer;
80*cdf0e10cSrcweir         DECL_LINK( RefreshTimeoutHdl, void* );
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir 
83*cdf0e10cSrcweir 		::psp::PrintFontManager&			m_rFontManager;
84*cdf0e10cSrcweir 
85*cdf0e10cSrcweir 		DECL_LINK( ClickBtnHdl, Button* );
86*cdf0e10cSrcweir         DECL_LINK( ModifyHdl, Edit* );
87*cdf0e10cSrcweir         DECL_LINK( ToggleHdl, CheckBox* );
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir 		// implement ImportFontCallback
90*cdf0e10cSrcweir 		virtual void importFontsFailed( ::psp::PrintFontManager::ImportFontCallback::FailCondition eReason );
91*cdf0e10cSrcweir 		virtual void progress( const ::rtl::OUString& rFile );
92*cdf0e10cSrcweir 		virtual bool queryOverwriteFile( const ::rtl::OUString& rFile );
93*cdf0e10cSrcweir 		virtual void importFontFailed( const ::rtl::OUString& rFile, ::psp::PrintFontManager::ImportFontCallback::FailCondition eReason );
94*cdf0e10cSrcweir 		virtual bool isCanceled();
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir 		void copyFonts();
97*cdf0e10cSrcweir         void fillFontBox();
98*cdf0e10cSrcweir 	public:
99*cdf0e10cSrcweir 		FontImportDialog( Window* );
100*cdf0e10cSrcweir 		~FontImportDialog();
101*cdf0e10cSrcweir 	};
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 	class FontNameDlg : public ModalDialog
104*cdf0e10cSrcweir 	{
105*cdf0e10cSrcweir 	private:
106*cdf0e10cSrcweir 		OKButton           			m_aOKButton;
107*cdf0e10cSrcweir         PushButton					m_aRenameButton;
108*cdf0e10cSrcweir 		PushButton         			m_aRemoveButton;
109*cdf0e10cSrcweir         PushButton					m_aImportButton;
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 		DelListBox            		m_aFontBox;
112*cdf0e10cSrcweir 		FixedText          			m_aFixedText;
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir         String						m_aRenameString;
115*cdf0e10cSrcweir         String						m_aRenameTTCString;
116*cdf0e10cSrcweir         String						m_aNoRenameString;
117*cdf0e10cSrcweir 
118*cdf0e10cSrcweir 		::psp::PrintFontManager&	m_rFontManager;
119*cdf0e10cSrcweir 
120*cdf0e10cSrcweir 		// maps fontID to XLFD
121*cdf0e10cSrcweir 		::std::hash_map< ::psp::fontID, String >
122*cdf0e10cSrcweir 									m_aFonts;
123*cdf0e10cSrcweir         void init();
124*cdf0e10cSrcweir 	public:
125*cdf0e10cSrcweir 		FontNameDlg( Window* );
126*cdf0e10cSrcweir 		~FontNameDlg();
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir 		DECL_LINK( ClickBtnHdl, Button* );
129*cdf0e10cSrcweir 		DECL_LINK( DelPressedHdl, ListBox* );
130*cdf0e10cSrcweir         DECL_LINK( SelectHdl, ListBox* );
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir         static String fillFontEntry( ::psp::FastPrintFontInfo& rInfo, const String& rFile, bool bAddRegular );
133*cdf0e10cSrcweir         static String fillFontEntry( const ::std::list< ::psp::FastPrintFontInfo >& rInfos, const String& rFile );
134*cdf0e10cSrcweir 	};
135*cdf0e10cSrcweir } // namespace
136*cdf0e10cSrcweir 
137*cdf0e10cSrcweir #endif
138