Example #1
0
        private void OnPasteFromClipboard(object sender, RoutedEventArgs e)
        {
            var image = ClipboardUtils.ImageFromClipboardDib().AsWriteable();

            image.LuminanceBlend();
            MyImage.Source = image;

            if (MyCanvas.Width < image.Width)
            {
                MyCanvas.Width  = image.Width;
                MyCanvas.Height = MyCanvas.Width * 1.6;
            }
            if (MyCanvas.Height < image.Height)
            {
                MyCanvas.Height = image.Width;
                MyCanvas.Width  = Math.Round(MyCanvas.Height / 1.6);
            }

            var w = MyCanvas.Width;
            var h = MyCanvas.Height;
            var x = Math.Round((w - image.Width) / 2);
            var y = Math.Round((h - image.Height) / 2);

            Canvas.SetLeft(MyImage, x);
            Canvas.SetTop(MyImage, y);
            var wport = MyScrollViewer.ViewportWidth;
            var hport = MyScrollViewer.ViewportHeight;
            var xport = Math.Round((w - wport) / 2);
            var yport = Math.Round((h - hport) / 2);

            MyScrollViewer.ScrollToHorizontalOffset(xport);
            MyScrollViewer.ScrollToVerticalOffset(yport);
        }
Example #2
0
        public void GetSetClipboard()
        {
            var wsManager = new WritingSystemManager();
            CoreWritingSystemDefinition enWs;

            wsManager.GetOrSet("en", out enWs);
            int wsEng = enWs.Handle;

            CoreWritingSystemDefinition swgWs;

            wsManager.GetOrSet("swg", out swgWs);
            int wsSwg = swgWs.Handle;

            var incStrBldr = TsStringUtils.MakeIncStrBldr();

            incStrBldr.AppendTsString(TsStringUtils.MakeString("Gogomer ", wsSwg));
            incStrBldr.AppendTsString(TsStringUtils.MakeString("cucumber", wsEng));
            EditingHelper.SetTsStringOnClipboard(incStrBldr.GetString(), false, wsManager);

            var tss = m_basicView.EditingHelper.GetTsStringFromClipboard(wsManager);

            Assert.IsNotNull(tss, "Couldn't get TsString from clipboard");
            Assert.AreEqual(2, tss.RunCount);
            Assert.AreEqual("Gogomer ", tss.get_RunText(0));
            Assert.AreEqual("cucumber", tss.get_RunText(1));

            var newDataObj = ClipboardUtils.GetDataObject();

            Assert.IsNotNull(newDataObj, "Couldn't get DataObject from clipboard");
            Assert.AreEqual("Gogomer cucumber", newDataObj.GetData("Text"));
        }
Example #3
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Test setup
 /// </summary>
 /// ------------------------------------------------------------------------------------
 public override void TestSetup()
 {
     base.TestSetup();
     SetClipboardAdapter();
     ClipboardUtils.SetDataObject(new DataObject());
     ClipboardUtils.SetText("I want a monkey");
 }
Example #4
0
        public void PasteUnicode()
        {
            ClipboardUtils.SetText("\u091C\u092E\u094D\u200D\u092E\u0947\u0906",
                                   TextDataFormat.UnicodeText);

            using (var editingHelper = new DummyEditingHelper())
            {
                ITsString str = editingHelper.CallGetTextFromClipboard();

                Assert.AreEqual("\u091C\u092E\u094D\u200D\u092E\u0947\u0906", str.Text);
            }
        }
Example #5
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public bool OnCopyLocationAsHyperlink(object unused)
 {
     CheckDisposed();
     if (m_currentContext != null)
     {
         FdoCache cache = (FdoCache)m_mediator.PropertyTable.GetValue("cache");
         var      args  = new FwAppArgs(FwUtils.ksFlexAbbrev, cache.ProjectId.Handle,
                                        cache.ProjectId.ServerName, m_currentContext.ToolName, m_currentContext.TargetGuid);
         ClipboardUtils.SetDataObject(args.ToString(), true);
     }
     return(true);
 }
Example #6
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public bool OnCopyLocationAsHyperlink(object unused)
 {
     CheckDisposed();
     if (m_currentContext != null)
     {
         LcmCache cache = m_propertyTable.GetValue <LcmCache>("cache");
         var      args  = new FwAppArgs(cache.ProjectId.Handle,
                                        m_currentContext.ToolName, m_currentContext.TargetGuid);
         ClipboardUtils.SetDataObject(args.ToString(), true);
     }
     return(true);
 }
Example #7
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            if (!CanExecute(dnHexBox))
            {
                return;
            }

            var data = GetBlobData(ClipboardUtils.GetData());

            if (data != null)
            {
                dnHexBox.Paste(data);
            }
        }
Example #8
0
        public void SetTsStringOnClipboard_UsesNFC()
        {
            var wsManager = new WritingSystemManager();
            CoreWritingSystemDefinition enWs;

            wsManager.GetOrSet("en", out enWs);
            int wsEng         = enWs.Handle;
            var originalInput = "\x7a7a\x60f3\x79d1\x5b78\x0020\xd558";
            var input         = originalInput.Normalize(NormalizationForm.FormD);

            Assert.That(originalInput, Is.Not.EqualTo(input));             // make sure input is NOT NFC
            var tss = TsStringUtils.MakeString(input, wsEng);

            EditingHelper.SetTsStringOnClipboard(tss, false, wsManager);
            var newDataObj = ClipboardUtils.GetDataObject();

            Assert.IsNotNull(newDataObj, "Couldn't get DataObject from clipboard");
            Assert.AreEqual(originalInput, newDataObj.GetData("Text"));
        }
Example #9
0
    /// <summary>
    /// Splits the copied string on the clipboard into an array and sets them individually during the animations
    /// </summary>
    private void PastePhraseClicked()
    {
        string clipboard = ClipboardUtils.GetClipboardString();

        wordStrings = WalletUtils.GetMnemonicWords(clipboard);

        if (!string.IsNullOrEmpty(clipboard.Trim()))
        {
            int numOfWords = wordStrings.Length;
            wordCountSection.GetComponent <SingleChoiceButtonsBase>().ButtonClicked(numOfWords <= 12 ? 0 : numOfWords <= 15 ? 1 : numOfWords <= 18 ? 2 : numOfWords <= 21 ? 3 : 4);

            AnimateIcon(pasteButtonCheckMarkIcon);
            StartWordAnimation();
        }

        else
        {
            if (!animatingIcon)
            {
                AnimateIcon(pasteButtonErrorIcon);
            }
        }
    }
 private void CopyMnemonic()
 {
     ClipboardUtils.CopyToClipboard(dynamicDataCache.GetData("mnemonic"));
 }
Example #11
0
        /// <summary>
        /// Import from a LIFT file.
        /// </summary>
        /// <param name="progressDlg">The progress dialog.</param>
        /// <param name="parameters">The parameters: 1) filename</param>
        /// <returns></returns>
        private object ImportLIFT(IThreadedProgress progressDlg, params object[] parameters)
        {
            m_progressDlg = progressDlg;
            Debug.Assert(parameters.Length == 1);
            string sOrigFile = (string)parameters[0];

            try
            {
                // Create a temporary directory %temp%\TempForLIFTImport. Migrate as necessary and import from this
                // directory. Directory is left after import is done in case it is needed, but will be deleted next time
                // if it exists.
                var sLIFTfolder     = Path.GetDirectoryName(sOrigFile);
                var sLIFTtempFolder = Path.Combine(Path.GetTempPath(), "TempForLIFTImport");
                if (Directory.Exists(sLIFTtempFolder) == true)
                {
                    Directory.Delete(sLIFTtempFolder, true);
                }
                LdmlFileBackup.CopyDirectory(sLIFTfolder, sLIFTtempFolder);
                // Older LIFT files had ldml files in root directory. If found, move them to WritingSystem folder.
                if (Directory.GetFiles(sLIFTtempFolder, "*.ldml").Length > 0)
                {
                    var sWritingSystems = Path.Combine(sLIFTtempFolder, "WritingSystems");
                    if (Directory.Exists(sWritingSystems) == false)
                    {
                        Directory.CreateDirectory(sWritingSystems);
                    }
                    foreach (string filePath in Directory.GetFiles(sLIFTtempFolder, "*.ldml"))
                    {
                        string file = Path.GetFileName(filePath);
                        if (!File.Exists(Path.Combine(sWritingSystems, file)))
                        {
                            File.Move(filePath, Path.Combine(sWritingSystems, file));
                        }
                    }
                }
                var    sTempOrigFile = Path.Combine(sLIFTtempFolder, sOrigFile.Substring(sLIFTfolder.Length + 1));
                string sFilename;
                //Do a LIFT Migration to the current version of LIFT if it is needed.
                bool fMigrationNeeded = Migrator.IsMigrationNeeded(sTempOrigFile);
                if (fMigrationNeeded)
                {
                    string sOldVersion = Validator.GetLiftVersion(sTempOrigFile);
                    m_progressDlg.Message = String.Format(LexTextControls.ksMigratingLiftFile,
                                                          sOldVersion, Validator.LiftVersion);
                    sFilename = Migrator.MigrateToLatestVersion(sTempOrigFile);
                }
                else
                {
                    sFilename = sTempOrigFile;
                }
                //Validate the LIFT file.
                if (!Validate(sFilename, sTempOrigFile))
                {
                    return(null);
                }

                //Import the LIFT file and ranges file.
                m_progressDlg.Message = LexTextControls.ksLoadingVariousLists;
                var flexImporter = new FlexLiftMerger(m_cache, m_msImport, m_chkTrustModTimes.Checked);
                var parser       = new LiftParser <LiftObject, CmLiftEntry, CmLiftSense, CmLiftExample>(flexImporter);
                parser.SetTotalNumberSteps += parser_SetTotalNumberSteps;
                parser.SetStepsCompleted   += parser_SetStepsCompleted;
                parser.SetProgressMessage  += parser_SetProgressMessage;

                flexImporter.LiftFile = sTempOrigFile;

                //Before imporing the LIFT files ensure the LDML (language definition files) have the correct writing system codes.
                flexImporter.LdmlFilesMigration(sLIFTtempFolder, sFilename, sTempOrigFile + "-ranges");
                //Import the Ranges file.
                flexImporter.LoadLiftRanges(sTempOrigFile + "-ranges");                 // temporary (?) fix for FWR-3869.
                //Import the LIFT data file.
                int cEntries = parser.ReadLiftFile(sFilename);

                if (fMigrationNeeded)
                {
                    // Try to move the migrated file to the temp directory, even if a copy of it
                    // already exists there.
                    string sTempMigrated = Path.Combine(Path.GetTempPath(),
                                                        Path.ChangeExtension(Path.GetFileName(sFilename), "." + Validator.LiftVersion + FwFileExtensions.ksLexiconInterchangeFormat));
                    if (File.Exists(sTempMigrated))
                    {
                        File.Delete(sTempMigrated);
                    }
                    File.Move(sFilename, sTempMigrated);
                }
                flexImporter.ProcessPendingRelations(m_progressDlg);
                return(flexImporter.DisplayNewListItems(sOrigFile, cEntries));
            }
            catch (Exception error)
            {
                string sMsg = String.Format(LexTextControls.ksLIFTImportProblem,
                                            sOrigFile, error.Message);
                try
                {
                    StringBuilder bldr = new StringBuilder();
                    // leave in English for programmer's sake...
                    bldr.AppendFormat("Something went wrong while FieldWorks was attempting to import {0}.",
                                      sOrigFile);
                    bldr.AppendLine();
                    bldr.AppendLine(error.Message);
                    bldr.AppendLine();
                    bldr.AppendLine(error.StackTrace);

                    if (Thread.CurrentThread.GetApartmentState() == ApartmentState.STA)
                    {
                        ClipboardUtils.SetDataObject(bldr.ToString(), true);
                    }
                    else
                    {
                        progressDlg.SynchronizeInvoke.Invoke(() => ClipboardUtils.SetDataObject(bldr.ToString(), true));
                    }
                    SIL.Utils.Logger.WriteEvent(bldr.ToString());
                }
                catch
                {
                }
                MessageBox.Show(sMsg, LexTextControls.ksProblemImporting,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(null);
            }
        }
Example #12
0
 internal static bool CanExecute(DnHexBox dnHexBox)
 {
     return(dnHexBox != null && GetBlobData(ClipboardUtils.GetData()) != null);
 }
Example #13
0
            private void CopyValue(object obj)
            {
                var value = GetColumn(obj).GetCellValue(rowIndex.Value).ToString();

                ClipboardUtils.SetText(value);
            }
 /// <summary>
 /// Copies the user's main wallet address to the clipboard.
 /// </summary>
 private void CopyAddressClicked() => ClipboardUtils.CopyToClipboard(userWalletManager.GetWalletAddress());