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