123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- using FastReport.Utils;
- using FastReport.Controls;
- using FastReport.Design.PageDesigners.Page;
- #if !MONO
- using FastReport.DevComponents.DotNetBar;
- #endif
- namespace FastReport.Design.Toolbars
- {
- internal class TextToolbar : ToolbarBase
- {
- #region Fields
- #if !MONO
- public FontComboBoxItem cbxName;
- public FontSizeComboBoxItem cbxSize;
- public ButtonItem btnBold;
- public ButtonItem btnItalic;
- public ButtonItem btnUnderline;
- public ButtonItem btnLeft;
- public ButtonItem btnCenter;
- public ButtonItem btnRight;
- public ButtonItem btnJustify;
- public ButtonItem btnTop;
- public ButtonItem btnMiddle;
- public ButtonItem btnBottom;
- public ColorButtonItem btnColor;
- public ButtonItem btnHighlight;
- public ButtonItem btnAngle;
- #else
- public ToolStripFontComboBox cbxName;
- public ToolStripFontSizeComboBox cbxSize;
- public ToolStripButton btnBold;
- public ToolStripButton btnItalic;
- public ToolStripButton btnUnderline;
- public ToolStripButton btnLeft;
- public ToolStripButton btnCenter;
- public ToolStripButton btnRight;
- public ToolStripButton btnJustify;
- public ToolStripButton btnTop;
- public ToolStripButton btnMiddle;
- public ToolStripButton btnBottom;
- public ToolStripColorButton btnColor;
- public ToolStripButton btnHighlight;
- public ToolStripTextAngleButton btnAngle;
- #endif
- #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;
- btnHighlight.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
- {
- #if MONO
- cbxName.Text = "";
- cbxSize.Text = "";
- #endif
- 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 btnHighlight_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.InvokeHighlightEditor();
- }
- #if !MONO
- private void btnAngle_Click(object sender, EventArgs e)
- {
- AnglePopup popup = new AnglePopup(Designer.FindForm());
- popup.Angle = Designer.SelectedTextObjects.First.Angle;
- popup.AngleChanged += popup_AngleChanged;
- popup.Show(this, btnAngle.Bounds.Left, btnAngle.Bounds.Bottom);
- }
- private void popup_AngleChanged(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetAngle((sender as AnglePopup).Angle);
- }
- #else
- private void btnAngle_AngleChanged(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.SetAngle((sender as ToolStripTextAngleButton).Angle);
- }
- #endif
- #endregion
- #region Public Methods
- public override void SelectionChanged()
- {
- base.SelectionChanged();
- UpdateControls();
- }
- public override void UpdateContent()
- {
- base.UpdateContent();
- UpdateControls();
- }
- public override void SaveState()
- {
- XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name);
- xi.SetProp("MruFonts", cbxName.MruFonts);
- }
- public override void RestoreState()
- {
- XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name);
- cbxName.MruFonts = xi.GetProp("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(btnHighlight, res.Get("Highlight"));
- SetItemText(btnAngle, res.Get("Angle"));
- }
- public override void UpdateUIStyle()
- {
- base.UpdateUIStyle();
- btnColor.SetStyle(Designer.UIStyle);
- #if !MONO
- Color controlColor = UIStyleUtils.GetControlColor(Designer.UIStyle);
- cbxName.ComboBoxEx.DisabledBackColor = controlColor;
- cbxSize.ComboBoxEx.DisabledBackColor = controlColor;
- #endif
- }
- #endregion
- public override void UpdateDpiDependencies()
- {
- base.UpdateDpiDependencies();
- #if !MONO
- cbxName.Owner = Designer;
- cbxName.UpdateDpiDependencies();
- cbxSize.ComboWidth = Designer.LogicalToDevice(50);
- cbxSize.ItemHeight = Designer.LogicalToDevice(14);
- cbxSize.DropDownHeight = Designer.LogicalToDevice(300);
- #else
- cbxName.Width = 140;
- cbxName.UpdateDpiDependencies();
- cbxSize.Width = 45;
- cbxSize.DropDownHeight = 300;
- #endif
- }
- public TextToolbar(Designer designer)
- : base(designer)
- {
- Name = "TextToolbar";
- #if !MONO
- cbxName = new FontComboBoxItem();
- cbxName.Name = "cbxTextName";
- cbxName.FontSelected += cbxName_FontSelected;
- cbxSize = new FontSizeComboBoxItem();
- cbxSize.Name = "cbxTextSize";
- cbxSize.SizeSelected += cbxSize_SizeSelected;
- btnBold = CreateButton("btnTextBold", 20, btnBold_Click);
- btnItalic = CreateButton("btnTextItalic", 21, btnItalic_Click);
- btnUnderline = CreateButton("btnTextUnderline", 22, btnUnderline_Click);
- btnLeft = CreateButton("btnTextLeft", 25, btnLeft_Click);
- btnLeft.BeginGroup = true;
- btnCenter = CreateButton("btnTextCenter", 26, btnCenter_Click);
- btnRight = CreateButton("btnTextRight", 27, btnRight_Click);
- btnJustify = CreateButton("btnTextJustify", 28, btnJustify_Click);
- btnTop = CreateButton("btnTextTop", 29, btnTop_Click);
- btnTop.BeginGroup = true;
- btnMiddle = CreateButton("btnTextMiddle", 30, btnMiddle_Click);
- btnBottom = CreateButton("btnTextBottom", 31, btnBottom_Click);
- btnColor = new ColorButtonItem(23, Color.Black);
- btnColor.BeginGroup = true;
- btnColor.Name = "btnTextColor";
- btnColor.Click += btnColor_Click;
- btnHighlight = CreateButton("btnTextHighlight", 24, btnHighlight_Click);
- btnAngle = CreateButton("btnTextAngle", 64, btnAngle_Click);
- Items.AddRange(new BaseItem[] {
- cbxName, cbxSize, btnBold, btnItalic, btnUnderline,
- btnLeft, btnCenter, btnRight, btnJustify,
- btnTop, btnMiddle, btnBottom,
- btnColor, btnHighlight, btnAngle, CustomizeItem });
- #else
- cbxName = new ToolStripFontComboBox();
- cbxName.Owner = this;
- cbxName.Name = "cbxTextName";
- cbxName.AutoSize = false;
- cbxName.Width = 140;
- cbxName.FontSelected += cbxName_FontSelected;
- cbxSize = new ToolStripFontSizeComboBox();
- cbxSize.Name = "cbxTextSize";
- cbxSize.AutoSize = false;
- cbxSize.Width = 45;
- cbxSize.SizeSelected += cbxSize_SizeSelected;
- btnBold = CreateButton("btnTextBold", 20, btnBold_Click);
- btnItalic = CreateButton("btnTextItalic", 21, btnItalic_Click);
- btnUnderline = CreateButton("btnTextUnderline", 22, btnUnderline_Click);
- btnLeft = CreateButton("btnTextLeft", 25, btnLeft_Click);
- btnCenter = CreateButton("btnTextCenter", 26, btnCenter_Click);
- btnRight = CreateButton("btnTextRight", 27, btnRight_Click);
- btnJustify = CreateButton("btnTextJustify", 28, btnJustify_Click);
- btnTop = CreateButton("btnTextTop", 29, btnTop_Click);
- btnMiddle = CreateButton("btnTextMiddle", 30, btnMiddle_Click);
- btnBottom = CreateButton("btnTextBottom", 31, btnBottom_Click);
- btnColor = new ToolStripColorButton(23, Color.Black);
- btnColor.Name = "btnTextColor";
- btnColor.ButtonClick += btnColor_Click;
- btnHighlight = CreateButton("btnTextHighlight", 24, btnHighlight_Click);
- btnAngle = new ToolStripTextAngleButton();
- btnAngle.Name = "btnTextAngle";
- btnAngle.Image = this.GetImage(64);
- btnAngle.AngleChanged += btnAngle_AngleChanged;
- Items.AddRange(new ToolStripItem[] {
- cbxName, cbxSize, btnBold, btnItalic, btnUnderline, new ToolStripSeparator(),
- btnLeft, btnCenter, btnRight, btnJustify, new ToolStripSeparator(),
- btnTop, btnMiddle, btnBottom, new ToolStripSeparator(),
- btnColor, btnHighlight, btnAngle });
- #endif
- Localize();
- UpdateDpiDependencies();
- }
- }
- }
|