|
|
|
|
@ -69,7 +69,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
|
|
|
|
|
VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL);
|
|
|
|
|
vte_terminal_set_pty(VTE_TERMINAL(terminal),pty);
|
|
|
|
|
char *install_command=yon_char_unite("clear;tput cup 0 0 && tput ed && ",command," ; sleep 5; stty -echo; unset PS1","\n",NULL);
|
|
|
|
|
char *install_command=yon_char_unite("clear;tput cup 0 0 && tput ed && ",command," ; stty -echo; unset PS1","\n",NULL);
|
|
|
|
|
if(endwork_function)
|
|
|
|
|
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(endwork_function), endwork_function_argument);
|
|
|
|
|
vte_terminal_spawn_async(VTE_TERMINAL(terminal),
|
|
|
|
|
@ -100,6 +100,31 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE);
|
|
|
|
|
gtk_widget_show_all(terminal);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_gtk_set_scroll(GtkWidget* self,GdkEventScroll *event, GtkAdjustment *adjustment){
|
|
|
|
|
if (self){};
|
|
|
|
|
gdouble val = gtk_adjustment_get_value(adjustment);
|
|
|
|
|
gdouble lower = gtk_adjustment_get_lower(adjustment);
|
|
|
|
|
gdouble upper = gtk_adjustment_get_upper(adjustment);
|
|
|
|
|
switch (event->direction){
|
|
|
|
|
case GDK_SCROLL_DOWN:
|
|
|
|
|
val+=2;
|
|
|
|
|
if (val>upper) val=upper;
|
|
|
|
|
break;
|
|
|
|
|
case GDK_SCROLL_UP:
|
|
|
|
|
val-=2;
|
|
|
|
|
if (val<lower) val=lower;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
}
|
|
|
|
|
gtk_adjustment_set_value(adjustment,val);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_gtk_widget_set_scroll_window_for_scroll(GtkWidget *target, GtkScrollbar *scroll){
|
|
|
|
|
GtkAdjustment *adjustment = gtk_range_get_adjustment(GTK_RANGE(scroll));
|
|
|
|
|
g_signal_connect(G_OBJECT(target),"scroll-event",G_CALLBACK(yon_gtk_set_scroll),adjustment);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Window config section
|
|
|
|
|
|
|
|
|
|
#define check_window_config_setup if(__yon_window_config_target_window)
|
|
|
|
|
@ -257,7 +282,9 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
g_value_set_string(val,g_key_file_get_string(__yon_window_config_file,"window",param->parameter_name, NULL));
|
|
|
|
|
break;
|
|
|
|
|
case YON_TYPE_INT:
|
|
|
|
|
g_value_set_int(val,g_key_file_get_integer(__yon_window_config_file,"window",param->parameter_name, NULL));
|
|
|
|
|
int output = g_key_file_get_integer(__yon_window_config_file,"window",param->parameter_name, NULL);
|
|
|
|
|
if (!output) output=-1;
|
|
|
|
|
g_value_set_int(val,output);
|
|
|
|
|
break;
|
|
|
|
|
case YON_TYPE_BOOLEAN:
|
|
|
|
|
gboolean res = g_key_file_get_boolean(__yon_window_config_file,"window",param->parameter_name, NULL);
|
|
|
|
|
@ -332,6 +359,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(__yon_main_window_config.deleted_parameters,param->parameter_name,param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type){
|
|
|
|
|
GError *err=NULL;
|
|
|
|
|
switch (type){
|
|
|
|
|
@ -926,7 +954,7 @@ typedef int (*RmbCheck)(void*);
|
|
|
|
|
|
|
|
|
|
gboolean on_rmb_menu_open(GtkWidget *self,GdkEventButton *event, rmb_menu_window *window){
|
|
|
|
|
int (*func)(void*) = (RmbCheck)(window->show_function);
|
|
|
|
|
if (func(window->show_data)){
|
|
|
|
|
if (!func||func(window->show_data)){
|
|
|
|
|
if (self){};
|
|
|
|
|
if (event->button==3){
|
|
|
|
|
|
|
|
|
|
@ -969,6 +997,8 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
|
|
|
|
|
|
|
|
|
|
if (function){
|
|
|
|
|
g_signal_connect(G_OBJECT(menu_item),"activate",function,data);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_set_sensitive(menu_item,0);
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
@ -979,6 +1009,7 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
|
|
|
|
|
GCallback current_function;
|
|
|
|
|
gpointer *current_data;
|
|
|
|
|
while ((current_label=va_arg(list,const char*))){
|
|
|
|
|
if (current_label){
|
|
|
|
|
current_icon=va_arg(list,const char*);
|
|
|
|
|
current_function=va_arg(list,GCallback);
|
|
|
|
|
current_data=va_arg(list,gpointer);
|
|
|
|
|
@ -998,12 +1029,54 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
|
|
|
|
|
|
|
|
|
|
if (current_function){
|
|
|
|
|
g_signal_connect(G_OBJECT(menu_item),"activate",current_function,current_data);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_set_sensitive(menu_item,0);
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
gtk_widget_show(menu_item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
g_signal_connect(G_OBJECT(target_widget),"button-press-event",G_CALLBACK(on_rmb_menu_open),window);
|
|
|
|
|
return window;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GtkEntry section
|
|
|
|
|
// struct entry_pattern_data {
|
|
|
|
|
// GtkEntry *entry;
|
|
|
|
|
// char *pattern; // %d %s
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
// char *yon_gtk_entry_pattern_format(GtkWidget *target, struct entry_pattern_data *data){
|
|
|
|
|
// if (target){
|
|
|
|
|
// const char *entry_data = gtk_entry_get_text(target);
|
|
|
|
|
// int next_track=0;
|
|
|
|
|
// for (int i=0; i<strlen(data->pattern);i++){
|
|
|
|
|
// char target_letter=-1;
|
|
|
|
|
// target_letter = ;
|
|
|
|
|
// switch (data->pattern[i]){
|
|
|
|
|
// case '%':next_track=1;
|
|
|
|
|
// break;
|
|
|
|
|
// case 'd':if (next_track){
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// case 's':
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// void yon_gtk_entry_set_pattern(GtkEntry *entry, char *pattern){
|
|
|
|
|
// struct entry_pattern_data *data = malloc(sizeof(struct entry_pattern_data));
|
|
|
|
|
// data->entry=entry;
|
|
|
|
|
// data->pattern=pattern;
|
|
|
|
|
// char *current_text = gtk_entry_get_text(entry);
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
#endif
|