Пример #1
0
        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();
                });
            };
        }