void InitHandlers() { txtCode.Buffer.Changed += delegate { _ContractController.UpdateContractInfo(); UpdateUI(); }; eventboxPasterData.ButtonPressEvent += delegate { try { var clipboard = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", true)); txtCode.Buffer.Text = clipboard.WaitForText(); } catch { } }; spinbuttonAmount.ValueChanged += (sender, e) => { UpdateUI(); }; comboboxAsset.Changed += (sender, e) => { UpdateUI(); }; eventboxActivate.ButtonReleaseEvent += async delegate { HideButtons(); labelStatus.Text = ""; byte[] secureToken = null; TreeIter iter; if (comboboxAsset.GetActiveIter(out iter)) { secureToken = (byte[])_SecureTokenComboboxStore.GetValue(iter, 0); if ((string)_SecureTokenComboboxStore.GetValue(iter, 1) == NONE) { secureToken = null; } } var result = await _ContractController.ActivateContract(CostTotal, System.Text.Encoding.ASCII.GetBytes(Code), secureToken); Gtk.Application.Invoke(delegate { switch (result.Result) { case ContractActivationResult.ResultEnum.Error: labelStatus.Text = "Error transmiting tx: " + result.TxResult; labelStatus.ModifyFg(StateType.Normal, Constants.Colors.Error.Gdk); break; case ContractActivationResult.ResultEnum.NotEnoughZen: labelStatus.Text = "Not enougn Zen"; labelStatus.ModifyFg(StateType.Normal, Constants.Colors.Error.Gdk); break; case ContractActivationResult.ResultEnum.Success: labelStatus.Text = "Contract activated"; labelStatus.ModifyFg(StateType.Normal, Constants.Colors.TextBlue.Gdk); break; } _ContractController.UpdateContractInfo(); UpdateUI(); }); }; }