diff --git a/xmlsecurity/inc/xmlsecurity/certificateviewer.hxx b/xmlsecurity/inc/xmlsecurity/certificateviewer.hxx index 200e9373e423..1e3ed8644813 100644 --- a/xmlsecurity/inc/xmlsecurity/certificateviewer.hxx +++ b/xmlsecurity/inc/xmlsecurity/certificateviewer.hxx @@ -2,9 +2,9 @@ * * $RCSfile: certificateviewer.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: mt $ $Date: 2004-07-12 13:15:20 $ + * last change: $Author: gt $ $Date: 2004-07-14 11:34:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -150,10 +150,13 @@ class CertificateViewerDetailsTP : public CertificateViewerTP private: SvxSimpleTable maElementsLB; MultiLineEdit maElementML; + Font maStdFont; + Font maFixedWidthFont; DECL_LINK( ElementSelectHdl, void* ); void Clear( void ); - void InsertElement( const String& _rField, const String& _rValue, const String& _rDetails ); + void InsertElement( const String& _rField, const String& _rValue, + const String& _rDetails, bool _bFixedWidthFont = false ); public: CertificateViewerDetailsTP( Window* pParent, CertificateViewer* _pDlg ); virtual ~CertificateViewerDetailsTP(); diff --git a/xmlsecurity/source/dialogs/certificateviewer.cxx b/xmlsecurity/source/dialogs/certificateviewer.cxx index 1d106bc4f51b..466bf213a81d 100644 --- a/xmlsecurity/source/dialogs/certificateviewer.cxx +++ b/xmlsecurity/source/dialogs/certificateviewer.cxx @@ -2,9 +2,9 @@ * * $RCSfile: certificateviewer.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: mt $ $Date: 2004-07-12 13:15:23 $ + * last change: $Author: gt $ $Date: 2004-07-14 11:36:06 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -84,17 +84,52 @@ using namespace ::com::sun::star; namespace { + void ShrinkToFit( FixedImage& _rImage ); + long ShrinkToFitWidth( Control& _rCtrl, long _nOffs = 0 ); // return = new width void AdjustPosAndSize( Control& _rCtrl, Point& _rStartIn_EndOut, long _nXOffset = 0 ); + void AlignAfterImage( const FixedImage& _rImage, Control& _rCtrl, long _nXOffset = 0 ); + void AlignAfterImage( const FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset = 0 ); - void AdjustPosAndSize( Control& _rCtrl, Point& _rStartIn_EndOut, long _nOffs ) + void ShrinkToFit( FixedImage& _rImg ) + { + _rImg.SetSizePixel( _rImg.GetImage().GetSizePixel() ); + } + + long ShrinkToFitWidth( Control& _rCtrl, long _nOffs ) { long nWidth = _rCtrl.GetTextWidth( _rCtrl.GetText() ); Size aSize( _rCtrl.GetSizePixel() ); nWidth += _nOffs; aSize.Width() = nWidth; - _rCtrl.SetPosPixel( _rStartIn_EndOut ); _rCtrl.SetSizePixel( aSize ); - _rStartIn_EndOut.X() += nWidth; + return nWidth; + } + + void AdjustPosAndSize( Control& _rCtrl, Point& _rStartIn_EndOut, long _nOffs ) + { + _rCtrl.SetPosPixel( _rStartIn_EndOut ); + _rStartIn_EndOut.X() += ShrinkToFitWidth( _rCtrl, _nOffs ); + } + + void AlignAfterImage( const FixedImage& _rImage, Control& _rCtrl, long _nXOffset ) + { + Point aPos( _rImage.GetPosPixel() ); + Size aSize( _rImage.GetSizePixel() ); + long n = aPos.X(); + n += aSize.Width(); + n += _nXOffset; + aPos.X() = n; + n = aPos.Y(); + n += aSize.Height() / 2; // y-position is in the middle of the image + n -= _rCtrl.GetSizePixel().Height() / 2; // center Control + aPos.Y() = n; + _rCtrl.SetPosPixel( aPos ); + } + + void AlignAfterImage( const FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset ) + { + AlignAfterImage( _rImage, static_cast< Control& >( _rFI ), _nXOffset ); + ShrinkToFitWidth( _rFI ); } }; @@ -193,39 +228,16 @@ CertificateViewerGeneralTP::CertificateViewerGeneralTP( Window* _pParent, Certif // recalc positions for date fields according to real size Point aPos( maValidFromLabelFI.GetPosPixel() ); -// long nWidth; - -// nWidth = GetTextWidth( maValidFromLabelFI.GetText() ); -// maValidFromLabelFI.SetSizePixel -// aPos.X() += nWidth; AdjustPosAndSize( maValidFromLabelFI, aPos ); - -// maValidFromFI.SetPosPixel( aPos ); -// nWidth = GetTextWidth( maValidFromFI.GetText() ); -// aPos.X() += nWidth; AdjustPosAndSize( maValidFromFI, aPos ); - -// maValidToLabelFI.SetPosPixel( aPos ); -// nWidth = GetTextWidth( maValidToLabelFI.GetText() ); -// aPos.X() += nWidth; - -// maValidToFI.SetPosPixel( aPos ); AdjustPosAndSize( maValidToLabelFI, aPos ); AdjustPosAndSize( maValidToFI, aPos ); // adjust position of fixed text depending on image sizes - long nWidth = maCertImg.GetSizePixel().Width(); - aPos = maCertInfoFI.GetPosPixel(); - aPos.X() = maCertImg.GetPosPixel().X(); - aPos.X() += nWidth; - maCertInfoFI.SetPosPixel( aPos ); - - nWidth = maKeyImg.GetSizePixel().Width(); - aPos = maHintCorrespPrivKeyFI.GetPosPixel(); - aPos.X() = maKeyImg.GetPosPixel().X(); - aPos.X() += nWidth; -// maHintCorrespPrivKeyFI.SetPosPixel( aPos ); - AdjustPosAndSize( maHintCorrespPrivKeyFI, aPos ); + ShrinkToFit( maCertImg ); + ShrinkToFit( maKeyImg ); + AlignAfterImage( maCertImg, maCertInfoFI, 12 ); + AlignAfterImage( maKeyImg, maHintCorrespPrivKeyFI, 12 ); } void CertificateViewerGeneralTP::ActivatePage() @@ -233,6 +245,21 @@ void CertificateViewerGeneralTP::ActivatePage() } +struct Details_UserDatat +{ + String maTxt; + bool mbFixedWidthFont; + + inline Details_UserDatat( const String& _rTxt, bool _bFixedWidthFont ); +}; + +inline Details_UserDatat::Details_UserDatat( const String& _rTxt, bool _bFixedWidthFont ) + :maTxt ( _rTxt ) + ,mbFixedWidthFont ( _bFixedWidthFont ) +{ +} + + void CertificateViewerDetailsTP::Clear( void ) { maElementML.SetText( String() ); @@ -240,7 +267,8 @@ void CertificateViewerDetailsTP::Clear( void ) SvLBoxEntry* pEntry = maElementsLB.GetEntry( i ); while( pEntry ) { - delete ( String* ) pEntry->GetUserData(); +// delete ( String* ) pEntry->GetUserData(); + delete ( Details_UserDatat* ) pEntry->GetUserData(); ++i; pEntry = maElementsLB.GetEntry( i ); } @@ -248,18 +276,21 @@ void CertificateViewerDetailsTP::Clear( void ) maElementsLB.Clear(); } -void CertificateViewerDetailsTP::InsertElement( const String& _rField, const String& _rValue, const String& _rDetails ) +void CertificateViewerDetailsTP::InsertElement( const String& _rField, const String& _rValue, + const String& _rDetails, bool _bFixedWidthFont ) { SvLBoxEntry* pEntry = maElementsLB.InsertEntry( _rField ); maElementsLB.SetEntryText( _rValue, pEntry, 1 ); - pEntry->SetUserData( ( void* ) new String( _rDetails ) ); // extended view of value -// pEntry->SetUserData( ( void* ) new String( XmlSec::GetPureContent( _rValue, "\n", true ) ) ); +// pEntry->SetUserData( ( void* ) new String( _rDetails ) ); // extended view of value + pEntry->SetUserData( ( void* ) new Details_UserDatat( _rDetails, _bFixedWidthFont ) ); } CertificateViewerDetailsTP::CertificateViewerDetailsTP( Window* _pParent, CertificateViewer* _pDlg ) :CertificateViewerTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_DETAILS ), _pDlg ) ,maElementsLB ( this, ResId( LB_ELEMENTS ) ) ,maElementML ( this, ResId( ML_ELEMENT ) ) + ,maStdFont ( maElementML.GetFont() ) + ,maFixedWidthFont ( ) { static long nTabs[] = { 2, 0, 40*CS_LB_WIDTH/100 }; maElementsLB.SetTabs( &nTabs[ 0 ] ); @@ -288,8 +319,8 @@ CertificateViewerDetailsTP::CertificateViewerDetailsTP( Window* _pParent, Certif // aSerNumStr.AppendAscii( " " ); aSerNumStr.AppendAscii( pBuffer ); } - InsertElement( String( ResId( STR_SERIALNUM ) ), aSerNumStr, aSerNumStr ); - InsertElement( String( ResId( STR_SIGALGORITHM ) ), String::CreateFromAscii( "n/a" ), String() ); + InsertElement( String( ResId( STR_SERIALNUM ) ), aSerNumStr, aSerNumStr, true ); +// InsertElement( String( ResId( STR_SIGALGORITHM ) ), String::CreateFromAscii( "n/a" ), String() ); aLBEntry = XmlSec::GetPureContent( xCert->getIssuerName(), ", " ); aDetails = XmlSec::GetPureContent( xCert->getIssuerName(), "\n", true ); InsertElement( String( ResId( STR_ISSUER ) ), aLBEntry, aDetails ); @@ -319,11 +350,18 @@ IMPL_LINK( CertificateViewerDetailsTP, ElementSelectHdl, void*, EMPTYARG ) { SvLBoxEntry* pEntry = maElementsLB.FirstSelected(); String aElementText; + bool bFixedWidthFont; if( pEntry ) { - aElementText = *( ( String* ) pEntry->GetUserData() ); +// aElementText = *( ( String* ) pEntry->GetUserData() ); + const Details_UserDatat* p = ( Details_UserDatat* ) pEntry->GetUserData(); + aElementText = p->maTxt; + bFixedWidthFont = p->mbFixedWidthFont; } + else + bFixedWidthFont = false; + maElementML.SetFont( bFixedWidthFont? maFixedWidthFont : maStdFont ); maElementML.SetText( aElementText ); return 0; diff --git a/xmlsecurity/source/dialogs/certificateviewer.src b/xmlsecurity/source/dialogs/certificateviewer.src index 3749294bdfc1..26ebcf4e0a85 100644 --- a/xmlsecurity/source/dialogs/certificateviewer.src +++ b/xmlsecurity/source/dialogs/certificateviewer.src @@ -2,9 +2,9 @@ * * $RCSfile: certificateviewer.src,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: mt $ $Date: 2004-07-12 13:15:23 $ + * last change: $Author: gt $ $Date: 2004-07-14 11:36:06 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -129,12 +129,12 @@ TabPage RID_XMLSECTP_GENERAL FixedImage IMG_CERT { Pos = MAP_APPFONT( CW_COL_0, CW_ROW_0 ); - Size = MAP_APPFONT( CW_COL_2-CW_COL_0, CW_ROW_2-CW_ROW_0 ); -// Fixed = Image -// { -// ImageBitmap = Bitmap { File = "xmlsec_cert_l.bmp"; }; -// MaskColor = STD_MASKCOLOR; -// }; + Size = MAP_APPFONT( IMG1_WIDTH, IMG1_HEIGHT ); + Fixed = Image + { + ImageBitmap = Bitmap { File = "certificate_40x56.png"; }; + MaskColor = STD_MASKCOLOR; + }; }; FixedText FI_CERTINFO { @@ -212,12 +212,12 @@ TabPage RID_XMLSECTP_GENERAL FixedImage IMG_KEY { Pos = MAP_APPFONT( CW_COL_0, CW_ROW_9 ); - Size = MAP_APPFONT( CW_COL_2-CW_COL_0, CW_ROW_11-CW_ROW_9 ); -// Fixed = Image -// { -// ImageBitmap = Bitmap { File = "xmlsec_key.bmp"; }; -// MaskColor = STD_MASKCOLOR; -// }; + Size = MAP_APPFONT( IMG2_WIDTH, IMG2_HEIGHT ); + Fixed = Image + { + ImageBitmap = Bitmap { File = "key_12.png"; }; + MaskColor = STD_MASKCOLOR; + }; }; FixedText FI_CORRPRIVKEY { diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx index aa19d487bc3b..70f4b75a55e3 100644 --- a/xmlsecurity/source/dialogs/resourcemanager.cxx +++ b/xmlsecurity/source/dialogs/resourcemanager.cxx @@ -2,9 +2,9 @@ * * $RCSfile: resourcemanager.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: mt $ $Date: 2004-07-12 13:15:24 $ + * last change: $Author: gt $ $Date: 2004-07-14 11:36:06 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -105,24 +105,25 @@ namespace XmlSec String GetDateTimeString( const ::com::sun::star::util::DateTime& _rDT ) { - return GetInternational()->GetLongDate( GetDateTime( _rDT ) ); + return GetInternational()->GetDate( GetDateTime( _rDT ) ); } String GetDateString( const ::com::sun::star::util::DateTime& _rDT ) { - return GetInternational()->GetLongDate( GetDateTime( _rDT ) ); + return GetInternational()->GetDate( GetDateTime( _rDT ) ); } String GetPureContent( const String& _rRawString, const char* _pCommaReplacement, bool _bPreserveId ) { - enum STATE { ID, EQUALSIGN, CONT }; + enum STATE { PRE_ID, ID, EQUALSIGN, PRE_CONT, CONT }; String s; - STATE e = ID; + STATE e = _bPreserveId? PRE_ID : ID; const sal_Unicode* p = _rRawString.GetBuffer(); sal_Unicode c; const sal_Unicode cComma = ','; const sal_Unicode cEqualSign = '='; + const sal_Unicode cSpace = ' '; String aCommaReplacement; if( _pCommaReplacement ) aCommaReplacement = String::CreateFromAscii( _pCommaReplacement ); @@ -132,20 +133,34 @@ namespace XmlSec c = *p; switch( e ) { + case PRE_ID: + if( c != cSpace ) + { + s += c; + e = ID; + } + break; case ID: if( _bPreserveId ) s += c; if( c == cEqualSign ) - e = CONT; + e = _bPreserveId? PRE_CONT : CONT; break; // case EQUALSIGN: // break; + case PRE_CONT: + if( c != cSpace ) + { + s += c; + e = CONT; + } + break; case CONT: if( c == cComma ) { s += aCommaReplacement; - e = ID; + e = _bPreserveId? PRE_ID : ID; } else s += c; diff --git a/xmlsecurity/util/makefile.mk b/xmlsecurity/util/makefile.mk index 8af5a1ffb6a1..272b7bc8ae72 100644 --- a/xmlsecurity/util/makefile.mk +++ b/xmlsecurity/util/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.4 $ +# $Revision: 1.5 $ # -# last change: $Author: mt $ $Date: 2004-07-14 11:05:46 $ +# last change: $Author: gt $ $Date: 2004-07-14 11:38:07 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -150,6 +150,7 @@ SRSFILELIST= \ $(SRS)$/dialogs.srs RESLIB1NAME=xmlsec +RESLIB1IMAGES=$(PRJ)$/res RESLIB1SRSFILES= $(SRSFILELIST) SHL4TARGET=$(TARGET)