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.
55 lines
1.9 KiB
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 |