|
|
|
@ -338,6 +338,44 @@ void yon_combo_box_set_default(GtkComboBoxText *target, char *command, char*(res
|
|
|
|
g_thread_new("combo_get_default",(GThreadFunc)__yon_combo_set_default,target_struct);
|
|
|
|
g_thread_new("combo_get_default",(GThreadFunc)__yon_combo_set_default,target_struct);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_widget_changed(GObject* target, GdkEvent*, gpointer user_data){
|
|
|
|
|
|
|
|
char *config_parameter = g_object_get_data(target,"config_parameter");
|
|
|
|
|
|
|
|
char *get_command = g_object_get_data(target,"get_command");
|
|
|
|
|
|
|
|
char *object_property = g_object_get_data(target,"object_property");
|
|
|
|
|
|
|
|
GValue value = G_VALUE_INIT;
|
|
|
|
|
|
|
|
g_object_get_property(target,object_property,&value);
|
|
|
|
|
|
|
|
char *value_str = g_strdup_value_contents(&value);
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(value_str)||strcmp(value_str,"[invalid GValue]")){
|
|
|
|
|
|
|
|
yon_config_register(config_parameter,get_command,value_str);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(value_str)) free(value_str);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yon_gtk_widget_register_parameter(GtkWidget *target, char *config_parameter, char *get_command, char *object_property){
|
|
|
|
|
|
|
|
g_return_if_fail(G_IS_OBJECT(target));
|
|
|
|
|
|
|
|
char *signal_name = yon_char_unite("notify::",object_property,NULL);
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"config_parameter",yon_char_new(config_parameter));
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"get_command",yon_char_new(get_command));
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"object_property",yon_char_new(object_property));
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(target),signal_name,G_CALLBACK(on_widget_changed),NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dictionary *__register_widgets = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yon_gtk_widget_register_parameter_manual(GtkWidget *target, char *config_parameter, char *get_command, char *object_property){
|
|
|
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(__register_widgets,NULL,target);
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"config_parameter",yon_char_new(config_parameter));
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"get_command",yon_char_new(get_command));
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"object_property",yon_char_new(object_property));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yon_gtk_widget_register_parameter_activate(){
|
|
|
|
|
|
|
|
dictionary *cur;
|
|
|
|
|
|
|
|
for_dictionaries(cur,__register_widgets){
|
|
|
|
|
|
|
|
on_widget_changed(yon_dictionary_get_data(cur,GObject*),NULL,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// dictionary *__yon_config_listeners = NULL;
|
|
|
|
// dictionary *__yon_config_listeners = NULL;
|
|
|
|
// typedef struct {
|
|
|
|
// typedef struct {
|
|
|
|
// GtkWidget *target;
|
|
|
|
// GtkWidget *target;
|
|
|
|
|