#ifndef UBL_GET_STANDARD_UI #define UBL_GET_STANDARD_UI #include #include #define STANDARD_PATH "/usr/share/ubl-util-standard/ubl-util-standard.glade" typedef struct { GtkWidget *socket; GtkWidget *uiwindow; } returnstruct; returnstruct *ubl_get_standard_ui(char *icon_path, char *util_name, int show_item, GtkWidget *button, int sec_plug_id){ returnstruct *ret=malloc(sizeof(returnstruct)); GtkBuilder *builder=gtk_builder_new(); GError *err=NULL; gtk_builder_add_from_file(builder, STANDARD_PATH,&err); if(err) printf("%s\n\n\n",err->message); if (!builder){ printf("Error occured: no UI file found.\n"); return NULL; } GtkWidget *ButtonPlace=NULL; if (button){ ButtonPlace=GTK_WIDGET(gtk_builder_get_object(builder,"ButtonPlace")); if (sec_plug_id>0){ ret->socket=gtk_plug_new(sec_plug_id); //gtk_box_pack_start(GTK_BOX(ButtonPlace), ret->socket,1,1,0); gtk_container_add(GTK_CONTAINER(ret->socket),button); gtk_widget_show_all(ret->socket); } else { gtk_box_pack_start(GTK_BOX(ButtonPlace), button,1,1,0); } } GtkWidget *icon=GTK_WIDGET(gtk_builder_get_object(builder,"HeaderImage")); GtkWidget *window=GTK_WIDGET(gtk_builder_get_object(builder,"window")); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit),NULL); GtkWidget *uiplace=GTK_WIDGET(gtk_builder_get_object(builder,"CustomUI")); GtkWidget *name=GTK_WIDGET(gtk_builder_get_object(builder,"HeaderName")); GdkPixbuf *ic=gdk_pixbuf_new_from_file_at_size(icon_path,64,64,NULL); gtk_window_set_icon(GTK_WINDOW(window),ic); gtk_image_set_from_pixbuf(GTK_IMAGE(icon),ic); gtk_label_set_text(GTK_LABEL(name),util_name); gtk_window_set_title(GTK_WINDOW(window),util_name); if (show_item==1) gtk_widget_show_all(window); ret->uiwindow=uiplace; return ret; } #endif