public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener);
            if (_request == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(_request.m_MessageInfor) == false)
            {
                m_AllSystemMessage.Add(_request.m_MessageInfor); //压入消息
                                                                 // Debug.Log("新来的消息长度 " + (_request.m_MessageInfor).Length);
                m_MessageText.text += "\n" + _request.m_MessageInfor;

                if (_request.m_AutoClip)
                {                               //自动裁减  弹出最上层的消息 ***需要优化
                    StartCoroutine(AutoSize()); //*********不能直接在这里使用While循环 否则会在一帧内执行完 弹出所有的输入
                }
                else
                {
                    if (m_AllSystemMessage.Count > _request.m_MaxMsgCout && _request.m_MaxMsgCout > 0)
                    {                                           //对于超过数量的消息自动弹出最上层的消息
                        string _oldStr = m_AllSystemMessage[0]; //取第一个元素
                        _oldStr = _oldStr + "\n";
                        string _newStr     = m_MessageText.text;
                        int    totalLength = _newStr.Length;
                        int    deleteIndex = _oldStr.Length;
                        //   Debug.Log(_oldStr + "弹出的长度是 " + deleteIndex);
                        m_MessageText.text = _newStr.Substring(deleteIndex, totalLength - deleteIndex);
                        m_AllSystemMessage.RemoveAt(0);
                    }
                }
            }
        }
Example #2
0
 public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
 {
     base.Show(_request, _listener);
     if (_request == null)
     {
         Hide(); return;
     }
     if (m_ProgressBar != null)
     {
         m_ProgressBar.fillAmount = _request.m_Progress;
         m_Progress.text          = (int)(_request.m_Progress * 100) + "%";
         if (Mathf.Abs(_request.m_Progress - 1) <= 0.01f)
         {
             if (_listener != null)
             {
                 _listener(response);
             }
             Hide();
         }
     }
     if (m_Title != null)
     {
         m_Title.text = _request.m_Title;
     }
     if (m_MessageTip != null)
     {
         m_MessageTip.text = _request.m_MessageInfor;  //提示信息
     }
 }
Example #3
0
 public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
 {
     base.Show(_request, _listener);
     if (_request == null)
     {
         return;
     }
     if (string.IsNullOrEmpty(_request.m_MessageInfor) == false)
     {
         if (_request.m_Highpriority)
         { //优先显示
             Debug.Log("优先显示");
             List <string> _newList = new List <string>(systemInfor.Count + 1);
             _newList.Add(_request.m_MessageInfor);  //压入数据
             for (int _index = 0; _index < systemInfor.Count; _index++)
             {
                 _newList.Add(systemInfor[_index]);
             }//for
             systemInfor.Clear();
             systemInfor = _newList;
         }//if
         else
         { //顺序显示
             systemInfor.Add(_request.m_MessageInfor);  //压入数据
         }
     }
     transform.position = _request.m_WorldPosition;
 }
Example #4
0
        public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener);
            if (_request == null)
            {
                Hide(); return;
            }
            _request.m_IsModel = true;   //等待框一定是模态的

            //MessageBoxModel.GetInstance().ModelMessageBoxRegest(this, true);

            if (m_Message != null)
            {
                m_Message.text = string.IsNullOrEmpty(_request.m_MessageInfor) ? "" : _request.m_MessageInfor;  //默认显示“”
            }
            EventCenter.GetInstance().AddUpdateEvent(AutoFillSize, EventCenter.UpdateRate.DelayTwooFrame);
            EventCenter.GetInstance().AddUpdateEvent(Waitting, EventCenter.UpdateRate.DelayTwooFrame);  //自旋转

            if (_request.m_DispearTime <= 0)
            {
                Debug.Log("等待时间太短!");
                _request.m_DispearTime = 1f;
            }

            StartCoroutine(AutoWait(_request.m_DispearTime));   //进入等待模式
            transform.SetParent(EventCenter.GetInstance().m_UIRoot);
            transform.localPosition = new Vector3(0, 0, 0.5f);
            transform.localRotation = Quaternion.identity;
        }
 /// <summary>
 /// flag 是否显示倒计时
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="callback"></param>
 /// <param name="callbackCancel"></param>
 /// <param name="flag"></param>
 static public void Show(string msg, MessageBoxCallback callback = null, MessageBoxCallback callbackCancel = null, bool flag = false)
 {
     if (instance != null)
     {
         instance.ShowMessageBox(msg, callback, callbackCancel, flag);
     }
 }
 public MsgBox(MessageBoxResquest req, MessageBoxCallback _call)
 {
     request           = req;
     callBack          = _call;
     BoxID             = BoxIDRecord;
     BaseMessageBoxObj = null;
 }
Example #7
0
    public void ButtonAction(Button button)
    {
        MessageBoxCallbackType callbackType = (MessageBoxCallbackType)Enum.Parse(typeof(MessageBoxCallbackType), button.name);
        MessageBoxCallback     callback     = Array.Find(callbacks, (c) => c.CallbackType == callbackType);

        callback.Action?.Invoke();
        Close();
    }
Example #8
0
 /// <summary>
 /// VR 公告广播
 /// </summary>
 /// <param name="msg">要显示的消息</param>
 /// <param name="handle"></param>
 /// <param name="request"></param>
 public static void VRBrocard(string msg, MessageBoxCallback handle, MessageBoxResquest request)
 {
     if (request == null)
     {
         return;
     }
     request.m_MSGType      = MessageBoxResquest.MessageType.VRBrocard;
     request.m_MessageInfor = msg;
     Show(request, handle);
 }
Example #9
0
 /// <summary>
 /// 系统滚动条广播
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="highpriority">是否是高优先级</param>
 /// <param name="handle"></param>
 /// <param name="request"></param>
 public static void SystemBrocard(string msg, bool highpriority, MessageBoxCallback handle, MessageBoxResquest request)
 {
     if (request == null)
     {
         return;
     }
     request.m_MSGType      = MessageBoxResquest.MessageType.SystemBroadcast;
     request.m_MessageInfor = msg;
     request.m_Highpriority = highpriority;
     Show(request, handle);
 }
Example #10
0
        /// <summary>
        /// 显示一个自动滚动的进度条 它不能定义一个时间间隔自动关闭
        /// </summary>
        /// <param name="title"></param>
        /// <param name="msg"></param>
        /// <param name="handle"></param>
        /// <param name="request"></param>
        public static void Progress(float progress, MessageBoxCallback handle, MessageBoxResquest request)
        {
            if (request == null)
            {
                return;
            }
            request.m_MSGType  = MessageBoxResquest.MessageType.ProgressBar;
            request.m_Progress = progress;

            Show(request, handle);
        }
Example #11
0
        private void OnShowMessage(ShowMessageSignal signal)
        {
            _message.text = signal.Message;
            _callback     = signal.Callback;
            _okButon.gameObject.SetActive(signal.Buttons == MessageBoxButton.None ||
                                          (signal.Buttons & MessageBoxButton.Ok) != 0);
            _cancelButon.gameObject.SetActive((signal.Buttons & MessageBoxButton.Cancel) != 0);
            _yesButon.gameObject.SetActive((signal.Buttons & MessageBoxButton.Yes) != 0);
            _noButon.gameObject.SetActive((signal.Buttons & MessageBoxButton.No) != 0);

            gameObject.SetActive(true);
        }
Example #12
0
 /// <summary>
 /// 显示一个垂直拉伸的提示框 几秒后自动消失
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="dispearTime"></param>
 /// <param name="handle"></param>
 /// <param name="request"></param>
 public static void SystemTip(string msg, float dispearTime, MessageBoxCallback handle, MessageBoxResquest request)
 {
     //if (request == null) return;
     if (request == null)
     {
         request = new MessageBoxResquest();
     }
     request.m_MSGType      = MessageBoxResquest.MessageType.SystemTip;
     request.m_MessageInfor = msg;
     request.m_DispearTime  = dispearTime;
     Show(request, handle);
 }
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			if (type == MessageBoxTypes.Ok)
			{
				EditorUtility.DisplayDialog(title, message, options.OkButtonName);
				if (callback != null) callback(MessageBoxResult.Ok);
			}
			else
			{
				bool value = EditorUtility.DisplayDialog(title, message, options.OkButtonName, options.CancelButtonText);
				if (callback != null) callback(value ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
			}
		}
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxCallback callback)
		{
			if (type == MessageBoxTypes.Ok)
			{
				MessageBox(IntPtr.Zero, message, title, MB_OK);
				if (callback != null) callback(MessageBoxResult.Ok);
			}
			else
			{
				int result = MessageBox(IntPtr.Zero, message, title, MB_OKCANCEL);
				if (callback != null) callback(result != IDCANCEL ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
			}
		}
Example #15
0
        /// <summary>
        /// 显示一个模态系统等待框
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="waitTime">事件必须大于0</param>
        /// <param name="handle"></param>
        /// <param name="request"></param>
        public static void SystemWait(string msg, float waitTime, MessageBoxCallback handle, MessageBoxResquest request)
        {
            if (request == null)
            {
                return;
            }
            request.m_MSGType      = MessageBoxResquest.MessageType.SystemWait;
            request.m_MessageInfor = msg;
            request.m_DispearTime  = waitTime;
            request.m_IsModel      = true;

            Show(request, handle);
        }
Example #16
0
        /// <summary>
        /// 显示一个确认信息框  有两个按钮
        /// </summary>
        /// <param name="title"></param>
        /// <param name="msg"></param>
        /// <param name="handle">回调</param>
        /// <param name="request">其他额外设置</param>
        public static void Confirm(string title, string msg, MessageBoxCallback handle, MessageBoxResquest request)
        {
            if (request == null)
            {
                return;
            }
            request.m_MSGType      = MessageBoxResquest.MessageType.Information;
            request.m_MSGBtn       = MessageBoxResquest.MessageBoxButton.YESNO;
            request.m_Title        = title;
            request.m_MessageInfor = msg;

            MessageBoxModel.GetInstance().ShowMessageBox(request, handle);
        }
Example #17
0
 /// <summary>
 /// 显示一个水平拉伸提示框 无法操作并且会自动消失
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="despearTime">自动消失时间</param>
 /// <param name="parent">父节点</param>
 /// <param name="handle"></param>
 /// <param name="request"></param>
 /// <param name="msgParameter">消息显示区域的参数设置</param>
 public static void Tips(string msg, float dispearTime, Transform parent, MessageBoxCallback handle, MessageBoxResquest request, params object[] msgParameter)
 {
     if (request == null)
     {
         return;
     }
     request.m_MSGType      = MessageBoxResquest.MessageType.TipsBox;
     request.m_MessageInfor = msg;
     request.m_MsgParameter = msgParameter;
     request.m_DispearTime  = dispearTime;
     request.m_Parent       = parent;
     Show(request, handle);
 }
 void ShowMessageBox(string msg, MessageBoxCallback callback, MessageBoxCallback callbackCancel, bool flag)
 {
     ShowMsgflag       = true;
     isShowTimeTxtFlag = flag;
     if (isShowTimeTxtFlag)
     {
         timeCount = 59;
         timeCountxt.gameObject.SetActive(true);
     }
     messg               = msg;
     this.callback       = callback;
     this.callbackCancel = callbackCancel;
     timeCountxt.text    = "";
 }
 /// <summary>
 /// 显示系统公告板消息
 /// </summary>
 /// <param name="request">消息请求</param>
 /// <param name="handle">消息回调</param>
 public void ShowVRBrocardMessage(MessageBoxResquest request, MessageBoxCallback handle)
 {
     //if (m_AllVRBrocard.Count < 1)
     //{
     //    return;
     //}
     //for (int _index = 0; _index < m_AllVRBrocard.Count; _index++)
     //{
     //    if (m_AllVRBrocard[_index] != null)
     //    {
     //        m_AllVRBrocard[_index].Show(request, handle);
     //    }
     //}
 }
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			if (type == MessageBoxTypes.Ok)
			{
				MessageBoxShow(title, message, 0);
				if (callback != null) callback(MessageBoxResult.Ok);
			}
			else
			{
				int result = MessageBoxShow(title, message, 1);
				Debug.Log("VALUE: " + result);
				if (callback != null) callback(result == 1 ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
			}
		}
        public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener, id);
            UITipMessageBox previous = null;

            if (CheckExitAndShowing(this, out previous))
            {  //There is one Tipe Exit
                if (previous != null)
                {
                    if (previous.gameObject.activeSelf)
                    {
                        previous.Hide();
                    }
                    else
                    {
                        allUITipMessageBoxList.Remove(previous);

                        if (MessageBox.MsgBoxPool != null)
                        {
                            MessageBox.MsgBoxPool.Recycle(previous, MessageBoxResquest.MessageType.TipsBox, (tips) => { tips.Reset(); });
                        }
                    }
                }//if
            }

            allUITipMessageBoxList.Add(this);

            if (gameObject.activeSelf == false)
            {
                gameObject.SetActive(true);
            }
            if (_request == null)
            {
                Hide();
                return;
            }
            ;
            m_TopCanvasTrans.SetParent(_request.m_Parent);                //父节点
            m_TopCanvasTrans.localScale       = _request.m_Scale;         //缩放
            m_TopCanvasTrans.localPosition    = _request.m_WorldPosition; //要显示的位置
            m_TopCanvasTrans.localEulerAngles = _request.m_Angle;         //要显示的位置

            if (_request.m_DispearTime >= 0)
            {
                StartCoroutine(AutoHide(_request.m_DispearTime));
            }

            ShowMsg();
        }
		private async void showAsync(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		#endif
		{
			#if WINDOWS_PHONE
			WinRTPlugin.Dispatcher.BeginInvoke(delegate()
			{
				// XNA method
				Microsoft.Xna.Framework.GamerServices.Guide.BeginShowMessageBox(title, message,
				new System.Collections.Generic.List<string> {options.OkButtonName, options.CancelButtonText}, 0, Microsoft.Xna.Framework.GamerServices.MessageBoxIcon.Error,
				asyncResult =>
				{
					int? result = Microsoft.Xna.Framework.GamerServices.Guide.EndShowMessageBox(asyncResult);
					ReignServices.InvokeOnUnityThread(delegate
					{
						if (callback != null) callback(result == 0 ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
					});
				}, null);

				// Silverlight method. (Doesn't support custom named buttons)
				//var result = MessageBox.Show(message, title, type == MessageBoxTypes.Ok ? MessageBoxButton.OK : MessageBoxButton.OKCancel);
				//if (callback != null) callback(result == System.Windows.MessageBoxResult.OK ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
			});
			#else
			await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async delegate()
			{
				var msg = new MessageDialog(message, title);
				if (type == MessageBoxTypes.Ok)
				{
					await msg.ShowAsync();
					ReignServices.InvokeOnUnityThread(delegate
					{
						if (callback != null) callback(MessageBoxResult.Ok);
					});
				}
				else if (type == MessageBoxTypes.OkCancel)
				{
					bool result = false;
					msg.Commands.Add(new UICommand(options.OkButtonName, new UICommandInvokedHandler((cmd) => result = true)));
					msg.Commands.Add(new UICommand(options.CancelButtonText, new UICommandInvokedHandler((cmd) => result = false)));
					await msg.ShowAsync();
					ReignServices.InvokeOnUnityThread(delegate
					{
						if (callback != null) callback(result ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
					});
				}
			});
			#endif
		}
        public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener, id);
            if (_request == null)
            {
                Hide(); return;
            }
            BoxLevel = _request.m_BoxLevel;

            m_Message.alignment = _request.m_MsgTextAnchor;

            SetButtonStateBaseOnType(_request.m_MSGBtn);
            if (_request.m_MSGBtn == MessageBoxResquest.MessageBoxButton.YES)
            {
                _request.m_IsModel = true;   //自动为模态
            }
            ShowMsg();

            #region AutoHide

            if (_request.m_DispearTime != 0)
            {
                duration = _request.m_DispearTime;       //持续时间
                InvokeRepeating("UpdateTickView", 1, 1); //自动更新
                m_UIEffect1Text.text += (int)(_request.m_DispearTime + 0.5f);
                gridLayout.cellSize   = new Vector2(306, 76);
                StartCoroutine(AutoHide(_request.m_DispearTime));
            }
            else
            {
                gridLayout.cellSize = new Vector2(214, 86);
            }
            #endregion

            transform.SetParent(EventCenter.GetInstance().m_UIRoot);
            if (_request.m_WorldPosition != ShowDefaultPosition)
            {
                transform.position = _request.m_WorldPosition;  //自定义位置
            }
            else
            {
                transform.localPosition = ShowDefaultPosition;
            }

            transform.localPosition = _request.m_WorldPosition;
            transform.localRotation = Quaternion.identity;
            EventCenter.GetInstance().AddUpdateEvent(FollowCamera, EventCenter.UpdateRate.NormalFrame);
        }
Example #24
0
        /// <summary>
        /// 显示一个输入框 有两个按钮和一个输入框接口输入
        /// </summary>
        /// <param name="title"></param>
        /// <param name="msg"></param>
        /// <param name="handle"></param>
        /// <param name="request"></param>
        /// <param name="multiline">是否是多行文本框 默认是单行</param>
        /// <param name="defaultStr">输入框默认显示的文本</param>
        public static void GetInput(string title, string msg, MessageBoxCallback handle, MessageBoxResquest request, bool multiline = false, string defaultStr = "")
        {
            if (request == null)
            {
                return;
            }

            request.m_MSGType              = MessageBoxResquest.MessageType.InputBox;
            request.m_MSGBtn               = MessageBoxResquest.MessageBoxButton.YESNO;
            request.m_Title                = title;
            request.m_MessageInfor         = msg;
            request.m_multilineInpt        = multiline;  //是否多行
            request.m_InputFilePlaceholder = defaultStr; //默认显示的输入

            Show(request, handle);
        }
    public static void Show(string message, string buttontext, MessageBoxCallback callback)
    {
        Self.Text.text = message;
        Self.ButtonText.text = buttontext;

        Self.Button.onClick.RemoveAllListeners();
        Self.Button.onClick.AddListener(delegate {
            if (callback != null) {
                if (callback()) { //return true to close MessageBox
                    Self.SetVisible(false);
                }
            }
            else {
                Self.SetVisible(false); //if there is no callback, just close by default
            }
        });

        Self.SetVisible(true);
    }
Example #26
0
 public void Show(string title, string message, MessageBoxTypes type, MessageBoxCallback callback)
 {
     if (type == MessageBoxTypes.Ok)
     {
         MessageBox(IntPtr.Zero, message, title, MB_OK);
         if (callback != null)
         {
             callback(MessageBoxResult.Ok);
         }
     }
     else
     {
         int result = MessageBox(IntPtr.Zero, message, title, MB_OKCANCEL);
         if (callback != null)
         {
             callback(result != IDCANCEL ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
         }
     }
 }
Example #27
0
    //private void Awake()
    //{
    //    OnInit(null);
    //}

    protected override void OnInit(object userdata)
    {
        base.OnInit(userdata);
        lblContent = transform.Find("aniRoot/bg/content").GetComponent <UILabel>();
        btnMask    = transform.Find("mask").gameObject;
        spMask     = btnMask.GetComponent <UISprite>();
        btnYes     = transform.Find("aniRoot/Yes").gameObject;
        btnNo      = transform.Find("aniRoot/NO").gameObject;
        btnCancel  = transform.Find("aniRoot/Cancel").gameObject;
        aniRoot    = transform.Find("aniRoot").gameObject;
        object[] args = (object[])userdata;
        messageBoxType     = (MessageBoxType)args[0];
        content            = args[1].ToString();
        messageBoxCallback = (MessageBoxCallback)args[2];
        UIEventListener.Get(btnMask).onClick   = OnClick_Mask;
        UIEventListener.Get(btnYes).onClick    = OnClick_Yes;
        UIEventListener.Get(btnNo).onClick     = OnClick_No;
        UIEventListener.Get(btnCancel).onClick = OnClick_Cancel;
    }
        /// <summary>
        /// Post Request To Dic And Select The Special One To Show
        /// </summary>
        /// <param name="request"></param>
        /// <param name="callBack"></param>
        public void ShowMessageBox(MessageBoxResquest request, MessageBoxCallback callBack)
        {
            if (request == null)
            {
                return;
            }
            MsgBox _box = new MsgBox(request, callBack);

            if (AllPopMsgBoxCache.ContainsKey(request.m_BoxLevel) == false)
            {
                AllPopMsgBoxCache[request.m_BoxLevel] = new List <MsgBox>();
            }

            //***TopLevel Msg Need TODO
            AllPopMsgBoxCache[request.m_BoxLevel].Add(_box);

            ++TotalBoxWaitingCot;
            ++BoxIDRecord; //Idetify One Box
            GetMessageBoxToShow(_box);
        }
Example #29
0
    public static void Show(string message, string buttontext, MessageBoxCallback callback)
    {
        Self.Text.text       = message;
        Self.ButtonText.text = buttontext;

        Self.Button.onClick.RemoveAllListeners();
        Self.Button.onClick.AddListener(delegate {
            if (callback != null)
            {
                if (callback())   //return true to close MessageBox
                {
                    Self.SetVisible(false);
                }
            }
            else
            {
                Self.SetVisible(false); //if there is no callback, just close by default
            }
        });

        Self.SetVisible(true);
    }
        public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener);
            if (gameObject.activeSelf == false)
            {
                gameObject.SetActive(true);
            }
            if (_request == null)
            {
                Hide();
                return;
            }
            ;
            m_TopCanvasTrans.SetParent(EventCenter.GetInstance().m_UIRoot); //父节点
            m_TopCanvasTrans.localScale       = Vector3.one / 1000;
            m_TopCanvasTrans.localPosition    = _request.m_WorldPosition;   //要显示的位置
            m_TopCanvasTrans.localEulerAngles = _request.m_Angle;           //要显示的位置

            if (_request.m_DispearTime == 0)
            {
                _request.m_DispearTime = 0;  //默认显示
            }
            if (isShowIng == false)
            {
                StartCoroutine(AutoHide(_request.m_DispearTime));
            }
            else
            {//正在显示
                StopCoroutine("AutoHide");
                StartCoroutine(AutoHide(_request.m_DispearTime));
            }
            m_TipMessage.text = _request.m_MessageInfor;


            EventCenter.GetInstance().AddUpdateEvent(AutoFillSize, EventCenter.UpdateRate.DelayOneFrame);
            EventCenter.GetInstance().AddUpdateEvent(FaceToCamera, EventCenter.UpdateRate.DelayOneFrame);
        }
 public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
 {
     Native.Show(title, message, type, options, callback);
 }
 private void showAsync(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
        public MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum? okButtonText, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, bool enableCheckBox, Vector2 buttonSize)            
            : base(new Vector2(0.5f, 0.5f), null, null, true, null)
        {
            InstantClose = true;

            MyMessageBoxConfiguration config = m_typesConfiguration[(int)type];
            m_backgroundColor = config.BackgroundColor;
            m_backgroundTexture = config.Texture;
            m_textColor = config.TextColor;
            m_interferenceVideoColor = config.InterferenceVideoColor;

            m_enableBackgroundFade = true;

            m_buttonType = buttonType;
            m_okButtonText = okButtonText;
            m_yesButtonText = yesButtonText;
            m_noButtonText = noButtonText;
            m_callback = callback;            
            m_drawEvenWithoutFocus = true;
            m_screenCanHide = false;
            m_buttonSize = buttonSize;                    

            //  Recalculate heigh of message box screen, so it will auto-adapt to message size and maybe make split it on more lines
            Vector2 textSize = MyGuiManager.GetNormalizedSize(config.Font, messageText, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE);
            Vector2 captionSize = MyGuiManager.GetNormalizedSize(config.Font, messageCaption, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE);
            m_size = new Vector2(Math.Max(2f * m_buttonSize.X + 0.1f, textSize.X) + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_X, 
                                3 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y + captionSize.Y + textSize.Y + MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE.Y)+ new Vector2();

            //if (type == MyMessageBoxType.MESSAGE) m_size = m_size + new Vector2(0.1f, 0.1f);
            //m_size. =m_size.Value.Y * 1.1f;
            if (enableCheckBox)
            {
                m_size = new Vector2(m_size.Value.X, m_size.Value.Y + 0.05f);
            }

            //  Message box caption
            MyGuiControlLabel captionLabel = new MyGuiControlLabel(this, new Vector2(0, -m_size.Value.Y / 2.0f + captionSize.Y / 2.0f + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y),
                null, messageCaption, m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER,config.Font);
            Controls.Add(captionLabel);

            //  Message box text
            m_messageBoxText = new MyGuiControlLabel(this, new Vector2(0f, captionLabel.GetPosition().Y + textSize.Y / 2.0f + 1.0f * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), null, messageText,
                m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, config.Font);
            Controls.Add(m_messageBoxText);

            float deltaY = 0;

            if (enableCheckBox)
            {
                const float CHECKBOX_DELTA_Y = 0.01f;

                // CheckBox to not show again this message box
                m_showAgainCheckBox = new MyGuiControlCheckbox(this, new Vector2(-0.02f,
                    m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f + 2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y),
                    true, config.ButtonColor);
                Controls.Add(m_showAgainCheckBox);
                Controls.Add(new MyGuiControlLabel(this, new Vector2(0f, m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f +
                    2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y) + 0 * MyGuiConstants.CONTROLS_DELTA, null,
                    MyTextsWrapper.Get(MyTextsWrapperEnum.DecreaseVideoSettingsCheckBox), m_textColor,
                    MyGuiConstants.LABEL_TEXT_SCALE * 0.75f, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER, config.Font));
            }

            //  Buttons
            Vector2 buttonDelta = new Vector2(0.05f, m_size.Value.Y / 2.0f - MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y - m_buttonSize.Y / 2.0f);
            if (m_buttonType == MyMessageBoxButtonsType.OK)
            {

                    //Controls.Add(new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor,
                    //null,null,null,
                    //m_okButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick,
                    //true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true));

                var okButton = new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL,
                    config.ButtonColor,
                    config.ButtonTexture, null, null, m_okButtonText.Value,
                    m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick,
                    true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true);
                Controls.Add(okButton);


            }
            else if ((m_buttonType == MyMessageBoxButtonsType.YES_NO) || (m_buttonType == MyMessageBoxButtonsType.YES_NO_TIMEOUT))
            {

                var okButton = new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL,
                        config.ButtonColor,
                        config.ButtonTexture, null, null, m_yesButtonText.Value,
                        m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick,
                        true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true);
                Controls.Add(okButton);

                var noButton = new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL,
                    config.ButtonColor,
                    config.ButtonTexture, null, null, m_noButtonText.Value,
                    m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick,
                    true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true);
                Controls.Add(noButton);


                //Controls.Add(new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor,
                //    null,null,null,
                //    m_yesButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true));

                //Controls.Add(new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor,
                //    null,null,null,
                //    m_noButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true));
            }
            else if (m_buttonType == MyMessageBoxButtonsType.NONE)
            {
            }
            else
            {
                throw new MyMwcExceptionApplicationShouldNotGetHere();
            }
        }                
Example #34
0
        public void WarnOnClose(MessageBoxCallback onClose)
        {
            if (null != Project && CommandHistory.HasUnsavedChanges)
            {
                DialogService.Warn(Messages.Exit, Messages.UnsavedMessage, MessageBoxButton.YesNoCancel, r =>
                {
                    if (r == MessageBoxResult.Yes)
                    {
                        SaveProject();
                    }

                    if (null != onClose)
                    {
                        onClose(r);
                    }
                });
            }
        }
 //  Constructor for YES/NO message boxes and TIMEOUT
 public MyGuiScreenMessageBox(MyMessageBoxType type, MyTextsWrapperEnum messageText, MyTextsWrapperEnum messageCaption, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, int timeoutInMiliseconds) :
     this(type, MyMessageBoxButtonsType.YES_NO_TIMEOUT, MyTextsWrapper.Get(messageText), MyTextsWrapper.Get(messageCaption), null, yesButtonText, noButtonText, callback, false)
 {
     m_timeoutStartedTimeInMiliseconds = MyMinerGame.TotalTimeInMilliseconds;
     m_timeoutInMiliseconds = timeoutInMiliseconds;
 }
 private MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum? okButtonText, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, bool enableCheckBox)
     : this(type, buttonType, messageText, messageCaption, okButtonText, yesButtonText, noButtonText, callback, enableCheckBox, MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE)
 {
 }
 //  Constructor for YES/NO message boxes - and text and caption defined by StringBuilder instead of enum
 public MyGuiScreenMessageBox(MyMessageBoxType type, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback) :
     this(type, MyMessageBoxButtonsType.YES_NO, messageText, messageCaption, null, yesButtonText, noButtonText, callback, false)
 {
 }
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			this.callback = callback;
			ShowMessageBox(title, message, options.OkButtonName, options.CancelButtonText, type == MessageBoxTypes.Ok ? 0 : 1);
		}
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			Native.Show(title, message, type, options, callback);
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="title">MessageBox Title.</param>
		/// <param name="message">MessageBox Message.</param>
		/// <param name="type">MessageBox Type.</param>
		/// <param name="options">MessageBox Options.</param>
		/// <param name="callback">The callback that fires when done.</param>
		public static void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			if (options == null) options = new MessageBoxOptions();
			plugin.Show(title, message, type, options, callback);
		}
		private void showAsync(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
Example #42
0
 public static MessageBox Show(string text, MessageBoxCallback callback)
 {
     return(Show(text, _caption, MessageBoxButtonsEnum.Ok, MessageBoxIconEnum.Information, MessageBoxDefaultButtonEnum.Button1, callback));
 }
Example #43
0
 public static MessageBox Show(string text, string caption, MessageBoxButtonsEnum buttons, MessageBoxIconEnum icon, MessageBoxCallback callback)
 {
     return(Show(text, caption, buttons, icon, MessageBoxDefaultButtonEnum.Button1, callback));
 }
        private async void showAsync(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
                #endif
        {
                        #if WINDOWS_PHONE
            WinRTPlugin.Dispatcher.BeginInvoke(delegate()
            {
                // XNA method
                Microsoft.Xna.Framework.GamerServices.Guide.BeginShowMessageBox(title, message,
                                                                                new System.Collections.Generic.List <string> {
                    options.OkButtonName, options.CancelButtonText
                }, 0, Microsoft.Xna.Framework.GamerServices.MessageBoxIcon.Error,
                                                                                asyncResult =>
                {
                    int?result = Microsoft.Xna.Framework.GamerServices.Guide.EndShowMessageBox(asyncResult);
                    ReignServices.InvokeOnUnityThread(delegate
                    {
                        if (callback != null)
                        {
                            callback(result == 0 ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
                        }
                    });
                }, null);

                // Silverlight method. (Doesn't support custom named buttons)
                //var result = MessageBox.Show(message, title, type == MessageBoxTypes.Ok ? MessageBoxButton.OK : MessageBoxButton.OKCancel);
                //if (callback != null) callback(result == System.Windows.MessageBoxResult.OK ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
            });
                        #else
            await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async delegate()
            {
                var msg = new MessageDialog(message, title);
                if (type == MessageBoxTypes.Ok)
                {
                    await msg.ShowAsync();
                    ReignServices.InvokeOnUnityThread(delegate
                    {
                        if (callback != null)
                        {
                            callback(MessageBoxResult.Ok);
                        }
                    });
                }
                else if (type == MessageBoxTypes.OkCancel)
                {
                    bool result = false;
                    msg.Commands.Add(new UICommand(options.OkButtonName, new UICommandInvokedHandler((cmd) => result     = true)));
                    msg.Commands.Add(new UICommand(options.CancelButtonText, new UICommandInvokedHandler((cmd) => result = false)));
                    await msg.ShowAsync();
                    ReignServices.InvokeOnUnityThread(delegate
                    {
                        if (callback != null)
                        {
                            callback(result ? MessageBoxResult.Ok : MessageBoxResult.Cancel);
                        }
                    });
                }
            });
                        #endif
        }
 //  Constructor for YES/NO message boxes and checkBox
 public MyGuiScreenMessageBox(MyMessageBoxType type, MyTextsWrapperEnum messageText, MyTextsWrapperEnum messageCaption, MyTextsWrapperEnum checkBoxMessage, MyTextsWrapperEnum? okButtonText, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, out MyGuiControlCheckbox showAgainCheckBox) :
     this(type, MyMessageBoxButtonsType.YES_NO, MyTextsWrapper.Get(messageText), MyTextsWrapper.Get(messageCaption), null, yesButtonText, noButtonText, callback, true)
 {
     showAgainCheckBox = m_showAgainCheckBox;
 }
 //  Constructor for YES/NO message boxes
 public MyGuiScreenMessageBox(MyMessageBoxType type, MyTextsWrapperEnum messageText, MyTextsWrapperEnum messageCaption, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback) :
     this(type, MyMessageBoxButtonsType.YES_NO, MyTextsWrapper.Get(messageText), MyTextsWrapper.Get(messageCaption), null, yesButtonText, noButtonText, callback, false)
 {
 }
		/// <summary>
		/// Use to show an OK or OK/Cancel message box.
		/// </summary>
		/// <param name="title">MessageBox Title.</param>
		/// <param name="message">MessageBox Message.</param>
		/// <param name="type">MessageBox Type.</param>
		/// <param name="callback">The callback that fires when done.</param>
		public static void Show(string title, string message, MessageBoxTypes type, MessageBoxCallback callback)
		{
			plugin.Show(title, message, type, new MessageBoxOptions(), callback);
		}
 //  Constructor for no buttons message boxes
 public MyGuiScreenMessageBox(MyMessageBoxType type, MyTextsWrapperEnum messageText, MyTextsWrapperEnum messageCaption, MessageBoxCallback callback) :
     this(type, MyMessageBoxButtonsType.NONE, MyTextsWrapper.Get(messageText), MyTextsWrapper.Get(messageCaption), null, null, null, callback, false, MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE)
 {
 }
			public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
			{
				if (callback != null) callback(MessageBoxResult.Cancel);
			}
 //  Constructor for OK message boxes
 public MyGuiScreenMessageBox(MyMessageBoxType type, MyTextsWrapperEnum messageText, MyTextsWrapperEnum messageCaption, MyTextsWrapperEnum? okButtonText, MessageBoxCallback callback) :
     this(type, MyMessageBoxButtonsType.OK, MyTextsWrapper.Get(messageText), MyTextsWrapper.Get(messageCaption), okButtonText, null, null, callback, false)
 {
 }
		public void Show(string title, string message, MessageBoxTypes type, MessageBoxOptions options, MessageBoxCallback callback)
		{
			const string okContextID = "okButton", cancelContextID = "cancelButton";
		
			dialog_request_events(0);
			if (dialog_create_alert(ref dialog) != 0) return;
			if (dialog_set_title_text(dialog, title) != 0)
			{
				dispose();
				return;
			}
			
			if (dialog_set_alert_message_text(dialog, message) != 0)
			{
				dispose();
				return;
			}
			
			if (dialog_add_button(dialog, options.OkButtonName, true, okContextID, true) != 0)
			{
				dispose();
				return;
			}
			
			if (type == MessageBoxTypes.OkCancel && dialog_add_button(dialog, options.CancelButtonText, true, cancelContextID, true) != 0)
			{
				dispose();
				return;
			}
			
			if (dialog_show(dialog) != 0)
			{
				dispose();
				return;
			}
			
			// wait for messge box event
			while (true)
			{
				IntPtr _event = IntPtr.Zero;
				Common.bps_get_event(ref _event, -1);// wait here for next event
				if (_event != IntPtr.Zero)
				{
					if (dialog_get_domain() == Common.bps_event_get_domain(_event))
					{
						var context = dialog_event_get_selected_context(_event);
						if (context != IntPtr.Zero)
						{
							if (Marshal.PtrToStringAnsi(context) == okContextID)
							{
								if (callback != null) callback(MessageBoxResult.Ok);
								break;
							}
							
							if (Marshal.PtrToStringAnsi(context) == cancelContextID)
							{
								if (callback != null) callback(MessageBoxResult.Cancel);
								break;
							}
						}
					}
				}
			}
			
			dispose();
		}