SIL.FieldWorks.XWorks.DTMenuHandler.OnInsertPicture C# (CSharp) Method

OnInsertPicture() public method

Called by reflection based on menu item InsertPicture.
public OnInsertPicture ( object cmd ) : bool
cmd object
return bool
		public bool OnInsertPicture(object cmd)
		{
			int flid;
			if (!CanInsertPictureOrMediaFile(cmd, out flid))
				return false; // should not happen, but play safe
			var obj = m_dataEntryForm.CurrentSlice.Object;
			int chvo = obj.Cache.DomainDataByFlid.get_VecSize(obj.Hvo, flid);
			IApp app = (IApp)m_mediator.PropertyTable.GetValue("App");
			using (PicturePropertiesDialog dlg = new PicturePropertiesDialog(obj.Cache, null,
				m_mediator.HelpTopicProvider, app, true))
			{
				if (dlg.Initialize())
				{
					var stylesheet = FontHeightAdjuster.StyleSheetFromMediator(m_mediator);
					dlg.UseMultiStringCaption(obj.Cache, WritingSystemServices.kwsVernAnals, stylesheet);
					if (dlg.ShowDialog() == DialogResult.OK)
					{
						UndoableUnitOfWorkHelper.Do(xWorksStrings.ksUndoInsertPicture, xWorksStrings.ksRedoInsertPicture, obj, () =>
						{
							string strLocalPictures = CmFolderTags.DefaultPictureFolder;
							int hvoPic = obj.Cache.DomainDataByFlid.MakeNewObject(CmPictureTags.kClassId, obj.Hvo, flid, chvo);
							var picture = Cache.ServiceLocator.GetInstance<ICmPictureRepository>().GetObject(hvoPic);
							dlg.GetMultilingualCaptionValues(picture.Caption);
							picture.UpdatePicture(dlg.CurrentFile, null, strLocalPictures, 0);
						});
					}
				}
			}
			return true;
		}