包装GTK +功能

时间:2013-01-27 19:27:55

标签: c gtk

程序编写为C,GUI由GTK +创建。算法没有问题或什么,我只是不确定是否有一件事。

我打算包装一些GTK函数,所以我可以保存很多源代码行。例如:

GtkWidget *gtkwrap_label_markup_new(const gchar *txt)
{
    GtkWidget *label;

    g_assert(txt);

    label = gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(label), txt);

    return label;
}

我使用pango很多次修改的文本,这个包装函数保存了很多行代码。也许它还不错,但如果其他一些程序员有一天会阅读我的代码怎么办,会有什么反应呢? “.... gtkwrap_label_markup_new?什么?!”

我只是想知道,如果包含这些功能在标准范围内。我不想看起来像个白痴,我也不想学习一些坏习惯。 ;)

2 个答案:

答案 0 :(得分:6)

引入函数以避免代码重复没有任何问题。事实上,我认为这恰恰相反,引入抽象可以帮助您更快地开发代码,并降低修复问题或更改设计的成本。

答案 1 :(得分:1)

如果您有疑问,请查看GTK代码。例如,对于gtk_label_set_markup,您会看到处理str变量为NULL的情况。因此,断言检查可能适合您的申请,但我认为这有点矫枉过正。如果您想收到警告,您可能希望g_return_val_if_fail(str != NULL, NULL)返回NULL并在txt为NULL时打印警告。

但是如果你真的想保存一堆代码,可以使用Glade来设计你的UI,而不是用普通的C来构建它。