@ -73,18 +73,20 @@ yon_user_window *yon_user_window_new(enum YON_USER_WINDOW_MODE_TYPE mode){
window - > list = gtk_list_store_new ( 3 , G_TYPE_BOOLEAN , G_TYPE_STRING , G_TYPE_INT ) ;
window - > list = gtk_list_store_new ( 3 , G_TYPE_BOOLEAN , G_TYPE_STRING , G_TYPE_INT ) ;
gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( window - > list ) , 2 , GTK_SORT_ASCENDING ) ;
gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( window - > list ) , 2 , GTK_SORT_ASCENDING ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , NULL , NULL , " GroupWindow " ) ;
g_signal_connect ( G_OBJECT ( window - > Window ) , " destroy " , G_CALLBACK ( on_user_window_closed ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > Window ) , " destroy " , G_CALLBACK ( on_user_window_closed ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_users_window_accept ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_users_window_accept ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > StatusCell ) , " toggled " , G_CALLBACK ( on_group_clicked ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > StatusCell ) , " toggled " , G_CALLBACK ( on_group_clicked ) , window ) ;
GtkTreeIter iter ;
GtkTreeIter iter ;
int multiple = 0 ;
switch ( mode ) {
switch ( mode ) {
case YON_USER_WINDOW_USERS_MULTIPLE :
case YON_USER_WINDOW_USERS_MULTIPLE :
gtk_cell_renderer_toggle_set_radio ( GTK_CELL_RENDERER_TOGGLE ( window - > StatusCell ) , 0 ) ;
gtk_cell_renderer_toggle_set_radio ( GTK_CELL_RENDERER_TOGGLE ( window - > StatusCell ) , 0 ) ;
multiple = 1 ;
[ [ fallthrough ] ] ;
[ [ fallthrough ] ] ;
case YON_USER_WINDOW_USERS : {
case YON_USER_WINDOW_USERS : {
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , ! multiple ? _CHOOSE_USER_LABEL : _CHOOSE_USERS_LABEL , yon_dull_icon_path , " GroupWindow " ) ;
gtk_tree_view_column_set_title ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( window - > UsersTree ) , 2 ) , _USER_LABEL ) ;
int size ;
int size ;
config_str system_param = yon_file_open ( " /etc/passwd " , & size ) ;
config_str system_param = yon_file_open ( " /etc/passwd " , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
for ( int i = 0 ; i < size ; i + + ) {
@ -99,8 +101,11 @@ yon_user_window *yon_user_window_new(enum YON_USER_WINDOW_MODE_TYPE mode){
case YON_USER_WINDOW_GROUPS_MULTIPLE :
case YON_USER_WINDOW_GROUPS_MULTIPLE :
gtk_cell_renderer_toggle_set_radio ( GTK_CELL_RENDERER_TOGGLE ( window - > StatusCell ) , 0 ) ;
gtk_cell_renderer_toggle_set_radio ( GTK_CELL_RENDERER_TOGGLE ( window - > StatusCell ) , 0 ) ;
multiple = 1 ;
[ [ fallthrough ] ] ;
[ [ fallthrough ] ] ;
case YON_USER_WINDOW_GROUPS : {
case YON_USER_WINDOW_GROUPS : {
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , ! multiple ? _CHOOSE_GROUP_LABEL : _CHOOSE_GROUPS_LABEL , yon_dull_icon_path , " GroupWindow " ) ;
gtk_tree_view_column_set_title ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( window - > UsersTree ) , 2 ) , _GROUP_LABEL ) ;
int size ;
int size ;
config_str system_param = yon_file_open ( " /etc/group " , & size ) ;
config_str system_param = yon_file_open ( " /etc/group " , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
for ( int i = 0 ; i < size ; i + + ) {