ToString() 공개 메소드

public ToString ( ) : string
리턴 string
예제 #1
0
        public override void RunNamedEvent(string name)
        {
            if (this.Disposed == true)
            {
                throw new ObjectDisposedException(this.GetType().Name);
            }

            string ev, group;

            if (name.StartsWith("cvar read") == true)
            {
                ev    = name;
                group = ev.Substring(10);

                if (group == _updateGroup.ToString())
                {
                    UpdateVariables(true, true);
                }
            }
            else if (name.StartsWith("cvar write") == true)
            {
                ev    = name;
                group = ev.Substring(11);

                if (group == _updateGroup.ToString())
                {
                    UpdateVariables(false, true);
                }
            }
        }
예제 #2
0
 public override void RunNamedEvent(string name)
 {
     if (name.StartsWith("cvar read") == true)
     {
         if (name.Substring(10) == _cvarGroup.ToString())
         {
             UpdateConsoleVariables(true, true);
         }
     }
     else if (name.StartsWith("cvar write") == true)
     {
         if (name.Substring(11) == _cvarGroup.ToString())
         {
             UpdateConsoleVariables(false, true);
         }
     }
 }
예제 #3
0
        protected override void PostParse()
        {
            base.PostParse();

            _bindName.SetGuiInfo(this.UserInterface.State, _bindName.ToString());
            _bindName.Update();

            // bindName = state.GetString("bind");

            this.Flags |= WindowFlags.HoldCapture | WindowFlags.CanFocus;
        }
예제 #4
0
        private static void Script_SetFocus(idWindow window, List <idWinGuiScript> source)
        {
            idWinString parameter = source[0].Variable as idWinString;

            if (parameter != null)
            {
                DrawWindow drawWindow = window.UserInterface.Desktop.FindChildByName(parameter.ToString());

                if ((drawWindow != null) && (drawWindow.Window != null))
                {
                    window.SetFocus(drawWindow.Window);
                }
            }
        }
예제 #5
0
        private void InitCvar()
        {
            if (_cvarStr == string.Empty)
            {
                if (this.Buddy == null)
                {
                    idConsole.Warning("idSliderWindow::InitCvar: gui '{0}' in window '{1}' has an empty cvar string", this.UserInterface.SourceFile, this.Name);
                }

                _cvarInit = true;
                _cvar     = null;
            }
            else
            {
                _cvar = idE.CvarSystem.Find(_cvarStr.ToString());

                if (_cvar == null)
                {
                    idConsole.Warning("idSliderWindow::InitCvar: gui '{0}' in window '{1}' references undefined cvar '{2}'", this.UserInterface.SourceFile, this.Name, _cvarStr.ToString());
                    _cvarInit = true;
                }
            }
        }
예제 #6
0
        private void InitVariables()
        {
            if (_cvarStr.ToString() != string.Empty)
            {
                _cvar = idE.CvarSystem.Find(_cvarStr.ToString());

                if (_cvar == null)
                {
                    idConsole.Warning("idChoiceWindow::InitVariables: gui '{0}' in window '{1}' references undefined cvar '{2}'", this.UserInterface.SourceFile, this.Name, _cvarStr);
                    return;
                }

                _updateStr.Add(_cvarStr);
            }

            if (_guiStr.ToString().Length > 0)
            {
                _updateStr.Add(_guiStr);
            }

            _updateStr.SetGuiInfo(this.UserInterface.State);
            _updateStr.Update();
        }
예제 #7
0
        private static void Script_Transition(idWindow window, List <idWinGuiScript> source)
        {
            // transitions always affect rect or vec4 vars
            if (source.Count >= 4)
            {
                idWinRectangle rect = null;
                idWinVector4   vec4 = source[0].Variable as idWinVector4;

                //
                //  added float variable
                idWinFloat val = null;
                //
                if (vec4 == null)
                {
                    rect = source[0].Variable as idWinRectangle;
                    //
                    //  added float variable
                    if (rect == null)
                    {
                        val = source[0].Variable as idWinFloat;
                    }
                    //
                }

                idWinVector4 from    = source[1].Variable as idWinVector4;
                idWinVector4 to      = source[2].Variable as idWinVector4;
                idWinString  timeStr = source[3].Variable as idWinString;
                //
                //  added float variable
                if (((vec4 == null) && (rect == null) && (val == null)) && (from != null) && (to != null) && (timeStr != null))
                {
                    idConsole.Warning("Bad transition in gui {0} in window {1}", window.UserInterface.SourceFile, window.Name);
                }
                else
                {
                    int time;
                    int.TryParse(timeStr.ToString(), out time);

                    float accel = 0.0f;
                    float decel = 0.0f;

                    if (source.Count > 4)
                    {
                        idWinString accelStr = source[4].Variable as idWinString;
                        idWinString decelStr = source[5].Variable as idWinString;

                        float.TryParse(accelStr.ToString(), out accel);
                        float.TryParse(decelStr.ToString(), out decel);
                    }

                    if (vec4 != null)
                    {
                        vec4.Evaluate = false;
                        window.AddTransition(vec4, from, to, time, accel, decel);
                    }
                    else if (val != null)
                    {
                        val.Evaluate = false;
                        window.AddTransition(val, from, to, time, accel, decel);
                    }
                    else
                    {
                        rect.Evaluate = false;
                        window.AddTransition(rect, from, to, time, accel, decel);
                    }

                    window.StartTransition();
                }
            }
        }
예제 #8
0
        public void FixupParameters(idWindow window)
        {
            if (_handler == Script_Set)
            {
                bool precacheBackground = false;
                bool precacheSounds     = false;

                idWinString      str  = (idWinString)_parameters[0].Variable;
                idWindowVariable dest = window.GetVariableByName(str.ToString(), true);

                if (dest != null)
                {
                    _parameters[0].Variable = dest;
                    _parameters[0].Owner    = false;

                    if (dest is idWinBackground)
                    {
                        precacheBackground = true;
                    }
                }
                else if (str.ToString().ToLower() == "cmd")
                {
                    precacheSounds = true;
                }

                int parameterCount = _parameters.Count;

                for (int i = 1; i < parameterCount; i++)
                {
                    str = (idWinString)_parameters[i].Variable;
                    string strValue = str.ToString();

                    if (strValue.StartsWith("gui::", StringComparison.InvariantCultureIgnoreCase) == true)
                    {
                        //  always use a string here, no point using a float if it is one
                        //  FIXME: This creates duplicate variables, while not technically a problem since they
                        //  are all bound to the same guiDict, it does consume extra memory and is generally a bad thing
                        idWinString defVar = new idWinString(null);
                        defVar.Init(strValue, window);

                        window.AddDefinedVariable(defVar);

                        _parameters[i].Variable = defVar;
                        _parameters[i].Owner    = false;

                        //dest = win->GetWinVarByName(*str, true);
                        //if (dest) {
                        //	delete parms[i].var;
                        //	parms[i].var = dest;
                        //	parms[i].own = false;
                        //}
                        //
                    }
                    else if (strValue.StartsWith("$") == true)
                    {
                        //
                        //  dont include the $ when asking for variable
                        dest = window.UserInterface.Desktop.GetVariableByName(strValue.Substring(1), true);
                        //
                        if (dest != null)
                        {
                            _parameters[i].Variable = dest;
                            _parameters[i].Owner    = false;
                        }
                    }
                    else if (strValue.StartsWith("#str_") == true)
                    {
                        str.Set(idE.Language.Get(strValue));
                    }
                    else if (precacheBackground == true)
                    {
                        idE.DeclManager.FindMaterial(strValue).Sort = (float)MaterialSort.Gui;
                    }
                    else if (precacheSounds == true)
                    {
                        idConsole.Warning("TODO: PrecacheSounds");
                        // Search for "play <...>"

                        /*idToken token;
                         * idParser parser( LEXFL_NOSTRINGCONCAT | LEXFL_ALLOWMULTICHARLITERALS | LEXFL_ALLOWBACKSLASHSTRINGCONCAT );
                         * parser.LoadMemory(str->c_str(), str->Length(), "command");
                         *
                         * while ( parser.ReadToken(&token) ) {
                         *      if ( token.Icmp("play") == 0 ) {
                         *              if ( parser.ReadToken(&token) && ( token != "" ) ) {
                         *                      declManager->FindSound( token.c_str() );
                         *              }
                         *      }
                         * }*/
                    }
                }
            }
            else if (_handler == Script_Transition)
            {
                if (_parameters.Count < 4)
                {
                    idConsole.Warning("Window {0} in gui {1} has a bad transition definition", window.Name, window.UserInterface.SourceFile);
                }

                idWinString str = (idWinString)_parameters[0].Variable;

                //
                DrawWindow       destOwner = null;
                idWindowVariable dest      = window.GetVariableByName(str.ToString(), true, ref destOwner);
                //

                if (dest != null)
                {
                    _parameters[0].Variable = dest;
                    _parameters[0].Owner    = false;
                }
                else
                {
                    idConsole.Warning("Window {0} in gui {1}: a transition does not have a valid destination var {2}", window.Name, window.UserInterface.SourceFile, str);
                }

                //
                //  support variables as parameters
                for (int c = 1; c < 3; c++)
                {
                    str = (idWinString)_parameters[c].Variable;
                    idWinVector4 v4 = new idWinVector4(null);

                    _parameters[c].Variable = v4;
                    _parameters[c].Owner    = true;

                    DrawWindow owner = null;

                    if (str.ToString().StartsWith("$") == true)
                    {
                        dest = window.GetVariableByName(str.ToString().Substring(1), true, ref owner);
                    }
                    else
                    {
                        dest = null;
                    }

                    if (dest != null)
                    {
                        idWindow ownerParent;
                        idWindow destParent;

                        if (owner != null)
                        {
                            ownerParent = (owner.Simple != null) ? owner.Simple.Parent : owner.Window.Parent;
                            destParent  = (destOwner.Simple != null) ? destOwner.Simple.Parent : destOwner.Window.Parent;

                            // if its the rectangle they are referencing then adjust it
                            if ((ownerParent != null) && (destParent != null) && (dest == ((owner.Simple != null) ? owner.Simple.GetVariableByName("rect") : owner.Window.GetVariableByName("rect"))))
                            {
                                idRectangle rect = ((idWinRectangle)dest).Data;
                                ownerParent.ClientToScreen(ref rect);
                                destParent.ScreenToClient(ref rect);

                                v4.Set(dest.ToString());
                            }
                            else
                            {
                                v4.Set(dest.ToString());
                            }
                        }
                        else
                        {
                            v4.Set(dest.ToString());
                        }
                    }
                    else
                    {
                        v4.Set(str.ToString());
                    }
                }
            }
            else
            {
                int c = _parameters.Count;

                for (int i = 0; i < c; i++)
                {
                    _parameters[i].Variable.Init(_parameters[i].Variable.ToString(), window);
                }
            }
        }
예제 #9
0
        private void UpdateChoicesAndValues()
        {
            idToken token;
            string  str2 = string.Empty;

            if (_latchedChoices.Equals(_choicesStr.ToString(), StringComparison.OrdinalIgnoreCase) == true)
            {
                _choices.Clear();

                idLexer lexer = new idLexer(LexerOptions.NoFatalErrors | LexerOptions.AllowPathNames | LexerOptions.AllowMultiCharacterLiterals | LexerOptions.AllowBackslashStringConcatination);

                if (lexer.LoadMemory(_choicesStr.ToString(), "<ChoiceList>") == true)
                {
                    while ((token = lexer.ReadToken()) != null)
                    {
                        if (token.ToString() == ";")
                        {
                            if (str2.Length > 0)
                            {
                                str2 = idE.Language.Get(str2.TrimEnd());
                                _choices.Add(str2);
                                str2 = string.Empty;
                            }

                            continue;
                        }

                        str2 += token.ToString();
                        str2 += " ";
                    }

                    if (str2.Length > 0)
                    {
                        _choices.Add(str2.TrimEnd());
                    }
                }

                _latchedChoices = _choicesStr.ToString();
            }

            if ((_choiceValues.ToString() != string.Empty) && (_latchedChoices.Equals(_choiceValues.ToString(), StringComparison.OrdinalIgnoreCase) == false))
            {
                _values.Clear();

                str2 = string.Empty;
                bool    negNum = false;
                idLexer lexer  = new idLexer(LexerOptions.AllowPathNames | LexerOptions.AllowMultiCharacterLiterals | LexerOptions.AllowBackslashStringConcatination);

                if (lexer.LoadMemory(_choiceValues.ToString(), "<ChoiceVals>") == true)
                {
                    while ((token = lexer.ReadToken()) != null)
                    {
                        if (token.ToString() == "-")
                        {
                            negNum = true;
                        }
                        else if (token.ToString() == ";")
                        {
                            if (str2.Length > 0)
                            {
                                _values.Add(str2.TrimEnd());
                                str2 = string.Empty;
                            }
                        }
                        else if (negNum == true)
                        {
                            str2  += "-";
                            negNum = false;
                        }
                        else
                        {
                            str2 += token.ToString();
                            str2 += " ";
                        }
                    }

                    if (str2.Length > 0)
                    {
                        _values.Add(str2.TrimEnd());
                    }
                }

                if (_choices.Count != _values.Count)
                {
                    idConsole.Warning("idChoiceWindow:: gui '{0}' window '{1}' has value count unequal to choices count", this.UserInterface.SourceFile, this.Name);
                }

                _latchedChoices = _choiceValues.ToString();
            }
        }