diff options
author | Tino Rachui <tra@openoffice.org> | 2001-06-26 17:36:43 +0000 |
---|---|---|
committer | Tino Rachui <tra@openoffice.org> | 2001-06-26 17:36:43 +0000 |
commit | 8e5ddaef8737d6909cb154456b408e37d61ad1e7 (patch) | |
tree | f1a6b851536864e8f4f8fa10b4f15dec90814f0e /sysui/source/win32/misc/resourceprovider.cxx | |
parent | f6fba89ac3eaa789a41260fea0b0b54026f50323 (diff) |
#86986#used to read strings for control labels from oo resource
Diffstat (limited to 'sysui/source/win32/misc/resourceprovider.cxx')
-rw-r--r-- | sysui/source/win32/misc/resourceprovider.cxx | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/sysui/source/win32/misc/resourceprovider.cxx b/sysui/source/win32/misc/resourceprovider.cxx new file mode 100644 index 000000000000..706b49d085b2 --- /dev/null +++ b/sysui/source/win32/misc/resourceprovider.cxx @@ -0,0 +1,244 @@ +/************************************************************************* + * + * $RCSfile: resourceprovider.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: tra $ $Date: 2001-06-26 18:36:36 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//------------------------------------------------------------------------ +// includes +//------------------------------------------------------------------------ + +#ifndef _OSL_DIAGNOSE_H_ +#include <osl/diagnose.h> +#endif + +#ifndef _RESOURCEPROVIDER_HXX_ +#include "resourceprovider.hxx" +#endif + +#ifndef _TOOLS_RESMGR_HXX +#include <tools/resmgr.hxx> +#endif + +#ifndef _COM_SUN_STAR_UI_DIALOGS_COMMONFILEPICKERELEMENTIDS_HPP_ +#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp> +#endif + +#ifndef _COM_SUN_STAR_UI_DIALOGS_EXTENDEDFILEPICKERELEMENTIDS_HPP_ +#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> +#endif + +#include "filedlghelper.hrc" + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +#define RES_NAME sfx + +// because the label of a listbox is +// a control itself (static text) we +// have defined a control id for this +// label which is the listbox control +// id + 100 +#define LB_LABEL_OFFSET 100 + +//------------------------------------------------------------ +// namespace directives +//------------------------------------------------------------ + +using rtl::OUString; +using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds; +using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds; + +//------------------------------------------------------------ +// we have to translate control ids to resource ids +//------------------------------------------------------------ + +struct _Entry +{ + sal_Int32 ctrlId; + sal_Int16 resId; +}; + +_Entry CtrlIdToResIdTable[] = { + { CHECKBOX_AUTOEXTENSION, STR_CB_AUTO_EXTENSION }, + { CHECKBOX_PASSWORD, STR_CB_PASSWORD }, + { CHECKBOX_FILTEROPTIONS, STR_CB_FILTER_OPTIONS }, + { CHECKBOX_READONLY, STR_CB_READONLY }, + { CHECKBOX_LINK, STR_CB_INSERT_AS_LINK }, + { CHECKBOX_PREVIEW, STR_CB_SHOW_PREVIEW }, + { PUSHBUTTON_PLAY, STR_PB_PLAY }, + { LISTBOX_VERSION + LB_LABEL_OFFSET, STR_LB_VERSION }, + { LISTBOX_TEMPLATE + LB_LABEL_OFFSET, STR_LB_TEMPLATES }, + { LISTBOX_IMAGE_TEMPLATE + LB_LABEL_OFFSET, STR_LB_IMAGE_TEMPLATE }, + { CHECKBOX_SELECTION, STR_CB_SELECTION }, +}; + +const sal_Int32 SIZE_TABLE = sizeof( CtrlIdToResIdTable ) / sizeof( _Entry ); + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +sal_Int16 CtrlIdToResId( sal_Int32 aControlId ) +{ + sal_Int16 aResId = -1; + + for ( sal_Int32 i = 0; i < SIZE_TABLE; i++ ) + { + if ( CtrlIdToResIdTable[i].ctrlId == aControlId ) + { + aResId = CtrlIdToResIdTable[i].resId; + break; + } + } + + return aResId; +} + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +class CResourceProvider_Impl +{ +public: + + //------------------------------------- + // + //------------------------------------- + + CResourceProvider_Impl( ) + { + m_ResMgr = CREATEVERSIONRESMGR( RES_NAME ); + } + + //------------------------------------- + // + //------------------------------------- + + ~CResourceProvider_Impl( ) + { + delete m_ResMgr; + } + + //------------------------------------- + // + //------------------------------------- + + OUString getResString( sal_Int16 aId ) + { + String aResString; + OUString aResOUString; + + try + { + OSL_ASSERT( m_ResMgr ); + + // translate the control id to a resource id + sal_Int16 aResId = CtrlIdToResId( aId ); + + if ( aResId > -1 ) + { + aResString = String( ResId( aResId, m_ResMgr ) ); + aResOUString = OUString( aResString ); + + // filter ~ + #pragma message( "#########################" ) + #pragma message( "implement filter ~" ) + #pragma message( "#########################" ) + } + } + catch(...) + { + } + + return aResOUString; + } + +public: + ResMgr* m_ResMgr; +}; + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +CResourceProvider::CResourceProvider( ) : + m_pImpl( new CResourceProvider_Impl() ) +{ +} + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +CResourceProvider::~CResourceProvider( ) +{ + delete m_pImpl; +} + +//------------------------------------------------------------ +// +//------------------------------------------------------------ + +OUString CResourceProvider::getResString( sal_Int32 aId ) +{ + return m_pImpl->getResString( aId ); +}
\ No newline at end of file |