Ejemplo n.º 1
0
        private void ConfigWindow(int id)
        {
            if (cfgWinData == false)
            {
                cfgWinData = true;

                setGuiVars(ref TotalTime.config);
            }

            //SetConfigVisible (true);
            GUI.enabled = true;

            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            GUILayout.EndHorizontal();

            //GUILayout.BeginArea (new Rect (10, 50, 375, 500));

            GUILayout.BeginHorizontal();
            GUILayout.Label("Save total time for individual saves:");
            GUILayout.FlexibleSpace();
            boollogGameTime = GUILayout.Toggle(boollogGameTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Save total time for this KSP install:");
            GUILayout.FlexibleSpace();
            boollogInstallTime = GUILayout.Toggle(boollogInstallTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Save total time for all KSP games in external file:");
            GUILayout.FlexibleSpace();
            boollogGlobalTime = GUILayout.Toggle(boollogGlobalTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Directory for global count file:");
            GUILayout.FlexibleSpace();
            strtotalTimeDataPath = GUILayout.TextField(strtotalTimeDataPath, GUILayout.MinWidth(30F), GUILayout.MaxWidth(300F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Update interval:");
            GUILayout.FlexibleSpace();
            strinterval = GUILayout.TextField(strinterval, GUILayout.MinWidth(30F), GUILayout.MaxWidth(30F));
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("Include time while paused:");
            GUILayout.FlexibleSpace();
            boolincludePauseTime = GUILayout.Toggle(boolincludePauseTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Enable Escape key in the Editors and SpaceCenter scenes:");
            GUILayout.FlexibleSpace();
            boolenableEscapePause = GUILayout.Toggle(boolenableEscapePause, "");
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("Display on screen:");
            GUILayout.FlexibleSpace();
            booldisplayOnScreen = GUILayout.Toggle(booldisplayOnScreen, "");
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("Display in window:");
            GUILayout.FlexibleSpace();
            booldisplayInWindow = GUILayout.Toggle(booldisplayInWindow, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Display game time:");
            GUILayout.FlexibleSpace();
            booldisplayGameTime = GUILayout.Toggle(booldisplayGameTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Display install time:");
            GUILayout.FlexibleSpace();
            booldisplayInstallTime = GUILayout.Toggle(booldisplayInstallTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Display total time:");
            GUILayout.FlexibleSpace();
            booldisplayGlobalTime = GUILayout.Toggle(booldisplayGlobalTime, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Display session time:");
            GUILayout.FlexibleSpace();
            booldisplaySessionTime = GUILayout.Toggle(booldisplaySessionTime, "");
            GUILayout.EndHorizontal();



            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Defaults", GUILayout.Width(125.0f)))
            {
                Configuration c = new Configuration();
                //TotalTime.config.setDefaults ();
                //cfgWinData = false;
                setGuiVars(ref c);
                return;
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Save", GUILayout.Width(125.0f)))
            {
                //writeConfig (newconfig);
                //	bool hasWriteAccess = true;
#if false
                string   tmpFileName  = strtotalTimeDataPath + "/tmp.tmp";
                FileInfo testfileInfo = new FileInfo(tmpFileName);

                Log.Info("testing write access to: " + tmpFileName);

                try {
                    Log.Info("testfileInfo.Directory.Create");
                    testfileInfo.Directory.Create();
                } catch (Exception SystemSecurityException) {
                    //hasWriteAccess = false;
                    Log.Info("SystemSecurityException");
                    Log.Info(SystemSecurityException.ToString());
                    TotalTime.config.totalTimeDataPath = "";
                    boollogGlobalTime = false;
                }

                if (File.Exists(tmpFileName))
                {
                    testfileInfo.Delete();
                    TotalTime.config.totalTimeDataPath = strtotalTimeDataPath;
                }
                else
                {
                    TotalTime.config.totalTimeDataPath = "";
                    boollogGlobalTime = false;
                }
#else
                TotalTime.config.totalTimeDataPath = strtotalTimeDataPath;
#endif
                if (TotalTime.config.totalTimeDataPath == "")
                {
                    booldisplayGlobalTime = false;
                }
                TotalTime.config.logGameTime = boollogGameTime;
                if (TotalTime.config.logInstallTime == false && boollogInstallTime)
                {
                    FileOperations.getData(Configuration.dataLevel.install);
                }
                TotalTime.config.logInstallTime = boollogInstallTime;
                if (TotalTime.config.logGlobalTime == false && boollogGameTime)
                {
                    FileOperations.getData(Configuration.dataLevel.global);
                }
                TotalTime.config.logGlobalTime = boollogGlobalTime;

                TotalTime.config.displayGameTime    = booldisplayGameTime;
                TotalTime.config.displayInstallTime = booldisplayInstallTime;
                TotalTime.config.displayGlobalTime  = booldisplayGlobalTime;
                TotalTime.config.displayOnScreen    = booldisplayOnScreen;

                TotalTime.config.displayInWindow = booldisplayInWindow;

                TotalTime.config.displaySessionTime = booldisplaySessionTime;
                TotalTime.config.includePauseTime   = boolincludePauseTime;
                TotalTime.config.enableEscapePause  = boolenableEscapePause;

                try
                {
                    TotalTime.config.interval = Convert.ToUInt16(strinterval);
                }
                catch (Exception)
                {
                }
                GUIToggleConfig();
                TotalTime.config.SaveConfiguration();
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Cancel", GUILayout.Width(125.0f)))
            {
                GUIToggleConfig();
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("");
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Set global file counter file in home directory", GUILayout.Width(300.0f)))
            {
                strtotalTimeDataPath = FileOperations.GetHomeDir();
                strtotalTimeDataPath = strtotalTimeDataPath.Replace("\\", "/");

                int i = TotalTime.secTotal;
                FileOperations.getData(Configuration.dataLevel.global);
                TotalTime.secTotal += i;
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Reset Save counter", GUILayout.Width(150.0f)))
            {
                TotalTime.secInGame = 0;
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Reset Install counter", GUILayout.Width(150.0f)))
            {
                TotalTime.secInInstall = 0;
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Reset Global counter", GUILayout.Width(150.0f)))
            {
                TotalTime.secTotal = 0;
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUI.DragWindow();
        }