<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_2463"  />
<title>rulinux.net - Форум - Development - [midori][дополнение] Проба пера</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - [midori][дополнение] Проба пера</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re:[midori][дополнение] Проба пера</title>
<link>https://rulinux.net/message.php?newsid=2463&amp;page=1#16465</link>
<guid>https://rulinux.net/message.php?newsid=2463&amp;page=1#16465</guid>
<pubDate>Fri, 26 Jun 2009 17:41:44 +0400</pubDate>
<description><![CDATA[<p>Спасибо. Возьму на заметку.</p>]]></description>
</item>
<item>
<title>Re:[midori][дополнение] Проба пера</title>
<link>https://rulinux.net/message.php?newsid=2463&amp;page=1#16464</link>
<guid>https://rulinux.net/message.php?newsid=2463&amp;page=1#16464</guid>
<pubDate>Fri, 26 Jun 2009 15:03:41 +0400</pubDate>
<description><![CDATA[<p>Что это, как собрать и как запустить: копируем текст в файл в директории $midori_src/extension. У меня файл называется просто test.c. Далее, собираем. Если midori ещё не установлен, то просто <fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">./configure &amp;&amp; make &amp;&amp; make install}. В противном случае, code{./configure &#8211;prefix=&lt;куда ставили midori&gt; &lt;прочие флаги&gt; &amp;&amp; make</ol></fieldset>. Никаких Makefile-ов править не нужно. Используется система сборки на основе waf, она сама всё найдёт. По итогам компиляции будет создан файл lib$имя_файла.so. В моём случае, libtest.so. Файл находится в $midori_src/_build_/default/extensions/. Далее его нужно скопировать в директорию $libexec/. У меня это /usr/lib/midori. Всё. Теперь запускаем midori и на боковой панели (F9) ищем вкладку "Дополниния". Там выбираем наше дополнение и нажимаем кнопку "Включить". В статус-баре должен появиться текст. :)</p><p>PS: У меня 0.1.7, на других версиях не проверял.</p>]]></description>
</item>
<item>
<title>[midori][дополнение] Проба пера</title>
<link>https://rulinux.net/message.php?newsid=2463&amp;page=1#16463</link>
<guid>https://rulinux.net/message.php?newsid=2463&amp;page=1#16463</guid>
<pubDate>Fri, 26 Jun 2009 14:54:09 +0400</pubDate>
<description><![CDATA[<p>Вот решил написать дополнение для midori. А именно, очень нужен аналог mplayer-plugin, но без привязки к gecko. Решил начать с азов :) Пока что это бессмысленное дополнение, которое просто выводит в статус-бар текст. Дальше планирую выводить время, дату, может прогноз погоды. Для меня это актуально, но я не кде-шник, у меня не будет много часов :) Просто у меня midori открыт на полный экран, так что часы будут полезны. Плюс, гипотетически, также могут быть полезны во всяких киосках.
Следуя принципу release often, release early выложу суда первую пробу пера.
В принципе, это можно использовать как шаблон для написания других дополнений.</p><p>PS: Выкладываю я это прежде всего для себя. Лень на флешках носить :)</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#include &lt;midori/midori.h&gt;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;static void add_browser_cb (MidoriApp*, MidoriBrowser*, MidoriExtension*);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;static void deactivate_cb (MidoriExtension *extension,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                           GtkWidget *label)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;{<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        MidoriApp *app=midori_extension_get_app(extension);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        gtk_widget_destroy(label);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        g_signal_handlers_disconnect_by_func (extension,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                                              deactivate_cb,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                                              label);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        g_signal_handlers_disconnect_by_func (app,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                                              add_browser_cb,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                                              extension);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;}<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;static void add_browser_cb (MidoriApp *app,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                            MidoriBrowser *browser,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                            MidoriExtension *extension)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;{<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        GtkWidget *statusbar;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;//      GtkWidget *bbox;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;//      GtkWidget *button;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;//      GtkWidget *image;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        GtkWidget *label;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        statusbar=katze_object_get_object(browser,"statusbar");<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        label=gtk_label_new("Test and nothing else!");<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        gtk_widget_show(label);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        gtk_box_pack_end(GTK_BOX(statusbar),label,FALSE,FALSE,0);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        g_signal_connect(extension, "deactivate",<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                G_CALLBACK(deactivate_cb),label);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;}<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;static void activate_cb (MidoriExtension *extension, MidoriApp *app)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;{<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        KatzeArray *browsers;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        MidoriBrowser *browser;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        guint i;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        browsers=katze_object_get_object(app,"browsers");<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        i=0;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        while((browser=katze_array_get_nth_item(browsers,i++)))<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                add_browser_cb(app,browser,extension);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        g_signal_connect (app, "add-browser",<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                G_CALLBACK(add_browser_cb),extension);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;}<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;MidoriExtension* extension_init (void)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;{<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        MidoriExtension *extension=g_object_new(MIDORI_TYPE_EXTENSION,<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                "name", _("Simple Test Extension"),<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                "description", _("Some awesom extension, in the future, may be..."),<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                "version", "0.0.1",<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                "authors", "Anonymous &lt;anonymous@anonymous.org&gt;",<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                NULL);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        g_signal_connect(extension, "activate",<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;                G_CALLBACK(activate_cb),NULL);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;        return extension;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;}</ol></fieldset></p>]]></description>
</item>
</channel>
</rss>