Gtk.MapListModel
Description: Reference for Gtk.MapListModel

### Class

# GtkMapListModel

#### Description [src]

    final class Gtk.MapListModel : GObject.Object {
      /* No available fields */
    }

A `GtkMapListModel` maps the items in a list model to different items.

`GtkMapListModel` uses a Gtk.MapListModelMapFunc.

Example: Create a list of `GtkEventControllers`

    static gpointer
    map_to_controllers (gpointer widget,
                        gpointer data)
    {
      gpointer result = gtk_widget_observe_controllers (widget);
      g_object_unref (widget);
      return result;
    }

    widgets = gtk_widget_observe_children (widget);

    controllers = gtk_map_list_model_new (G_TYPE_LIST_MODEL,
                                          widgets,
                                          map_to_controllers,
                                          NULL, NULL);

    model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
                                        controllers);

`GtkMapListModel` will attempt to discard the mapped objects as soon as they are no longer needed and recreate them if necessary.

#### Ancestors

- GObject

#### Implements

- GListModel

#### Constructors

###### gtk_map_list_model_new

Creates a new `GtkMapListModel` for the given arguments.

#### Instance methods

###### gtk_map_list_model_get_model

Gets the model that is currently being mapped or `NULL` if none.

###### gtk_map_list_model_has_map

Checks if a map function is currently set on `self`.

###### gtk_map_list_model_set_map_func

Sets the function used to map items.

###### gtk_map_list_model_set_model

Sets the model to be mapped.

##### Methods inherited from GObject (43)

##### Methods inherited from GListModel (5)

###### g_list_model_get_item

Get the item at `position`. If `position` is greater than the number of items in `list`, `NULL` is returned.

Available since: 2.44

###### g_list_model_get_item_type

Gets the type of the items in `list`. All items returned from `g_list_model_get_type()` are of that type or a subtype, or are an implementation of that interface.

Available since: 2.44

###### g_list_model_get_n_items

Gets the number of items in `list`.

Available since: 2.44

###### g_list_model_get_object

Get the item at `position`. If `position` is greater than the number of items in `list`, `NULL` is returned.

Available since: 2.44

###### g_list_model_items_changed

Emits the `GListModel::items-changed` signal on `list`.

Available since: 2.44

#### Properties

###### Gtk.MapListModel:has-map

If a map is set for this model.

###### Gtk.MapListModel:model

The model being mapped.

#### Signals

##### Signals inherited from GObject (1)

###### GObject.Object::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

##### Signals inherited from GListModel (1)

###### Gio.ListModel::items-changed

This signal is emitted whenever items were added to or removed from `list`. At `position`, `removed` items were removed and `added` items were added in their place.

Available since: 2.44

#### Class structure

    struct GtkMapListModelClass {
      GObjectClass parent_class;

    }

###### Class members

`parent_class` |
    GObjectClass
| No description available.