Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

[GTK] add initial Gtk3 support #322

Closed
wants to merge 6 commits into from

1 participant

@sevoku
Collaborator

Hi! This pull request adds initial Gtk3 support and a Gtk3 test app (Gtk3Test).

To use the Gtk3 backend compile the Xwt.Gtk3 project and initialize Xwt with ToolkitType.Gtk3.

The new Xwt.Gtk3 project reuses all Xwt.Gtk sources, which have been modified for Gtk3 support (using conditional compiling by the XWT_GTK3 symbol set in Xwt.Gtk3).

The most important changes from Gtk2 to Gtk3 are based on the new sizing model (height-by-width, widh-by-height) eliminating the SizeRequested handlers/overrides.

In the Gtk3Test app almost everything is working like with Gtk2 except of:

  • PopoverBackend (TODO!)
  • SearchTextEntryBackend (TODO: Gtk3 supports images in entries, so the implementation becomes obsolete. Maybe this feature should be added to Xwt.TextEntry, reusing the code from the SearchEntry implementation??? Ok, that would affect all other backends, too...)
  • ComboBox with Images does not work at all (with Gtk2 there seem to be issues with the icon placement) and needs more investigation. To test regular ComboBoxes simply comment out the last example (after the //A complex combobox comment, lines 102-134) in TestApps/Samples/Samples/ComboBoxes.cs

I have tested everything on my development system with Ubuntu 14.04 (beta) with following versions:

Mono: 3.2.8+dfsg-4ubuntu1
Gtk3: 3.12.0-0ubuntu1-trusty0 (Gnome staging PPA)
gtk-sharp: 2.99.2-2ubuntu1

but it should work with all Gtk3 versions on Linux. TODO: Windows and Mac.

@sevoku
Collaborator

GTK3 search entry is easier to add then I thought (7663e24).

@sevoku
Collaborator

I had to rebase my repository. Now I have a separate gtk3 branch, so I'll reopen this issue with a correct branch and add some other pull requests. I hope nobody has merged this one into a private repository so far. Sorry and thanks!

@sevoku sevoku closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.