So, it seems I really like working with Input Methods.
This time I present you the Qt4 input context plugin for Hildon Input Method. So for now all Qt4 applications can make use of the maemo keyboard.
The code is still in its initial stage, but it's working so far. You can grab it from here.
Contributions are really welcome. If you want to help, please consider looking at the FIXME list on qhildoninputcontext.cpp :).
UPDATE: Thanks to Rodarvus to point me out that qhildoninputmethod.cpp didn't exist, changing to qhildoninputcontext.cpp :D
Monday, May 05, 2008
Maemo Keyboard on Qt4 applications
Tuesday, November 20, 2007
iPhone like keyboard on Canola
So after creating the framework to allow different input methods for Ecore and added Maemo Keyboard support for it, I decided to try a fancier thing.
It took me a few hours to get the amazing work done by Gustavo, port it to C and create an Ecore Input Method for it.
You can see the result on this video:
I would like to clarify that this video is just to demonstrate how easy is to create your own input method for Ecore. It doesn't mean that Canola will use it.
So that's it, I hope you enjoy.
If you are interested you can download the code from here.
Friday, November 16, 2007
Maemo Keyboard on Ecore applications
Last week, we at the office were discussing how we should integrate the maemo keyboard with the new Canola. After some time studying how Input Methods work, I decided to implement a framework for pluggable IM on Ecore, called Ecore_IM.
Ecore_IM is based on Gtk/Qt Input Method frameworks and works with pluggable so called immodules. So after writing the API for Ecore_IM I wrote a plugin hildon-input-method for accessing the maemo keyboard.
I already integrated it with Etk, so all Etk applications running on the device will automatically show the keyboard when requested. I intend to implement support for E widgets, so Mamona that is shipping with E can use the maemo keyboard.
If you are interested in using it or integrating it in your application you can grab it from here. The Etk support can be found here.
I hope this get integrated in Ecore really soon, so stay tuned.
Friday, November 09, 2007
N810 maemo submission accepted
N810 maemo submission acceptedHooray! I can't wait to put my hands on my new toy!!!
Congratulations! You have been accepted to the N810 maemo device
program. We will send your discount and instructions as soon as the
device is available in your selected shop (soon).
Monday, September 10, 2007
GObject skeleton generator for Vim
So after reading this blog entry from Gustavo, I found it interesting and decided to do the same for Vim, as I would never use Emacs :D. So I found this script and did some small changes to make it fit better the GTK+ coding style.
To use the script first copy it to ~/.vim/plugin directory, then open a file with vim and run one of the commands:
- GOBGenerateH
To generate the class definition.
- GOBGenerateC
To generate the class implementation.
If you are interested, you can download the updated version of the script from here
Saturday, September 08, 2007
GtkCanvas
I believe GTK+ is really missing a good canvas implementation to make it easy to create rich UI applications such as Plasma, Canola, ....
Plasma is using QGraphicsView framework, a really good canvas framework, that enables you to create really nice UIs with nice animations/transitions. As already stated in some blogs [1], Canola will be using Evas for it's next version. So why not have a GtkCanvas? As i said in the previous post, I together with Renato already started creating a GtkTransition class. Together with a Canvas implementation you can create really nice animations really easy. I will be posting a video of an example application soon.
So if you are interested on this topic see this thread on gtk-devel mailing list
[1]
http://www.marceloeduardo.com/blog/mobile-applications/canola-development-update-or-we-are-not-dead
Creating transitions with GTK+
Anyone knows that creating transitions (animations) using GTK+ is not the easiest thing to do. So after some discussions with Renato we came up with a API to make it easier.
So today I sat down and wrote GtkTransition, a class written on top of GtkTimeline [1] that allows you to create transitions as natural as it can be. It's similar to what Flash does to create animations, but with some small differences.
Basically you create a transition with an interval (eg. 2 seconds) and add states for this transition. States work directly on objects properties, so you can say for example, create a state that will complete when the transition reaches 50% that will set the label angle from 0 to 360 degrees. After that create another state that will complete on 100% of the transition that will set the same angle from 360 to 0 degreess and depends on the first state (it will start after the first state has completed).
The code looks something like:
transition = gtk_transition_new (2000);
gtk_timeline_set_loop (GTK_TIMELINE (transition), TRUE);
state1 = gtk_transition_state_new (G_OBJECT (label));
gtk_transition_state_set (state1, "angle", 0.0, 360.0, NULL);
gtk_transition_add_state (transition, state1, NULL, 0.5);
state2 = gtk_transition_state_new (G_OBJECT (label));
gtk_transition_state_set (state2, "angle", 360.0, 0.0, NULL);
gtk_transition_add_state (transition, state2, state1, 1.0);
gtk_timeline_start (GTK_TIMELINE (transition));
The code is not complete yet, but you can grab it with:
$ svn checkout http://andrunko.googlecode.com/svn/trunk/gtk
There is a test1.c that shows the code to rotate the label, and test2.c that translate and resize a GooCanvasItem (you need goocanvas [1] to compile it)
Patches and ideas are welcome!
Hope you enjoy
[1]
http://bugzilla.gnome.org/show_bug.cgi?id=444659
[2]
http://sourceforge.net/projects/goocanvas
Edit: updated code snippet
Thursday, November 30, 2006
Canola is out!!!
Wow, we finally released canola. I can't say how happy I am. I want to congrat the whole team for the great work so far. Now for you that can't wait anymore to try it out, do the following:
Add the following repositories to your application catalogue (Application Manager/Tools/Application Catalogue...):
Address: http://openbossa.indt.org/canola/repository
Distribution: scirocco
Components: user
Address: http://repository.maemo.org
Distribution: scirocco
Components: free non-free
If you are using mistral (2.0), just replace distribution with mistral.
Now, refresh you packages list (Application Manager/Tools/Refresh Package List...), then go to "Install new applications" and select canola.
After installation, reboot your device, and enjoy it :-)
Now it's time to get some food :-P.
Any feedback is welcome
