方法

GtkSelectionModelset_selection

声明 [源]

gboolean
gtk_selection_model_set_selection (
  GtkSelectionModel* model,
  GtkBitset* selected,
  GtkBitset* mask
)

描述 [源]

进行选择更改。

这是最先进的更新选择状态的方法,允许对选择更改进行更细粒度的控制。如果可能,你应该尝试更简单的版本,因为这些实现的兼容性可能更好。

请求将 mask 中设置的所有的位置的选择状态更新到 selected 布尔掩码中相应的值。

伪代码如下

for (i = 0; i < n_items; i++)
  {
    // don't change values not in the mask
    if (!gtk_bitset_contains (mask, i))
      continue;

    if (gtk_bitset_contains (selected, i))
      select_item (i);
    else
      unselect_item (i);
  }

gtk_selection_model_selection_changed (model,
                                       first_changed_item,
                                       n_changed_items);

不得修改 maskselected。它们可以指向相同的位集合,这意味着集合中的每个项都应被选中。

参数

selected

类型: GtkBitset

布尔掩码指定是否选择或取消选择项。

数据由方法调用者拥有。
mask

类型: GtkBitset

指定要更新的项的布尔掩码。

数据由方法调用者拥有。

返回值

类型: gboolean

TRUE 表示此操作受支持且不应尝试回退。这并不意味着所有项都已根据输入进行了更新。