#89763#setting default name in first onSelChanged message

This commit is contained in:
Tino Rachui 2001-07-30 06:28:38 +00:00
parent d93ffa6abe
commit 6f60c9dadd
2 changed files with 49 additions and 23 deletions

View file

@ -2,9 +2,9 @@
* *
* $RCSfile: WinFileOpenImpl.cxx,v $ * $RCSfile: WinFileOpenImpl.cxx,v $
* *
* $Revision: 1.5 $ * $Revision: 1.6 $
* *
* last change: $Author: tra $ $Date: 2001-07-11 09:21:28 $ * last change: $Author: tra $ $Date: 2001-07-30 07:28:38 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
@ -198,7 +198,8 @@ CWinFileOpenImpl::CWinFileOpenImpl(
m_filterContainer( new CFilterContainer( ) ), m_filterContainer( new CFilterContainer( ) ),
m_FilePicker( aFilePicker ), m_FilePicker( aFilePicker ),
m_bPreviewExists( sal_False ), m_bPreviewExists( sal_False ),
m_bInExecuteMode( sal_False ) m_bInExecuteMode( sal_False ),
m_bInitialSelChanged( sal_True )
{ {
} }
@ -951,6 +952,20 @@ sal_uInt32 SAL_CALL CWinFileOpenImpl::onFileOk()
void SAL_CALL CWinFileOpenImpl::onSelChanged( HWND hwndListBox ) void SAL_CALL CWinFileOpenImpl::onSelChanged( HWND hwndListBox )
{ {
// the windows file open dialog sends an initial
// SelChanged message after the InitDone message
// when the dialog is about to be opened
// if the lpstrFile buffer of the OPENFILENAME is
// empty (zero length string) the windows file open
// dialog sends a WM_SETTEXT message with an empty
// string to the file name edit line
// this would overwritte our text when we would set
// the default name in onInitDone, so we have to
// remeber that this is the first SelChanged message
// and set the default name here to overwrite the
// windows setting
InitialSetDefaultName( );
FilePickerEvent evt; FilePickerEvent evt;
evt.Source = static_cast< XFilePicker* >( m_FilePicker ); evt.Source = static_cast< XFilePicker* >( m_FilePicker );
m_FilePicker->fileSelectionChanged( evt ); m_FilePicker->fileSelectionChanged( evt );
@ -974,24 +989,6 @@ void SAL_CALL CWinFileOpenImpl::onHelp( )
void SAL_CALL CWinFileOpenImpl::onInitDone() void SAL_CALL CWinFileOpenImpl::onInitDone()
{ {
// manually setting the file name that appears
// initially in the file-name-box of the file
// open dialog (reason: see above setDefaultName)
if ( m_defaultName.getLength( ) )
{
sal_Int32 edt1Id = edt1;
// under W2k the there is a combobox instead
// of an edit field for the file name edit field
// the control id of this box is cmb13 and not
// edt1 as before so we must use this id
if ( IsWin2000( ) )
edt1Id = cmb13;
HWND hwndEdt1 = GetDlgItem( m_hwndFileOpenDlg, edt1Id );
SetWindowTextW( hwndEdt1, m_defaultName );
}
// we check if the checkbox is present and if so // we check if the checkbox is present and if so
// create a preview window // create a preview window
EnumParam enumParam( CHECK_PREVIEW, this ); EnumParam enumParam( CHECK_PREVIEW, this );
@ -1269,4 +1266,31 @@ void SAL_CALL CWinFileOpenImpl::SetDefaultExtension( )
} }
// !!! HACK !!! // !!! HACK !!!
}
//-----------------------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------------------
void SAL_CALL CWinFileOpenImpl::InitialSetDefaultName( )
{
// manually setting the file name that appears
// initially in the file-name-box of the file
// open dialog (reason: see above setDefaultName)
if ( m_bInitialSelChanged && m_defaultName.getLength( ) )
{
sal_Int32 edt1Id = edt1;
// under W2k the there is a combobox instead
// of an edit field for the file name edit field
// the control id of this box is cmb13 and not
// edt1 as before so we must use this id
if ( IsWin2000( ) )
edt1Id = cmb13;
HWND hwndEdt1 = GetDlgItem( m_hwndFileOpenDlg, edt1Id );
SetWindowTextW( hwndEdt1, m_defaultName.getStr( ) );
}
m_bInitialSelChanged = sal_False;
} }

View file

@ -2,9 +2,9 @@
* *
* $RCSfile: WinFileOpenImpl.hxx,v $ * $RCSfile: WinFileOpenImpl.hxx,v $
* *
* $Revision: 1.3 $ * $Revision: 1.4 $
* *
* last change: $Author: tra $ $Date: 2001-07-09 12:58:25 $ * last change: $Author: tra $ $Date: 2001-07-30 07:28:38 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
@ -245,6 +245,7 @@ private:
HWND SAL_CALL GetHwndDlgItem( sal_Int16 ctrlId, sal_Bool bIncludeStdCtrls = sal_True ); HWND SAL_CALL GetHwndDlgItem( sal_Int16 ctrlId, sal_Bool bIncludeStdCtrls = sal_True );
void SAL_CALL SetDefaultExtension( ); void SAL_CALL SetDefaultExtension( );
void SAL_CALL InitialSetDefaultName( );
static unsigned int CALLBACK SubClassFunc( HWND hWnd, WORD wMessage, WPARAM wParam, LPARAM lParam ); static unsigned int CALLBACK SubClassFunc( HWND hWnd, WORD wMessage, WPARAM wParam, LPARAM lParam );
@ -262,6 +263,7 @@ private:
rtl::OUString m_defaultName; rtl::OUString m_defaultName;
sal_Bool m_bInExecuteMode; sal_Bool m_bInExecuteMode;
ControlCache_T m_ControlCache; ControlCache_T m_ControlCache;
sal_Bool m_bInitialSelChanged;
}; };