Prikaz jedne poruke
Stara 15.10.2009, 13:33   #1513
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Programming Challenges

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
Priloženi fajlovi
Tip fajla: zip source.zip (56,3 KB, 3 puta viđeno)

Poslednja ispravka: EclipsE (16.10.2009 u 0:45)
EclipsE je offline   Odgovor sa citatom ove poruke