You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ubl-settings-info/source/ubl-standard-ui.c

55 lines
1.9 KiB

#ifndef UBL_GET_STANDARD_UI
#define UBL_GET_STANDARD_UI
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#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