Jump to content

Features/GTK3/Development: Difference between revisions

From Sugar Labs
No edit summary
Erikos (talk | contribs)
 
(10 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== Repos ==
== Repos ==


* http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3 - branch 'master': this is the GTK3 port of sugar-toolkit
* http://git.sugarlabs.org/sugar-toolkit-gtk3 - branch 'master': this is the GTK3 port of sugar-toolkit
* http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3 - branch 'sucrose-0.94': the GTK2 version of sugar-toolkit needs a handful of structure changes prompted by our GTK3 work. They are being committed here.
* http://git.sugarlabs.org/sugar-toolkit - branch 'master': the GTK2 version of sugar-toolkit needs a handful of structure changes prompted by our GTK3 work. They have been committed here.
* http://git.sugarlabs.org/~erikos/sugar/sugar-gtk3 - branch 'master': we are not (yet) porting the sugar shell to GTK3, but a handful of structural changes are needed.
* http://git.sugarlabs.org/sugar - branch 'master': we are not (yet) porting the sugar shell to GTK3, but a handful of structural changes were needed.
* <s>http://git.sugarlabs.org/sugar-artwork - branch 'gtk3': mainline sugar-artwork repo containing the new theme work (folder GTK3)</s>
* http://git.sugarlabs.org/sugar-artwork - branch 'master': mainline sugar-artwork repo containing the new theme work (folder gtk3)
* http://git.sugarlabs.org/~erikos/sugar-artwork/gtk3 - branch gtk3: now being used instead of the above artwork repo
* http://git.sugarlabs.org/browse - branch 'master': Browse port to GTK3
* http://git.sugarlabs.org/~dsd/browse/browse-gtk3 - branch 'master': Browse port to GTK3
* http://git.sugarlabs.org/read - branch 'master': Read port to GTK3
* http://git.sugarlabs.org/hello-world - branch 'master': hello-world ported to GTK3
* http://git.sugarlabs.org/hello-world - branch 'master': hello-world ported to GTK3
* http://cgit.collabora.com/git/user/rgs/abacus-gtk3/ - branch 'master': Abacus ported to GTK3 and to use cairo for drawing
* http://git.sugarlabs.org/~walter/abacus/abacus-gtk3 - branch 'abacus-gtk3': Abacus ported to GTK3 and to use cairo for drawing


== jhbuild setup ==
== jhbuild setup ==


Start with a working "normal" sugar-jhbuild installation.
All the changes have been landed in the master branches. Make sure you have the sugar-toolkit-gtk3 repository checked out and installed. There has been a fix in pygobject. Either compile/install the master branch or in F16 you can install as well the [http://koji.fedoraproject.org/koji/buildinfo?buildID=279522 recent pygobject3] release.


Compile/install a fixed pygobject with [https://bugzilla.gnome.org/show_bug.cgi?id=662994 this chain-up fix]. F16 build available from http://koji.fedoraproject.org/koji/taskinfo?taskID=3473257
== Pending work ==


Apply this patch to sugar-jhbuild: http://dev.laptop.org/~dsd/20111029/sugar-jhbuild-sugar-toolkit-gtk3.patch and build the new GTK3 based sugar toolkit:
* shortcuts in palettes: button tooltips should show the shortcut, if any, next to the tip. Like in the Stop button, "Stop Ctrl+Q"
* title in menus (e.g. 'Back' in the Browse back button palette)


<pre>
===sugar-toolkit-gtk3===
./sugar-jhbuild build sugar-toolkit-gtk3
* take screenshot: the code has to be ported to cairo, see [http://git.sugarlabs.org/browse/mainline/blobs/master/webactivity.py#line541 _get_screenshot in Browse] as an example
</pre>
* toolbars: finish the sub-toolbar look-alike like in gtk2
* finish porting the 'do_expose_event' calls to 'do_draw' calls


The sugar-toolkit gtk2 version needs some modifications for some restructuring that gtk3 work has prompted. Check out our branch where this happens;
===sugar-artwork===
 
* [http://bugs.sugarlabs.org/ticket/3143 deprectate icon-slicer]
<pre>
* finish [[Features/GTK3/Theme|the theme]]
cd source/sugar-toolkit
git remote add -f gtk2-mods-for-gtk3 git://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3.git
git checkout -b gtk2-mods-for-gtk3 gtk2-mods-for-gtk3/sucrose-0.94
make install
cd ../..
</pre>
 
And similarly for sugar:
 
<pre>
cd source/sugar
git remote add -f erikos-gtk3 git://git.sugarlabs.org/~erikos/sugar/sugar-gtk3.git
git checkout -b gtk3 erikos-gtk3/master
make install
cd ../..
</pre>
 
And for sugar-artwork:
 
<pre>
cd source/sugar-artwork
git remote add -f erikos-gtk3  git://git.sugarlabs.org/~erikos/sugar-artwork/gtk3.git
git checkout -b gtk3 erikos-gtk3/master
make install
cd ../..
</pre>


== Pending upstream work ==
== Pending upstream work ==
Line 65: Line 41:
* implementing GtkContainer::forall: https://bugzilla.gnome.org/show_bug.cgi?id=644926, also needs https://bugzilla.gnome.org/show_bug.cgi?id=663052
* implementing GtkContainer::forall: https://bugzilla.gnome.org/show_bug.cgi?id=644926, also needs https://bugzilla.gnome.org/show_bug.cgi?id=663052
* missing parts in pango introspection, [https://bugzilla.gnome.org/show_bug.cgi?id=646788 646788] does contain what we need (there are quite a few introspection related pango bugs open atm, from a quick look I found  https://bugzilla.gnome.org/show_bug.cgi?id=660070, https://bugzilla.gnome.org/show_bug.cgi?id=627973, https://bugzilla.gnome.org/show_bug.cgi?id=645792, https://bugzilla.gnome.org/show_bug.cgi?id=645871, https://bugzilla.gnome.org/show_bug.cgi?id=646788 even with patches attached already for a while)
* missing parts in pango introspection, [https://bugzilla.gnome.org/show_bug.cgi?id=646788 646788] does contain what we need (there are quite a few introspection related pango bugs open atm, from a quick look I found  https://bugzilla.gnome.org/show_bug.cgi?id=660070, https://bugzilla.gnome.org/show_bug.cgi?id=627973, https://bugzilla.gnome.org/show_bug.cgi?id=645792, https://bugzilla.gnome.org/show_bug.cgi?id=645871, https://bugzilla.gnome.org/show_bug.cgi?id=646788 even with patches attached already for a while)
* GLib.utf8_validate does segfault: https://bugzilla.gnome.org/show_bug.cgi?id=672889
* Can not listen to signals in subclassed subclasses: https://bugzilla.gnome.org/show_bug.cgi?id=672864

Latest revision as of 06:43, 27 March 2012

This page includes repo details and how to get sugar-jhbuild set up with the GTK3 work.

Repos

jhbuild setup

All the changes have been landed in the master branches. Make sure you have the sugar-toolkit-gtk3 repository checked out and installed. There has been a fix in pygobject. Either compile/install the master branch or in F16 you can install as well the recent pygobject3 release.

Pending work

  • shortcuts in palettes: button tooltips should show the shortcut, if any, next to the tip. Like in the Stop button, "Stop Ctrl+Q"
  • title in menus (e.g. 'Back' in the Browse back button palette)

sugar-toolkit-gtk3

  • take screenshot: the code has to be ported to cairo, see _get_screenshot in Browse as an example
  • toolbars: finish the sub-toolbar look-alike like in gtk2
  • finish porting the 'do_expose_event' calls to 'do_draw' calls

sugar-artwork

Pending upstream work

All of these have been worked around (or will be worked around) for now, at the sugar level.