Exemple #1
0
        public void IsPalindrome_ShouldReturnTrueIfItIs()
        {
            bool expected = true;
            bool actual   = Lingo.CheckIfPalindrome("a78087a");

            Assert.Equal(expected, actual);
        }
Exemple #2
0
    public static int MyCallback(int pLingoEnv, int nReserved, IntPtr pMyData)
    {
        // Lingo callback function to display the current iteration count

        CallbackData cb = new CallbackData();

        Marshal.PtrToStructure(pMyData, cb);

        int nIterations = -1, nErr;

        //回调函数
        nErr = Lingo.LSgetCallbackInfoLng(pLingoEnv,
                                          Lingo.LS_IINFO_ITERATIONS_LNG, ref nIterations);// LS_IINFO_VARIABLES_NONLINEAR_LNG  LS_IINFO_ITERATIONS_LNG
        if (nErr == Lingo.LSERR_NO_ERROR_LNG && nIterations != cb.nIterations)
        {
            cb.nIterations = nIterations;
            if (nIterations % 100 == 0)
            {
                Console.WriteLine("Iteration count = {0}", nIterations);
            }
        }

        Marshal.StructureToPtr(cb, pMyData, true);

        return(0);
    }
Exemple #3
0
 private void translationChanged(Translation tr)
 {
     Lingo.TranslateControl(this, tr.ChoosePlayerName);
     lblPrompt.Text = tr.Mainform_ChooseName_FirstRun;
     btnOK.Text     = tr.Dialogs_btnOK;
     btnCancel.Text = tr.Dialogs_btnCancel;
 }
        public string GetResult()
        {
            for (int i = 999; i > 99; i--)
            {
                for (int j = 999; j > 99 - 1; j--)
                {
                    int product = (i * j);
                    if (Lingo.CheckIfPalindrome(product.ToString()))
                    {
                        palindromes.Add(product);
                    }
                }
            }

            if (palindromes.Count() > 0)
            {
                palindromes.Sort();
                palindromes.Reverse();
                return(palindromes.ElementAt(0).ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
        public static void ExecuteScript(String filename, String settingsFileName)
        {
            unsafe
            {
                var text = new StringBuilder("set echoin 1 \n");

                if (settingsFileName != null)
                {
                    using (StreamReader streamReader = new StreamReader(settingsFileName))
                    {
                        text.Append("\n" + streamReader.ReadToEnd() + "\n");
                    }
                }

                text.Append(" take " + filename + " \n go \n quit \n");

                Console.WriteLine("Running lingo with commands: \n {0}", text);
                nError = Lingo.LSexecuteScriptLng(pLingoEnv, text.ToString());
                //Lingo.LScloseLogFileLng(pLingoEnv);

                //// dSatus != (double)Lingo.LS_STATUS_GLOBAL_LNG
                //if (nError != 0)
                //{
                //    Console.WriteLine("Unable to solve!");
                //    CheckError(nError);
                //}
                //else
                //{
                //    Console.WriteLine("Profit: {0} \n", dObjective);
                //}
            }
        }
Exemple #6
0
 private void TrayMenu_Opening(object sender, CancelEventArgs e)
 {
     Lingo.TranslateControl(TrayMenu, Program.Tr.TrayMenu);
     if (Program.CurFile == null)
     {
         miCurrentFileName.Text    = "   " + Program.Tr.TrayForm.Title_NoFileOpen;
         miOpenInBrowser.Enabled   = false;
         miReload.Enabled          = false;
         miSettings.Enabled        = false;
         miStartStopServer.Enabled = false;
     }
     else
     {
         miCurrentFileName.Text    = "   " + Program.CurFile.FileNameOnly;
         miOpenInBrowser.Enabled   = true;
         miReload.Enabled          = true;
         miSettings.Enabled        = true;
         miStartStopServer.Enabled = true;
     }
     miStartStopServer.Text = Program.Interface.ServerRunning ? Program.Tr.TrayForm.miStartStop_Stop : Program.Tr.TrayForm.miStartStop_Start;
     miOpenRecent.DropDownItems.Clear();
     foreach (var filename in Program.Settings.RecentFiles)
     {
         miOpenRecent.DropDownItems.Add(filename, null, miOpenRecent_Click);
     }
 }
Exemple #7
0
 private static void PostBuildCheck(IPostBuildReporter rep)
 {
     Lingo.PostBuildStep <Translation>(rep, Assembly.GetExecutingAssembly());
     Classify.PostBuildStep <Settings>(rep);
     Classify.PostBuildStep <Style>(rep);
     Classify.PostBuildStep <GameVersionConfig>(rep);
 }
 /// <summary>Constructor.</summary>
 public HighscoresForm()
     : base(Program.Settings.HighscoresFormSettings)
 {
     InitializeComponent();
     Lingo.TranslateControl(this, Program.Tr.Highscores);
     btnOK.Text = Program.Tr.Dialogs_btnOK;
 }
Exemple #9
0
        public void IsPalindrome_ShouldReturnTrueIfItIsNot()
        {
            bool expected = false;
            bool actual   = Lingo.CheckIfPalindrome("78sdfssaa!3s87");

            Assert.Equal(expected, actual);
        }
Exemple #10
0
 internal void Translate()
 {
     Lingo.TranslateControl(this, Program.Tr.TrayForm);
     Lingo.TranslateControl(TrayMenu, Program.Tr.TrayMenu);
     dlgOpenFile.Title  = Program.Tr.TrayForm.dlgOpenFile_Title;
     dlgOpenFile.Filter = Program.Tr.TrayForm.dlgFile_Filter;
     dlgSaveFile.Title  = Program.Tr.TrayForm.dlgSaveFile_Title;
     dlgSaveFile.Filter = Program.Tr.TrayForm.dlgFile_Filter;
 }
Exemple #11
0
        /// <summary>Main constructor.</summary>
        public AboutBox()
        {
            InitializeComponent();
            Lingo.TranslateControl(this, Program.Tr.AboutBox);

            lblProductName.Text = AssemblyProduct;
            lblVersion.Text     = Program.Tr.AboutBox.Version.Fmt(Ut.VersionOfExe());
            lblCopyright.Text   = AssemblyCopyright;
            btnOK.Text          = Program.Tr.Dialogs_btnOK;
        }
        public static void CleanUp()
        {
            //close log file
            Lingo.LScloseLogFileLng(pLingoEnv);

            //delete environment log
            Lingo.LSdeleteEnvLng(pLingoEnv);

            Console.WriteLine("byebye Zhonghua!");
        }
Exemple #13
0
        public BulkSaveSettingsWindow(WotContext context, Style style)
            : this()
        {
            MainWindow.ApplyUiZoom(this);

            Title = App.Translation.BulkSaveSettingsWindow.Title;
            Lingo.TranslateWindow(this, App.Translation.BulkSaveSettingsWindow);

            ContentRendered += InitializeEverything;
            _context         = context;
            _style           = style;
        }
Exemple #14
0
 private void translationChanged(Translation translation)
 {
     Program.Settings.Language = translation.Language;
     Program.Tr = translation;
     Lingo.TranslateControl(this, Program.Tr.Mainform);
     Lingo.TranslateControl(mnuContext, Program.Tr.Context);
     lstLevels.RefreshItems();
     if (ctMainArea.State == MainAreaState.Solved)
     {
         ctMainArea.Refresh();
     }
     Program.Settings.SaveThreaded();
 }
Exemple #15
0
 public Tegneserie(JoyRomeo romeo, Form1 form)
 {
     form1       = form;
     børnemuseum = new Lingo(new Børneleg(form1).passMeTheSugar(320), new Børnetid(new Afmagt(700.0, 440f, form), form1), 350, form1);
     juklas      = romeo.partyTime();
     jongo       = romeo;
     if (form1.junkie.Next(1) == 0)
     {
         new Afmagt(200.0, 5000f, form1).buildUP(300);
     }
     new Børnetid(new Afmagt(100.0, 1600f, form1), form1).bolMe(form1.junkie.Next(200));
     form1.BlackStrangeSpellOut(200);
 }
        public PathTemplateWindow(string value, WotContext context, Style style, SaveType saveType)
            : this()
        {
            MainWindow.ApplyUiZoom(this);

            Title = App.Translation.PathTemplateWindow.Title;
            Lingo.TranslateWindow(this, App.Translation.PathTemplateWindow);

            _context  = context;
            _style    = style;
            _saveType = saveType;

            ctValue.Text = value;
            ctValue.Focus();
            ctValue_TextChanged(null, null);
            var isAtlas = saveType != SaveType.Icons;

            if (isAtlas)
            {
                ctIconsPathMacro.Text = "{AtlasPath}";
                for (int i = 4; i <= 9; ++i)
                {
                    var row = this.ctHelpGrid.RowDefinitions[i];
                    row.Height = new GridLength(0);
                }
            }
            else
            {
                _exampleTank = context.Tanks.FirstOrDefault(x => x.TankId.Contains("Object_260"));
                if (_exampleTank == null)
                {
                    _exampleTank = context.Tanks.FirstOrDefault();
                }
            }

            ctIconsPathHelp.Text = isAtlas
                ? ctIconsPathHelp.Text.Replace("{cur}",
                                               Ut.ExpandIconPath("{AtlasPath}", _context, _style, "", "", fragment: true))
                : ctIconsPathHelp.Text.Replace("{cur}",
                                               Ut.ExpandIconPath("{IconsPath}", _context, _style, "", "", fragment: true));
            ctTimPathHelp.Text = ctTimPathHelp.Text.Replace("{cur}",
                                                            Ut.ExpandIconPath("{TimPath}", _context, _style, "", "", fragment: true));
            ctGamePathHelp.Text = ctGamePathHelp.Text.Replace("{cur}",
                                                              Ut.ExpandIconPath("{GamePath}", _context, _style, "", "", fragment: true));
            ctGameVersionHelp.Text = ctGameVersionHelp.Text.Replace("{cur}",
                                                                    Ut.ExpandIconPath("{GameVersion}", _context, _style, "", "", fragment: true));
            ctStyleNameHelp.Text = ctStyleNameHelp.Text.Replace("{cur}",
                                                                Ut.ExpandIconPath("{StyleName}", _context, _style, "", "", fragment: true));
            ctStyleAuthorHelp.Text = ctStyleAuthorHelp.Text.Replace("{cur}",
                                                                    Ut.ExpandIconPath("{StyleAuthor}", _context, _style, "", "", fragment: true));
        }
Exemple #17
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Ut.RunMain(() =>
            {
                SettingsUtil.LoadSettings(out Settings);
                Tr = Lingo.LoadTranslationOrDefault <Translation>("AccountsWeb", ref Settings.Language);

                Interface = new WebInterface();
                TrayForm  = new TrayForm();

                if (Settings.LastFileName != null)
                {
                    OpenFile(Settings.LastFileName);
                }

#if DEBUG
                var defaultTr = new Translation();
                using (var tempConfigForm = new ConfigForm(new GncFileWrapper()))
                    using (var g = new Lingo.TranslationFileGenerator(PathUtil.AppPathCombine("../../users/rs/GnuCash/AccountsWeb/Translation.g.cs")))
                    {
                        g.TranslateControl(TrayForm, defaultTr.TrayForm);
                        g.TranslateControl(TrayForm.TrayMenu, defaultTr.TrayMenu);
                        g.TranslateControl(tempConfigForm, defaultTr.Config);
                    }
#endif

                Application.Run();

                Settings.Save();
            },
                       excp =>
            {
                var message = "\n" + "An internal error has occurred in RunLogged: ";
                foreach (var ex in excp.SelectChain(ex => ex.InnerException))
                {
                    message += "\n" + ex.GetType() + ": " + ex.Message;
                    message += "\n" + ex.StackTrace;
                }
                DlgMessage.ShowError(message);
            });
        }
Exemple #18
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Mutex m = null;

            try { m = new Mutex(true, "Global\\ExpSokMutex7FDC0158CF9E"); }
            catch { }

            SettingsUtil.LoadSettings(out Settings);

#if DEBUG
            Lingo.AlsoSaveTranslationsTo = PathUtil.AppPathCombine(@"..\..\Src\Translations");
#endif
            Tr = Lingo.LoadTranslationOrDefault <Translation>("ExpSok", ref Settings.Language);

            Application.Run(new Mainform());

            GC.KeepAlive(m);

            Settings.Save();
        }
        private static void InitLingo()
        {
            //create lingo environement
            pLingoEnv = Lingo.LScreateEnvLng();
            if (pLingoEnv == 0)
            {
                Console.WriteLine("Unable to create Lingo environment.\n");
                return;
            }

            //create and open lingo log
            int nError = Lingo.LSopenLogFileLng(pLingoEnv, "Lingo.log");

            CheckError(nError);

            dSatus       = -1.0;
            nPointersNow = -1;

            // Let Lingo know we have a callback function
            var cbd = new CallbackData();
            var cb  = new Lingo.typCallback(LngCallback.MyCallback);

            nError = Lingo.LSsetCallbackSolverLng(pLingoEnv, cb, cbd);
            CheckError(nError);

            //// Pointer to the solution dSatus code
            //nError = Lingo.LSsetPointerLng(pLingoEnv, ref dSatus, ref nPointersNow);
            //CheckError(nError);

            //// Point to dObjective, where Lingo will return the objective value
            //nError = Lingo.LSsetPointerLng(pLingoEnv, ref dObjective, ref nPointersNow);
            //CheckError(nError);


            //add license
            Lingo.LScreateEnvLicenseLng("lndlng12.lic", ref nError);
        }
Exemple #20
0
        public ChoosePlayerNameForm(FormType type, string defaultValue)
            : base(Program.Settings.ChoosePlayerNameFormSettings)
        {
            InitializeComponent();
            Lingo.TranslateControl(this, Program.Tr.ChoosePlayerName);

            txtPlayerName.Text = defaultValue ?? "";
            _type = type;

            switch (type)
            {
            case FormType.Standard:
                imgLanguage.Visible = false;
                cmbLanguage.Visible = false;
                lblPrompt.Text      = Program.Tr.Mainform_ChooseName;
                break;

            case FormType.FirstRun:
                imgLanguage.Visible = true;
                cmbLanguage.Visible = true;
                lblPrompt.Text      = Program.Tr.Mainform_ChooseName_FirstRun;
                break;

            case FormType.SolvedLevel:
                imgLanguage.Visible = false;
                cmbLanguage.Visible = false;
                lblPrompt.Text      = Program.Tr.Mainform_ChooseName_SolvedLevel;
                break;

            default:
                throw new InvalidOperationException("562394");
            }

            btnOK.Text     = Program.Tr.Dialogs_btnOK;
            btnCancel.Text = Program.Tr.Dialogs_btnCancel;
        }
Exemple #21
0
        static int Main(string[] args)
        {
            // Configure Classify. This goes before the post-build check because it depends on it
            Classify.DefaultOptions = new ClassifyOptions()
                                      .AddTypeOptions(typeof(W.Color), new colorTypeOptions())
                                      .AddTypeOptions(typeof(D.Color), new colorTypeOptions())
                                      .AddTypeOptions(typeof(Filename), new filenameTypeOptions())
                                      .AddTypeOptions(typeof(ObservableCollection <LayerBase>), new listLayerBaseOptions())
                                      .AddTypeOptions(typeof(ObservableCollection <EffectBase>), new listEffectBaseOptions());

            if (args.Length == 2 && args[0] == "--post-build-check")
            {
                return(RT.Util.Ut.RunPostBuildChecks(args[1], Assembly.GetExecutingAssembly()));
            }

            System.Windows.Forms.Application.EnableVisualStyles();
            System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);

#if DEBUG
            CompositePath.Tests();
#endif

            Thread.CurrentThread.Name = "Main";
#if !DEBUG
            AppDomain.CurrentDomain.UnhandledException += (_, ea) =>
            {
                bool copy = DlgMessage.ShowError(App.Translation.Error.ExceptionGlobal,
                                                 App.Translation.Error.ErrorToClipboard_Copy, App.Translation.Error.ErrorToClipboard_OK) == 0;
                if (copy)
                {
                    if (Ut.ClipboardSet(Ut.ExceptionToDebugString(ea.ExceptionObject)))
                    {
                        DlgMessage.ShowInfo(App.Translation.Error.ErrorToClipboard_Copied);
                    }
                }
            };
#else
            var dummy  = App.Translation.Error.ExceptionGlobal; // to keep Lingo happy that the string is used
            var dummy2 = new StringBuilder();                   // to keep the "using" clause used
#endif

            // Find all the layer and effect types in the assembly (required before settings are loaded)
            App.LayerTypes  = findTypes <LayerBase>("layer");
            App.EffectTypes = findTypes <EffectBase>("effect");

            // Load all settings
            SettingsUtil.LoadSettings(out App.Settings);
            UpdateSettingsIfNecessary();

            // Guess the language if the OS language has changed (or this is the first run)
            var osLingo = Ut.GetOsLanguage();
            if (App.Settings.OsLingo != osLingo)
            {
                App.Settings.OsLingo = App.Settings.Lingo = osLingo;
            }
            // Load translation
            App.Translation = Lingo.LoadTranslationOrDefault <Translation>("TankIconMaker", ref App.Settings.Lingo);

            // Run the UI
            var app = new App();
            app.InitializeComponent();
            app.Run();

            // Save settings upon exit, even though they should be saved on every change anyway
            App.Settings.SaveQuiet();

            return(0);
        }
Exemple #22
0
 private void translate()
 {
     Lingo.TranslateControl(this, Program.Tr.Config);
 }
Exemple #23
0
 public static extern int LSsetCallbackSolverLng(int pLingoEnv,
    Lingo.typCallback pSolverCallbackFunction,
       [MarshalAs(UnmanagedType.AsAny)] object pMyData);
Exemple #24
0
        /// <summary>
        /// Constructor. Constructs the main form for the application.
        /// </summary>
        public Mainform()
            : base(Program.Settings.MainFormSettings)
        {
            InitializeComponent();
            mnuMain.Renderer    = new NativeToolStripRenderer();
            mnuContext.Renderer = new NativeToolStripRenderer();

#if DEBUG
            // Auto-generate the translation classes for automated form translation
            using (var generator = new Lingo.TranslationFileGenerator(@"..\..\main\ExpSok\Translation.g.cs"))
            {
                using (var form = new AboutBox(false))
                    generator.TranslateControl(form, Program.Tr.AboutBox);

                using (var form = new HighscoresForm(false))
                    generator.TranslateControl(form, Program.Tr.Highscores);

                using (var form = new ChoosePlayerNameForm(false))
                    generator.TranslateControl(form, Program.Tr.ChoosePlayerName);

                generator.TranslateControl(this, Program.Tr.Mainform);
                generator.TranslateControl(mnuContext, Program.Tr.Context);
            }
#else
            Lingo.TranslateControl(this, Program.Tr.Mainform);
            Lingo.TranslateControl(mnuContext, Program.Tr.Context);
#endif

            _translationHelper = new LanguageHelperWinForms <Translation>("Expert Sokoban", "ExpSok", Program.TranslationEnabled,
                                                                          Program.Settings.TranslationFormSettings, Icon, () => Program.Tr.Language);
            _translationHelper.TranslationChanged += translationChanged;
            _translationHelper.MakeLanguageMenu(mnuOptionsChangeLanguage);

            // Restore saved settings
            mnuOptionsPlayingToolbar.Checked   = Program.Settings.DisplayPlayingToolbar;
            mnuOptionsFileToolbars.Checked     = Program.Settings.DisplayFileToolbars;
            mnuOptionsEditLevelToolbar.Checked = Program.Settings.DisplayEditLevelToolbar;
            ctStatusBar.Visible = mnuOptionsStatusBar.Checked = Program.Settings.DisplayStatusBar;
            grpMovePathOptions.SetValue(Program.Settings.MoveDrawMode);
            grpPushPathOptions.SetValue(Program.Settings.PushDrawMode);
            grpEditTool.SetValue(Program.Settings.LastUsedTool);
            mnuOptionsEndPos.Checked        = ctMainArea.ShowEndPos = Program.Settings.ShowEndPos;
            mnuOptionsAreaSokoban.Checked   = ctMainArea.ShowAreaSokoban = Program.Settings.ShowAreaSokoban;
            mnuOptionsAreaPiece.Checked     = ctMainArea.ShowAreaPiece = Program.Settings.ShowAreaPiece;
            mnuOptionsSound.Checked         = ctMainArea.SoundEnabled = Program.Settings.SoundEnabled;
            mnuOptionsAnimation.Checked     = ctMainArea.AnimationEnabled = Program.Settings.AnimationEnabled;
            mnuOptionsLetterControl.Checked = ctMainArea.LetteringEnabled = Program.Settings.LetteringEnabled;

            if (string.IsNullOrWhiteSpace(Program.Settings.PlayerName))
            {
                Program.Settings.PlayerName = ChoosePlayerNameForm.GetPlayerName(ChoosePlayerNameForm.FormType.FirstRun, "", _translationHelper);
            }

            // Restore the last used level file
            try
            {
                lstLevels.LoadLevelPack(Program.Settings.LevelFilename);
            }
            catch
            {
                lstLevels.NewList();
                lstLevels.AddLevelListItem(SokobanLevel.TestLevel);
                lstLevels.Modified = false;
            }

            showLevelList(Program.Settings.DisplayLevelList);
            lstLevels.PlayFirstUnsolved();
            updateControls();

            // ManagedForm sets the form's Font in the Load event. This potentially changes the width of the level list, which in turn causes its Resize event, which in turn updates Program.Settings.LevelListWidth.
            // To work around this, remember the width from the settings file and defer setting the level list's width until the Load event.
            int levelListWidth = Program.Settings.LevelListWidth < 50 ? 50 : Program.Settings.LevelListWidth;
            Load += (s, e) => pnlLevelList.Width = levelListWidth;
        }