summaryrefslogtreecommitdiff
path: root/src/wx/wx_ptr.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-02-09 02:06:04 +0100
committerCarl Hetherington <cth@carlh.net>2025-02-09 17:29:16 +0100
commitd0308d53dd9f4d036d8c5fe8023920fcdfd43f39 (patch)
tree5b37c1db5dc50e541a542663390061f743fe815a /src/wx/wx_ptr.h
parent8d0d9866ae3e0395d899705e27b3806a5de7ef0e (diff)
Remove unnecessary wx_ptr
It was only ever used for wxDialog subclasses, which can be stack-allocated.
Diffstat (limited to 'src/wx/wx_ptr.h')
-rw-r--r--src/wx/wx_ptr.h117
1 files changed, 0 insertions, 117 deletions
diff --git a/src/wx/wx_ptr.h b/src/wx/wx_ptr.h
deleted file mode 100644
index fcca8b18b..000000000
--- a/src/wx/wx_ptr.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- Copyright (C) 2023 Carl Hetherington <cth@carlh.net>
-
- This file is part of DCP-o-matic.
-
- DCP-o-matic is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- DCP-o-matic 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
-
-*/
-
-
-#ifndef DCPOMATIC_WX_PTR_H
-#define DCPOMATIC_WX_PTR_H
-
-
-#include "lib/dcpomatic_assert.h"
-#include <utility>
-
-
-template <class T>
-class wx_ptr
-{
-public:
- wx_ptr() {}
-
- explicit wx_ptr(T* wx)
- : _wx(wx)
- {}
-
- wx_ptr(wx_ptr&) = delete;
- wx_ptr& operator=(wx_ptr&) = delete;
-
- wx_ptr(wx_ptr&& other)
- {
- _wx = other._wx;
- other._wx = nullptr;
- }
-
- wx_ptr& operator=(wx_ptr&& other)
- {
- if (this != &other) {
- _wx = other._wx;
- other._wx = nullptr;
- }
- return *this;
- }
-
- ~wx_ptr()
- {
- if (_wx) {
- _wx->Destroy();
- }
- }
-
- wx_ptr& operator=(T* ptr)
- {
- if (_wx) {
- _wx->Destroy();
- }
- _wx = ptr;
- return *this;
- }
-
- T* operator->()
- {
- DCPOMATIC_ASSERT(_wx);
- return _wx;
- }
-
- operator bool() const
- {
- return _wx != nullptr;
- }
-
- void reset()
- {
- if (_wx) {
- _wx->Destroy();
- _wx = nullptr;
- }
- }
-
- template <typename... Args>
- void reset(Args&&... args)
- {
- if (_wx) {
- _wx->Destroy();
- _wx = nullptr;
- }
- _wx = new T(std::forward<Args>(args)...);
- }
-
-private:
- T* _wx = nullptr;
-};
-
-
-
-template <class T, typename... Args>
-wx_ptr<T>
-make_wx(Args... args)
-{
- return wx_ptr<T>(new T(std::forward<Args>(args)...));
-}
-
-
-#endif