This commit is contained in:
chi
2024-01-22 09:26:20 +09:00
parent ff50832bdd
commit 7278f66857
105 changed files with 13 additions and 1221 deletions

View File

@@ -0,0 +1,36 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class BoldButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("Bold", false, null);
}
public Image IconImage
{
get
{
return Resources.bold;
}
}
public string IconName
{
get { return "Bold"; }
}
public string IconTooltip
{
get { return "Bold"; }
}
public string CommandIdentifier
{
get { return "Bold"; }
}
}
}

View File

@@ -0,0 +1,37 @@
using System.Drawing;
using YARTE.Properties;
using System;
namespace YARTE.UI.Buttons
{
public class CheckboxButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Editor.insertCheckbox();
}
public Image IconImage
{
get
{
return Resources.insertcheckbox;
}
}
public string IconName
{
get { return "Insert Checkbox"; }
}
public string IconTooltip
{
get { return "Insert Checkbox"; }
}
public string CommandIdentifier
{
get { return ""; }
}
}
}

View File

@@ -0,0 +1,41 @@
using System.Drawing;
using System.Windows.Forms;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class ForecolorButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
var colorPicker = new ColorDialog();
var result = colorPicker.ShowDialog();
if(result == DialogResult.OK)
{
var color = colorPicker.Color;
var hexcolor = ColorTranslator.ToHtml(color);
args.Document.ExecCommand("ForeColor", false, hexcolor);
}
}
public Image IconImage
{
get { return Resources.fontforecolorpicker; }
}
public string IconName
{
get { return "Color"; }
}
public string IconTooltip
{
get { return "Color"; }
}
public string CommandIdentifier
{
get { return "ForeColor"; }
}
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace YARTE.UI.Buttons
{
public struct ButtonArgs
{
public HtmlDocument Document;
public HtmlEditor Editor;
}
public interface IButton
{
string IconName { get; }
string IconTooltip { get; }
}
}

View File

@@ -0,0 +1,12 @@
using System.Drawing;
using System.Windows.Forms;
namespace YARTE.UI.Buttons
{
public interface IFunctionButton : IButton
{
void IconClicked(ButtonArgs doc, ToolStripButton btn);
string Label { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System.Drawing;
using System.Windows.Forms;
namespace YARTE.UI.Buttons
{
public interface IHTMLEditorButton : IButton
{
void IconClicked(ButtonArgs doc);
Image IconImage { get; }
/// <summary>
/// This is the string that will be used to poll the text area to determine if the cursor
/// is in a given area (say, 'Bold') and show the corresponding button as selected
/// Leave blank if there is no command or you have no idea what to put here
/// </summary>
string CommandIdentifier { get; }
}
}

View File

@@ -0,0 +1,41 @@
using System.Drawing;
using Microsoft.VisualBasic;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class InsertLinkedImageButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
var x = args.Editor.Location.X + 10;
var y = args.Editor.Location.Y + 10;
var url = Interaction.InputBox("Please enter an image url", "URL", null, x, y);
if (!string.IsNullOrEmpty(url))
{
args.Document.ExecCommand("InsertImage", false, url);
}
}
public Image IconImage
{
get { return Resources.insertimage; }
}
public string IconName
{
get { return "Linked image"; }
}
public string IconTooltip
{
get { return "Linked image"; }
}
public string CommandIdentifier
{
get { return "InsertImage"; }
}
}
}

View File

@@ -0,0 +1,35 @@
using System;
using System.Drawing;
using System.Windows.Forms;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class ItalicButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("Italic", false, null);
}
public Image IconImage
{
get { return Resources.italic; }
}
public string IconName
{
get { return "Italic"; }
}
public string IconTooltip
{
get { return "Italic"; }
}
public string CommandIdentifier
{
get { return "Italic"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class JustifyCenterButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand(CommandIdentifier, false, null);
}
public Image IconImage
{
get { return Resources.justifycenter; }
}
public string IconName
{
get { return "Justify center"; }
}
public string IconTooltip
{
get { return "Justify center"; }
}
public string CommandIdentifier
{
get { return "JustifyCenter"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class JustifyLeftButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand(CommandIdentifier, false, null);
}
public Image IconImage
{
get { return Resources.justifyleft; }
}
public string IconName
{
get { return "Justify left"; }
}
public string IconTooltip
{
get { return "Justify left"; }
}
public string CommandIdentifier
{
get { return "JustifyLeft"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class JustifyRightButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand(CommandIdentifier, false, null);
}
public Image IconImage
{
get { return Resources.justifyright; }
}
public string IconName
{
get { return "Justify right"; }
}
public string IconTooltip
{
get { return "Justify right"; }
}
public string CommandIdentifier
{
get { return "JustifyRight"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class LinkButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("CreateLink", true, null);
}
public Image IconImage
{
get { return Resources.createlink; }
}
public string IconName
{
get { return "Create link"; }
}
public string IconTooltip
{
get { return "Create link"; }
}
public string CommandIdentifier
{
get { return "CreateLink"; }
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class OrderedListButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("InsertOrderedList", false, null);
}
public Image IconImage
{
get { return Resources.numberedlist; }
}
public string IconName
{
get { return "Ordered list"; }
}
public string IconTooltip
{
get { return "Ordered list"; }
}
public string CommandIdentifier
{
get { return "InsertOrderedList"; }
}
}
}

View File

@@ -0,0 +1,34 @@
using System.Linq;
namespace YARTE.UI.Buttons
{
public static class PredefinedButtonSets
{
private static readonly string[] _webSafeFonts = new [] { "맑은 고딕", "Courier New", "Times New Roman", "Georgia", "Arial", "Verdana"};
public static void SetupDefaultButtons(HtmlEditor editor)
{
editor.AddToolbarItem(new BoldButton());
editor.AddToolbarItem(new ItalicButton());
editor.AddFontSelector(_webSafeFonts);
editor.AddFontSizeSelector(Enumerable.Range(1,10));
editor.AddToolbarDivider();
editor.AddToolbarItem(new LinkButton());
editor.AddToolbarItem(new UnlinkButton());
editor.AddToolbarDivider();
editor.AddToolbarItem(new InsertLinkedImageButton());
editor.AddToolbarDivider();
editor.AddToolbarItem(new OrderedListButton());
editor.AddToolbarItem(new UnorderedListButton());
editor.AddToolbarDivider();
editor.AddToolbarItem(new ForecolorButton());
editor.AddToolbarDivider();
editor.AddToolbarItem(new JustifyLeftButton());
editor.AddToolbarItem(new JustifyCenterButton());
editor.AddToolbarItem(new JustifyRightButton());
editor.AddToolbarDivider();
editor.AddToolbarItem(new ReadOnlyButton());
editor.AddToolbarItem(new CheckboxButton());
}
}
}

View File

@@ -0,0 +1,47 @@
using System;
using System.Drawing;
using System.Windows.Forms;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class ReadOnlyButton : IFunctionButton
{
private string _label = "Enter View Mode";
public void IconClicked(ButtonArgs args)
{
args.Editor.ReadOnly = !args.Editor.ReadOnly;
}
public void IconClicked(ButtonArgs args, ToolStripButton button)
{
if (_label.Equals("Enter Edit Mode"))
{
_label = "Enter View Mode";
}
else
{
_label = "Enter Edit Mode";
}
button.Text = _label;
args.Editor.ReadOnly = !args.Editor.ReadOnly;
}
public string Label
{
get { return _label; }
set { _label = value; }
}
public string IconName
{
get { return "Read Only"; }
}
public string IconTooltip
{
get { return _label; }
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class UnderlineButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("Underline", false, null);
}
public Image IconImage
{
get { return Resources.underline; }
}
public string IconName
{
get { return "Underline"; }
}
public string IconTooltip
{
get { return "Underline"; }
}
public string CommandIdentifier
{
get { return "Underline"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class UnlinkButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("Unlink", false, null);
}
public Image IconImage
{
get { return Resources.unlink; }
}
public string IconName
{
get { return "Unlink"; }
}
public string IconTooltip
{
get { return "Unlink"; }
}
public string CommandIdentifier
{
get { return "Unlink"; }
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Drawing;
using YARTE.Properties;
namespace YARTE.UI.Buttons
{
public class UnorderedListButton : IHTMLEditorButton
{
public void IconClicked(ButtonArgs args)
{
args.Document.ExecCommand("InsertUnorderedList", false, null);
}
public Image IconImage
{
get { return Resources.bulletedlist; }
}
public string IconName
{
get { return "Unordered list"; }
}
public string IconTooltip
{
get { return "Unordered list"; }
}
public string CommandIdentifier
{
get { return "InsertUnorderedList"; }
}
}
}