|
|
|
|
@ -4,6 +4,7 @@
|
|
|
|
|
|
|
|
|
|
static render_data render;
|
|
|
|
|
|
|
|
|
|
// vte section
|
|
|
|
|
#ifdef VTE_INCLUDE
|
|
|
|
|
|
|
|
|
|
static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer user_data)
|
|
|
|
|
@ -101,7 +102,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
gtk_widget_show_all(terminal);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
// Window config functions
|
|
|
|
|
// Window config section
|
|
|
|
|
|
|
|
|
|
#define check_window_config_setup if(__yon_window_config_target_window)
|
|
|
|
|
|
|
|
|
|
@ -433,6 +434,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosY"),"window",&Y,YON_TYPE_INT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// gtk misc section
|
|
|
|
|
GtkWidget *yon_ubl_menu_item_about_new(char *buttonname){
|
|
|
|
|
GtkWidget *menu_item = gtk_menu_item_new();
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(menu_item),"menuitembottom");
|
|
|
|
|
@ -461,9 +463,6 @@ GtkWidget *yon_ubl_menu_item_documentation_new(char *buttonname){
|
|
|
|
|
return menu_item;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// other Gtk functions
|
|
|
|
|
|
|
|
|
|
int yon_gtk_combo_box_fill(GtkWidget *combo, config_str parameters,int size){
|
|
|
|
|
if (combo&¶meters){
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
@ -581,6 +580,7 @@ void yon_gtk_toggle_button_set_inactive_from_toggle_button(GtkToggleButton *self
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// status section
|
|
|
|
|
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path)
|
|
|
|
|
{
|
|
|
|
|
gtk_overlay_add_overlay(GTK_OVERLAY(Overlay), Head);
|
|
|
|
|
@ -829,6 +829,7 @@ void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int ti
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// socket section
|
|
|
|
|
void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id){
|
|
|
|
|
if (main_window&&socket_main_id>-1){
|
|
|
|
|
gtk_widget_hide(gtk_widget_get_toplevel(main_window));
|
|
|
|
|
@ -858,7 +859,7 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
|
|
|
|
|
}
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(left_window),"inherited");
|
|
|
|
|
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(left_window)),left_window);
|
|
|
|
|
gtk_box_pack_end(GTK_BOX(box),left_window,0,0,5);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(box),left_window,0,0,5);
|
|
|
|
|
}
|
|
|
|
|
if (socket_right_id>-1&&right_window){
|
|
|
|
|
plug_right=gtk_plug_new(socket_right_id);
|
|
|
|
|
@ -881,7 +882,7 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
|
|
|
|
|
}
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(right_window),"inherited");
|
|
|
|
|
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(right_window)),right_window);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(box),right_window,0,0,5);
|
|
|
|
|
gtk_box_pack_end(GTK_BOX(box),right_window,0,0,5);
|
|
|
|
|
}
|
|
|
|
|
g_object_ref(main_window);
|
|
|
|
|
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(main_window)),main_window);
|
|
|
|
|
@ -890,6 +891,7 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// webkit section
|
|
|
|
|
#ifdef WEBKIT_INCLUDE
|
|
|
|
|
|
|
|
|
|
void yon_ubl_browser_window_open(char *link, char *browser_window_name){
|
|
|
|
|
@ -918,4 +920,82 @@ void yon_ubl_browser_window_open(char *link, char *browser_window_name){
|
|
|
|
|
yon_launch(command);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// rmb menu section
|
|
|
|
|
gboolean on_rmb_menu_open(GtkWidget *self,GdkEventButton *event, rmb_menu_window *window){
|
|
|
|
|
if (self){};
|
|
|
|
|
if (event->button==3){
|
|
|
|
|
|
|
|
|
|
gtk_widget_show_all(window->menu);
|
|
|
|
|
gtk_menu_popup_at_pointer(GTK_MENU(window->menu),NULL);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rmb_menu_window *yon_rmb_menu_new(){
|
|
|
|
|
rmb_menu_window *window = malloc(sizeof(rmb_menu_window));
|
|
|
|
|
window->menu=gtk_menu_new();
|
|
|
|
|
gtk_menu_set_reserve_toggle_size(GTK_MENU(window->menu),0);
|
|
|
|
|
window->buttons=NULL;
|
|
|
|
|
|
|
|
|
|
return window;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, const char *button_label, const char *icon_name, GCallback function, gpointer data,...){
|
|
|
|
|
if (target_widget){
|
|
|
|
|
rmb_menu_window *window = yon_rmb_menu_new();
|
|
|
|
|
{
|
|
|
|
|
GtkWidget *menu_item = gtk_menu_item_new();
|
|
|
|
|
GtkWidget *content_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
|
|
|
|
|
gtk_container_add(GTK_CONTAINER(menu_item),content_box);
|
|
|
|
|
|
|
|
|
|
GtkWidget *image=NULL;
|
|
|
|
|
if (!yon_char_is_empty(icon_name)){
|
|
|
|
|
image=gtk_image_new_from_icon_name(icon_name,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(content_box),image,0,0,0);
|
|
|
|
|
gtk_widget_show(image);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GtkWidget *label = gtk_label_new(button_label);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(content_box),label,0,0,0);
|
|
|
|
|
|
|
|
|
|
if (function){
|
|
|
|
|
g_signal_connect(G_OBJECT(menu_item),"activate",function,data);
|
|
|
|
|
}
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(window->buttons,(char*)button_label,menu_item);
|
|
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(window->menu),menu_item);
|
|
|
|
|
}
|
|
|
|
|
va_list list;
|
|
|
|
|
va_start(list,data);
|
|
|
|
|
const char *current_label, *current_icon;
|
|
|
|
|
GCallback current_function;
|
|
|
|
|
gpointer *current_data;
|
|
|
|
|
while ((current_label=va_arg(list,const char*))){
|
|
|
|
|
current_icon=va_arg(list,const char*);
|
|
|
|
|
current_function=va_arg(list,GCallback);
|
|
|
|
|
current_data=va_arg(list,gpointer);
|
|
|
|
|
GtkWidget *menu_item = gtk_menu_item_new();
|
|
|
|
|
GtkWidget *content_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
|
|
|
|
|
gtk_container_add(GTK_CONTAINER(menu_item),content_box);
|
|
|
|
|
|
|
|
|
|
GtkWidget *image=NULL;
|
|
|
|
|
if (!yon_char_is_empty(current_icon)){
|
|
|
|
|
image=gtk_image_new_from_icon_name(current_icon,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(content_box),image,0,0,0);
|
|
|
|
|
gtk_widget_show(image);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GtkWidget *label = gtk_label_new(current_label);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(content_box),label,0,0,0);
|
|
|
|
|
|
|
|
|
|
if (current_function){
|
|
|
|
|
g_signal_connect(G_OBJECT(menu_item),"activate",current_function,current_data);
|
|
|
|
|
}
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(window->buttons,(char*)current_label,menu_item);
|
|
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(window->menu),menu_item);
|
|
|
|
|
}
|
|
|
|
|
g_signal_connect(G_OBJECT(target_widget),"button-press-event",G_CALLBACK(on_rmb_menu_open),window);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|