1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
procedure Set_To_Active(Widget : access Gtk.Widget.Gtk_Widget_Record'class; Surface : Gtk_interface) is
Child_Widget : Gtk_Widget;
begin
if Gtk.Check_Button.Get_Active(Gtk_Check_Button(Widget)) then
if not Theory.Machine_Set(Surface.Machine_Id).Have_Drums then
Child_Widget := Gtk.Box.Get_Child(Surface.Surface_Box, 0);
if Child_Widget /= null then
Remove(Surface.Surface_box, Child_Widget);
end if;
Initialize(Surface.surface, True);
Surface.From.Is_Drums := True;
Theory.Machine_Set(Surface.Machine_Id).Have_Drums := True;
Theory.Machine_Set(Surface.Machine_Id).Drums_Timbre := Surface.Timbre_Num;
Gtk.Box.Pack_Start(Surface.Surface_box, Surface.Surface.Main_Frame, False, False, 0);
Show_All(Surface.Surface_box);
else
Set_Active(Gtk_Check_Button(Widget), False);
end if;
else
Child_Widget := Gtk.Box.Get_Child(Surface.Surface_Box, 0);
if Child_Widget /= null then
Remove(Surface.Surface_box, Child_Widget);
end if;
Initialize(Surface.surface, False);
Surface.From.Is_Drums := False;
Theory.Machine_Set(Surface.Machine_Id).Have_Drums := False;
Theory.Machine_Set(Surface.Machine_Id).Drums_Timbre := 0;
Gtk.Box.Pack_Start(Surface.Surface_box, Surface.Surface.Main_Frame, False, False, 0);
Show_All(Surface.Surface_box);
end if;
end Set_To_Active; |
Partager