Combined panel: group box, two edits, dropdown, checkbox with initial_checked, and a button. All interaction in OnCalculate.

#property strict
#property indicator_chart_window
#include <guipro.mqh>

int gui_id;
int grp_handle, edit_a, edit_b, dd_handle, chk_handle, btn_handle;
string dd_items[] = {"Small", "Medium", "Large"};

//
int OnInit()
{
   gui_id = guiInit();
   if(gui_id <= 0)
      return(INIT_FAILED);

   grp_handle = guiAddGroupBox(gui_id, 15, 15, 280, 200, "Settings");
   edit_a     = guiAddEditbox(gui_id, 30, 45, 120, 24, "Lot");
   edit_b     = guiAddEditbox(gui_id, 160, 45, 120, 24, "SL pips");
   dd_handle  = guiAddDropDown(gui_id, 30, 85, 250, 100, dd_items, 1, "Size…");
   chk_handle = guiAddCheckbox(gui_id, 30, 125, 200, 24, "Use trailing stop", clrBlack,
                               GUI_TEXT_NONE, "Segoe UI", 10, clrWhite,
                               GUI_BORDER_FLAT, 2, GUI_AUTO, GUI_AUTO, true);
   btn_handle = guiAddButton(gui_id, 30, 165, 120, 28, "Apply");

   return(INIT_SUCCEEDED);
}  // OnInit

//
void OnDeinit(const int reason)
{
   guiDeinit(gui_id);
}  // OnDeinit

//
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   if(guiIsClicked(gui_id, btn_handle))
   {
      if(guiGetLastError(gui_id) != GUI_ERR_NO_ERROR)
         return(rates_total);

      string lots = guiObjectGetString(gui_id, edit_a, GUI_OBJPROP_TEXT);
      string sl   = guiObjectGetString(gui_id, edit_b, GUI_OBJPROP_TEXT);
      int size_ix = guiObjectGetInteger(gui_id, dd_handle, GUI_OBJPROP_DROPDOWN_SEL);
      int trail   = guiObjectGetInteger(gui_id, chk_handle, GUI_OBJPROP_CHECKED);

      if(guiGetLastError(gui_id) == GUI_ERR_NO_ERROR)
         Print("Apply: lots=", lots, " sl=", sl, " size=", size_ix, " trail=", trail);
   }

   return(rates_total);
}  // OnCalculate