This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RepositoryItemMyButtonEdit.cs
63 lines (48 loc) · 2.03 KB
/
RepositoryItemMyButtonEdit.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Linq;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraEditors.Registrator;
using System.ComponentModel;
using DevExpress.XtraEditors.ViewInfo;
namespace CustomDrawButtonEvent {
public class RepositoryItemMyButtonEdit : RepositoryItemButtonEdit {
static RepositoryItemMyButtonEdit() {
Register();
}
public RepositoryItemMyButtonEdit() {
}
internal const string EditorName = "MyButtonEdit";
public static void Register() {
EditorRegistrationInfo.Default.Editors.Add(new EditorClassInfo(EditorName, typeof(MyButtonEdit),
typeof(RepositoryItemMyButtonEdit), typeof(ButtonEditViewInfo),
new CustomButtonEditPainter(), true, null, typeof(DevExpress.Accessibility.ButtonEditAccessible)));
}
public override string EditorTypeName {
get { return EditorName; }
}
private static readonly object drawButton = new object();
[Description("Occurs when custom editor buttons are being drawn."), Category(CategoryName.Events)]
public event DrawButtonEventHandler DrawButton {
add { this.Events.AddHandler(drawButton, value); }
remove { this.Events.RemoveHandler(drawButton, value); }
}
protected internal virtual void RaiseDrawButtonEvent(DrawButtonEventArgs e) {
DrawButtonEventHandler handler = (DrawButtonEventHandler)this.Events[drawButton];
if (handler != null) handler(GetEventSender(), e);
}
public override void Assign(RepositoryItem item) {
RepositoryItemMyButtonEdit source = item as RepositoryItemMyButtonEdit;
BeginUpdate();
try {
base.Assign(item);
if (source == null) return;
}
finally {
EndUpdate();
}
Events.AddHandler(drawButton, source.Events[drawButton]);
}
}
}