Paaa.... predjite na managed jezike
Inache, idemo malo dublje. Pregled klase Plugin:
bool Active
Pokazuje da li je plugin aktivan, pod "aktivan" se misli na to da li je trenutno selektovan na toolbaru. Ukoliko nije, nece imati pristup eventima kao sto su MouseUp, MouseDown etc...
string PluginName
Ime plugina.
string PicturePath
Ime slike koja se koristi za toolbar. Ukoliko se plugin ne pokazuje na toolbaru, ostaje prazno. Podrazumeva se da se slika trazi u img/ folderu tako da pisete samo ime fajla.
bool OnPanel
Da li se prikazuje na toolbaru?
Button Button
Dugme koje se koristi za plugin na toolbaru.
Eventi:
Kod:
PluginAction OnActivate;
PluginAction OnDeactivate;
EventHandler Click;
MouseEventHandler MouseDown;
MouseEventHandler MouseUp;
MouseEventHandler MouseMove;
KeyEventHandler KeyDown;
KeyEventHandler KeyUp;
PaintEventHandler Paint;
Paint se odnosi na paint pictureboxa.
KeyDown i KeyUp se odnose na formu, kao i mouse akcije.
Click za click na toolbaru.
OnActivate i OnDeactivate se koriste kao eventi kada se kontrola aktivira (postane selektovana) i kada se deselektuje. Mogu se koristiti za npr. prikazivanje i sakrivanje nekog prozora, ili sta god vam padne na pamet.
Sto se tice pristupanja glavnoj aplikaciji, postoji staticna klasa AppManager. Preko nje se moze pristupiti pictureboxu, nekim svojstvima forme, dijalozima za open/save.
Da bi imali vishe ikona na toolbaru (npr. drugachiji plugini koji rade odredjen posao) dovoljno je da u projektu imate vishe plugina, i samo ih u Initialize kreirajte.
Ne znam sta vishe da kazem
Source dobijate kad ga malo sredim :P dotad C# u ruke i prosirite aplikaciju.
EDIT:
i da, primer OpenPlugin-a, koji sluzi za otvaranje slika:
Kod:
public class OpenPlugin : Plugin
{
public OpenPlugin()
: base("OpenPlugin", "open.png")
{
Click += new EventHandler(mouseUp);
}
private void mouseUp(object sender, EventArgs args)
{
AppManager.openDialog.Filter = "All graphics files (*.png, *.jpg, *.gif, *.bmp)|*.png;*.jpg;*.gif;*.bmp";
DialogResult res = AppManager.openDialog.ShowDialog();
if (res == DialogResult.OK)
{
if (File.Exists(AppManager.openDialog.FileName))
{
AppManager.Picture.Image = Image.FromFile(AppManager.openDialog.FileName);
AppManager.Picture.Size = AppManager.Picture.Image.Size;
AppManager.Picture.Left = (AppManager.FormSize.Width - AppManager.Picture.Width) / 2;
AppManager.Picture.Top = (AppManager.FormSize.Height - AppManager.Picture.Height) / 2 - 34;
}
}
}
}
novi edit:
slobodno obrishite MyPlugin.dll koji se nalazi u folderu sa programom, on sluzi samo kao test (menja Text forme).
i da, svaki plugin koji se napravi ide u folder sa exe fajlom