Experimental Gtk 3 support in Leksah

227 views
Skip to first unread message

Hamish Mackenzie

unread,
Oct 7, 2012, 1:20:18 PM10/7/12
to lek...@googlegroups.com, Gtk2Hs-devel List, Peter Davies
I have managed to get Leksah working with Gtk 3. I have uploaded the
patched Gtk2Hs to patch-tag (including Peter's patches and some new ones).

Unfortunately the gtksourceview repo is still darcs-1 so I did not
think it was a good idea.

Fun new features in Leksah are "View->Dark" mode switch, to request a dark
theme from Gtk (tested with the Adwaita theme) and a "Fullscreen"
mode (not tested on multi monitors yet).

OS X
----
You are probably best of with the binaries as gtk-osx is hard to install..
http://leksah.org/packages/leksah-0.13.0.0-ghc-7.0.3.dmg
http://leksah.org/packages/leksah-0.13.0.0-ghc-7.0.4.dmg
http://leksah.org/packages/leksah-0.13.0.0-ghc-7.4.1.dmg
(only tested on Mountain Lion)

Linux
-----
First install the patched Gtk2Hs

sudo apt-get install libgtksourceview-3.0-dev
darcs get http://patch-tag.com/r/hamish/gtk2hs
cd gtk2hs/tools
cabal install
cd ../gtk
cabal install -fgtk3

Then get the gtksourceview darcs repo and apply the patches found
here... http://goo.gl/fbykm

cd gtksourceview
cabal install -fgtk3

Finally follow the instructions in the Development section at the bottom
of this page...
http://www.leksah.org/download.html

Windows
-------
Ummm... Have you considered a linux VM? I will try to make binaries
as soon as I get Gtk 3 installed (don't hold your breath).

Magicloud

unread,
Nov 19, 2012, 3:00:54 AM11/19/12
to lek...@googlegroups.com, Gtk2Hs-devel List, Peter Davies
Finally I found a gtk3 patch to gtk2hs. Thank you for the work.
But when I was trying to install it, I got these errors:
Graphics/UI/Gtk/Printing/PrintOperation.chs:409:6:
    Couldn't match expected type `Ptr ()' with actual type `Window'
    In the return type of a call of `toWindow'
    In the third argument of `\ (PrintOperation arg1) arg2 arg3 arg4
                                -> withForeignPtr arg1
                                   $ \ argPtr1
                                       -> gtk_print_operation_run argPtr1 arg2 arg3 arg4', namely
      `(toWindow parent)'
    In the expression:
      (\ (PrintOperation arg1) arg2 arg3 arg4
         -> withForeignPtr arg1
            $ \ argPtr1 -> gtk_print_operation_run argPtr1 arg2 arg3 arg4)
        (toPrintOperation self)
        ((fromIntegral . fromEnum) action)
        (toWindow parent)
        errorPtr

Graphics/UI/Gtk/Printing/PrintOperation.chs:504:7:
    Couldn't match expected type `Ptr ()' with actual type `Window'
    In the return type of a call of `toWindow'
    In the first argument of `\ arg1
                                (PageSetup arg2)
                                (PrintSettings arg3)
                                -> withForeignPtr arg2
                                   $ \ argPtr2 -> withForeignPtr arg3 $ \ argPtr3 -> ...', namely
      `(toWindow window)'
    In the second argument of `($)', namely
      `(\ arg1 (PageSetup arg2) (PrintSettings arg3)
          -> withForeignPtr arg2
             $ \ argPtr2
                 -> withForeignPtr arg3
                    $ \ argPtr3
                        -> gtk_print_run_page_setup_dialog arg1 argPtr2 argPtr3)
         (toWindow window)
         (toPageSetup pageSetup)
         (toPrintSettings setting)'

Graphics/UI/Gtk/Printing/PrintOperation.chs:530:7:
    Couldn't match expected type `Ptr ()' with actual type `Window'
    In the return type of a call of `toWindow'
    In the first argument of `\ arg1
                                (PageSetup arg2)
                                (PrintSettings arg3)
                                arg4
                                arg5
                                -> withForeignPtr arg2
                                   $ \ argPtr2 -> withForeignPtr arg3 $ \ argPtr3 -> ...', namely
      `(toWindow window)'
    In a stmt of a 'do' block:
      (\ arg1 (PageSetup arg2) (PrintSettings arg3) arg4 arg5
         -> withForeignPtr arg2
            $ \ argPtr2
                -> withForeignPtr arg3
                   $ \ argPtr3
                       -> gtk_print_run_page_setup_dialog_async
                            arg1 argPtr2 argPtr3 arg4 arg5)
        (toWindow window)
        (toPageSetup pageSetup)
        (toPrintSettings setting)
        funcPtr
        nullPtr
Failed to install gtk-0.12.3.1

在 2012年10月8日星期一UTC+8上午1时20分26秒,Hamish写道:

Magicloud

unread,
Nov 19, 2012, 3:10:59 AM11/19/12
to lek...@googlegroups.com, Gtk2Hs-devel List, Peter Davies
Sorry, my mistake. I did not upgrade build tools.
Also, I do not seem to be able to find the patches to gtksourceview in that link.

在 2012年11月19日星期一UTC+8下午4时00分55秒,Magicloud写道:
Reply all
Reply to author
Forward
0 new messages