Beispiel #1
0
    void M8.IModalPush.Push(M8.GenericParams parms)
    {
        ClearItems();

        mFlagDataIndex = -1;

        mCurIndex = 0;

        mSearchKeywordData  = null;
        mKeywordResultIndex = 0;

        if (parms != null)
        {
            if (parms.ContainsKey(parmSearchKeywordData))
            {
                mSearchKeywordData = parms.GetValue <SearchKeywordData>(parmSearchKeywordData);
            }

            if (parms.ContainsKey(parmSearchKeywordResultIndex))
            {
                mKeywordResultIndex = parms.GetValue <int>(parmSearchKeywordResultIndex);
            }
        }

        //grab which item to use
        FlagData itm = null;

        if (mSearchKeywordData != null)
        {
            titleText.text = string.Format(M8.Localize.Get(titleTextRef), mSearchKeywordData.results[mKeywordResultIndex].text);

            for (int i = 0; i < items.Length; i++)
            {
                var _itm = items[i];
                if (_itm.sourceKeywordData == mSearchKeywordData && _itm.sourceKeywordResultIndex == mKeywordResultIndex)
                {
                    itm            = _itm;
                    mFlagDataIndex = i;
                    break;
                }
            }
        }
        else
        {
        }

        if (itm != null)
        {
            //fill list
            var dats = itm.data;
            for (int i = 0; i < dats.Length; i++)
            {
                AllocateItem(itm, i);
            }

            UpdateSelectFlag();
        }

        scroller.normalizedPosition = new Vector2(0f, 1f);
    }
Beispiel #2
0
    void M8.IModalPush.Push(M8.GenericParams parms)
    {
        ClearItems();

        mProceedCallback = null;

        if (parms != null)
        {
            if (parms.ContainsKey(parmSearchType))
            {
                mSearchType = parms.GetValue <SearchType>(parmSearchType);
            }

            if (parms.ContainsKey(parmSearchKeywordData))
            {
                mSearchKeywordData = parms.GetValue <SearchKeywordData>(parmSearchKeywordData);
            }

            if (parms.ContainsKey(parmProceedCallback))
            {
                mProceedCallback = parms.GetValue <ProceedCallback>(parmProceedCallback);
            }
        }

        if (mSearchKeywordData)
        {
            titleText.text = string.Format(M8.Localize.Get(titleTextRef), mSearchKeywordData.key);

            //populate list
            var results = mSearchKeywordData.results;
            for (int i = 0; i < results.Length; i++)
            {
                var result = results[i];

                if (result.IsSearchMatch(mSearchType))
                {
                    AllocateItem(i, result);
                }
            }

            if (mItemActive.Count > 0)
            {
                mCurIndex = mItemActive[0].index;
                UpdateSelectedItemFlag();

                flagButtonRootGO.SetActive(true);
                proceedSelectible.interactable = true;
            }
            else
            {
                flagButtonRootGO.SetActive(false);
                proceedSelectible.interactable = false;
            }
        }

        //init scroller
        scroller.normalizedPosition = Vector2.zero;
    }
Beispiel #3
0
    IEnumerator DoRegistryInspect()
    {
        //some dialog

        //open search
        mSearchKeyword = null;

        mSearchModalParms[SearchModal.parmTitle]    = M8.Localize.Get(registrySearchTitleRef);
        mSearchModalParms[SearchModal.parmCallback] = (SearchModal.CommitCallback)OnSearchProceed;

        M8.ModalManager.main.Open(searchModal, mSearchModalParms);

        //wait for search
        while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchModal))
        {
            yield return(null);
        }

        if (mSearchKeyword)
        {
            var searchProgressTitle = string.Format(M8.Localize.Get(registrySearchProgressTitleFormatRef), mSearchKeyword.key);

            //do progress
            yield return(StartCoroutine(DoSearchProgress(searchProgressTitle, searchProgressDelay)));

            //check if there is match
            if (mSearchKeyword.CheckResultSearch(SearchType.Registry))
            {
                //open registry log modal
                M8.ModalManager.main.Open(registryModal, null);

                while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(registryModal))
                {
                    yield return(null);
                }

                //some dialog
            }
            else   //show no match message
            {
                MessageModal.Open(searchProgressTitle, M8.Localize.Get(searchNoMatchTextRef));

                while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(MessageModal.modal))
                {
                    yield return(null);
                }
            }

            //return to search
            StartCoroutine(DoRegistryInspect());
        }
    }
Beispiel #4
0
    IEnumerator DoFileInspect()
    {
        //some dialog

        //open search
        mSearchKeyword = null;

        mSearchModalParms[SearchModal.parmTitle]    = M8.Localize.Get(fileInspectSearchTitleRef);
        mSearchModalParms[SearchModal.parmCallback] = (SearchModal.CommitCallback)OnSearchProceed;

        M8.ModalManager.main.Open(searchModal, mSearchModalParms);

        //wait for search
        while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchModal))
        {
            yield return(null);
        }

        if (mSearchKeyword)
        {
            var searchProgressTitle = string.Format(M8.Localize.Get(fileInspectSearchProgressTitleFormatRef), mSearchKeyword.key);

            //do progress
            yield return(StartCoroutine(DoSearchProgress(searchProgressTitle, searchProgressDelay)));

            //check if there is match
            if (mSearchKeyword.CheckResultSearch(SearchType.File))
            {
                //show search result
                mSearchResultIndex = -1;

                mSearchResultParms[SearchResultModal.parmSearchType]        = SearchType.File;
                mSearchResultParms[SearchResultModal.parmSearchKeywordData] = mSearchKeyword;
                mSearchResultParms[SearchResultModal.parmProceedCallback]   = (SearchResultModal.ProceedCallback)OnSearchResultProceed;

                M8.ModalManager.main.Open(searchResultModal, mSearchResultParms);

                //wait for search result
                while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchResultModal))
                {
                    yield return(null);
                }

                if (mSearchResultIndex != -1)
                {
                    //open file inspect modal
                    mFileInspectParms[FileInspectModal.parmSearchKeywordData]        = mSearchKeyword;
                    mFileInspectParms[FileInspectModal.parmSearchKeywordResultIndex] = mSearchResultIndex;

                    M8.ModalManager.main.Open(fileInspectModal, mFileInspectParms);

                    while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(fileInspectModal))
                    {
                        yield return(null);
                    }

                    //some dialog
                }
            }
            else   //show no match message
            {
                MessageModal.Open(searchProgressTitle, M8.Localize.Get(searchNoMatchTextRef));

                while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(MessageModal.modal))
                {
                    yield return(null);
                }
            }

            //return to search
            StartCoroutine(DoFileInspect());
        }
    }
Beispiel #5
0
 void OnSearchProceed(SearchKeywordData keyword)
 {
     mSearchKeyword = keyword;
 }