понеділок, 3 березня 2008 р.

Plugin enabled application або як пишуться плагіни.

Реалізувати підтримку плагінів для програми найпростіше використавши інтерфейси і динамічно завантажувані бібліотеки.
Та виникає декілька питань що відносяться до дизайну:
  • Як обробляти події та надавати доступ до даних, глобальних змінних.
  • Скільки контролю давати плагіну.
  • Що писати в Plugin.init().

Так виглядає примітивний додаток до плеєра Rhythmbox на мові Python
import rb
class FloonitzPlugin (rb.Plugin):
def __init__(self):
rb.Plugin.__init__(self)
def activate(self, shell):
print "Hello World"

Використано Introduction to Rhythmbox plugins

А це куб-плагін для Compiz - 3D менеджера вікон:
CompPluginVTable cubeVTable = {
"cube",
"Desktop Cube",
"Place windows on cube",
cubeInit,
cubeFini,
cubeInitDisplay,
cubeFiniDisplay,
cubeInitScreen,
cubeFiniScreen,
0, /* InitWindow */
0, /* FiniWindow */
0, /* GetDisplayOptions */
0, /* SetDisplayOption */
cubeGetScreenOptions,
cubeSetScreenOption,
cubeDeps,
sizeof (cubeDeps) / sizeof (cubeDeps[0])
};

CompPluginVTable *
getCompPluginInfo (void)
{
return &cubeVTable;
}

Немає коментарів:

Дописати коментар