33 SelectableType* get ()
const noexcept {
return dynamic_cast<SelectableType*
> (base_.get()); }
34 SelectableType* operator-> ()
const noexcept {
return get(); }
37 bool operator== (SelectableType *obj)
const noexcept {
return base_.get() == obj; }
38 bool operator!= (SelectableType *obj)
const noexcept {
return base_.get() != obj; }
39 bool operator== (
std::nullptr_t)
const noexcept {
return base_.get() ==
nullptr; }
40 bool operator!= (
std::nullptr_t)
const noexcept {
return base_.get() !=
nullptr; }
41 bool operator== (
const SelectableWeakref &ref)
const noexcept {
return base_.get() == ref.base_.get(); }
42 bool operator!= (
const SelectableWeakref &ref)
const noexcept {
return base_.get() != ref.base_.get(); }
48 static SelectableHandle* find_base_handle (tracktion::Selectable &selectable_obj);
49 void discard_selectable ();
50 void selectableObjectAboutToBeDeleted (tracktion::Selectable *
object)
override;
51 void selectableObjectChanged (tracktion::Selectable *
object)
override;
55 virtual void discarded ();
56 template<
typename AseType>
static AseType*
57 find_selectable_handle (tracktion::Selectable &selectable_obj)
60 return dynamic_cast<AseType*
> (handle);