-- Auto generated by RAPID
-- By: Martin C. Carlisle and W. Blair Watkinson II
with Mcc.Gui.Menu;
with Mcc.Gui.Widget.Button.Picture;
with Mcc.Gui.Image;
with Mcc.Gui.Widget.Button.Text;
with Mcc.Gui.Widget.Text_Entry;
with Mcc.Gui.Widget.Button.Radio;
with Mcc.Gui.Widget.Label;
with Mcc.Gui.Colors;
with Mcc.Gui.Container.Window;

package main_window is
   main_Menu : aliased Mcc.Gui.Menu.Window_Menu;
   File_SubMenu : aliased Mcc.Gui.Menu.SubMenu;
   Open_Choice : aliased Mcc.Gui.Menu.Choice;
   Save_Choice : aliased Mcc.Gui.Menu.Choice;
   Quit_Choice : aliased Mcc.Gui.Menu.Choice;
   person : aliased Mcc.Gui.Widget.Label.Label;
   tom : aliased Mcc.Gui.Widget.Button.Radio.Radio_Button;
   fred : aliased Mcc.Gui.Widget.Button.Radio.Radio_Button;
   mary : aliased Mcc.Gui.Widget.Button.Radio.Radio_Button;
   my_entry : aliased Mcc.Gui.Widget.Text_Entry.Text_Entry;
   label2 : aliased Mcc.Gui.Widget.Label.Label;
   other : aliased Mcc.Gui.Widget.Button.Text.Text_Button;
   rapid : aliased Mcc.Gui.Widget.Button.Picture.Picture_Button;
   rapid_gif_Image : aliased Mcc.Gui.Image.External_Image;
   group : aliased Mcc.Gui.Widget.Button.Radio.Radio_Group;

   -- use type group_Enum as alternative to directly
   -- accessing buttons in group: group
   type group_Enum is (
      tom_Enum,
      fred_Enum,
      mary_Enum);
   procedure Set_Group(Which : in group_Enum);
   function Read_Group return group_Enum;

   main_window : aliased Mcc.Gui.Container.Window.Main_Window;

   Already_Open : exception;
   -- already open is raised if generate_window is called
   -- when the window main_window is already open
   -- create the window
   procedure Generate_Window;

   -- fill in values as specified in RAPID
   procedure Fill_Window;

   -- do both Generate_Window and Fill_Window
   procedure Generate_and_Fill_Window;

   -- read out values as specified in RAPID
   -- if a constraint_error occurs (bad range)
   -- success will be false, and the offending
   -- entry will be highlighted if Highlight_Error is true
   -- additionally, a beep will occur if Beep_On_Error is true
   procedure Read_Window(
         Success         :    out Boolean;
         Highlight_Error : in     Boolean := True;
         Beep_On_Error   : in     Boolean := True);

   -- close the window
   procedure Close_Window;


end main_window;
