|
|
|
|
@ -493,6 +493,11 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// gtk misc section
|
|
|
|
|
|
|
|
|
|
void on_subwindow_close(GtkWidget *self){
|
|
|
|
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_gtk_window_setup(GtkWindow *window, GtkWindow *transistent_window, char *title, char *icon_name, char *window_id){
|
|
|
|
|
if (GTK_IS_WINDOW(window)){
|
|
|
|
|
int success=0;
|
|
|
|
|
@ -598,6 +603,39 @@ void yon_gtk_tree_view_minimal_fixed_size_set_full(GtkTreeView *tree){
|
|
|
|
|
GThread *thread = g_thread_new("column",(GThreadFunc)_yon_gtk_tree_view_minimal_fixed_size_set_full,tree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_gtk_tree_view_set_(GtkTreeView *top,GtkTreeView *resizing, ...){
|
|
|
|
|
va_list arglist;
|
|
|
|
|
va_start(arglist,resizing);
|
|
|
|
|
int column=-2, connect_to=-2;
|
|
|
|
|
|
|
|
|
|
int top_columns=gtk_tree_view_get_n_columns(top);
|
|
|
|
|
int resizing_columns=gtk_tree_view_get_n_columns(resizing);
|
|
|
|
|
|
|
|
|
|
dictionary *dict=NULL;
|
|
|
|
|
while((column=va_arg(arglist,int))!=-1){
|
|
|
|
|
connect_to = va_arg(arglist,int);
|
|
|
|
|
if (top_columns>column&&resizing_columns>connect_to){
|
|
|
|
|
char *name="1";
|
|
|
|
|
name[0]=connect_to+1;
|
|
|
|
|
dictionary *cur = NULL;
|
|
|
|
|
if (!(cur =yon_dictionary_get(&dict,name))){
|
|
|
|
|
int *width = malloc(sizeof(int));
|
|
|
|
|
(*width)=gtk_tree_view_column_get_width(gtk_tree_view_get_column(top,column));
|
|
|
|
|
yon_dictionary_append_with_data(dict,name,width);
|
|
|
|
|
} else {
|
|
|
|
|
*(int*)cur->data+=gtk_tree_view_column_get_width(gtk_tree_view_get_column(top,column));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dictionary *cur;
|
|
|
|
|
for_dictionaries(cur,dict){
|
|
|
|
|
int cur_column = cur->key[0]-1;
|
|
|
|
|
gtk_tree_view_column_set_fixed_width(gtk_tree_view_get_column(resizing,cur_column),*(int*)dict->data);
|
|
|
|
|
free(dict->data);
|
|
|
|
|
}
|
|
|
|
|
va_end(arglist);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...){
|
|
|
|
|
va_list args;
|
|
|
|
|
va_start(args,padding);
|
|
|
|
|
@ -1230,6 +1268,30 @@ gboolean yon_gtk_tree_model_check_exist(GtkTreeModel *model, GtkTreeIter *iter,
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean yon_gtk_list_store_copy_full(GtkListStore *target, GtkListStore *source){
|
|
|
|
|
gtk_list_store_clear(target);
|
|
|
|
|
GtkTreeIter iter, itar;
|
|
|
|
|
g_return_val_if_fail(GTK_IS_LIST_STORE(target),0);
|
|
|
|
|
g_return_val_if_fail(GTK_IS_LIST_STORE(source),0);
|
|
|
|
|
int columns = gtk_tree_model_get_n_columns(GTK_TREE_MODEL(source));
|
|
|
|
|
int target_columns = gtk_tree_model_get_n_columns(GTK_TREE_MODEL(target));
|
|
|
|
|
if (columns!=target_columns){
|
|
|
|
|
g_warning("Target and source models have different number of columns",NULL);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
for_iter(source,&iter){
|
|
|
|
|
gtk_list_store_append(target,&itar);
|
|
|
|
|
for(int i=0;i<columns;i++){
|
|
|
|
|
GValue value = G_VALUE_INIT;
|
|
|
|
|
gtk_tree_model_get_value(GTK_TREE_MODEL(source), &iter, i, &value);
|
|
|
|
|
gtk_list_store_set_value(target, &itar, i, &value);
|
|
|
|
|
|
|
|
|
|
g_value_unset(&value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_calendar_set_orientation = 0;
|
|
|
|
|
|
|
|
|
|
int yon_calendar_last_date = 0;
|
|
|
|
|
|