PictureObjectBase.DesignExt.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 (IsDesigning)
  27. g.DrawImage(Report.Designer.GetImage(103), (int)(AbsLeft * e.ScaleX) + 3, (int)(AbsTop * e.ScaleY) + 3);
  28. else if (ShowErrorImage)
  29. g.DrawImage(Report.Designer.GetImage(80), (int)(AbsLeft * e.ScaleX) + 3, (int)(AbsTop * e.ScaleY) + 3);
  30. }
  31. /// <inheritdoc/>
  32. protected override SelectionPoint[] GetSelectionPoints()
  33. {
  34. if (SizeMode == PictureBoxSizeMode.AutoSize && ImageWidth != 0 && ImageHeight != 0)
  35. return new SelectionPoint[] { new SelectionPoint(AbsLeft, AbsTop, SizingPoint.LeftTop) };
  36. return base.GetSelectionPoints();
  37. }
  38. #endregion Protected Methods
  39. #region Public Methods
  40. /// <inheritdoc/>
  41. public override ContextMenuBase GetContextMenu()
  42. {
  43. return new PictureObjectMenu(Report.Designer);
  44. }
  45. /// <inheritdoc/>
  46. public override SizeF GetPreferredSize()
  47. {
  48. if ((Page as ReportPage).IsImperialUnitsUsed)
  49. return new SizeF(Units.Inches * 1, Units.Inches * 1);
  50. return new SizeF(Units.Millimeters * 20, Units.Millimeters * 20);
  51. }
  52. /// <inheritdoc/>
  53. public override SmartTagBase GetSmartTag()
  54. {
  55. return new PictureObjectSmartTag(this);
  56. }
  57. /// <summary>
  58. /// Invokes the object's editor.
  59. /// </summary>
  60. /// <returns><b>true</b> if object was edited succesfully.</returns>
  61. public abstract bool InvokeEditor();
  62. #endregion Public Methods
  63. }
  64. }