summaryrefslogtreecommitdiff
path: root/include/vcl/impdel.hxx
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2016-03-30 22:29:16 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-03-31 11:20:55 +0000
commitef9757605619c6bcbdde61c93c834a0467453d67 (patch)
tree8265c09feb6930ceafec9937a8b70467fd99f84b /include/vcl/impdel.hxx
parent51d7f466df85f679f54e4e690f8b5e602192eb7b (diff)
tdf#97525 vcl: make DeletionListener internal
move include/vcl/impdel.hxx to vcl/inc/ include impdel.hxx in salframe.hxx remove vcl/impdel.hxx includes in pch add missing <list> includes Change-Id: Id146363b2e20ce0238542929c26a83efb1e8c4bd Reviewed-on: https://gerrit.libreoffice.org/23664 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'include/vcl/impdel.hxx')
-rw-r--r--include/vcl/impdel.hxx81
1 files changed, 0 insertions, 81 deletions
diff --git a/include/vcl/impdel.hxx b/include/vcl/impdel.hxx
deleted file mode 100644
index 95f373b1dcb9..000000000000
--- a/include/vcl/impdel.hxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_VCL_IMPDEL_HXX
-#define INCLUDED_VCL_IMPDEL_HXX
-
-#include <list>
-
-namespace vcl
-{
-
-class DeletionListener;
-
-class DeletionNotifier
-{
- std::list< DeletionListener* > m_aListeners;
- protected:
- DeletionNotifier() {}
-
- ~DeletionNotifier()
- { notifyDelete(); }
-
- inline void notifyDelete();
-
- public:
- void addDel( DeletionListener* pListener )
- { m_aListeners.push_back( pListener ); }
-
- void removeDel( DeletionListener* pListener )
- { m_aListeners.remove( pListener ); }
-};
-
-class DeletionListener
-{
- DeletionNotifier* m_pNotifier;
- public:
- DeletionListener( DeletionNotifier* pNotifier )
- : m_pNotifier( pNotifier )
- {
- if( m_pNotifier )
- m_pNotifier->addDel( this );
- }
- ~DeletionListener()
- {
- if( m_pNotifier )
- m_pNotifier->removeDel( this );
- }
- void deleted() { m_pNotifier = nullptr; }
- bool isDeleted() const { return (m_pNotifier == nullptr); }
-};
-
-inline void DeletionNotifier::notifyDelete()
-{
- for( std::list< DeletionListener* >::const_iterator it =
- m_aListeners.begin(); it != m_aListeners.end(); ++it )
- (*it)->deleted();
-
- m_aListeners.clear();
-}
-
-} // namespace vcl
-
-#endif // INCLUDED_VCL_IMPDEL_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */