User admin button autosetting logics

pull/368/head
parent 6a948da680
commit 4fdad089d2

@ -108,14 +108,42 @@ gboolean on_user_autoloin_switch(GtkWidget *, int status, main_window *){
} }
void on_user_add(GtkWidget *,main_window *widgets){ void on_user_add(GtkWidget *,main_window *widgets){
int admin=1;
{
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter;
for(iter=list;iter;iter=iter->next){
yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck))){
admin=0;
}
}
}
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets); g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),admin);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
user->changed=1; user->changed=1;
} }
void on_user_remove_clicked(GtkWidget *,yon_user_struct *user){ void on_user_remove_clicked(GtkWidget *,yon_user_struct *user){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(user->AdminCheck))){
main_window *widgets = g_object_get_data(G_OBJECT(user->MainBox),"widgets");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter;
for(iter=list;iter;iter=iter->next){
if (iter->data == user->MainBox){
if (iter->next){
yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->next->data),"yon_user_struct");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),1);
} else if (iter->prev){
yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->prev->data),"yon_user_struct");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),1);
}
}
}
}
gtk_widget_destroy(user->MainBox); gtk_widget_destroy(user->MainBox);
free(user); free(user);
} }

Loading…
Cancel
Save