Difference between revisions of "Features/GTK3/Development"

From Sugar Labs
< Features‎ | GTK3
Jump to navigation Jump to search
 
(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 07: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.