| using System; |
| using System.Collections.Generic; |
| using System.ComponentModel; |
| using System.Drawing; |
| using System.Data; |
| using System.Text; |
| using System.Windows.Forms; |
| using WindowsLive.Writer.Api; |
| using Wilco.SyntaxHighlighting; |
| using vbAccelerator.Components.Controls; |
|
| namespace CodeSyntaxHighLighter |
| { |
| public partial class ContentEditor : SmartContentEditor, IDisposable |
| { |
| WindowsLive.Writer.Api.ISmartContentEditorSite _editorSite; |
| public ContentEditor(WindowsLive.Writer.Api.ISmartContentEditorSite editorSite) |
| { |
| InitializeComponent(); |
| _codeBlockSize.DataBindings.Add("Visible", _fixedSizeCheck, "Checked"); |
| _widthText.DataBindings.Add("Enabled", _fixedWidthCheck, "Checked"); |
| _heighText.DataBindings.Add("Enabled", _fixedHeighCheck, "Checked"); |
|
| _editorSite = editorSite; |
| _editorSite.ContentResized += _editorSite_ContentResized; |
|
| FillInHighlighters(); |
| } |
|
| void _editorSite_ContentResized(object sender, EventArgs e) |
| { |
| FillInSize(); |
| } |
|
| private void FillInHighlighters() |
| { |
| foreach (HighlighterBase hl in Register.Instance.Highlighters) |
| { |
| string key = hl.Name.ToLower(); |
| ImageComboItem iitem = new ImageComboItem(); |
| if (_languageList.Images.ContainsKey(key)) |
| iitem.Image = this._languageList.Images[key]; |
| else |
| iitem.Image = _languageList.Images[0]; |
| iitem.Text = hl.Name; |
| _imageComboBox.Items.Add(iitem); |
| } |
| } |
|
| private void _widthText_Validating(object sender, CancelEventArgs e) |
| { |
| int defaultValue; |
| string key; |
| if (sender == _widthText) |
| { |
| key = "Width"; |
| defaultValue = AdvancedPlugin.DefaultWidth; |
| } |
| else if (sender == _heighText) |
| { |
| key = "Height"; |
| defaultValue = AdvancedPlugin.DefaultHeight; |
| } |
| else return; |
|
| bool result = true; |
| TextBox box = (TextBox)sender; |
| string value = box.Text.Trim(); |
|
| int intValue = -1; |
| if (Int32.TryParse(value, out intValue)) |
| { |
| if (intValue < 0) result = false; |
| } |
| else |
| result = false; |
|
| if (result) |
| { |
| SelectedContent.Properties.SetString(key, value); |
| OnContentEdited(); |
| } |
| else |
| box.Text = SelectedContent.Properties.GetString(key, defaultValue.ToString()); |
| } |
|
| private void _imageComboBox_SelectionChangeCommitted(object sender, EventArgs e) |
| { |
| ImageComboItem item = (ImageComboItem)_imageComboBox.SelectedItem; |
| SelectedContent.Properties.SetString("Language", item.Text); |
| OnContentEdited(); |
| } |
|
| private void settingsCheckBoxes_CheckedChanged(object sender, EventArgs e) |
| { |
| CheckBox box = (CheckBox)sender; |
| string key = box.Tag.ToString(); |
| SelectedContent.Properties.SetBoolean(key, box.Checked); |
| OnContentEdited(); |
| } |
|
| protected override void OnSelectedContentChanged() |
| { |
| base.OnSelectedContentChanged(); |
|
| _fixedSizeCheck.Checked = SelectedContent.Properties.GetBoolean(_fixedSizeCheck.Tag.ToString(), false); |
| _fixedWidthCheck.Checked = SelectedContent.Properties.GetBoolean(_fixedWidthCheck.Tag.ToString(), false); |
| _fixedHeighCheck.Checked = SelectedContent.Properties.GetBoolean(_fixedHeighCheck.Tag.ToString(), false); |
|
| FillInSize(); |
|
| string language = SelectedContent.Properties.GetString("Language", "C#"); |
| ImageComboItem lngItem; |
| foreach (Object item in _imageComboBox.Items) |
| { |
| lngItem = (ImageComboItem)item; |
| if (lngItem.Text == language) |
| { |
| _imageComboBox.SelectedItem = lngItem; |
| break; |
| } |
| } |
| } |
|
| private void FillInSize() |
| { |
| _widthText.Text = SelectedContent.Properties.GetString("Width", AdvancedPlugin.DefaultWidth.ToString()); |
| _heighText.Text = SelectedContent.Properties.GetString("Height", AdvancedPlugin.DefaultHeight.ToString()); |
| } |
|
| #region IDisposable Members |
|
| void IDisposable.Dispose() |
| { |
| _editorSite.ContentResized -= _editorSite_ContentResized; |
| } |
|
| #endregion |
| } |
| } |
|