glibmm: Glib::ListHandler< T, Tr > Class Template Reference
A utility for converting between std::vector and GList. More...
#include <glibmm/vectorutils.h>
Public Types |
|
using | CType = typename Tr::CType |
using | CppType = T |
using | VectorType = std::vector < CppType > |
using | GListKeeperType = typename Glib::Container_Helpers::GListKeeper < Tr > |
using | ListIteratorType = typename Glib::Container_Helpers::ListIterator < Tr > |
Static Public Member Functions |
|
static VectorType | list_to_vector (GList* glist, Glib::OwnershipType ownership) |
static GListKeeperType | vector_to_list (const VectorType & vector) |
Detailed Description
template<typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
class Glib::ListHandler< T, Tr >
A utility for converting between std::vector and GList.
This would normally only be used by glibmm or gtkmm itself, or similar libraries that wrap C APIs.
For instance:
std::vector< Glib::RefPtr<Window>
> Window::get_children()
{
>
::list_to_vector
(gdk_window_get_children(gobj()),
Glib::OWNERSHIP_SHALLOW
);
}
or
{
gdk_window_set_icon_list(gobj(),
Glib::ListHandler
<
Glib::RefPtr<Gdk::Pixbuf>
>::
vector_to_list
(pixbufs).data ());
}
Note that usage below is wrong - data() returns a pointer to data owned by a temporary ListKeeper returned by vector_to_list() , which is destroyed at the end of this instruction. For details, see Glib::ListKeeper.
GList* glist =
Glib::ListHandler<Glib::RefPtr<Gdk::Pixbuf>
>
::vector_to_list
(pixbufs).data();
Member Typedef Documentation
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::ListHandler < T, Tr >:: CppType = T |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::ListHandler < T, Tr >:: CType = typename Tr::CType |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::ListHandler < T, Tr >:: GListKeeperType = typename Glib::Container_Helpers::GListKeeper <Tr> |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::ListHandler < T, Tr >:: ListIteratorType = typename Glib::Container_Helpers::ListIterator <Tr> |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::ListHandler < T, Tr >:: VectorType = std::vector < CppType > |
Member Function Documentation
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
|
static |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
|
static |