void AddDialog(int id, bool stackable) { var buttons = new List <IDialogButton>(); buttons.Add(new ConfirmDialogButton("add", "Enqueue")); buttons.Add(new ConfirmDialogButton("stack", "Overlay")); buttons.Add(new ConfirmDialogButton("close", "Close")); var dialog = new ConfirmDialog("Dialog " + id + (stackable ? "(Stackable)": ""), buttons, ConfirmDialogSize.Small); dialog.OnClickAsObservable().Subscribe(b => { switch (b.Id) { case "add": AddDialog(n++, false); break; case "stack": AddDialog(n++, true); break; case "close": dialog.Close(); break; } }).AddTo(this); dialog.Stackable = stackable; _dialogRoot.Enqueue(dialog); }