Esempio n. 1
0
 public InnerLabeledMultiStringViewVc(int flid, List <CoreWritingSystemDefinition> rgws, int wsUser, bool editable,
                                      InnerLabeledMultiStringView view)
     : base(flid, rgws, wsUser, editable, view.WritingSystemFactory.GetWsFromStr("en"))
 {
     m_view = view;
     Debug.Assert(m_view != null);
 }
		/// <summary>
		/// Constructor.
		/// </summary>
		public LabeledMultiStringView(int hvo, int flid, int wsMagic, int wsOptional, bool forceIncludeEnglish, bool editable, bool spellCheck)
		{
			m_innerView = new InnerLabeledMultiStringView(hvo, flid, wsMagic, wsOptional, forceIncludeEnglish, editable, spellCheck);
			m_innerView.SetupOtherControls += (sender, e) => { SetupSoundControls(); };
			m_innerView.Dock = DockStyle.Fill;
			Controls.Add(m_innerView);
		}
 /// <summary>
 /// Constructor.
 /// </summary>
 public LabeledMultiStringView(int hvo, int flid, int wsMagic, int wsOptional, bool forceIncludeEnglish, bool editable, bool spellCheck)
 {
     m_innerView = new InnerLabeledMultiStringView(hvo, flid, wsMagic, wsOptional, forceIncludeEnglish, editable, spellCheck);
     m_innerView.SetupOtherControls += (sender, e) => { SetupSoundControls(); };
     m_innerView.Dock = DockStyle.Fill;
     Controls.Add(m_innerView);
 }
Esempio n. 4
0
        public void PasteIntoMultiStringFieldDoesNotFlattenWsStyle()
        {
            var args = new FwPasteFixTssEventArgs(m_tss, new TextSelInfo((IVwSelection)null));

            // Veryify that we are testing  with a field of the correct type (if this fails the model changed)
            Assert.AreEqual((int)CellarPropertyType.MultiString, Cache.MetaDataCacheAccessor.GetFieldType(LexSenseTags.kflidGeneralNote));
            //SUT
            InnerLabeledMultiStringView.EliminateExtraStyleAndWsInfo(Cache.MetaDataCacheAccessor, args, LexSenseTags.kflidGeneralNote);
            string differences;

            Assert.True(TsStringHelper.TsStringsAreEqual(m_tss, args.TsString, out differences), differences);
        }
Esempio n. 5
0
        public void PasteIntoMultiUnicodeFieldFlattensWsStyle()
        {
            var args = new FwPasteFixTssEventArgs(m_tss, new TextSelInfo((IVwSelection)null));

            // Veryify that we are testing  with a field of the correct type (if this fails the model changed)
            Assert.AreEqual((int)CellarPropertyType.MultiUnicode, Cache.MetaDataCacheAccessor.GetFieldType(LexEntryTags.kflidCitationForm));
            //SUT
            InnerLabeledMultiStringView.EliminateExtraStyleAndWsInfo(Cache.MetaDataCacheAccessor, args, LexEntryTags.kflidCitationForm);
            string differences;

            Assert.False(TsStringHelper.TsStringsAreEqual(m_tss, args.TsString, out differences), differences);
            Assert.That(differences, Is.StringContaining("TsStrings have different number of runs"));
        }
        /// <summary>
        /// Executes in two distinct scenarios.
        ///
        /// 1. If disposing is true, the method has been called directly
        /// or indirectly by a user's code via the Dispose method.
        /// Both managed and unmanaged resources can be disposed.
        ///
        /// 2. If disposing is false, the method has been called by the
        /// runtime from inside the finalizer and you should not reference (access)
        /// other managed objects, as they already have been garbage collected.
        /// Only unmanaged resources can be disposed.
        /// </summary>
        /// <remarks>
        /// If any exceptions are thrown, that is fine.
        /// If the method is being done in a finalizer, it will be ignored.
        /// If it is thrown by client code calling Dispose,
        /// it needs to be handled by fixing the bug.
        ///
        /// If subclasses override this method, they should call the base implementation.
        /// </remarks>
        protected override void Dispose(bool disposing)
        {
            Debug.WriteLineIf(!disposing, "****************** Missing Dispose() call for " + GetType().Name + " ******************");
            // Must not be run more than once.
            if (IsDisposed)
            {
                return;
            }

            base.Dispose(disposing);

            if (disposing)
            {
                // In Mono, DisposeSoundControls() causes a layout, which then crashes
                // nicely when called from here.  See FWNX-967.  Since we'll be
                // disposed, there's no point in resuming layout later...
                SuspendLayout();
                // Dispose managed resources here.
                DisposeSoundControls();
                m_innerView.Dispose();
                m_innerView = null;
            }
        }
Esempio n. 7
0
        public void InnerViewRefreshesWhenRefreshIsPending()
        {
            ILexEntry entry = null;
            int       flid  = 5035001;      // MoForm flid

            NonUndoableUnitOfWorkHelper.Do(Cache.ActionHandlerAccessor, () =>
            {
                entry = Cache.ServiceLocator.GetInstance <ILexEntryFactory>().Create();
                IMoStemAllomorph morph = Cache.ServiceLocator.GetInstance <IMoStemAllomorphFactory>().Create();
                entry.LexemeFormOA     = morph;
            });

            Form dummyForm = new Form();
            LabeledMultiStringView view = new LabeledMultiStringView(entry.LexemeFormOA.Hvo, flid, WritingSystemServices.kwsVern, false, true);

            dummyForm.Controls.Add(view);
            InnerLabeledMultiStringView innerView = view.InnerView;

            view.FinishInit();
            innerView.Cache = Cache;

            // Access the Handle of the innerView to construct the RootBox.
            var handle = innerView.Handle;

            Assert.IsFalse(innerView.Visible);
            Assert.IsFalse(innerView.RefreshPending);
            view.WritingSystemsToDisplay =
                WritingSystemServices.GetWritingSystemList(Cache, WritingSystemServices.kwsVern, false);
            view.RefreshDisplay();
            // The flag gets set because the view is not yet visible, so the display cannot refresh.
            Assert.IsTrue(innerView.RefreshPending);
            // Trigger the display to refresh by making the form visible.
            dummyForm.Visible = true;
            Assert.IsFalse(innerView.RefreshPending);
            view.Dispose();
            NonUndoableUnitOfWorkHelper.Do(Cache.ActionHandlerAccessor, () => entry.Delete());
        }
		/// <summary>
		/// Executes in two distinct scenarios.
		///
		/// 1. If disposing is true, the method has been called directly
		/// or indirectly by a user's code via the Dispose method.
		/// Both managed and unmanaged resources can be disposed.
		///
		/// 2. If disposing is false, the method has been called by the
		/// runtime from inside the finalizer and you should not reference (access)
		/// other managed objects, as they already have been garbage collected.
		/// Only unmanaged resources can be disposed.
		/// </summary>
		/// <remarks>
		/// If any exceptions are thrown, that is fine.
		/// If the method is being done in a finalizer, it will be ignored.
		/// If it is thrown by client code calling Dispose,
		/// it needs to be handled by fixing the bug.
		///
		/// If subclasses override this method, they should call the base implementation.
		/// </remarks>
		protected override void Dispose(bool disposing)
		{
			Debug.WriteLineIf(!disposing, "****************** Missing Dispose() call for " + GetType().Name + " ******************");
			// Must not be run more than once.
			if (IsDisposed)
				return;

			base.Dispose(disposing);

			if (disposing)
			{
				// In Mono, DisposeSoundControls() causes a layout, which then crashes
				// nicely when called from here.  See FWNX-967.  Since we'll be
				// disposed, there's no point in resuming layout later...
				SuspendLayout();
				// Dispose managed resources here.
				DisposeSoundControls();
				m_innerView.Dispose();
				m_innerView = null;
			}
		}
		public InnerLabeledMultiStringViewVc(int flid, List<IWritingSystem> rgws, int wsUser, bool editable,
			ITsStrFactory tsf, InnerLabeledMultiStringView view)
			: base(flid, rgws, wsUser, editable, view.WritingSystemFactory.GetWsFromStr("en"), tsf)
		{
			m_view = view;
			Debug.Assert(m_view != null);
		}