Be Book Tracker Indeks Tracker'a

Protokół wtyczek (add-on) Tracker'a

Tracker (tropiciel) dostarcza wygodny mechanizm skrótów poprzez użycie wtyczek (add-ons). Użytkownik może uzyskać dostęp do specjalnego menu przez kliknięcie na Tracker'ze. Tracker współdziała z wtyczkami (add-on) poprzez funkcję process_refs() opisaną poniżej.

Wtyczki (add-ons) Tracker'a powinny być umieszczone w /boot/home/config/add-ons/Tracker. Skrót klawiszowy może zostać skojarzony z wtyczką przez dołączenie myślnika następującego za skrótem klawiszowym do nazwy pliku wtyczki.


process_refs()

Zadeklarowana w:  be/be/add-ons/tracker/TrackerAddOn.h

void process_refs(entry_ref dir_ref, BMessage *msg, void *reserved)

Tracker wywołuje tę funkcję kiedy użytkownik wywołuje wtyczkę (add-on). Katalog bieżący jest znajdowany w dir_ref. Argument msg jest standardowym komunikatem B_REFS_RECEIVED typu BMessage z tablicą "refs" zawierającą zmiennne entry_ref plików wybranych przez użytkownika. Trzeci argument jest obecnie nieużywany.

process_refs() działa w oddzielnych wątkach wewnątrz zespołu Tracker'a, więc jeśli Twoja wtyczka (add-on) zawiesi się to Tracker również się zawiesi.

Prześledź prostą wtyczkę (Add-On) Tracker'a. Jest to po prostu przekazanie zawartości argumentów do process_refs() i otrzymanie ich w oknie.

#include <Application.h>
#include <InterfaceKit.h>
#include <StorageKit.h>

#include <stdio.h>
#include <string.h>

#include <be/add-ons/tracker/TrackerAddon.h>

void process_refs(entry_ref dir_ref, BMessage *msg, void *)
{
BWindow *window = new BWindow(BRect(100,100,300,300),
   "Przykładowy dodatek Tracker'a", B_TITLED_WINDOW, 0);
BTextView *view = new BTextView(BRect(0,0,200,200), "widok",
   BRect(0,0,200,200), B_FOLLOW_ALL_SIDES, B_WILL_DRAW |
   B_FULL_UPDATE_ON_RESIZE);

BPath path;
BEntry entry(&dir_ref);
entry.GetPath(&path);
view->Insert("Bieżący katalog: ");
view->Insert(path.Path());
view->Insert("n");

int refs;
entry_ref file_ref;
for (refs=0;msg->FindRef("odnośniki", refs, &file_ref) == B_NO_ERROR;refs++) {
if (refs == 0)
      view->Insert("Wybrane pliki:n");
entry.SetTo(&file_ref);
entry.GetPath(&path);
view->Insert(path.Path());
view->Insert("n");
}

if (refs == 0)
view->Insert("Nie wybrano żadnych plików.n");

view->MakeEditable(false);
window->AddChild(view);
window->Show();
}

main()
{
new BApplication("application/x-sample-tracker-add-on");
(new BAlert("", "Przykładowy dodatek Tracker", "kapitalnie"))->Go();
delete be_app;
}


Be Book Tracker Indeks Tracker'a

 

Be Book,
...w ślicznym HTML...
dla BeOS wydanie 5

Copyright © 2000 Be, Inc. Wszelkie prawa zastrzeżone.