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); }
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); }
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; } }
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); }