1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_cui.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski // include ---------------------------------------------------------------
28*b1cdbd2cSJim Jagielski #include <vcl/settings.hxx>
29*b1cdbd2cSJim Jagielski #include <unotools/viewoptions.hxx>
30*b1cdbd2cSJim Jagielski #include "cuihyperdlg.hxx"
31*b1cdbd2cSJim Jagielski #include "hlinettp.hxx"
32*b1cdbd2cSJim Jagielski #include "hlmailtp.hxx"
33*b1cdbd2cSJim Jagielski #include "hldoctp.hxx"
34*b1cdbd2cSJim Jagielski #include "hldocntp.hxx"
35*b1cdbd2cSJim Jagielski #include "hyperdlg.hrc"
36*b1cdbd2cSJim Jagielski #include <svx/svxids.hrc> // SID_READONLY_MODE
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Reference;
39*b1cdbd2cSJim Jagielski using ::com::sun::star::frame::XFrame;
40*b1cdbd2cSJim Jagielski
41*b1cdbd2cSJim Jagielski //########################################################################
42*b1cdbd2cSJim Jagielski //# #
43*b1cdbd2cSJim Jagielski //# Childwindow-Wrapper-Class #
44*b1cdbd2cSJim Jagielski //# #
45*b1cdbd2cSJim Jagielski //########################################################################
46*b1cdbd2cSJim Jagielski
SvxHlinkCtrl(sal_uInt16 _nId,SfxBindings & rBindings,SvxHpLinkDlg * pDlg)47*b1cdbd2cSJim Jagielski SvxHlinkCtrl::SvxHlinkCtrl( sal_uInt16 _nId, SfxBindings & rBindings, SvxHpLinkDlg* pDlg )
48*b1cdbd2cSJim Jagielski : SfxControllerItem ( _nId, rBindings )
49*b1cdbd2cSJim Jagielski ,aOnlineForwarder ( SID_INTERNET_ONLINE , *this )
50*b1cdbd2cSJim Jagielski ,aRdOnlyForwarder ( SID_READONLY_MODE, *this )
51*b1cdbd2cSJim Jagielski {
52*b1cdbd2cSJim Jagielski pParent = pDlg;
53*b1cdbd2cSJim Jagielski }
54*b1cdbd2cSJim Jagielski
StateChanged(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState)55*b1cdbd2cSJim Jagielski void SvxHlinkCtrl::StateChanged( sal_uInt16 nSID, SfxItemState eState,
56*b1cdbd2cSJim Jagielski const SfxPoolItem* pState )
57*b1cdbd2cSJim Jagielski {
58*b1cdbd2cSJim Jagielski if ( eState == SFX_ITEM_AVAILABLE )
59*b1cdbd2cSJim Jagielski {
60*b1cdbd2cSJim Jagielski switch ( nSID )
61*b1cdbd2cSJim Jagielski {
62*b1cdbd2cSJim Jagielski case SID_INTERNET_ONLINE :
63*b1cdbd2cSJim Jagielski {
64*b1cdbd2cSJim Jagielski pParent->EnableInetBrowse( !( (SfxBoolItem*)pState)->GetValue() );
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski break;
67*b1cdbd2cSJim Jagielski case SID_HYPERLINK_GETLINK :
68*b1cdbd2cSJim Jagielski {
69*b1cdbd2cSJim Jagielski pParent->SetPage ( (SvxHyperlinkItem*)pState);
70*b1cdbd2cSJim Jagielski }
71*b1cdbd2cSJim Jagielski break;
72*b1cdbd2cSJim Jagielski case SID_READONLY_MODE :
73*b1cdbd2cSJim Jagielski {
74*b1cdbd2cSJim Jagielski pParent->SetReadOnlyMode( ( (SfxBoolItem*)pState)->GetValue() == sal_True );
75*b1cdbd2cSJim Jagielski }
76*b1cdbd2cSJim Jagielski break;
77*b1cdbd2cSJim Jagielski }
78*b1cdbd2cSJim Jagielski }
79*b1cdbd2cSJim Jagielski }
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski //########################################################################
88*b1cdbd2cSJim Jagielski //# #
89*b1cdbd2cSJim Jagielski //# Hyperlink - Dialog #
90*b1cdbd2cSJim Jagielski //# #
91*b1cdbd2cSJim Jagielski //########################################################################
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski /*************************************************************************
94*b1cdbd2cSJim Jagielski |*
95*b1cdbd2cSJim Jagielski |* Contructor / Destructor
96*b1cdbd2cSJim Jagielski |*
97*b1cdbd2cSJim Jagielski |************************************************************************/
98*b1cdbd2cSJim Jagielski
SvxHpLinkDlg(Window * pParent,SfxBindings * pBindings)99*b1cdbd2cSJim Jagielski SvxHpLinkDlg::SvxHpLinkDlg (Window* pParent, SfxBindings* pBindings)
100*b1cdbd2cSJim Jagielski : IconChoiceDialog( pParent, CUI_RES ( RID_SVXDLG_NEWHYPERLINK ) ),
101*b1cdbd2cSJim Jagielski maCtrl ( SID_HYPERLINK_GETLINK, *pBindings, this ),
102*b1cdbd2cSJim Jagielski mpBindings ( pBindings ),
103*b1cdbd2cSJim Jagielski mbReadOnly ( sal_False ),
104*b1cdbd2cSJim Jagielski mbIsHTMLDoc ( sal_False )
105*b1cdbd2cSJim Jagielski {
106*b1cdbd2cSJim Jagielski SetUniqueId( HID_HYPERLINK_DIALOG );
107*b1cdbd2cSJim Jagielski mbGrabFocus = sal_True;
108*b1cdbd2cSJim Jagielski // insert pages
109*b1cdbd2cSJim Jagielski Image aImage;
110*b1cdbd2cSJim Jagielski Image aImageHC;
111*b1cdbd2cSJim Jagielski String aStrTitle;
112*b1cdbd2cSJim Jagielski SvxIconChoiceCtrlEntry* pEntry = NULL;
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski aStrTitle = CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLINETTP );
115*b1cdbd2cSJim Jagielski aImage = Image( CUI_RES ( RID_SVXBMP_HLINETTP ) );
116*b1cdbd2cSJim Jagielski aImageHC = Image( CUI_RES ( RID_SVXBMP_HLINETTP_H ) );
117*b1cdbd2cSJim Jagielski pEntry = AddTabPage ( RID_SVXPAGE_HYPERLINK_INTERNET, aStrTitle, aImage, aImageHC, SvxHyperlinkInternetTp::Create );
118*b1cdbd2cSJim Jagielski pEntry->SetQuickHelpText( CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLINETTP_HELP ) );
119*b1cdbd2cSJim Jagielski aStrTitle = CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLMAILTP );
120*b1cdbd2cSJim Jagielski aImage = Image( CUI_RES ( RID_SVXBMP_HLMAILTP ) );
121*b1cdbd2cSJim Jagielski aImageHC = Image( CUI_RES ( RID_SVXBMP_HLMAILTP_H ) );
122*b1cdbd2cSJim Jagielski pEntry = AddTabPage ( RID_SVXPAGE_HYPERLINK_MAIL, aStrTitle, aImage, aImageHC, SvxHyperlinkMailTp::Create );
123*b1cdbd2cSJim Jagielski pEntry->SetQuickHelpText( CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLMAILTP_HELP ) );
124*b1cdbd2cSJim Jagielski aStrTitle = CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLDOCTP );
125*b1cdbd2cSJim Jagielski aImage = Image( CUI_RES ( RID_SVXBMP_HLDOCTP ) );
126*b1cdbd2cSJim Jagielski aImageHC = Image( CUI_RES ( RID_SVXBMP_HLDOCTP_H ) );
127*b1cdbd2cSJim Jagielski pEntry = AddTabPage ( RID_SVXPAGE_HYPERLINK_DOCUMENT, aStrTitle, aImage, aImageHC, SvxHyperlinkDocTp::Create );
128*b1cdbd2cSJim Jagielski pEntry->SetQuickHelpText( CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLDOCTP_HELP ) );
129*b1cdbd2cSJim Jagielski aStrTitle = CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLDOCNTP );
130*b1cdbd2cSJim Jagielski aImage = Image( CUI_RES ( RID_SVXBMP_HLDOCNTP ) );
131*b1cdbd2cSJim Jagielski aImageHC = Image( CUI_RES ( RID_SVXBMP_HLDOCNTP_H ) );
132*b1cdbd2cSJim Jagielski pEntry = AddTabPage ( RID_SVXPAGE_HYPERLINK_NEWDOCUMENT, aStrTitle, aImage, aImageHC, SvxHyperlinkNewDocTp::Create );
133*b1cdbd2cSJim Jagielski pEntry->SetQuickHelpText( CUI_RESSTR( RID_SVXSTR_HYPERDLG_HLDOCNTP_HELP ) );
134*b1cdbd2cSJim Jagielski
135*b1cdbd2cSJim Jagielski // create itemset for tabpages
136*b1cdbd2cSJim Jagielski mpItemSet = new SfxItemSet( SFX_APP()->GetPool(), SID_HYPERLINK_GETLINK,
137*b1cdbd2cSJim Jagielski SID_HYPERLINK_SETLINK );
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielski SvxHyperlinkItem aItem;
140*b1cdbd2cSJim Jagielski mpItemSet->Put (aItem, SID_HYPERLINK_GETLINK);
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielski SetInputSet (mpItemSet);
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski // Init Dialog
145*b1cdbd2cSJim Jagielski Start (sal_False);
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim Jagielski pBindings->Update( SID_READONLY_MODE );
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielski // set OK/Cancel - button
150*b1cdbd2cSJim Jagielski GetOKButton().SetText ( CUI_RESSTR(RID_SVXSTR_HYPDLG_APPLYBUT) );
151*b1cdbd2cSJim Jagielski GetCancelButton().SetText ( CUI_RESSTR(RID_SVXSTR_HYPDLG_CLOSEBUT) );
152*b1cdbd2cSJim Jagielski
153*b1cdbd2cSJim Jagielski GetOKButton().SetClickHdl ( LINK ( this, SvxHpLinkDlg, ClickApplyHdl_Impl ) );
154*b1cdbd2cSJim Jagielski GetCancelButton().SetClickHdl( LINK ( this, SvxHpLinkDlg, ClickCloseHdl_Impl ) );
155*b1cdbd2cSJim Jagielski }
156*b1cdbd2cSJim Jagielski
~SvxHpLinkDlg()157*b1cdbd2cSJim Jagielski SvxHpLinkDlg::~SvxHpLinkDlg ()
158*b1cdbd2cSJim Jagielski {
159*b1cdbd2cSJim Jagielski // delete config item, so the base class (IconChoiceDialog) can not load it on the next start
160*b1cdbd2cSJim Jagielski SvtViewOptions aViewOpt( E_TABDIALOG, String::CreateFromInt32( SID_HYPERLINK_DIALOG ) );
161*b1cdbd2cSJim Jagielski aViewOpt.Delete();
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski delete mpItemSet;
164*b1cdbd2cSJim Jagielski }
165*b1cdbd2cSJim Jagielski
166*b1cdbd2cSJim Jagielski /*************************************************************************
167*b1cdbd2cSJim Jagielski |*
168*b1cdbd2cSJim Jagielski |* Close Dialog-Window
169*b1cdbd2cSJim Jagielski |*
170*b1cdbd2cSJim Jagielski |************************************************************************/
171*b1cdbd2cSJim Jagielski
Close()172*b1cdbd2cSJim Jagielski sal_Bool SvxHpLinkDlg::Close()
173*b1cdbd2cSJim Jagielski {
174*b1cdbd2cSJim Jagielski GetDispatcher()->Execute( SID_HYPERLINK_DIALOG,
175*b1cdbd2cSJim Jagielski SFX_CALLMODE_ASYNCHRON |
176*b1cdbd2cSJim Jagielski SFX_CALLMODE_RECORD);
177*b1cdbd2cSJim Jagielski return sal_True;
178*b1cdbd2cSJim Jagielski }
179*b1cdbd2cSJim Jagielski
180*b1cdbd2cSJim Jagielski /*************************************************************************
181*b1cdbd2cSJim Jagielski |*
182*b1cdbd2cSJim Jagielski |* When extrawindow is visible and its never moved by user, then move that
183*b1cdbd2cSJim Jagielski |* window, too.
184*b1cdbd2cSJim Jagielski |*
185*b1cdbd2cSJim Jagielski |************************************************************************/
186*b1cdbd2cSJim Jagielski
Move()187*b1cdbd2cSJim Jagielski void SvxHpLinkDlg::Move()
188*b1cdbd2cSJim Jagielski {
189*b1cdbd2cSJim Jagielski SvxHyperlinkTabPageBase* pCurrentPage = ( SvxHyperlinkTabPageBase* )
190*b1cdbd2cSJim Jagielski GetTabPage ( GetCurPageId() );
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski if( pCurrentPage->IsMarkWndVisible () )
193*b1cdbd2cSJim Jagielski {
194*b1cdbd2cSJim Jagielski // Pos&Size of this dialog-window
195*b1cdbd2cSJim Jagielski Point aDlgPos ( GetPosPixel () );
196*b1cdbd2cSJim Jagielski Size aDlgSize ( GetSizePixel () );
197*b1cdbd2cSJim Jagielski
198*b1cdbd2cSJim Jagielski // Size of Office-Main-Window
199*b1cdbd2cSJim Jagielski Size aWindowSize( SFX_APP()->GetTopWindow()->GetSizePixel() );
200*b1cdbd2cSJim Jagielski
201*b1cdbd2cSJim Jagielski // Size of Extrawindow
202*b1cdbd2cSJim Jagielski Size aExtraWndSize( pCurrentPage->GetSizeExtraWnd() );
203*b1cdbd2cSJim Jagielski
204*b1cdbd2cSJim Jagielski sal_Bool bDoInvalid ;
205*b1cdbd2cSJim Jagielski if( aDlgPos.X()+(1.02*aDlgSize.Width())+aExtraWndSize.Width() > aWindowSize.Width() )
206*b1cdbd2cSJim Jagielski {
207*b1cdbd2cSJim Jagielski if( aDlgPos.X() - ( 0.02*aDlgSize.Width() ) - aExtraWndSize.Width() < 0 )
208*b1cdbd2cSJim Jagielski {
209*b1cdbd2cSJim Jagielski // Pos Extrawindow anywhere
210*b1cdbd2cSJim Jagielski bDoInvalid = pCurrentPage->MoveToExtraWnd( Point( 1, long(1.1*aDlgPos.Y()) ), sal_True );
211*b1cdbd2cSJim Jagielski }
212*b1cdbd2cSJim Jagielski else
213*b1cdbd2cSJim Jagielski {
214*b1cdbd2cSJim Jagielski // Pos Extrawindow on the left side of Dialog
215*b1cdbd2cSJim Jagielski bDoInvalid = pCurrentPage->MoveToExtraWnd( aDlgPos -
216*b1cdbd2cSJim Jagielski Point( long(0.02*aDlgSize.Width()), 0 ) -
217*b1cdbd2cSJim Jagielski Point( aExtraWndSize.Width(), 0 ) );
218*b1cdbd2cSJim Jagielski }
219*b1cdbd2cSJim Jagielski }
220*b1cdbd2cSJim Jagielski else
221*b1cdbd2cSJim Jagielski {
222*b1cdbd2cSJim Jagielski // Pos Extrawindow on the right side of Dialog
223*b1cdbd2cSJim Jagielski bDoInvalid = pCurrentPage->MoveToExtraWnd ( aDlgPos + Point( long(1.02*aDlgSize.Width()), 0 ) );
224*b1cdbd2cSJim Jagielski }
225*b1cdbd2cSJim Jagielski
226*b1cdbd2cSJim Jagielski if ( bDoInvalid )
227*b1cdbd2cSJim Jagielski Invalidate(INVALIDATE_BACKGROUND);
228*b1cdbd2cSJim Jagielski }
229*b1cdbd2cSJim Jagielski
230*b1cdbd2cSJim Jagielski Window::Move();
231*b1cdbd2cSJim Jagielski }
232*b1cdbd2cSJim Jagielski
233*b1cdbd2cSJim Jagielski /*long SvxHpLinkDlg::PreNotify( NotifyEvent& rNEvt )
234*b1cdbd2cSJim Jagielski {
235*b1cdbd2cSJim Jagielski long nRet = 0;
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski if( rNEvt.GetType() == EVENT_KEYINPUT )
238*b1cdbd2cSJim Jagielski {
239*b1cdbd2cSJim Jagielski DBG_ASSERT( rNEvt.GetKeyEvent(), "-SvxHpLinkDlg::PreNotify(): no KeyEvent for key event?!" );
240*b1cdbd2cSJim Jagielski
241*b1cdbd2cSJim Jagielski const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
242*b1cdbd2cSJim Jagielski
243*b1cdbd2cSJim Jagielski if( KEY_MOD2 == pKEvt->GetKeyCode().GetModifier() && pKEvt->GetCharCode() && HandleShortCutKey( *pKEvt ) )
244*b1cdbd2cSJim Jagielski nRet = 1;
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski
247*b1cdbd2cSJim Jagielski if( !nRet )
248*b1cdbd2cSJim Jagielski nRet = IconChoiceDialog::PreNotify( rNEvt );
249*b1cdbd2cSJim Jagielski
250*b1cdbd2cSJim Jagielski return nRet;
251*b1cdbd2cSJim Jagielski }*/
252*b1cdbd2cSJim Jagielski
253*b1cdbd2cSJim Jagielski /*************************************************************************
254*b1cdbd2cSJim Jagielski |*
255*b1cdbd2cSJim Jagielski |* Click on Apply-button
256*b1cdbd2cSJim Jagielski |*
257*b1cdbd2cSJim Jagielski |************************************************************************/
258*b1cdbd2cSJim Jagielski
IMPL_LINK(SvxHpLinkDlg,ClickApplyHdl_Impl,void *,EMPTYARG)259*b1cdbd2cSJim Jagielski IMPL_LINK ( SvxHpLinkDlg, ClickApplyHdl_Impl, void *, EMPTYARG )
260*b1cdbd2cSJim Jagielski {
261*b1cdbd2cSJim Jagielski SfxItemSet aItemSet( SFX_APP()->GetPool(), SID_HYPERLINK_GETLINK,
262*b1cdbd2cSJim Jagielski SID_HYPERLINK_SETLINK );
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski SvxHyperlinkTabPageBase* pCurrentPage = (SvxHyperlinkTabPageBase*)
265*b1cdbd2cSJim Jagielski GetTabPage ( GetCurPageId() );
266*b1cdbd2cSJim Jagielski
267*b1cdbd2cSJim Jagielski if ( pCurrentPage->AskApply() )
268*b1cdbd2cSJim Jagielski {
269*b1cdbd2cSJim Jagielski pCurrentPage->FillItemSet( aItemSet );
270*b1cdbd2cSJim Jagielski
271*b1cdbd2cSJim Jagielski SvxHyperlinkItem *aItem = (SvxHyperlinkItem *)
272*b1cdbd2cSJim Jagielski aItemSet.GetItem (SID_HYPERLINK_SETLINK);
273*b1cdbd2cSJim Jagielski
274*b1cdbd2cSJim Jagielski String aStrEmpty;
275*b1cdbd2cSJim Jagielski if ( aItem->GetURL() != aStrEmpty )
276*b1cdbd2cSJim Jagielski GetDispatcher()->Execute( SID_HYPERLINK_SETLINK, SFX_CALLMODE_ASYNCHRON |
277*b1cdbd2cSJim Jagielski SFX_CALLMODE_RECORD, aItem, 0L);
278*b1cdbd2cSJim Jagielski
279*b1cdbd2cSJim Jagielski ( (SvxHyperlinkTabPageBase*)GetTabPage ( GetCurPageId() ) )->DoApply();
280*b1cdbd2cSJim Jagielski }
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski return( 0L );
283*b1cdbd2cSJim Jagielski }
284*b1cdbd2cSJim Jagielski
285*b1cdbd2cSJim Jagielski /*************************************************************************
286*b1cdbd2cSJim Jagielski |*
287*b1cdbd2cSJim Jagielski |* Click on Close-button
288*b1cdbd2cSJim Jagielski |*
289*b1cdbd2cSJim Jagielski |************************************************************************/
290*b1cdbd2cSJim Jagielski
IMPL_LINK(SvxHpLinkDlg,ClickCloseHdl_Impl,void *,EMPTYARG)291*b1cdbd2cSJim Jagielski IMPL_LINK ( SvxHpLinkDlg, ClickCloseHdl_Impl, void *, EMPTYARG )
292*b1cdbd2cSJim Jagielski {
293*b1cdbd2cSJim Jagielski Close();
294*b1cdbd2cSJim Jagielski
295*b1cdbd2cSJim Jagielski return( 0L );
296*b1cdbd2cSJim Jagielski }
297*b1cdbd2cSJim Jagielski
298*b1cdbd2cSJim Jagielski /*************************************************************************
299*b1cdbd2cSJim Jagielski |*
300*b1cdbd2cSJim Jagielski |* Set Page
301*b1cdbd2cSJim Jagielski |*
302*b1cdbd2cSJim Jagielski |************************************************************************/
303*b1cdbd2cSJim Jagielski
SetPage(SvxHyperlinkItem * pItem)304*b1cdbd2cSJim Jagielski sal_uInt16 SvxHpLinkDlg::SetPage ( SvxHyperlinkItem* pItem )
305*b1cdbd2cSJim Jagielski {
306*b1cdbd2cSJim Jagielski sal_uInt16 nPageId = RID_SVXPAGE_HYPERLINK_INTERNET;
307*b1cdbd2cSJim Jagielski
308*b1cdbd2cSJim Jagielski String aStrURL ( pItem->GetURL() );
309*b1cdbd2cSJim Jagielski INetURLObject aURL ( aStrURL );
310*b1cdbd2cSJim Jagielski INetProtocol eProtocolTyp = aURL.GetProtocol();
311*b1cdbd2cSJim Jagielski
312*b1cdbd2cSJim Jagielski switch ( eProtocolTyp )
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski case INET_PROT_HTTP :
315*b1cdbd2cSJim Jagielski case INET_PROT_FTP :
316*b1cdbd2cSJim Jagielski case INET_PROT_TELNET :
317*b1cdbd2cSJim Jagielski nPageId = RID_SVXPAGE_HYPERLINK_INTERNET;
318*b1cdbd2cSJim Jagielski break;
319*b1cdbd2cSJim Jagielski case INET_PROT_FILE :
320*b1cdbd2cSJim Jagielski case INET_PROT_POP3 :
321*b1cdbd2cSJim Jagielski case INET_PROT_IMAP :
322*b1cdbd2cSJim Jagielski nPageId = RID_SVXPAGE_HYPERLINK_DOCUMENT;
323*b1cdbd2cSJim Jagielski break;
324*b1cdbd2cSJim Jagielski case INET_PROT_MAILTO :
325*b1cdbd2cSJim Jagielski case INET_PROT_NEWS :
326*b1cdbd2cSJim Jagielski nPageId = RID_SVXPAGE_HYPERLINK_MAIL;
327*b1cdbd2cSJim Jagielski break;
328*b1cdbd2cSJim Jagielski default :
329*b1cdbd2cSJim Jagielski sal_Char const sNewsSrvScheme[] = "news://";
330*b1cdbd2cSJim Jagielski // TODO news:// is nonsense
331*b1cdbd2cSJim Jagielski
332*b1cdbd2cSJim Jagielski if ( aStrURL.SearchAscii( sNewsSrvScheme ) == 0 )
333*b1cdbd2cSJim Jagielski nPageId = RID_SVXPAGE_HYPERLINK_DOCUMENT;
334*b1cdbd2cSJim Jagielski else
335*b1cdbd2cSJim Jagielski {
336*b1cdbd2cSJim Jagielski sal_Char const sHash[] = "#";
337*b1cdbd2cSJim Jagielski if( aStrURL.SearchAscii( sHash ) == 0 )
338*b1cdbd2cSJim Jagielski nPageId = RID_SVXPAGE_HYPERLINK_DOCUMENT;
339*b1cdbd2cSJim Jagielski else
340*b1cdbd2cSJim Jagielski {
341*b1cdbd2cSJim Jagielski eProtocolTyp = INET_PROT_NOT_VALID;
342*b1cdbd2cSJim Jagielski nPageId = GetCurPageId();
343*b1cdbd2cSJim Jagielski }
344*b1cdbd2cSJim Jagielski }
345*b1cdbd2cSJim Jagielski break;
346*b1cdbd2cSJim Jagielski }
347*b1cdbd2cSJim Jagielski
348*b1cdbd2cSJim Jagielski ShowPage (nPageId);
349*b1cdbd2cSJim Jagielski
350*b1cdbd2cSJim Jagielski SvxHyperlinkTabPageBase* pCurrentPage = (SvxHyperlinkTabPageBase*)GetTabPage( nPageId );
351*b1cdbd2cSJim Jagielski
352*b1cdbd2cSJim Jagielski mbIsHTMLDoc = (pItem->GetInsertMode() & HLINK_HTMLMODE) ? true : false;
353*b1cdbd2cSJim Jagielski
354*b1cdbd2cSJim Jagielski SfxItemSet& aPageSet = (SfxItemSet&)GetTabPage (nPageId)->GetItemSet ();
355*b1cdbd2cSJim Jagielski aPageSet.Put ( *pItem );
356*b1cdbd2cSJim Jagielski
357*b1cdbd2cSJim Jagielski pCurrentPage->Reset( aPageSet );
358*b1cdbd2cSJim Jagielski if ( mbGrabFocus )
359*b1cdbd2cSJim Jagielski {
360*b1cdbd2cSJim Jagielski pCurrentPage->SetInitFocus(); // #92535# grab the focus only once at initialization
361*b1cdbd2cSJim Jagielski mbGrabFocus = sal_False;
362*b1cdbd2cSJim Jagielski }
363*b1cdbd2cSJim Jagielski return nPageId;
364*b1cdbd2cSJim Jagielski }
365*b1cdbd2cSJim Jagielski
366*b1cdbd2cSJim Jagielski /*************************************************************************
367*b1cdbd2cSJim Jagielski |*
368*b1cdbd2cSJim Jagielski |* Enable/Disable to browse targets in a html-doc
369*b1cdbd2cSJim Jagielski |*
370*b1cdbd2cSJim Jagielski |************************************************************************/
371*b1cdbd2cSJim Jagielski
EnableInetBrowse(sal_Bool bEnable)372*b1cdbd2cSJim Jagielski void SvxHpLinkDlg::EnableInetBrowse( sal_Bool bEnable )
373*b1cdbd2cSJim Jagielski {
374*b1cdbd2cSJim Jagielski SvxHyperlinkTabPageBase* pCurrentPage = ( SvxHyperlinkTabPageBase* )
375*b1cdbd2cSJim Jagielski GetTabPage ( GetCurPageId() );
376*b1cdbd2cSJim Jagielski pCurrentPage->SetOnlineMode( bEnable );
377*b1cdbd2cSJim Jagielski }
378*b1cdbd2cSJim Jagielski
379*b1cdbd2cSJim Jagielski /*************************************************************************
380*b1cdbd2cSJim Jagielski |*
381*b1cdbd2cSJim Jagielski |* Enable/Disable ReadOnly mode
382*b1cdbd2cSJim Jagielski |*
383*b1cdbd2cSJim Jagielski |************************************************************************/
384*b1cdbd2cSJim Jagielski
SetReadOnlyMode(sal_Bool bRdOnly)385*b1cdbd2cSJim Jagielski void SvxHpLinkDlg::SetReadOnlyMode( sal_Bool bRdOnly )
386*b1cdbd2cSJim Jagielski {
387*b1cdbd2cSJim Jagielski mbReadOnly = bRdOnly;
388*b1cdbd2cSJim Jagielski if ( bRdOnly )
389*b1cdbd2cSJim Jagielski GetOKButton().Disable();
390*b1cdbd2cSJim Jagielski else
391*b1cdbd2cSJim Jagielski GetOKButton().Enable();
392*b1cdbd2cSJim Jagielski }
393*b1cdbd2cSJim Jagielski
394*b1cdbd2cSJim Jagielski /*************************************************************************
395*b1cdbd2cSJim Jagielski |*
396*b1cdbd2cSJim Jagielski |* late-initialization of newly created pages
397*b1cdbd2cSJim Jagielski |*
398*b1cdbd2cSJim Jagielski |************************************************************************/
399*b1cdbd2cSJim Jagielski
PageCreated(sal_uInt16,IconChoicePage & rPage)400*b1cdbd2cSJim Jagielski void SvxHpLinkDlg::PageCreated( sal_uInt16 /*nId*/, IconChoicePage& rPage )
401*b1cdbd2cSJim Jagielski {
402*b1cdbd2cSJim Jagielski SvxHyperlinkTabPageBase& rHyperlinkPage = dynamic_cast< SvxHyperlinkTabPageBase& >( rPage );
403*b1cdbd2cSJim Jagielski Reference< XFrame > xDocumentFrame;
404*b1cdbd2cSJim Jagielski if ( mpBindings )
405*b1cdbd2cSJim Jagielski xDocumentFrame = mpBindings->GetActiveFrame();
406*b1cdbd2cSJim Jagielski OSL_ENSURE( xDocumentFrame.is(), "SvxHpLinkDlg::PageCreated: macro assignment functionality won't work with a proper frame!" );
407*b1cdbd2cSJim Jagielski rHyperlinkPage.SetDocumentFrame( xDocumentFrame );
408*b1cdbd2cSJim Jagielski }
409