/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svtools.hxx" #include //......................................................................... namespace svt { //......................................................................... // class FixedHyperlink -------------------------------------------------- FixedHyperlink::FixedHyperlink( Window* pParent, const ResId& rResId ) : ::toolkit::FixedHyperlinkBase( pParent, rResId ), m_nTextLen(0) { Initialize(); } FixedHyperlink::FixedHyperlink( Window* pParent, WinBits nWinStyle ) : ::toolkit::FixedHyperlinkBase( pParent, nWinStyle ), m_nTextLen(0) { Initialize(); } FixedHyperlink::~FixedHyperlink() { } void FixedHyperlink::Initialize() { // saves the old pointer m_aOldPointer = GetPointer(); // changes the font Font aFont = GetControlFont( ); // to underline aFont.SetUnderline( UNDERLINE_SINGLE ); SetControlFont( aFont ); // changes the color to light blue SetTextColor( Color( COL_LIGHTBLUE ) ); // calculates text len m_nTextLen = GetCtrlTextWidth( GetText() ); } void FixedHyperlink::MouseMove( const MouseEvent& rMEvt ) { // changes the pointer if the control is enabled and the mouse is over the text. if ( !rMEvt.IsLeaveWindow() && IsEnabled() && GetPointerPosPixel().X() < m_nTextLen ) SetPointer( POINTER_REFHAND ); else SetPointer( m_aOldPointer ); } void FixedHyperlink::MouseButtonUp( const MouseEvent& ) { // calls the link if the control is enabled and the mouse is over the text. if ( IsEnabled() && GetPointerPosPixel().X() < m_nTextLen ) ImplCallEventListenersAndHandler( VCLEVENT_BUTTON_CLICK, m_aClickHdl, this ); } void FixedHyperlink::RequestHelp( const HelpEvent& rHEvt ) { if ( IsEnabled() && GetPointerPosPixel().X() < m_nTextLen ) FixedText::RequestHelp( rHEvt ); } void FixedHyperlink::GetFocus() { SetTextColor( Color( COL_LIGHTRED ) ); Paint( Rectangle( Point(), GetSizePixel() ) ); ShowFocus( Rectangle( Point( 1, 1 ), Size( m_nTextLen + 4, GetSizePixel().Height() - 2 ) ) ); } void FixedHyperlink::LoseFocus() { SetTextColor( Color( COL_LIGHTBLUE ) ); Paint( Rectangle( Point(), GetSizePixel() ) ); HideFocus(); } void FixedHyperlink::KeyInput( const KeyEvent& rKEvt ) { switch ( rKEvt.GetKeyCode().GetCode() ) { case KEY_SPACE: case KEY_RETURN: m_aClickHdl.Call( this ); break; default: FixedText::KeyInput( rKEvt ); } } void FixedHyperlink::SetURL( const String& rNewURL ) { m_sURL = rNewURL; SetQuickHelpText( m_sURL ); } String FixedHyperlink::GetURL() const { return m_sURL; } void FixedHyperlink::SetDescription( const String& rNewDescription ) { SetText( rNewDescription ); m_nTextLen = GetCtrlTextWidth( GetText() ); } // class FixedHyperlinkImage --------------------------------------------- FixedHyperlinkImage::FixedHyperlinkImage( Window* pParent, const ResId& rResId ) : FixedImage( pParent, rResId ) { Initialize(); } FixedHyperlinkImage::FixedHyperlinkImage( Window* pParent, WinBits nWinStyle ) : FixedImage( pParent, nWinStyle ) { Initialize(); } FixedHyperlinkImage::~FixedHyperlinkImage() { } void FixedHyperlinkImage::Initialize() { // saves the old pointer m_aOldPointer = GetPointer(); } void FixedHyperlinkImage::MouseMove( const MouseEvent& rMEvt ) { // changes the pointer if the control is enabled and the mouse is over the text. if ( !rMEvt.IsLeaveWindow() && IsEnabled() ) SetPointer( POINTER_REFHAND ); else SetPointer( m_aOldPointer ); } void FixedHyperlinkImage::MouseButtonUp( const MouseEvent& ) { // calls the link if the control is enabled and the mouse is over the text. if ( IsEnabled() ) ImplCallEventListenersAndHandler( VCLEVENT_BUTTON_CLICK, m_aClickHdl, this ); Size aSize = GetSizePixel(); Size aImgSz = GetImage().GetSizePixel(); if ( aSize.Width() < aImgSz.Width() ) { DBG_ERRORFILE("xxx"); } } void FixedHyperlinkImage::RequestHelp( const HelpEvent& rHEvt ) { if ( IsEnabled() ) FixedImage::RequestHelp( rHEvt ); } void FixedHyperlinkImage::GetFocus() { Paint( Rectangle( Point(), GetSizePixel() ) ); ShowFocus( Rectangle( Point( 1, 1 ), Size( GetSizePixel().Width() - 2, GetSizePixel().Height() - 2 ) ) ); } void FixedHyperlinkImage::LoseFocus() { Paint( Rectangle( Point(), GetSizePixel() ) ); HideFocus(); } void FixedHyperlinkImage::KeyInput( const KeyEvent& rKEvt ) { switch ( rKEvt.GetKeyCode().GetCode() ) { case KEY_SPACE: case KEY_RETURN: m_aClickHdl.Call( this ); break; default: FixedImage::KeyInput( rKEvt ); } } void FixedHyperlinkImage::SetURL( const String& rNewURL ) { m_sURL = rNewURL; SetQuickHelpText( m_sURL ); } String FixedHyperlinkImage::GetURL() const { return m_sURL; } //......................................................................... } // namespace svt //.........................................................................