summaryrefslogtreecommitdiff
path: root/toolkit/source/layout/core/helper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source/layout/core/helper.cxx')
-rw-r--r--toolkit/source/layout/core/helper.cxx597
1 files changed, 0 insertions, 597 deletions
diff --git a/toolkit/source/layout/core/helper.cxx b/toolkit/source/layout/core/helper.cxx
deleted file mode 100644
index 362f766a28..0000000000
--- a/toolkit/source/layout/core/helper.cxx
+++ /dev/null
@@ -1,597 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "helper.hxx"
-
-#include <assert.h>
-#include <list>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <tools/debug.hxx>
-
-#include "proplist.hxx"
-
-namespace layoutimpl
-{
-using namespace com::sun::star;
-using rtl::OUString;
-
-uno::Reference< awt::XWindowPeer >
-getParent( uno::Reference< uno::XInterface > xRef )
-{
- do
- {
- uno::Reference< awt::XWindowPeer > xPeer( xRef, uno::UNO_QUERY );
- if ( xPeer.is() )
- return xPeer;
-
- uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
- if ( xCont.is() )
- xRef = xCont->getParent();
- }
- while ( xRef.is() );
-
- return uno::Reference< awt::XWindowPeer >();
-}
-
-}
-
-#include "bin.hxx"
-#include "box.hxx"
-#include "dialogbuttonhbox.hxx"
-#include "flow.hxx"
-#include "localized-string.hxx"
-#include "table.hxx"
-
-namespace layoutimpl
-{
-
-oslModule WidgetFactory::mSfx2Library = 0;
-WindowCreator WidgetFactory::mSfx2CreateWidget = 0;
-
-uno::Reference <awt::XLayoutContainer> WidgetFactory::createContainer (OUString const& name)
-{
- uno::Reference< awt::XLayoutContainer > xPeer;
-
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new HBox() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new VBox() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "table" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Table() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "flow" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Flow() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "bin" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Bin() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "min-size" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new MinSize() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "align" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Align() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "dialogbuttonhbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new DialogButtonHBox() );
-
- return xPeer;
-}
-
-uno::Reference <awt::XLayoutConstrains> WidgetFactory::toolkitCreateWidget (uno::Reference <awt::XToolkit> xToolkit, uno::Reference <uno::XInterface> xParent, OUString const& name, long properties)
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
- bool bToplevel = !xParent.is();
-
- // UNO Control Widget
- awt::WindowDescriptor desc;
- if ( bToplevel )
- desc.Type = awt::WindowClass_TOP;
- else
- {
- desc.Type = awt::WindowClass_SIMPLE;
-
- uno::Reference< awt::XWindowPeer > xWinParent( xParent, uno::UNO_QUERY );
- assert( xParent.is() );
- assert( xWinParent.is() );
- /*
- With the new three layer instarr/rpath feature, when
- prepending toolkit/unxlngx6.pro/lib or $SOLARVER/lib to
- LD_LIBRARY_PATH, VCLXWindow::GetImplementation returns 0x0
- vclxtoolkit::ImplCreateWindow failing to create any widget;
- although it succeeds here.
-
- While developing, one now must copy libtlx.so to
- $OOO_INSTALL_PREFIX/openoffice.org/basis3.0/program/libtklx.so
- each time.
- */
- VCLXWindow* parentComponent = VCLXWindow::GetImplementation( xWinParent );
- if ( !parentComponent )
- throw uno::RuntimeException(
- OUString(RTL_CONSTASCII_USTRINGPARAM("parent has no implementation")),
- uno::Reference< uno::XInterface >() );
- desc.Parent = xWinParent;
- }
-
- desc.ParentIndex = 0;
- // debugging help ...
- desc.Bounds.X = 0;
- desc.Bounds.Y = 0;
- desc.Bounds.Width = 300;
- desc.Bounds.Height = 200;
-
- desc.WindowAttributes = properties;
- desc.WindowServiceName = name;
-
- uno::Reference< awt::XWindowPeer > xWinPeer;
- try
- {
- OSL_TRACE("Asking toolkit: %s", OUSTRING_CSTR( desc.WindowServiceName ) );
- xWinPeer = xToolkit->createWindow( desc );
- if ( !xWinPeer.is() )
- throw uno::RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot create peer" ) ),
- uno::Reference< uno::XInterface >() );
- xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
- }
- catch( uno::Exception & )
- {
- OSL_TRACE( "Warning: %s is not a recognized type\n", OUSTRING_CSTR( name ) );
- return uno::Reference< awt::XLayoutConstrains >();
- }
-
- return xPeer;
-}
-
-uno::Reference< awt::XLayoutConstrains >
-WidgetFactory::createWidget (uno::Reference< awt::XToolkit > xToolkit, uno::Reference< uno::XInterface > xParent, OUString const& name, long properties)
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
-
- xPeer = uno::Reference <awt::XLayoutConstrains> (createContainer (name), uno::UNO_QUERY);
- if ( xPeer.is() )
- return xPeer;
-
- xPeer = implCreateWidget (xParent, name, properties);
- if (xPeer.is ())
- return xPeer;
-
-#define FIXED_INFO 1
-#if FIXED_INFO
- OUString tName = name;
- // FIXME
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "fixedinfo" ) ) )
- tName = OUString(RTL_CONSTASCII_USTRINGPARAM("fixedtext"));
- xPeer = toolkitCreateWidget (xToolkit, xParent, tName, properties);
-#else
- xPeer = toolkitCreateWidget (xToolkit, xParent, name, properties);
-#endif
-
- return xPeer;
-}
-
-PropHelper::PropHelper() : LockHelper()
- , cppu::OPropertySetHelper( maBrdcstHelper )
- , pHelper( NULL )
-{
-}
-
-void
-PropHelper::addProp (const char *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
- uno::Type aType, void *pPtr)
-{
- // this sucks rocks for effiency ...
- PropDetails aDetails;
- aDetails.aName = rtl::OUString::intern( pName, nNameLen, e );
- aDetails.aType = aType;
- aDetails.pValue = pPtr;
- maDetails.push_back( aDetails );
-}
-
-cppu::IPropertyArrayHelper & SAL_CALL
-PropHelper::getInfoHelper()
-{
- if ( ! pHelper )
- {
- uno::Sequence< beans::Property > aProps( maDetails.size() );
- for ( unsigned int i = 0; i < maDetails.size(); i++)
- {
- aProps[i].Name = maDetails[i].aName;
- aProps[i].Type = maDetails[i].aType;
- aProps[i].Handle = i;
- aProps[i].Attributes = 0;
- }
- pHelper = new cppu::OPropertyArrayHelper( aProps, false /* fixme: faster ? */ );
-
- }
- return *pHelper;
-}
-
-sal_Bool SAL_CALL
-PropHelper::convertFastPropertyValue(
- uno::Any & rConvertedValue,
- uno::Any & rOldValue,
- sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (lang::IllegalArgumentException)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- // FIXME: no Any::getValue ...
- getFastPropertyValue( rOldValue, nHandle );
- if ( rOldValue != rValue )
- {
- rConvertedValue = rValue;
- return sal_True; // changed
- }
- else
- {
- rConvertedValue.clear();
- rOldValue.clear();
- }
- return sal_False;
-}
-
-
-void SAL_CALL
-PropHelper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (uno::Exception)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- const PropDetails &rInfo = maDetails[ nHandle ];
-
- uno_type_assignData( rInfo.pValue, rInfo.aType.getTypeLibType(),
- rValue.pData, rValue.pType,
- 0, 0, 0 );
-
- if ( mpListener )
- mpListener->propertiesChanged();
-}
-
-void SAL_CALL
-PropHelper::getFastPropertyValue( uno::Any& rValue,
- sal_Int32 nHandle ) const
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
- const PropDetails &rInfo = maDetails[ nHandle ];
- rValue.setValue( rInfo.pValue, rInfo.aType );
-}
-
-::com::sun::star::uno::Any
-PropHelper::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
-{
- return OPropertySetHelper::queryInterface( rType );
-}
-
-uno::Reference <beans::XPropertySetInfo> SAL_CALL PropHelper::getPropertySetInfo () throw (uno::RuntimeException)
-{
- return css::uno::Reference <css::beans::XPropertySetInfo> (createPropertySetInfo (getInfoHelper ()));
-}
-
-} // namespace layoutimpl
-
-#include <awt/vclxbutton.hxx>
-#include <awt/vclxdialog.hxx>
-#include <awt/vclxfixedline.hxx>
-#include <awt/vclxplugin.hxx>
-#include <awt/vclxscroller.hxx>
-#include <awt/vclxsplitter.hxx>
-#include <awt/vclxtabcontrol.hxx>
-#include <awt/vclxtabpage.hxx>
-#include <toolkit/awt/vclxtoolkit.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <vcl/button.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/tabctrl.hxx>
-#include <vcl/tabpage.hxx>
-#include <vcl/unohelp.hxx>
-
-#include <layout/layout.hxx>
-#include <toolkit/awt/vclxwindows.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl.hxx>
-
-#include <typeinfo>
-
-namespace layoutimpl
-{
-
-uno::Reference <awt::XLayoutConstrains> WidgetFactory::implCreateWidget (uno::Reference <uno::XInterface> xParent, OUString name, long attributes)
-{
- Window* parent = 0;
-
- if (VCLXWindow* parentComponent = VCLXWindow::GetImplementation (xParent))
- parent = parentComponent->GetWindow ();
-
- VCLXWindow* component = 0;
- Window* window = 0; //sfx2CreateWindow (&component, parent, name, attributes);
- if (!window)
- window = layoutCreateWindow (&component, parent, name, attributes);
-
- uno::Reference <awt::XLayoutConstrains> reference;
- if (window)
- {
- window->SetCreatedWithToolkit( sal_True );
- if ( component )
- component->SetCreatedWithToolkit( true );
- reference = component;
- window->SetComponentInterface( component );
- if ( attributes & awt::WindowAttribute::SHOW )
- window->Show();
- }
-
- return reference;
-}
-
-extern "C" { static void SAL_CALL thisModule() {} }
-
-Window* WidgetFactory::sfx2CreateWindow (VCLXWindow** component, Window* parent, OUString const& name, long& attributes)
-{
- OSL_TRACE("Asking sfx2: %s", OUSTRING_CSTR (name));
-
- if (!mSfx2Library)
- {
- OUString libraryName = ::vcl::unohelper::CreateLibraryName ("sfx", sal_True);
- mSfx2Library = osl_loadModuleRelative (&thisModule, libraryName.pData, SAL_LOADMODULE_DEFAULT);
- if (mSfx2Library)
- {
- OUString functionName (RTL_CONSTASCII_USTRINGPARAM ("CreateWindow"));
- mSfx2CreateWidget = (WindowCreator) osl_getFunctionSymbol (mSfx2Library, functionName.pData);
- }
- }
-
- if (mSfx2CreateWidget)
- return mSfx2CreateWidget (component, name, parent, attributes);
-
- return 0;
-}
-
-Window* WidgetFactory::layoutCreateWindow (VCLXWindow** component, Window *parent, OUString const& name, long& attributes)
-{
- Window* window = 0;
-
- if (0)
- {
- ;
- }
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "dialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new Dialog( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "modaldialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ModalDialog( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "modelessdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ModelessDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxmodaldialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingModalDialog( parent,
- ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxmodelessdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingModelessDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "tabcontrol" ) ) )
- {
- window = new TabControl( parent, ImplGetWinBits( attributes, WINDOW_TABCONTROL ) );
- *component = new layoutimpl::VCLXTabControl();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "scroller" ) ) )
- {
- // used FixedImage because I just want some empty non-intrusive widget
- window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXScroller();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hsplitter" ) ) || name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vsplitter" ) ) )
- {
- window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXSplitter( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hsplitter" ) ) );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hfixedline" ) ) || name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vfixedline" ) ) )
- {
- WinBits nStyle = ImplGetWinBits( attributes, 0 );
- nStyle ^= WB_HORZ;
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hfixedline" ) ) )
- nStyle |= WB_HORZ;
- else
- nStyle |= WB_VERT;
- window = new FixedLine( parent, nStyle );
- *component = new layoutimpl::VCLXFixedLine();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "okbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXOKButton( window );
- window->SetType (WINDOW_OKBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "cancelbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXCancelButton( window );
- window->SetType (WINDOW_CANCELBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "yesbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXYesButton( window );
- window->SetType (WINDOW_OKBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nobutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- window->SetType (WINDOW_CANCELBUTTON);
- *component = new layoutimpl::VCLXNoButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "retrybutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXRetryButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ignorebutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXIgnoreButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "resetbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXResetButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "applybutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXApplyButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXHelpButton( window );
- window->SetType (WINDOW_HELPBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "morebutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXMoreButton( window );
- window->SetType (WINDOW_MOREBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "advancedbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXAdvancedButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "plugin" ) ) )
- {
- window = new Control( parent, ImplGetWinBits( attributes, 0 ) );
-#ifndef __SUNPRO_CC
- OSL_TRACE( "%s: parent=%p (%s)\n", __FUNCTION__, parent, typeid( *parent ).name() );
-#endif
- *component = new layoutimpl::VCLXPlugin( window, ImplGetWinBits( attributes, 0 ) );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "tabpage" ) ) )
- {
- if (layout::TabPage::global_parent)
- parent = layout::TabPage::global_parent;
- layout::TabPage::global_parent = 0;
- //window = new TabPage( parent, ImplGetWinBits( attributes, 0 ) );
- attributes ^= awt::WindowAttribute::SHOW;
- WinBits nStyle = ImplGetWinBits( attributes, 0 );
- nStyle |= WB_HIDE;
-
- if (!parent)
- {
- window = new Dialog( parent, nStyle );
- *component = new VCLXDialog();
- }
- else
- {
- window = new TabPage( parent, nStyle );
- *component = new VCLXTabPage( window );
- }
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "string" ) ) )
- {
- // FIXME: move <string>s.text to simple map<string> in root?
- attributes &= ~awt::WindowAttribute::SHOW;
- window = new Window( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::LocalizedString();
- }
- else if (name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("svxfontlistbox"))
- || name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("svxlanguagebox")))
- {
- window = new ListBox (parent, ImplGetWinBits (attributes, 0));
- *component = new VCLXListBox ();
- }
- return window;
-}
-
-} // namespace layoutimpl
-
-// Avoid polluting the rest of the code with vcl linkage pieces ...
-
-#include <vcl/imagerepository.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/graph.hxx>
-
-namespace layoutimpl
-{
-
-uno::Reference< graphic::XGraphic > loadGraphic( const char *pName )
-{
- BitmapEx aBmp;
-
- OUString aStr( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US );
- if ( aStr.compareToAscii( ".uno:" ) == 0 )
- aStr = aStr.copy( 5 ).toAsciiLowerCase();
-
- if ( !vcl::ImageRepository::loadImage( OUString::createFromAscii( pName ), aBmp, true, true ) )
- return uno::Reference< graphic::XGraphic >();
-
- return Graphic( aBmp ).GetXGraphic();
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */