public override void OnResizeStart(ISmartContent content, ResizeOptions options) { //force the resize operation to scale based on the size of the map image. MapSettings settings = new MapSettings(content.Properties); options.ResizeableElementId = settings.MapId; }
public override DialogResult CreateContent(IWin32Window dialogOwner, ISmartContent content) { using (new WaitCursor()) { if (!MapForm.ValidateLiveLocalConnection(true)) { return(DialogResult.Cancel); } using (MapForm mapForm = new MapForm(true, _pluginOptions, ((ICommandManagerHost)dialogOwner).CommandManager)) { mapForm.LoadMap(-0.3515603f, 0.3515625f, null, "r", 1, null); if (mapForm.ShowDialog(dialogOwner) == DialogResult.OK) { MapSettings settings = new MapSettings(content.Properties); settings.MapId = "map-" + Guid.NewGuid().ToString(); settings.UpdateSettings(mapForm.Latitude, mapForm.Longitude, mapForm.Reserved, mapForm.ZoomLevel, mapForm.MapStyle, mapForm.Pushpins, mapForm.BirdseyeScene); _pluginOptions.DefaultDialogSize = mapForm.Size; return(DialogResult.OK); } else { return(DialogResult.Cancel); } } } }
public override DialogResult CreateContent(IWin32Window dialogOwner, ISmartContent content) { using (new WaitCursor()) { if (!MapForm.ValidateLiveLocalConnection(true)) return DialogResult.Cancel; using (MapForm mapForm = new MapForm(true, _pluginOptions, ((ICommandManagerHost)dialogOwner).CommandManager)) { mapForm.LoadMap(-0.3515603f, 0.3515625f, null, "r", 1, null); if (mapForm.ShowDialog(dialogOwner) == DialogResult.OK) { MapSettings settings = new MapSettings(content.Properties); settings.MapId = "map-" + Guid.NewGuid().ToString(); settings.UpdateSettings(mapForm.Latitude, mapForm.Longitude, mapForm.Reserved, mapForm.ZoomLevel, mapForm.MapStyle, mapForm.Pushpins, mapForm.BirdseyeScene); _pluginOptions.DefaultDialogSize = mapForm.Size; return DialogResult.OK; } else { return DialogResult.Cancel; } } } }
public Size GetDefaultMapSize(string blogId) { IProperties blogProps = GetBlogSettings(blogId); int defaultWidth = blogProps.GetInt(DEFAULT_MAP_WIDTH, DefaultMapSize.Width); int defaultHeight = blogProps.GetInt(DEFAULT_MAP_HEIGHT, DefaultMapSize.Height); return(MapSettings.EnsurePositiveSize(new Size(defaultWidth, defaultHeight), DefaultMapSize)); }
private string GenerateHtml(ISmartContent content, bool editor, string blogId) { MapSettings settings = new MapSettings(content.Properties); settings.PublishTargetId = blogId; Uri imageUri = content.Files.GetUri(settings.ImageFileId); if (imageUri == null) { //try to regenerate the image using the default size for blog Size mapSize = _pluginOptions.GetDefaultMapSize(blogId); UpdateMapImage(content, settings, mapSize); settings.Size = mapSize; imageUri = content.Files.GetUri(settings.ImageFileId); } string imgAltText = Res.Get(StringId.MapImageAltText); if (settings.Caption != String.Empty) { imgAltText = settings.Caption; } string imageHtml = settings.Caption; if (imageUri != null) { Size mapSize = settings.Size; string sizeAttrs = mapSize != Size.Empty ? String.Format(CultureInfo.InvariantCulture, " width=\"{0}\" height=\"{1}\"", mapSize.Width, mapSize.Height) : ""; imageHtml = String.Format(CultureInfo.InvariantCulture, "<img src=\"{0}\"{1} alt=\"{2}\">", HtmlServices.HtmlEncode(imageUri.ToString()), sizeAttrs, HtmlServices.HtmlEncode(imgAltText)); } else { if (imageHtml.Equals(String.Empty)) { imageHtml = Res.Get(StringId.ViewMap); } } string clickToViewAttr = editor ? "" : String.Format(CultureInfo.InvariantCulture, " alt=\"{0}\" title=\"{0}\"", clickToViewText); string mapHtml = String.Format(CultureInfo.InvariantCulture, "<a href=\"{0}\" id=\"{2}\"{3}>{1}</a>", HtmlServices.HtmlEncode(settings.LiveMapUrl), imageHtml, settings.MapId, clickToViewAttr); if (imageUri != null && settings.Caption != String.Empty) { //append the caption HTML mapHtml += String.Format(CultureInfo.InvariantCulture, _pluginOptions.CaptionHtmlFormat, HtmlServices.HtmlEncode(settings.Caption), settings.MapId); } return(mapHtml); }
public override void OnResizeComplete(ISmartContent content, Size newSize) { //don't allow the size to be smaller than the min size (fixes bug 398580) newSize.Width = Math.Max(newSize.Width, MIN_MAP_SIZE.Width); newSize.Height = Math.Max(newSize.Height, MIN_MAP_SIZE.Height); MapSettings settings = new MapSettings(content.Properties); UpdateMapImage(content, settings, newSize); settings.Size = newSize; if (settings.PublishTargetId != null) _pluginOptions.SetDefaultMapSize(settings.PublishTargetId, newSize); }
protected override void OnSelectedContentChanged() { base.OnSelectedContentChanged(); _mapSettings = new MapSettings(SelectedContent.Properties); sidebarHeaderControl1.LinkUrl = _mapSettings.LiveMapUrl; // update the settings UI InitializeOptionsUI(); // force a layout for dynamic control flow PerformLayout(); RefreshLayout(); }
private string GenerateHtml(ISmartContent content, bool editor, string blogId) { MapSettings settings = new MapSettings(content.Properties); settings.PublishTargetId = blogId; Uri imageUri = content.Files.GetUri(settings.ImageFileId); if (imageUri == null) { //try to regenerate the image using the default size for blog Size mapSize = _pluginOptions.GetDefaultMapSize(blogId); UpdateMapImage(content, settings, mapSize); settings.Size = mapSize; imageUri = content.Files.GetUri(settings.ImageFileId); } string imgAltText = Res.Get(StringId.MapImageAltText); if (settings.Caption != String.Empty) imgAltText = settings.Caption; string imageHtml = settings.Caption; if (imageUri != null) { Size mapSize = settings.Size; string sizeAttrs = mapSize != Size.Empty ? String.Format(CultureInfo.InvariantCulture, " width=\"{0}\" height=\"{1}\"", mapSize.Width, mapSize.Height) : ""; imageHtml = String.Format(CultureInfo.InvariantCulture, "<img src=\"{0}\"{1} alt=\"{2}\">", HtmlServices.HtmlEncode(imageUri.ToString()), sizeAttrs, HtmlServices.HtmlEncode(imgAltText)); } else { if (imageHtml.Equals(String.Empty)) { imageHtml = Res.Get(StringId.ViewMap); } } string clickToViewAttr = editor ? "" : String.Format(CultureInfo.InvariantCulture, " alt=\"{0}\" title=\"{0}\"", clickToViewText); string mapHtml = String.Format(CultureInfo.InvariantCulture, "<a href=\"{0}\" id=\"{2}\"{3}>{1}</a>", HtmlServices.HtmlEncode(settings.LiveMapUrl), imageHtml, settings.MapId, clickToViewAttr); if (imageUri != null && settings.Caption != String.Empty) { //append the caption HTML mapHtml += String.Format(CultureInfo.InvariantCulture, _pluginOptions.CaptionHtmlFormat, HtmlServices.HtmlEncode(settings.Caption), settings.MapId); } return mapHtml; }
internal static void UpdateMapImage(ISmartContent content, MapSettings settings, Size newSize) { if (settings.MapImageInvalidated) { settings.MapImageInvalidated = false; float latitude = settings.Latitude; float longitude = settings.Longitude; string reserved = settings.Reserved; int zoomLevel = settings.ZoomLevel; string style = settings.MapStyle; string sceneId = settings.BirdseyeSceneId; VEBirdseyeScene scene = sceneId != null ? new VEBirdseyeScene(sceneId, settings.BirdseyeOrientation) : null; string previewUrl = MapUrlHelper.CreateMapUrl(LocalMapPreviewUrl, latitude, longitude, reserved, style, zoomLevel, settings.Pushpins, scene); #pragma warning disable 612,618 HtmlScreenCapture screenCapture = new HtmlScreenCapture(new Uri(previewUrl, true), newSize.Width); #pragma warning restore 612,618 screenCapture.HtmlDocumentAvailable += new OpenLiveWriter.Api.HtmlDocumentAvailableHandler(screenCapture_HtmlDocumentAvailable); screenCapture.MaximumHeight = newSize.Height; Bitmap bitmap = screenCapture.CaptureHtml(45000); if (bitmap != null) { try { if (content.Files.Contains(settings.ImageFileId)) { content.Files.Remove(settings.ImageFileId); } } catch (Exception e) { Debug.Fail(e.ToString()); } //add the new map image (note that we use a new name to a bug in IE7 that prevents the editor //from refreshing the image displayed in the browser (bug 287563) string newGuid = Guid.NewGuid().ToString(); string newImageFileId = "map-" + newGuid.Substring(newGuid.LastIndexOf("-", StringComparison.OrdinalIgnoreCase) + 1) + ".jpg"; settings.ImageFileId = newImageFileId; content.Files.AddImage(settings.ImageFileId, bitmap, ImageFormat.Jpeg); } else { Debug.WriteLine("Map image could not be regenerated."); } } }
public override void OnResizing(ISmartContent content, Size newSize) { MapSettings settings = new MapSettings(content.Properties); settings.Size = newSize; }
internal static void UpdateMapImage(ISmartContent content, MapSettings settings, Size newSize) { if (settings.MapImageInvalidated) { settings.MapImageInvalidated = false; float latitude = settings.Latitude; float longitude = settings.Longitude; string reserved = settings.Reserved; int zoomLevel = settings.ZoomLevel; string style = settings.MapStyle; string sceneId = settings.BirdseyeSceneId; VEBirdseyeScene scene = sceneId != null ? new VEBirdseyeScene(sceneId, settings.BirdseyeOrientation) : null; string previewUrl = MapUrlHelper.CreateMapUrl(LocalMapPreviewUrl, latitude, longitude, reserved, style, zoomLevel, settings.Pushpins, scene); #pragma warning disable 612, 618 HtmlScreenCapture screenCapture = new HtmlScreenCapture(new Uri(previewUrl, true), newSize.Width); #pragma warning restore 612, 618 screenCapture.HtmlDocumentAvailable += new OpenLiveWriter.Api.HtmlDocumentAvailableHandler(screenCapture_HtmlDocumentAvailable); screenCapture.MaximumHeight = newSize.Height; Bitmap bitmap = screenCapture.CaptureHtml(45000); if (bitmap != null) { try { if (content.Files.Contains(settings.ImageFileId)) content.Files.Remove(settings.ImageFileId); } catch (Exception e) { Debug.Fail(e.ToString()); } //add the new map image (note that we use a new name to a bug in IE7 that prevents the editor //from refreshing the image displayed in the browser (bug 287563) string newGuid = Guid.NewGuid().ToString(); string newImageFileId = "map-" + newGuid.Substring(newGuid.LastIndexOf("-", StringComparison.OrdinalIgnoreCase) + 1) + ".jpg"; settings.ImageFileId = newImageFileId; content.Files.AddImage(settings.ImageFileId, bitmap, ImageFormat.Jpeg); } else { Debug.WriteLine("Map image could not be regenerated."); } } }