АПИ прикључака

Mladen Pejaković edited this page May 4, 2013 · 3 revisions

Available pages:

Clone this wiki locally

Преводи странице: Plugins-API

Руковање догађајима

У вашој поткласи PluginInterface класе неке функције ће бити позване из Капзиле. Следи објашњење како ради руковање догађајима.
Ако желите да ваш прикључак прими догађаје од главних Капзилиних објеката, мораћете да региструјете прикључак као руковаоца догађаја за одређени тип догађаја.

#include "mainapplication.h"
#include "pluginproxy.h"

QZ_REGISTER_EVENT_HANDLER(PluginProxy::EventHandlerType)

Ова табела приказује доступност типова догађаја према типовима објеката:

EventHandlerType Event WebView TabBar QupZilla
MouseDoubleClickHandler mouseDoubleClick не да не
MousePressHandler mousePress да да не
MouseReleaseHandler mouseRelease да да не
MouseMoveHandler mouseMove да да не
WheelEventHandler wheelEvent да да не
KeyPressHandler keyPress да не да
KeyReleaseHandler keyRelease да не да

Наравно, можете и само да инсталирате филтере догађаја, али ако вам требају само ови догађаји, користите их јер имају боље перформансе.

Руковаоци шеме

Можете да региструјете ваш прикључак као руковаоца за одређену урл шему.

#include "mainapplication.h"
#include "networkmanager.h"

QZ_REGISTER_SCHEME_HANDLER("scheme", SchemeHandler*)

SchemeHandler* мора да буде поткласа SchemeHandler класе (дефинисане у schemehandler.h).

Сигнали прикључка

Можете да се повежете на сигнале емитоване по стварању/брисању WebPage и MainWindow објеката.

#include "mainapplication.h"
#include "pluginproxy.h"

connect(mApp->pluginProxy(), SIGNAL( .... );

webPageCreated(WebPage page)* - емитован кад је WebPage додељена WebView (може да се деси више пута за један WebView)
webPageDeleted(WebPage page)* - емитован пре брисања WebPage

mainWindowCreated(QupZilla window)* - емитован по стварању новог прозора
mainWindowDeleted(QupZilla window)* - емитован пре брисања прозора

Додавање бочне траке

Морате да имплементирате поткласу SideBarInterface класе (дефинисане у sidebarinterface.h)

#include "sidebar.h"

// позовите ово, пожељно у init()
SideBarManager::addSidebar("ваш-јединствени-ид", SideBarInterface*);

// remove sidebar, пожељно у unload()
SideBarManager::removeSidebar("ваш-јединствени-ид");