Merge pull request 'master' (#19) from YanTheKaller/libublsettings-gtk3:master into master

Reviewed-on: #19
master v1.17
Dmitry Razumov 1 year ago
commit 8e0aca4c42

@ -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;
@ -1295,4 +1357,14 @@ void yon_calendar_popover_open(GtkEntry *TargetEntry,GtkWidget *PopupTarget){
g_signal_connect(G_OBJECT(popover),"closed",G_CALLBACK(yon_on_popover_closed),NULL);
}
config_str yon_resource_open_file(const char *path, int *size){
config_str parsed = NULL;
char *modules;
gsize sz;
GFile *file = g_file_new_for_uri(path);
g_file_load_contents(file,NULL,&modules,&sz,NULL,NULL);
parsed = yon_char_parse(modules,size,"\n");
return parsed;
}
#endif

@ -5,6 +5,7 @@
#include <gtk/gtkx.h>
#include <libublsettings.h>
#define _(String) gettext(String)
#ifdef __GTK_H__
#ifdef VTE_INCLUDE
@ -172,6 +173,14 @@ void yon_window_config_custom_window_set(GtkWindow *window, char *window_name);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
/**on_subwindow_close(GtkWidget *self)
* [EN]
* Closes window in which [self] is contained.
* [RU]
* Закрывает окно, в котором расположен виджет [self].
*/
void on_subwindow_close(GtkWidget *self);
int yon_gtk_window_setup(GtkWindow *window, GtkWindow *transistent_window, char *title, char *icon_name, char *window_id);
/**yon_ubl_menu_item_documentation_new(char *buttonname)
@ -481,8 +490,12 @@ gboolean yon_gtk_tree_iter_get_from_combo_box_id(GtkComboBox *combo, GtkTreeMode
gboolean yon_gtk_tree_model_check_exist(GtkTreeModel *model, GtkTreeIter *iter, char *id, int column);
gboolean yon_gtk_list_store_copy_full(GtkListStore *target, GtkListStore *source);
void yon_calendar_set_date_orientation(int orientation);
void yon_calendar_popover_open(GtkEntry *TargetEntry,GtkWidget *PopupTarget);
int yon_calendar_get_last_date();
config_str yon_resource_open_file(const char *path, int *size);
Loading…
Cancel
Save