Add a new function to load view from UI fils

This commit is contained in:
François Grisez 2015-08-01 22:39:02 +02:00
parent 1ef7f7fabc
commit e6c50db150
2 changed files with 33 additions and 0 deletions

View file

@ -99,6 +99,7 @@ LINPHONE_PUBLIC void linphone_gtk_destroy_window(GtkWidget *window);
LINPHONE_PUBLIC GtkWidget *linphone_gtk_create_window(const char *window_name, GtkWidget *parent);
LINPHONE_PUBLIC GtkWidget *linphone_gtk_get_widget(GtkWidget *window, const char *name);
LINPHONE_PUBLIC GtkWidget *linphone_gtk_create_widget(const char *filename, const char *widget_name);
LINPHONE_PUBLIC GtkWidget *linphone_gtk_create_widget_2(const char *filename, const char *widget_name);
const char *linphone_gtk_message_storage_get_db_file(const char *filename);
LINPHONE_PUBLIC void linphone_gtk_show_assistant(GtkWidget* parent);

View file

@ -441,6 +441,38 @@ GtkWidget *linphone_gtk_create_widget(const char *filename, const char *widget_n
return w;
}
GtkWidget *linphone_gtk_create_widget_2(const char *filename, const char *widget_name) {
char path[2048];
GtkWidget *w = NULL;
GtkBuilder *builder = gtk_builder_new();
GError *error = NULL;
GObject *obj;
if(get_ui_file(filename, path, sizeof(path)) == -1) goto end;
gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE);
if(gtk_builder_add_from_file(builder, path, &error) == 0) {
g_error("Couldn't load builder file: %s", error->message);
g_error_free(error);
goto end;
}
obj = gtk_builder_get_object(builder, widget_name);
if(obj == NULL) {
g_error("'%s' widget not found", widget_name);
goto end;
}
w = GTK_WIDGET(obj);
g_object_set_data_full(obj, "builder", builder, g_object_unref);
gtk_widget_unparent(w);
end:
return w;
}
static void entry_unmapped(GtkWidget *widget){
ms_message("%s is unmapped, calling unrealize to workaround chinese bug.",G_OBJECT_TYPE_NAME(widget));
gtk_widget_unrealize(widget);