with JEWL.Simple_Windows;
use  JEWL.Simple_Windows;
procedure Currency_Converter is
  My_Frame : Frame_Type := Frame (400, 150, "Currency Converter", 'Q');
  Value    : Editbox_Type :=
                 Editbox (My_Frame, (10,10), 110, 20, "0");
  Do_It    : Button_Type :=
                 Button (My_Frame, (40,40), 80, 25, "Convert", 'X');
  Set_Rate : Button_Type :=
                 Button (My_Frame, (140,40), 80, 25, "Set Rate", 'R');
  Result   : Label_Type :=
                 Label (My_Frame, (10,75), 0, 20, "", Centre);
  Convert  : Dialog_Type :=
                 Dialog (200, 100, "Conversion Rate", 'Q');
  C_Label  : Label_Type :=
                 Label (Convert, (10,10), 40, 25, "Rate:", Right);
  C_Edit   : Editbox_Type :=
                 EditBox (Convert, (60,10), 100, 25, "1.00");
  C_OK     : Button_Type :=
                 Button (Convert, (10,45) , 80, 25, "OK", 'Y');
  C_Cancel : Button_Type :=
                 Button (Convert, (100,45) , 80, 25, "Cancel", 'Q');
  Rate : Float := 1.00;
  Val  : Float := 0.00;
 
begin
  loop
    case Next_Command is
      when 'Q' =>
        exit;
      when 'R' =>
        if Execute(Convert) = 'Y' then
          Rate := Float'Value(Get_Text(C_Edit));
        end if;
      when 'X' =>
        Val := Float(Integer'Value(Get_Text(Value)));
        Set_Text (Result, Integer'Image(Integer(Val*Rate)));
      when others =>
        null;
    end case;
  end loop;
end Currency_Converter;