Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
midori:tutorial [2014/03/01 23:15] – [Add a context menu item] axlrose | midori:tutorial [2014/03/03 13:28] – [Unit testing] axlrose | ||
---|---|---|---|
Line 159: | Line 159: | ||
<code vala> | <code vala> | ||
- | namespace Sandcat { | + | namespace Sandcat { |
private class Manager : Midori.Extension { | private class Manager : Midori.Extension { | ||
Line 191: | Line 191: | ||
| | ||
//Add group of submenu | //Add group of submenu | ||
- | var submenu = new Midori.ContextAction (" | + | var submenu = new Midori.ContextAction(" |
var listsubmenu = new List< | var listsubmenu = new List< | ||
for (int i = 0; i < 10; i++) | for (int i = 0; i < 10; i++) | ||
- | | + | |
- | listsubmenu.foreach ((entry) => { | + | |
- | | + | entry.activate.connect(() => { |
- | | + | stdout.printf ("I am a submenu\n" |
- | | + | }); |
- | | + | submenu.add(entry); |
- | | + | }); |
- | | + | menu.add (submenu); |
} | } | ||
Line 250: | Line 250: | ||
<code vala> | <code vala> | ||
- | // in browser_added | + | namespace Sandcat { |
- | | + | |
- | | + | |
- | | + | internal Manager () { |
- | </ | + | GLib.Object (name: _("Furry example extension"), |
+ | description: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | void browser_added (Midori.Browser browser) { | ||
+ | var button = new Gtk.Button.with_label (" | ||
+ | var click_counter = 0; | ||
+ | browser.statusbar.pack_start (button, false, false, 3); | ||
+ | button.clicked.connect (() => { | ||
+ | button.label = "You Clicked me (%d) time(s)" | ||
+ | }); | ||
+ | button.show (); | ||
+ | } | ||
+ | |||
+ | void activated (Midori.App app) { | ||
+ | foreach (var browser in app.get_browsers ()) | ||
+ | browser_added (browser); | ||
+ | app.add_browser.connect (browser_added); | ||
+ | } | ||
+ | |||
+ | void deactivated () { | ||
+ | var app = get_app (); | ||
+ | app.add_browser.disconnect (browser_added); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public Midori.Extension extension_init () { | ||
+ | return new Sandcat.Manager (); | ||
+ | } | ||
+ | </ | ||
+ | Enjoy How much time you click :-), you can add any Gtk widget in this button. | ||
====== Add a panel ====== | ====== Add a panel ====== | ||
Line 317: | Line 351: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | With a simple example it will be like that: | ||
+ | <code vala> | ||
+ | void test_furry_purr () { | ||
+ | assert (1 == 1); | ||
+ | } | ||
+ | |||
+ | public void extension_test () { | ||
+ | | ||
+ | } | ||
+ | |||
+ | void main (string[] args) { | ||
+ | Test.init (ref args); | ||
+ | extension_test(); | ||
+ | Test.run (); | ||
+ | }</ | ||
+ | the result of this example is **"/ | ||
+ | |||
+ | Let's try something with an extension. |