This one pushes ownership a lot wider.
Some checks failed
CI / ubuntu-latest-html-tests (push) Has been cancelled
CI / ubuntu-latest-no-tls (push) Has been cancelled
CI / ubuntu-latest-mbedtls2 (push) Has been cancelled
CI / ubuntu-latest-openssl-3 (push) Has been cancelled
CI / ubuntu-latest-with-old-std (push) Has been cancelled
CI / ubuntu-20-04-openssl-1-1 (push) Has been cancelled
CI / alpine-mbedtls-3_6_0 (push) Has been cancelled
CI / macOS-13-openssl-1-1 (push) Has been cancelled
CI / macOS-13-openssl-3 (push) Has been cancelled
CI / freebsd-14-openssl-3 (push) Has been cancelled
CI / windows-mbedtls (push) Has been cancelled
Some checks failed
CI / ubuntu-latest-html-tests (push) Has been cancelled
CI / ubuntu-latest-no-tls (push) Has been cancelled
CI / ubuntu-latest-mbedtls2 (push) Has been cancelled
CI / ubuntu-latest-openssl-3 (push) Has been cancelled
CI / ubuntu-latest-with-old-std (push) Has been cancelled
CI / ubuntu-20-04-openssl-1-1 (push) Has been cancelled
CI / alpine-mbedtls-3_6_0 (push) Has been cancelled
CI / macOS-13-openssl-1-1 (push) Has been cancelled
CI / macOS-13-openssl-3 (push) Has been cancelled
CI / freebsd-14-openssl-3 (push) Has been cancelled
CI / windows-mbedtls (push) Has been cancelled
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
#ifndef __DW_IMGRENDERER_HH__
|
||||
#define __DW_IMGRENDERER_HH__
|
||||
|
||||
#include <set>
|
||||
|
||||
#ifndef __INCLUDED_FROM_DW_CORE_HH__
|
||||
# error Do not include this file directly, use "core.hh" instead.
|
||||
#endif
|
||||
@ -58,25 +60,22 @@ public:
|
||||
*/
|
||||
class ImgRendererDist: public ImgRenderer
|
||||
{
|
||||
lout::container::typed::HashSet <lout::object::TypedPointer <ImgRenderer> >
|
||||
*children;
|
||||
std::set< std::unique_ptr< ImgRenderer > > children;
|
||||
|
||||
public:
|
||||
inline ImgRendererDist ()
|
||||
{ children = new lout::container::typed::HashSet
|
||||
<lout::object::TypedPointer <ImgRenderer> > (true); }
|
||||
~ImgRendererDist () { delete children; }
|
||||
|
||||
void setBuffer (core::Imgbuf *buffer, bool resize);
|
||||
void drawRow (int row);
|
||||
void finish ();
|
||||
void fatal ();
|
||||
|
||||
void put (ImgRenderer *child)
|
||||
{ children->put (new lout::object::TypedPointer <ImgRenderer> (child)); }
|
||||
void remove (ImgRenderer *child)
|
||||
{ lout::object::TypedPointer <ImgRenderer> tp (child);
|
||||
children->remove (&tp); }
|
||||
void put (std::unique_ptr< ImgRenderer > child)
|
||||
{ children.insert( std::move( child ) ); }
|
||||
void
|
||||
remove( ImgRenderer * child)
|
||||
{
|
||||
children.erase( std::find_if( begin( children ), end( children ),
|
||||
[&]( const auto &elem ) { return child == elem.get(); } ) );
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace core
|
||||
|
||||
Reference in New Issue
Block a user