@ -35,12 +35,7 @@ void on_advanced_part_remove_device(GtkWidget *self, main_window *widgets){
}
}
void on_advanced_part_remove_virtual ( GtkWidget * , main_window * widgets ) {
void on_advanced_part_remove_virtual ( GtkWidget * , main_window * widgets ) {
// advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets");
// g_signal_handlers_block_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdvancedVirtualDeviceCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdvancedVirtualDeviceCombo ) , 0 ) ;
// gtk_widget_destroy(part->MainBox);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
// free(part);
}
}
void on_format_changed ( GtkWidget * self , advanced_part_widgets * part ) {
void on_format_changed ( GtkWidget * self , advanced_part_widgets * part ) {
@ -183,6 +178,7 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
free ( data - > device ) ;
free ( data - > device ) ;
data - > device = yon_char_new ( device ) ;
data - > device = yon_char_new ( device ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_update_part_sections ( widgets ) ;
} else {
} else {
if ( yon_advanced_part_check_count ( widgets ) ) {
if ( yon_advanced_part_check_count ( widgets ) ) {
advanced_part_data * data = yon_advanced_part_data_new ( ) ;
advanced_part_data * data = yon_advanced_part_data_new ( ) ;
@ -192,6 +188,7 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_virtual ) , widgets ) ;
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_virtual ) , widgets ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_update_part_sections ( widgets ) ;
} else {
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdvancedVirtualDeviceCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdvancedVirtualDeviceCombo ) , 0 ) ;
@ -211,6 +208,27 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
// yon_advanced_update(widgets);
// yon_advanced_update(widgets);
}
}
void yon_update_part_sections ( main_window * widgets ) {
GList * list = gtk_container_get_children ( GTK_CONTAINER ( widgets - > AdvancedPartitionAddBox ) ) ;
int parts_size = g_list_length ( list ) ;
if ( list ) {
advanced_part_widgets * part = g_object_get_data ( G_OBJECT ( list - > data ) , " advanced_part_widgets " ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 1 ) ;
if ( parts_size = = 2 ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 0 ) ;
} else {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 1 ) ;
}
if ( list - > next ) {
advanced_part_widgets * part = g_object_get_data ( G_OBJECT ( list - > next - > data ) , " advanced_part_widgets " ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 0 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 1 ) ;
}
g_list_free ( list ) ;
}
}
int yon_advanced_part_get_size ( advanced_part_widgets * part , main_window * widgets ) {
int yon_advanced_part_get_size ( advanced_part_widgets * part , main_window * widgets ) {
GList * list = NULL ;
GList * list = NULL ;
if ( widgets ) {
if ( widgets ) {
@ -298,20 +316,6 @@ void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_pa
gtk_label_set_text ( GTK_LABEL ( part - > SectionLabel ) , source_string ) ;
gtk_label_set_text ( GTK_LABEL ( part - > SectionLabel ) , source_string ) ;
//toggle buttons
//toggle buttons
int pos = yon_advanced_part_get_pos ( part , NULL ) ;
int size = yon_advanced_part_get_size ( part , NULL ) ;
if ( size = = 1 ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 1 ) ;
} else if ( pos = = 0 ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 0 ) ;
} else if ( pos = = 1 ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 0 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > SystemSectionToggle ) , 0 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( part - > UserDataSectionToggle ) , 1 ) ;
}
// format
// format
int format = 0 ;
int format = 0 ;
@ -351,6 +355,7 @@ void yon_advanced_part_create_for_device(GtkTreeIter *iter, main_window *widgets
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_device ) , widgets ) ;
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_device ) , widgets ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_update_part_sections ( widgets ) ;
}
}
}
}
@ -364,6 +369,7 @@ void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets){
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_part ) , widgets ) ;
g_signal_connect ( G_OBJECT ( part - > RemoveButton ) , " clicked " , G_CALLBACK ( on_advanced_part_remove_part ) , widgets ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > AdvancedPartitionAddBox ) , part - > MainBox , 0 , 0 , 0 ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_advanced_part_update_from_data ( part , data ) ;
yon_update_part_sections ( widgets ) ;
}
}
}
}
@ -392,8 +398,6 @@ void yon_advanced_part_add_parts_for_device(const char *device_name, main_window
6 , free_space , 8 , 1 ,
6 , free_space , 8 , 1 ,
9 , yon_char_return_if_exist ( parsed [ 7 ] , " " ) , 10 , yon_char_return_if_exist ( parsed [ 0 ] , " " ) ,
9 , yon_char_return_if_exist ( parsed [ 7 ] , " " ) , 10 , yon_char_return_if_exist ( parsed [ 0 ] , " " ) ,
11 , yon_char_return_if_exist ( parsed [ 10 ] , " " ) , - 1 ) ;
11 , yon_char_return_if_exist ( parsed [ 10 ] , " " ) , - 1 ) ;
// } else {
// gtk_list_store_set(widgets->PartitionsList,&iter, );
}
}
}
}