Wrapping Webkit (Part 4 - Chromium/Bash/inotify) 2013-03-29

This is the last in my short series about getting data into and out of a Web application running in Webkit. Previously I wrote about hosting Webkit in a Vala application using GTK+, in a C++ application using Qt and in a Python application using Qt Quick.

This time I'm going to do something a bit different: How can I pass data to and from a Javascript application running in Chromium? I'll be using Bash and command line utilities. Be on the lookout for egregious hacks!

Getting data in

Wrapping Webkit (Part 3 - Qt Quick/Python) 2013-03-23

Last time out, I showed how to get bi-directional communication going between Javascript and C++, using Qt's Webkit component.

This time I'm going to stick with Qt but use its new shiny: Qt Quick. Qt Quick adds a markup language, QML, to the mix.

You use QML to declare which components to build your user interface from. The idea is that a declarative specification will make your user interface work across different types of device (mobile is the main focus).

For application logic, you can use Javascript in QML. Alternatively you can use a language which has Qt (and Qt Quick) bindings. Last time I used C++. This time I'll use PySide — the Python bindings to Qt.

Wrapping Webkit (Part 2 - Qt/C++) 2013-01-27

In my previous post, I showed how to get bi-directional communication going between Javascript and Vala, using GTK+'s Webkit component.

This time I'm going to do the same between Javascript and C++, using Qt's Webkit component. Last time out I decided against using C++ with GTK+ but Qt seems better suited to the language. Let's see how Qt/C++ compares to GTK+/Vala.

We'll be sticking to the same example we used before with Vala:

Wrapping Webkit (Part 1 - GTK+/Vala) 2012-11-10

I wanted to write a user interface in HTML and Javascript but run the rest of the application in some other language that has access to system facilities. Therefore I needed bi-directional communication between the user interface and the application logic. I also wanted to run it as a normal standalone application.

GTK+ and Qt both let you embed the Webkit browser engine to do this. Another option is to run Chromium in kiosk mode.

This post is about using GTK+'s Webkit component. Future posts will look at Qt and Chromium.

Vu Meter 2012-10-07

I wanted a large on-screen volume indicator showing:

  • The microphone amplification level, changing as you adjust it (by pressing keys, for example).

  • Whether the microphone is muted.

  • The current microphone level, changing as you speak into the microphone.

Here's what I did.