123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- using FastReport.Controls;
- using FastReport.Design.PageDesigners.Page;
- using FastReport.Utils;
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonTextGroup : RibbonGroup
- {
- #region Fields
- private WrappedPanel Panel1 { get; }
- public ToolbarFontComboBox cbxName;
- public ToolbarFontSizeComboBox cbxSize;
- public ToolbarButton btnBold;
- public ToolbarButton btnItalic;
- public ToolbarButton btnUnderline;
- public ToolbarButton btnLeft;
- public ToolbarButton btnCenter;
- public ToolbarButton btnRight;
- public ToolbarButton btnJustify;
- public ToolbarButton btnTop;
- public ToolbarButton btnMiddle;
- public ToolbarButton btnBottom;
- public ToolbarColorButton btnColor;
- public ToolbarTextAngleButton btnAngle;
- #endregion
- #region Private Methods
- private void UpdateControls()
- {
- bool enabled = Designer.SelectedTextObjects.Enabled;
- cbxName.Enabled = enabled;
- cbxSize.Enabled = enabled;
- btnBold.Enabled = enabled;
- btnItalic.Enabled = enabled;
- btnUnderline.Enabled = enabled;
- btnLeft.Enabled = enabled;
- btnCenter.Enabled = enabled;
- btnRight.Enabled = enabled;
- btnJustify.Enabled = enabled;
- btnTop.Enabled = enabled;
- btnMiddle.Enabled = enabled;
- btnBottom.Enabled = enabled;
- btnColor.Enabled = enabled;
- btnAngle.Enabled = enabled;
- if (enabled)
- {
- TextObject text = Designer.SelectedTextObjects.First;
- cbxName.FontName = text.Font.Name;
- cbxSize.FontSize = text.Font.Size;
- btnBold.Checked = text.Font.Bold;
- btnItalic.Checked = text.Font.Italic;
- btnUnderline.Checked = text.Font.Underline;
- btnLeft.Checked = text.HorzAlign == HorzAlign.Left;
- btnCenter.Checked = text.HorzAlign == HorzAlign.Center;
- btnRight.Checked = text.HorzAlign == HorzAlign.Right;
- btnJustify.Checked = text.HorzAlign == HorzAlign.Justify;
- btnTop.Checked = text.VertAlign == VertAlign.Top;
- btnMiddle.Checked = text.VertAlign == VertAlign.Center;
- btnBottom.Checked = text.VertAlign == VertAlign.Bottom;
- if (text.TextFill is SolidFill)
- btnColor.Color = (text.TextFill as SolidFill).Color;
- }
- else
- {
- cbxName.Text = "";
- cbxSize.Text = "";
- btnBold.Checked = false;
- btnItalic.Checked = false;
- btnUnderline.Checked = false;
- btnLeft.Checked = false;
- btnCenter.Checked = false;
- btnRight.Checked = false;
- btnJustify.Checked = false;
- btnTop.Checked = false;
- btnMiddle.Checked = false;
- btnBottom.Checked = false;
- }
- }
- private void cbxName_FontSelected(object sender, EventArgs e)
- {
- (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
- Designer.SelectedTextObjects.SetFontName(cbxName.FontName);
- }
- private void cbxSize_SizeSelected(object sender, EventArgs e)
- {
- (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
- Designer.SelectedTextObjects.SetFontSize(cbxSize.FontSize);
- }
- private void btnBold_Click(object sender, EventArgs e)
- {
- btnBold.Checked = !btnBold.Checked;
- Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Bold, btnBold.Checked);
- }
- private void btnItalic_Click(object sender, EventArgs e)
- {
- btnItalic.Checked = !btnItalic.Checked;
- Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Italic, btnItalic.Checked);
- }
- private void btnUnderline_Click(object sender, EventArgs e)
- {
- btnUnderline.Checked = !btnUnderline.Checked;
- Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Underline, btnUnderline.Checked);
- }
- private void btnLeft_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetHAlign(HorzAlign.Left);
- }
- private void btnCenter_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetHAlign(HorzAlign.Center);
- }
- private void btnRight_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetHAlign(HorzAlign.Right);
- }
- private void btnJustify_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetHAlign(HorzAlign.Justify);
- }
- private void btnTop_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetVAlign(VertAlign.Top);
- }
- private void btnMiddle_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetVAlign(VertAlign.Center);
- }
- private void btnBottom_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetVAlign(VertAlign.Bottom);
- }
- private void btnColor_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetTextColor(btnColor.DefaultColor);
- }
- private void btnAngle_AngleChanged(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetAngle((sender as ToolbarTextAngleButton).Angle);
- }
- #endregion
- #region Public Methods
- public override void SelectionChanged()
- {
- base.SelectionChanged();
- Throttle.Execute(UpdateControls);
- }
- public override void UpdateContent()
- {
- base.UpdateContent();
- Throttle.Execute(UpdateControls);
- }
- public override void SaveState()
- {
- base.SaveState();
- Storage.SetStr("MruFonts", cbxName.MruFonts);
- }
- public override void RestoreState()
- {
- base.RestoreState();
- cbxName.MruFonts = Storage.GetStr("MruFonts");
- }
- public override void Localize()
- {
- base.Localize();
- MyRes res = new MyRes("Designer,Toolbar,Text");
- Text = res.Get("");
- SetItemText(cbxName, res.Get("Name"));
- SetItemText(cbxSize, res.Get("Size"));
- SetItemText(btnBold, res.Get("Bold"));
- SetItemText(btnItalic, res.Get("Italic"));
- SetItemText(btnUnderline, res.Get("Underline"));
- SetItemText(btnLeft, res.Get("Left"));
- SetItemText(btnCenter, res.Get("Center"));
- SetItemText(btnRight, res.Get("Right"));
- SetItemText(btnJustify, res.Get("Justify"));
- SetItemText(btnTop, res.Get("Top"));
- SetItemText(btnMiddle, res.Get("Middle"));
- SetItemText(btnBottom, res.Get("Bottom"));
- SetItemText(btnColor, res.Get("Color"));
- SetItemText(btnAngle, res.Get("Angle"));
- }
- public override void UpdateUIStyle()
- {
- base.UpdateUIStyle();
- btnColor.SetStyle(Designer.UIStyle);
- cbxName.SetStyle(Designer.UIStyle);
- cbxSize.SetStyle(Designer.UIStyle);
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- Panel1.MaxWidth = 250;
- Panel1.UpdateDpiDependencies();
- cbxName.Owner = Designer;
- cbxName.Width = Designer.LogicalToDevice(126);
- cbxName.UpdateDpiDependencies();
- cbxSize.Owner = Designer;
- cbxSize.Width = Designer.LogicalToDevice(40);
- cbxSize.UpdateDpiDependencies();
- }
- #endregion
- public RibbonTextGroup(Designer designer) : base(designer)
- {
- Name = "TextGroup";
- CollapsedImageName = "Ribbon.Text.png";
- Priority = GroupPriority.High;
- cbxName = new ToolbarFontComboBox("cbxTextName", cbxName_FontSelected);
- cbxSize = new ToolbarFontSizeComboBox("cbxTextSize", cbxSize_SizeSelected);
- btnBold = new ToolbarButton("btnTextBold", 20, btnBold_Click);
- btnItalic = new ToolbarButton("btnTextItalic", 21, btnItalic_Click);
- btnUnderline = new ToolbarButton("btnTextUnderline", 22, btnUnderline_Click);
- btnLeft = new ToolbarButton("btnTextLeft", 25, btnLeft_Click);
- btnCenter = new ToolbarButton("btnTextCenter", 26, btnCenter_Click);
- btnRight = new ToolbarButton("btnTextRight", 27, btnRight_Click);
- btnJustify = new ToolbarButton("btnTextJustify", 28, btnJustify_Click);
- btnTop = new ToolbarButton("btnTextTop", 29, btnTop_Click);
- btnTop.BeginGroup = true;
- btnMiddle = new ToolbarButton("btnTextMiddle", 30, btnMiddle_Click);
- btnBottom = new ToolbarButton("btnTextBottom", 31, btnBottom_Click);
- btnColor = new ToolbarColorButton("btnTextColor", 23, Color.Black, btnColor_Click);
- btnColor.BeginGroup = true;
- btnAngle = new ToolbarTextAngleButton(designer, this, "btnTextAngle", 64, btnAngle_AngleChanged);
- Panel1 = new WrappedPanel() { VerticalAlignment = System.Windows.VerticalAlignment.Center, Margin = new Padding(0, 3, 0, 3) };
- Panel1.AddItems(
- cbxName, cbxSize, btnBold, btnItalic, btnUnderline,
- btnLeft, btnCenter, btnRight, btnJustify,
- btnTop, btnMiddle, btnBottom,
- btnColor, btnAngle);
- Panel.AddPanels(Panel1);
- Localize();
- UpdateDpiDependencies();
- }
- }
- }
|