|
|
|
|
@ -18,12 +18,7 @@ static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer
|
|
|
|
|
|
|
|
|
|
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument){
|
|
|
|
|
GtkWidget *terminal = vte_terminal_new();
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = NULL;
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,"/usr/bin/bash");
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,"-c");
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,yon_char_unite("\"",command,"\"",NULL));
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,NULL);
|
|
|
|
|
config_str parsed = g_strsplit(command, " ", -1);
|
|
|
|
|
vte_terminal_spawn_async(VTE_TERMINAL(terminal),VTE_PTY_NO_HELPER,NULL,parsed,NULL,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,2000,NULL,NULL,NULL);
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
|
|
|
|
|
if(endwork_function)
|
|
|
|
|
@ -35,11 +30,8 @@ void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, voi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_terminal_integrated_start(GtkWidget *terminal, char* command){
|
|
|
|
|
int size;
|
|
|
|
|
gchar *envv[] = { NULL };
|
|
|
|
|
config_str parsed = yon_char_parse(command,&size," ");
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,"\0");
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,NULL);
|
|
|
|
|
config_str parsed = g_strsplit(command, " ", -1);
|
|
|
|
|
vte_terminal_spawn_async(VTE_TERMINAL(terminal),VTE_PTY_NO_HELPER,"/bin",parsed,envv,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,20,NULL,NULL,NULL);
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
|
|
|
|
|
vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), -1);
|
|
|
|
|
@ -1094,4 +1086,82 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
|
|
|
|
|
// char *current_text = gtk_entry_get_text(entry);
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// GtkTreeStore section
|
|
|
|
|
|
|
|
|
|
dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column){
|
|
|
|
|
g_return_val_if_fail(GTK_IS_TREE_STORE(tree),NULL);
|
|
|
|
|
dictionary *children = NULL;
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
if(gtk_tree_model_iter_has_child){
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(tree),&iter,parent);
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(tree),&iter);
|
|
|
|
|
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(tree),&iter)){
|
|
|
|
|
void *result = NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(tree),&iter,column,&result,-1);
|
|
|
|
|
dictionary *child_children = yon_gtk_tree_store_get_children(tree,&iter,column);
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(children,result,child_children);
|
|
|
|
|
}
|
|
|
|
|
return children;
|
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_gtk_tree_store_fill_children(GtkTreeStore *tree, GtkTreeIter *parent, dictionary *data, int column){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
dictionary *dict=NULL;
|
|
|
|
|
for_dictionaries(dict,data){
|
|
|
|
|
gtk_tree_store_append(tree,&iter,parent);
|
|
|
|
|
gtk_tree_store_set(tree,&iter,column,data->key,-1);
|
|
|
|
|
if (data->data){
|
|
|
|
|
yon_gtk_tree_store_fill_children(tree,&iter,data->data,column);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
|
|
|
|
|
|
void yon_gtk_tree_store_copy_recursive(GtkTreeModel *sourceModel, GtkTreeIter *sourceIter, GtkTreeStore *destination, GtkTreeIter *parentIter) {
|
|
|
|
|
GtkTreeIter destIter;
|
|
|
|
|
|
|
|
|
|
gtk_tree_store_append(destination, &destIter, parentIter);
|
|
|
|
|
|
|
|
|
|
gint nColumns = gtk_tree_model_get_n_columns(sourceModel);
|
|
|
|
|
for (gint col = 0; col < nColumns; col++) {
|
|
|
|
|
GValue value = G_VALUE_INIT;
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_get_value(sourceModel, sourceIter, col, &value);
|
|
|
|
|
|
|
|
|
|
gtk_tree_store_set_value(destination, &destIter, col, &value);
|
|
|
|
|
|
|
|
|
|
g_value_unset(&value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gtk_tree_model_iter_has_child(sourceModel, sourceIter)) {
|
|
|
|
|
GtkTreeIter childIter;
|
|
|
|
|
gboolean validChild = gtk_tree_model_iter_children(sourceModel, &childIter, sourceIter);
|
|
|
|
|
while (validChild) {
|
|
|
|
|
yon_gtk_tree_store_copy_recursive(sourceModel, &childIter, destination, &destIter);
|
|
|
|
|
validChild = gtk_tree_model_iter_next(sourceModel, &childIter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_gtk_tree_store_copy_full(GtkTreeStore *source, GtkTreeStore *destination) {
|
|
|
|
|
GtkTreeModel *sourceModel = GTK_TREE_MODEL(source);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gboolean valid;
|
|
|
|
|
|
|
|
|
|
valid = gtk_tree_model_get_iter_first(sourceModel, &iter);
|
|
|
|
|
|
|
|
|
|
while (valid) {
|
|
|
|
|
yon_gtk_tree_store_copy_recursive(sourceModel, &iter, destination, NULL);
|
|
|
|
|
|
|
|
|
|
valid = gtk_tree_model_iter_next(sourceModel, &iter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|