虚函数

GtkSelectionModelset_selection

声明 [src]

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

描述 [src]

进行选择变更。

这是最先进的更新选择的方法,允许对选择变更有最精细的控制。如果可能,您应该尝试更简单的版本,因为这些实现更有可能实现对这些版本的支持。

请求将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 如果此操作受支持且不需要尝试回退。这并不表示所有项都根据输入更新。