static void HandleEvent(IntPtr eventHandle)
{
IntPtr dialogHandle = dialog_event_get_dialog_instance (eventHandle);
int btnIndex = dialog_event_get_selected_index (eventHandle);
if (!dialogs.ContainsKey (dialogHandle)) {
throw new ArgumentException ("Dialog not found.");
}
var dlg = dialogs [dialogHandle];
dlg.Visible = false;
if (btnIndex < 0 || btnIndex >= dlg.buttons.Count) {
throw new ArgumentException ("Button not found.");
}
var btn = dlg.buttons [btnIndex];
if (btn.OnClick != null) {
btn.OnClick ();
}
}