Port stuff to our private implementation of SGI extensions
This commit is contained in:
parent
63ec47e630
commit
d935718b6e
@ -47,7 +47,7 @@
|
||||
#include <boost/bind.hpp>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <functional>
|
||||
#include <o3tl/compat_functional.hxx>
|
||||
#include <algorithm>
|
||||
|
||||
#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
|
||||
@ -270,7 +270,7 @@ Sequence<OUString> CanvasFactory::getAvailableServiceNames()
|
||||
std::transform(m_aAvailableImplementations.begin(),
|
||||
m_aAvailableImplementations.end(),
|
||||
aServiceNames.getArray(),
|
||||
std::select1st<AvailPair>());
|
||||
o3tl::select1st<AvailPair>());
|
||||
return aServiceNames;
|
||||
}
|
||||
|
||||
@ -355,7 +355,7 @@ Reference<XInterface> CanvasFactory::lookupAndUse(
|
||||
boost::bind(&OUString::equals,
|
||||
boost::cref(serviceName),
|
||||
boost::bind(
|
||||
std::select1st<CachePair>(),
|
||||
o3tl::select1st<CachePair>(),
|
||||
_1)))) != aEnd )
|
||||
{
|
||||
Reference<XInterface> xCanvas( use( aMatch->second, args, xContext ) );
|
||||
@ -371,7 +371,7 @@ Reference<XInterface> CanvasFactory::lookupAndUse(
|
||||
boost::bind(&OUString::equals,
|
||||
boost::cref(serviceName),
|
||||
boost::bind(
|
||||
std::select1st<AvailPair>(),
|
||||
o3tl::select1st<AvailPair>(),
|
||||
_1)))) == aAvailEnd )
|
||||
{
|
||||
return Reference<XInterface>();
|
||||
@ -384,7 +384,7 @@ Reference<XInterface> CanvasFactory::lookupAndUse(
|
||||
boost::bind(&OUString::equals,
|
||||
boost::cref(serviceName),
|
||||
boost::bind(
|
||||
std::select1st<AvailPair>(),
|
||||
o3tl::select1st<AvailPair>(),
|
||||
_1)))) == aAAEnd )
|
||||
{
|
||||
return Reference<XInterface>();
|
||||
@ -397,7 +397,7 @@ Reference<XInterface> CanvasFactory::lookupAndUse(
|
||||
boost::bind(&OUString::equals,
|
||||
boost::cref(serviceName),
|
||||
boost::bind(
|
||||
std::select1st<AvailPair>(),
|
||||
o3tl::select1st<AvailPair>(),
|
||||
_1)))) == aAccelEnd )
|
||||
{
|
||||
return Reference<XInterface>();
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include <basegfx/range/rangeexpander.hxx>
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <o3tl/compat_functional.hxx>
|
||||
#include <boost/bind.hpp>
|
||||
|
||||
|
||||
@ -426,7 +426,7 @@ namespace canvas
|
||||
aEnd,
|
||||
::boost::bind( ::basegfx::B2DRangeExpander(aTrueArea),
|
||||
::boost::bind( &SpriteInfo::getUpdateArea,
|
||||
::boost::bind( ::std::select2nd<AreaComponent>(),
|
||||
::boost::bind( ::o3tl::select2nd<AreaComponent>(),
|
||||
_1 ) ) ) );
|
||||
|
||||
// and check whether _any_ of the sprites tells that its area
|
||||
@ -452,7 +452,7 @@ namespace canvas
|
||||
aEnd,
|
||||
::boost::bind( &SpriteInfo::needsUpdate,
|
||||
::boost::bind(
|
||||
::std::select2nd<SpriteConnectedRanges::ComponentType>(),
|
||||
::o3tl::select2nd<SpriteConnectedRanges::ComponentType>(),
|
||||
_1 ) ) ) != aEnd );
|
||||
}
|
||||
|
||||
|
133
o3tl/inc/o3tl/compat_functional.hxx
Normal file
133
o3tl/inc/o3tl/compat_functional.hxx
Normal file
@ -0,0 +1,133 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Copyright (c) 1996-1998
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1997
|
||||
* Moscow Center for SPARC Technology
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Lifted and paraphrased from STLport
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_O3TL_COMPAT_FUNCTIONAL_HXX
|
||||
#define INCLUDED_O3TL_COMPAT_FUNCTIONAL_HXX
|
||||
|
||||
#include <functional>
|
||||
|
||||
namespace o3tl
|
||||
{
|
||||
|
||||
template<class T>
|
||||
struct identity : public std::unary_function<T, T>
|
||||
{
|
||||
T operator()(const T& y) const
|
||||
{
|
||||
return (y);
|
||||
}
|
||||
};
|
||||
|
||||
template<class T1,class T2>
|
||||
struct project1st : public std::binary_function<T1, T2, T1>
|
||||
{
|
||||
T1 operator()(const T1& y, const T2&) const
|
||||
{
|
||||
return (y);
|
||||
}
|
||||
};
|
||||
|
||||
template<class T1,class T2>
|
||||
struct project2nd : public std::binary_function<T1, T2, T2>
|
||||
{
|
||||
T2 operator()(const T1&, const T2& x) const
|
||||
{
|
||||
return (x);
|
||||
}
|
||||
};
|
||||
|
||||
template<class P>
|
||||
struct select1st : public std::unary_function<P, typename P::first_type>
|
||||
{
|
||||
const typename P::first_type& operator()(const P& y) const
|
||||
{
|
||||
return (y.first);
|
||||
}
|
||||
};
|
||||
|
||||
template<class P>
|
||||
struct select2nd : public std::unary_function<P, typename P::second_type>
|
||||
{
|
||||
const typename P::second_type& operator()(const P& y) const
|
||||
{
|
||||
return (y.second);
|
||||
}
|
||||
};
|
||||
|
||||
template<class F1, class F2>
|
||||
class unary_compose : public std::unary_function<typename F2::argument_type, typename F1::result_type>
|
||||
{
|
||||
public:
|
||||
unary_compose(const F1& fnction1, const F2& fnction2) : ftor1(fnction1), ftor2(fnction2) {}
|
||||
|
||||
typename F1::result_type operator()(const typename F2::argument_type& y) const
|
||||
{
|
||||
return (ftor1(ftor2(y)));
|
||||
}
|
||||
|
||||
protected:
|
||||
F1 ftor1;
|
||||
F2 ftor2;
|
||||
};
|
||||
|
||||
template<class F1, class F2>
|
||||
inline unary_compose<F1, F2> compose1(const F1& fnction1, const F2& fnction2)
|
||||
{
|
||||
return (unary_compose<F1, F2>(fnction1, fnction2));
|
||||
}
|
||||
|
||||
template<class F1, class F2, class F3>
|
||||
class binary_compose : public std::unary_function<typename F2::argument_type,typename F1::result_type>
|
||||
{
|
||||
public:
|
||||
binary_compose(const F1& fnction1, const F2& fnction2, const F3& fnction3) : ftor1(fnction1), ftor2(fnction2), ftor3(fnction3) {}
|
||||
|
||||
typename F1::result_type operator()(const typename F2::argument_type& y) const
|
||||
{
|
||||
return (ftor1(ftor2(y), ftor3(y)));
|
||||
}
|
||||
|
||||
protected:
|
||||
F1 ftor1;
|
||||
F2 ftor2;
|
||||
F3 ftor3;
|
||||
};
|
||||
|
||||
template<class F1, class F2, class F3>
|
||||
inline binary_compose<F1, F2, F3> compose2(const F1& fnction1, const F2& fnction2, const F3& fnction3)
|
||||
{
|
||||
return (binary_compose<F1, F2, F3>(fnction1, fnction2, fnction3));
|
||||
}
|
||||
|
||||
} // namespace o3tl
|
||||
|
||||
#endif
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
@ -70,7 +70,7 @@
|
||||
#include <map>
|
||||
#include <boost/unordered_map.hpp>
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <o3tl/compat_functional.hxx>
|
||||
#include "tools/urlobj.hxx"
|
||||
#include "osl/file.hxx"
|
||||
#include <com/sun/star/awt/XSimpleTabController.hpp>
|
||||
@ -477,7 +477,7 @@ void SAL_CALL UnoControlDialogModel::dispose( ) throw(RuntimeException)
|
||||
::std::transform(
|
||||
maModels.begin(), maModels.end(), // source range
|
||||
aChildModels.begin(), // target location
|
||||
::std::select1st< UnoControlModelHolder >( ) // operation to apply -> select the XControlModel part
|
||||
::o3tl::select1st< UnoControlModelHolder >( ) // operation to apply -> select the XControlModel part
|
||||
);
|
||||
|
||||
// now dispose
|
||||
@ -780,7 +780,7 @@ Sequence< ::rtl::OUString > UnoControlDialogModel::getElementNames() throw(Runti
|
||||
::std::transform(
|
||||
maModels.begin(), maModels.end(), // source range
|
||||
aNames.getArray(), // target range
|
||||
::std::select2nd< UnoControlModelHolder >() // operator to apply: select the second element (the name)
|
||||
::o3tl::select2nd< UnoControlModelHolder >() // operator to apply: select the second element (the name)
|
||||
);
|
||||
|
||||
return aNames;
|
||||
@ -992,7 +992,7 @@ Sequence< Reference< XControlModel > > SAL_CALL UnoControlDialogModel::getContro
|
||||
::std::transform(
|
||||
aSortedModels.begin(), aSortedModels.end(),
|
||||
::std::copy( aUnindexedModels.begin(), aUnindexedModels.end(), aReturn.getArray() ),
|
||||
::std::select2nd< MapIndexToModel::value_type >( )
|
||||
::o3tl::select2nd< MapIndexToModel::value_type >( )
|
||||
);
|
||||
|
||||
return aReturn;
|
||||
|
Loading…
x
Reference in New Issue
Block a user