方法

GtkBuildableParseContextpush

声明 [源]

void
gtk_buildable_parse_context_push (
  GtkBuildableParseContext* context,
  const GtkBuildableParser* parser,
  gpointer user_data
)

描述 [源]

临时将标记数据重定向到子解析器。

此函数只能从GtkBuildableParser的start_element处理程序中调用。它必须与匹配的end_element处理程序中对应的gtk_buildable_parse_context_pop()调用相匹配(除非由于错误导致解析器中止)。

匹配的标签之间的所有标签、文本和其他数据都重定向到由parser给出的子解析器。user_data用作该解析器的用户数据。如果发生错误,user_data也会传递到错误回调中。这包括子解析器中发生的错误。

与此调用所在的start标签匹配的结束标签由之前的解析器处理(该解析器有自己的user_data),因此提供了gtk_buildable_parse_context_pop()以允许对这个函数提供的user_data进行“最后一次访问”。在发生错误的情况下,此处提供的user_data将直接传递到子解析器的错误回调,不应该调用gtk_buildable_parse_context_pop()。在任何情况下,如果分配了user_data,则应从这两个位置释放。

此函数不打算直接由对调用子解析器感兴趣的用户直接调用。相反,它打算由子解析器本身用于实现高级接口。

有关如何使用此函数的示例,请参阅具有相同类型API的g_markup_parse_context_push()。

参数

parser

类型: GtkBuildableParser

一个GtkBuildableParser。

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

类型: gpointer

传递给GtkBuildableParser函数的用户数据。

此参数可以是NULL。
数据由方法调用者拥有。