PictureObjectBase.DesignExt.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using FastReport.Utils;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. namespace FastReport
  5. {
  6. partial class PictureObjectBase
  7. {
  8. #region Internal Fields
  9. internal bool dragAccept;
  10. #endregion Internal Fields
  11. #region Private Methods
  12. private void DrawDesign(FRPaintEventArgs e)
  13. {
  14. if (dragAccept)
  15. DrawDragAcceptFrame(e, Color.Silver);
  16. }
  17. #endregion Private Methods
  18. #region Protected Methods
  19. /// <summary>
  20. /// Draw an error image to Graphics g, when the image is designing
  21. /// </summary>
  22. /// <param name="g"></param>
  23. /// <param name="e"></param>
  24. protected void DrawErrorImage(IGraphics g, FRPaintEventArgs e)
  25. {
  26. if (Report == null)
  27. return;
  28. if (IsDesigning)
  29. g.DrawImage(Report.Designer.GetImage(103), (int)(AbsLeft * e.ScaleX) + 3, (int)(AbsTop * e.ScaleY) + 3);
  30. else if (ShowErrorImage)
  31. g.DrawImage(Report.Designer.GetImage(80), (int)(AbsLeft * e.ScaleX) + 3, (int)(AbsTop * e.ScaleY) + 3);
  32. }
  33. /// <inheritdoc/>
  34. protected override SelectionPoint[] GetSelectionPoints()
  35. {
  36. if (SizeMode == PictureBoxSizeMode.AutoSize && ImageWidth != 0 && ImageHeight != 0)
  37. return new SelectionPoint[] { new SelectionPoint(AbsLeft, AbsTop, SizingPoint.LeftTop) };
  38. return base.GetSelectionPoints();
  39. }
  40. #endregion Protected Methods
  41. #region Public Methods
  42. /// <inheritdoc/>
  43. public override ContextMenuBase GetContextMenu()
  44. {
  45. return new PictureObjectMenu(Report.Designer);
  46. }
  47. /// <inheritdoc/>
  48. public override SizeF GetPreferredSize()
  49. {
  50. if ((Page as ReportPage).IsImperialUnitsUsed)
  51. return new SizeF(Units.Inches * 1, Units.Inches * 1);
  52. return new SizeF(Units.Millimeters * 20, Units.Millimeters * 20);
  53. }
  54. /// <inheritdoc/>
  55. public override SmartTagBase GetSmartTag()
  56. {
  57. return new PictureObjectSmartTag(this);
  58. }
  59. /// <summary>
  60. /// Invokes the object's editor.
  61. /// </summary>
  62. /// <returns><b>true</b> if object was edited succesfully.</returns>
  63. public abstract bool InvokeEditor();
  64. #endregion Public Methods
  65. }
  66. }