anonymous@RULINUX.NET~# Last login: 2024-12-23 12:35:20
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[midori][дополнение] Проба пера

Вот решил написать дополнение для midori. А именно, очень нужен аналог mplayer-plugin, но без привязки к gecko. Решил начать с азов :) Пока что это бессмысленное дополнение, которое просто выводит в статус-бар текст. Дальше планирую выводить время, дату, может прогноз погоды. Для меня это актуально, но я не кде-шник, у меня не будет много часов :) Просто у меня midori открыт на полный экран, так что часы будут полезны. Плюс, гипотетически, также могут быть полезны во всяких киосках. Следуя принципу release often, release early выложу суда первую пробу пера. В принципе, это можно использовать как шаблон для написания других дополнений.

PS: Выкладываю я это прежде всего для себя. Лень на флешках носить :)

  1.  #include <midori/midori.h>
  2.  
  3.  static void add_browser_cb (MidoriApp*, MidoriBrowser*, MidoriExtension*);
  4.  
  5.  static void deactivate_cb (MidoriExtension *extension,
  6.   GtkWidget *label)
  7.  {
  8.   MidoriApp *app=midori_extension_get_app(extension);
  9.  
  10.   gtk_widget_destroy(label);
  11.   g_signal_handlers_disconnect_by_func (extension,
  12.   deactivate_cb,
  13.   label);
  14.   g_signal_handlers_disconnect_by_func (app,
  15.   add_browser_cb,
  16.   extension);
  17.  }
  18.  
  19.  static void add_browser_cb (MidoriApp *app,
  20.   MidoriBrowser *browser,
  21.   MidoriExtension *extension)
  22.  {
  23.   GtkWidget *statusbar;
  24.  // GtkWidget *bbox;
  25.  // GtkWidget *button;
  26.  // GtkWidget *image;
  27.   GtkWidget *label;
  28.  
  29.   statusbar=katze_object_get_object(browser,"statusbar");
  30.   label=gtk_label_new("Test and nothing else!");
  31.   gtk_widget_show(label);
  32.   gtk_box_pack_end(GTK_BOX(statusbar),label,FALSE,FALSE,0);
  33.  
  34.   g_signal_connect(extension, "deactivate",
  35.   G_CALLBACK(deactivate_cb),label);
  36.  }
  37.  
  38.  static void activate_cb (MidoriExtension *extension, MidoriApp *app)
  39.  {
  40.   KatzeArray *browsers;
  41.   MidoriBrowser *browser;
  42.   guint i;
  43.  
  44.   browsers=katze_object_get_object(app,"browsers");
  45.   i=0;
  46.   while((browser=katze_array_get_nth_item(browsers,i++)))
  47.   add_browser_cb(app,browser,extension);
  48.   g_signal_connect (app, "add-browser",
  49.   G_CALLBACK(add_browser_cb),extension);
  50.  }
  51.  
  52.  MidoriExtension* extension_init (void)
  53.  {
  54.   MidoriExtension *extension=g_object_new(MIDORI_TYPE_EXTENSION,
  55.   "name", _("Simple Test Extension"),
  56.   "description", _("Some awesom extension, in the future, may be..."),
  57.   "version", "0.0.1",
  58.   "authors", "Anonymous <[email protected]>",
  59.   NULL);
  60.  
  61.   g_signal_connect(extension, "activate",
  62.   G_CALLBACK(activate_cb),NULL);
  63.  
  64.   return extension;
  65.  }

anonymous(*) (2009-06-26 18:54:09)

Midori/0.1.7 (X11; Linux; U; ru-ru) WebKit/532+

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: [midori][дополнение] Проба пера от anonymous 2009-06-26 18:54:09
avatar
Скрыть

Re:[midori][дополнение] Проба пера

Что это, как собрать и как запустить: копируем текст в файл в директории $midori_src/extension. У меня файл называется просто test.c. Далее, собираем. Если midori ещё не установлен, то просто

    ./configure && make && make install}. В противном случае, code{./configure –prefix=<куда ставили midori> <прочие флаги> && make
. Никаких Makefile-ов править не нужно. Используется система сборки на основе waf, она сама всё найдёт. По итогам компиляции будет создан файл lib$имя_файла.so. В моём случае, libtest.so. Файл находится в $midori_src/_build_/default/extensions/. Далее его нужно скопировать в директорию $libexec/. У меня это /usr/lib/midori. Всё. Теперь запускаем midori и на боковой панели (F9) ищем вкладку "Дополниния". Там выбираем наше дополнение и нажимаем кнопку "Включить". В статус-баре должен появиться текст. :)

PS: У меня 0.1.7, на других версиях не проверял.

anonymous(*)(2009-06-26 19:03:41)

Midori/0.1.7 (X11; Linux; U; ru-ru) WebKit/532+
[#] [Добавить метку] [Редактировать] Ответ на: [midori][дополнение] Проба пера от anonymous 2009-06-26 18:54:09
avatar
Скрыть

Re:[midori][дополнение] Проба пера

Спасибо. Возьму на заметку.

Tuxoid(*)(2009-06-26 21:41:44)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060200 SUSE/3.0.11-0.1.1 Firefox/3.0.11
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!