You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(68) |
Aug
(4) |
Sep
|
Oct
(23) |
Nov
(95) |
Dec
(9) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(3) |
Feb
|
Mar
|
Apr
(51) |
May
(81) |
Jun
(2) |
Jul
(86) |
Aug
(143) |
Sep
(3) |
Oct
(31) |
Nov
(63) |
Dec
(90) |
| 2005 |
Jan
(277) |
Feb
(157) |
Mar
(99) |
Apr
(195) |
May
(151) |
Jun
(148) |
Jul
(98) |
Aug
(123) |
Sep
(20) |
Oct
(174) |
Nov
(155) |
Dec
(26) |
| 2006 |
Jan
(51) |
Feb
(19) |
Mar
(16) |
Apr
(12) |
May
(5) |
Jun
|
Jul
(11) |
Aug
(7) |
Sep
(10) |
Oct
(31) |
Nov
(174) |
Dec
(56) |
| 2007 |
Jan
(45) |
Feb
(52) |
Mar
(10) |
Apr
(5) |
May
(47) |
Jun
(16) |
Jul
(80) |
Aug
(29) |
Sep
(14) |
Oct
(59) |
Nov
(46) |
Dec
(16) |
| 2008 |
Jan
(10) |
Feb
(1) |
Mar
|
Apr
|
May
(49) |
Jun
(26) |
Jul
(8) |
Aug
(4) |
Sep
(25) |
Oct
(53) |
Nov
(9) |
Dec
(1) |
| 2009 |
Jan
(66) |
Feb
(11) |
Mar
(1) |
Apr
(14) |
May
(8) |
Jun
(1) |
Jul
(2) |
Aug
(2) |
Sep
(9) |
Oct
(23) |
Nov
(35) |
Dec
|
| 2010 |
Jan
(7) |
Feb
(2) |
Mar
(39) |
Apr
(19) |
May
(161) |
Jun
(19) |
Jul
(32) |
Aug
(65) |
Sep
(113) |
Oct
(120) |
Nov
(2) |
Dec
|
| 2012 |
Jan
|
Feb
(5) |
Mar
(4) |
Apr
(7) |
May
(9) |
Jun
(14) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(12) |
Dec
(2) |
| 2013 |
Jan
(1) |
Feb
(17) |
Mar
(4) |
Apr
(4) |
May
(9) |
Jun
|
Jul
(8) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
|
From: Andy S. <And...@co...> - 2010-08-07 19:43:39
|
diffing dir...
Sat Aug 7 15:20:50 EDT 2010 Andy Stewart <laz...@gm...>
* Add ./recordpatch.sh script to record patch faster.
Ignore-this: e87a181746571ad8119c74c193d12c92
{
addfile ./recordpatch.sh
hunk ./recordpatch.sh 1
+#!/bin/sh
+
+# A script to record patch faster for gtk2hs developers.
+
+for pkg in tools glib gio cairo pango gtk; do [_$_]
+ cd $pkg;
+ darcs record;
+ cd ..;
+done;
}
|
|
From: Andy S. <And...@co...> - 2010-07-24 19:50:38
|
diffing dir...
Sat Jul 24 15:45:53 EDT 2010 Andy Stewart <laz...@gm...>
* Adjust drawableGetID. (But still failed on Windows)
Ignore-this: f92028eb5f358c8da1fe0f0d864ba99
{
hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 54
- #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0)
+#if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0)
hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 59
- #endif
+#endif
hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 597
-#if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0)
+#if !defined(WIN32)
hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 602
- gdk_win32_drawable_get_handle :: (Ptr Drawable) -> IO CInt
+ gdk_win32_drawable_get_handle :: (Ptr Drawable) -> IO (Ptr a)
hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 610
-#if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0)
+#if !defined(WIN32)
}
|
|
From: Andy S. <laz...@gm...> - 2010-07-24 17:49:14
|
Axel Simon <Axe...@in...> writes: > Andy, > > that's not the right solution. The module you've added is deprected. The code needs rewriting to > reflect the current API. Yes, I got lazy. :) I have use EventM rewrite CairoGhci.hs. Cheers, -- Andy > > Cheers, > Axel > > On Jul 24, 2010, at 19:05, Andy Stewart wrote: > >> diffing dir... >> Sat Jul 24 13:04:20 EDT 2010 Andy Stewart <laz...@gm...> >> * Fix demo CairoGhci compile problem. >> Ignore-this: 6145de3d109a75bc3b25ec84d49bfb55 >> hunk ./cairo/demo/CairoGhci.hs 5 >> +import Graphics.UI.Gtk.Gdk.Events >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Gtk2hs-commit mailing list >> Gtk...@li... >> https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit |
|
From: Andy S. <And...@co...> - 2010-07-24 17:46:48
|
diffing dir...
Sat Jul 24 13:45:46 EDT 2010 Andy Stewart <laz...@gm...>
* Use EventM rewrite CairoGhci.hs
Ignore-this: 765c04f63f4738f751ef32bcc12725db
{
hunk ./cairo/demo/CairoGhci.hs 5
-import Graphics.UI.Gtk.Gdk.Events
+import Graphics.UI.Gtk.Gdk.EventM
hunk ./cairo/demo/CairoGhci.hs 15
- canvas `onExpose` updateCanvas canvas act
+ canvas `on` exposeEvent $ tryEvent $ updateCanvas canvas act
hunk ./cairo/demo/CairoGhci.hs 25
- where updateCanvas :: DrawingArea -> Render () -> Event -> IO Bool
- updateCanvas canvas act (Expose {}) = do
+ where updateCanvas :: DrawingArea -> Render () -> EventM EExpose ()
+ updateCanvas canvas act = liftIO $ do
hunk ./cairo/demo/CairoGhci.hs 29
- return True
- updateCanvas canvas act _ = return False
-
-
}
|
|
From: Axel S. <Axe...@in...> - 2010-07-24 17:31:27
|
Andy, that's not the right solution. The module you've added is deprected. The code needs rewriting to reflect the current API. Cheers, Axel On Jul 24, 2010, at 19:05, Andy Stewart wrote: > diffing dir... > Sat Jul 24 13:04:20 EDT 2010 Andy Stewart <laz...@gm...> > * Fix demo CairoGhci compile problem. > Ignore-this: 6145de3d109a75bc3b25ec84d49bfb55 > hunk ./cairo/demo/CairoGhci.hs 5 > +import Graphics.UI.Gtk.Gdk.Events > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Gtk2hs-commit mailing list > Gtk...@li... > https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit |
|
From: Andy S. <And...@co...> - 2010-07-24 17:05:25
|
diffing dir...
Sat Jul 24 13:04:20 EDT 2010 Andy Stewart <laz...@gm...>
* Fix demo CairoGhci compile problem.
Ignore-this: 6145de3d109a75bc3b25ec84d49bfb55
hunk ./cairo/demo/CairoGhci.hs 5
+import Graphics.UI.Gtk.Gdk.Events
|
|
From: Andy S. <And...@co...> - 2010-07-24 06:17:36
|
diffing dir...
Sat Jul 24 02:14:36 EDT 2010 Andy Stewart <laz...@gm...>
* Fix pango compile problem: add 'pangocairo >= 1.10' in pango.cabal
Ignore-this: 2fabeee5f2876bb6c3d76af3067bb2b2
hunk ./pango/pango.cabal 83
- pkgconfig-depends: cairo >= 1.2.0
+ pkgconfig-depends: cairo >= 1.2.0, pangocairo >= 1.10
|
|
From: Axel S. <si...@co...> - 2010-07-21 08:15:08
|
diffing dir...
Wed Jul 21 04:13:24 EDT 2010 Axe...@in...
* Move cairo rendering functions for pango into the pango package.
Ignore-this: 7cddb7eeaa2bb7673045af036e0a57a9
{
hunk ./gtk/Graphics/UI/Gtk/Cairo.chs 21
+-- #hide
+
hunk ./gtk/Graphics/UI/Gtk/Cairo.chs 74
-import Graphics.UI.Gtk.General.Structs (Color(..))
-import System.Glib.GObject (constructNewGObject, makeNewGObject,
- objectRef, objectUnref)
-{#import Graphics.Rendering.Pango.Types#}
-{#import Graphics.Rendering.Pango.BasicTypes#}
-import Graphics.Rendering.Pango.Structs ( pangoItemGetFont )
-{#import Graphics.Rendering.Pango.Layout#} ( layoutSetText )
-{#import Graphics.UI.Gtk.Gdk.Pixbuf#} ( pixbufGetHasAlpha, pixbufGetNChannels,
- pixbufGetColorSpace, pixbufGetWidth, pixbufGetHeight, pixbufGetRowstride,
- Colorspace(..) )
-import Data.IORef
+{#import Graphics.Rendering.Pango.Cairo#}
hunk ./gtk/Graphics/UI/Gtk/Cairo.chs 104
--- | Sets the specified 'Color' as the source color of the 'Render' context.
---
-setSourceColor :: Color -> Render ()
-setSourceColor (Color red green blue) =
- Cairo.setSourceRGB
- (realToFrac red / 65535.0)
- (realToFrac green / 65535.0)
- (realToFrac blue / 65535.0)
-
hunk ./gtk/Graphics/UI/Gtk/Cairo.chs 129
-
-
--- cairo_font_map_new cannot be bound due to incorrect memory management
--- in functions like font_map_list_families that create new structures
--- that store the font map without referencing them
-
--- | Retrieve the default 'Graphics.UI.Gtk.Pango.FontMap' that contains a
--- list of available fonts.
---
--- * One purpose of creating an explicit
--- 'Graphics.UI.Gtk.Pango.Font.FontMap' is to set
--- a different scaling factor between font sizes (in points, pt) and
--- Cairo units (in pixels). The default is 96dpi (dots per inch) which
--- corresponds to an average screen as output medium. A 10pt font will
--- therefore scale to
--- @10pt * (1\/72 pt\/inch) * (96 pixel\/inch) = 13.3 pixel@.
---
-cairoFontMapGetDefault :: IO FontMap
-cairoFontMapGetDefault = [_$_]
- makeNewGObject mkFontMap $ {#call unsafe pango_cairo_font_map_get_default#}
-
--- | Set the scaling factor between font size and Cairo units.
---
--- * Value is in dots per inch (dpi). See 'cairoFontMapNew'.
---
-cairoFontMapSetResolution :: FontMap -> Double -> IO ()
-cairoFontMapSetResolution (FontMap fm) dpi =
- withForeignPtr fm $ \fmPtr ->
- {#call unsafe pango_cairo_font_map_set_resolution#}
- (castPtr fmPtr) (realToFrac dpi)
-
--- | Ask for the scaling factor between font size and Cairo units.
---
--- * Value is in dots per inch (dpi). See 'cairoFontMapNew'.
---
-cairoFontMapGetResolution :: FontMap -> IO Double
-cairoFontMapGetResolution (FontMap fm) = liftM realToFrac $
- withForeignPtr fm $ \fmPtr ->
- {#call unsafe pango_cairo_font_map_get_resolution#} (castPtr fmPtr)
-
--- | Create a 'PangoContext'.
---
--- * If no 'FontMap' is specified, it uses the default 'FontMap' that
--- has a scaling factor of 96 dpi. See 'cairoFontMapNew'.
---
-cairoCreateContext :: Maybe FontMap -> IO PangoContext
-cairoCreateContext (Just (FontMap fm)) = constructNewGObject mkPangoContext $
- withForeignPtr fm $ \fmPtr -> -- PangoCairoFontMap /= PangoFontMap
- {#call unsafe pango_cairo_font_map_create_context#} (castPtr fmPtr)
-cairoCreateContext Nothing = do
- fmPtr <- {#call unsafe pango_cairo_font_map_get_default#}
- constructNewGObject mkPangoContext $
- {#call unsafe pango_cairo_font_map_create_context#} (castPtr fmPtr)
-
--- | Set the scaling factor of the 'PangoContext'.
---
--- * Supplying zero or a negative value will result in the resolution value
--- of the underlying 'FontMap' to be used. See also 'cairoFontMapNew'.
---
-cairoContextSetResolution :: PangoContext -> Double -> IO ()
-cairoContextSetResolution pc dpi =
- {#call unsafe pango_cairo_context_set_resolution#} pc (realToFrac dpi)
-
--- | Ask for the scaling factor of the 'PangoContext'.
---
--- * A negative value will be returned if no resolution has been set.
--- See 'cairoContextSetResolution'.
---
-cairoContextGetResolution :: PangoContext -> IO Double
-cairoContextGetResolution pc = liftM realToFrac $
- {#call unsafe pango_cairo_context_get_resolution#} pc
-
--- | Set Cairo font options.
---
--- * Apply the given font options to the context. Values set through this
--- functions override those that are set by 'updateContext'.
---
-cairoContextSetFontOptions :: PangoContext -> FontOptions -> IO ()
-cairoContextSetFontOptions pc fo =
- {#call unsafe pango_cairo_context_set_font_options#} pc fo
-
--- | Reset Cairo font options.
---
-cairoContextResetFontOptions :: PangoContext -> IO ()
-cairoContextResetFontOptions pc =
- {#call unsafe pango_cairo_context_set_font_options#} pc
- (Cairo.Internal.FontOptions nullForeignPtr)
-
--- | Retrieve Cairo font options.
---
-cairoContextGetFontOptions :: PangoContext -> IO FontOptions
-cairoContextGetFontOptions pc = do
- foPtr <- {#call unsafe pango_cairo_context_get_font_options#} pc
- Cairo.Internal.mkFontOptions foPtr
-
--- | Update a 'PangoContext' with respect to changes in a 'Render'
--- environment.
---
--- * The 'PangoContext' must have been created with
--- 'cairoCreateContext'. Any 'PangoLayout's that have been
--- previously created with this context have to be update using
--- 'Graphics.UI.Gtk.Pango.Layout.layoutContextChanged'.
---
-updateContext :: PangoContext -> Render ()
-updateContext pc = Render $ do
- cr <- ask
- liftIO $ {# call unsafe pango_cairo_update_context #} cr pc
-
--- | Create a 'PangoLayout' within a 'Render' context.
---
--- * This is a convenience function that creates a new 'PangoContext'
--- within this 'Render' context and creates a new 'PangoLayout'.
--- If the transformation or target surface of the 'Render' context
--- change, 'updateLayout' has to be called on this layout.
---
-createLayout :: String -> Render PangoLayout
-createLayout text = Render $ do
- cr <- ask
- liftIO $ do
- layRaw <- constructNewGObject mkPangoLayoutRaw $
- {#call unsafe pango_cairo_create_layout#} cr
- textRef <- newIORef undefined
- let pl = (PangoLayout textRef layRaw)
- layoutSetText pl text
- return pl
-
--- | Propagate changed to the 'Render' context to a 'PangoLayout'.
---
--- * This is a convenience function that calls 'updateContext' on the
--- (private) 'PangoContext' of the given layout to propagate changes
--- from the 'Render' context to the 'PangoContext' and then calls
--- 'Graphics.UI.Gtk.Pango.Layout.layoutContextChanged' on the layout.
--- This function is necessary for
--- 'createLayout' since a private 'PangoContext' is created that is
--- not visible to the user.
---
-updateLayout :: PangoLayout -> Render ()
-updateLayout (PangoLayout _ lay) = Render $ do
- cr <- ask
- liftIO $ {#call unsafe pango_cairo_update_layout#} cr lay
-
--- | Draw a glyph string.
---
--- * The origin of the glyphs (the left edge of the baseline) will be drawn
--- at the current point of the cairo context.
---
-showGlyphString :: GlyphItem -> Render ()
-showGlyphString (GlyphItem pi gs) = Render $ do
- cr <- ask
- font <- liftIO $ pangoItemGetFont pi
- liftIO $ {#call unsafe pango_cairo_show_glyph_string#} cr font gs
-
--- | Draw a 'LayoutLine'.
---
--- * The origin of the glyphs (the left edge of the baseline) will be drawn
--- at the current point of the cairo context.
---
-showLayoutLine :: LayoutLine -> Render ()
-showLayoutLine (LayoutLine _ ll) = Render $ do
- cr <- ask
- liftIO $ {#call unsafe pango_cairo_show_layout_line#} cr ll
-
--- | Draw a 'PangoLayout'.
---
--- * The top-left corner of the 'PangoLayout' will be drawn at the current
--- point of the cairo context.
---
-showLayout :: PangoLayout -> Render ()
-showLayout (PangoLayout _ lay) = Render $ do
- cr <- ask
- liftIO $ {#call unsafe pango_cairo_show_layout#} cr lay
-
-
--- | Add the extent of a glyph string to the current path.
---
--- * The origin of the glyphs (the left edge of the line) will be at the
--- current point of the cairo context.
---
-glyphStringPath :: GlyphItem -> Render ()
-glyphStringPath (GlyphItem pi gs) = Render $ do
- cr <- ask
- font <- liftIO $ pangoItemGetFont pi
- liftIO $ {#call unsafe pango_cairo_glyph_string_path#} cr font gs
-
--- | Add the extent of a layout line to the current path.
---
--- * The origin of the glyphs (the left edge of the line) will be at the
--- current point of the cairo context.
---
-layoutLinePath :: LayoutLine -> Render ()
-layoutLinePath (LayoutLine _ ll) = Render $ do
- cr <- ask
- liftIO $ {#call unsafe pango_cairo_layout_line_path#} cr ll
-
--- | Add the layout to the current path.
---
--- * Adds the top-left corner of the text to the current path. Afterwards,
--- the path position is at the bottom-right corner of the 'PangoLayout'.
---
-layoutPath :: PangoLayout -> Render ()
-layoutPath (PangoLayout _ lay) = Render $ do
- cr <- ask
- liftIO $ {#call unsafe pango_cairo_layout_path#} cr lay
-
hunk ./gtk/Graphics/UI/Gtk/Cairo.chs 130
-
-
addfile ./pango/Graphics/Rendering/Pango.chs
hunk ./pango/Graphics/Rendering/Pango.chs 1
+{-# LANGUAGE CPP #-}
+-- -*-haskell-*-
+-- Pango - a library for typesetting Unicode text
+--
+-- Author : Axel Simon
+--
+-- Copyright (C) 2001-2010 Axel Simon
+--
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either
+-- version 2.1 of the License, or (at your option) any later version.
+--
+-- This library is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-- Lesser General Public License for more details.
+--
+-- |
+-- Maintainer : gtk...@li...
+-- Stability : provisional
+-- Portability : portable (depends on GHC)
+--
+-- Pango is a library for laying out and rendering of text, with an emphasis
+-- on internationalization. Pango can be used anywhere that text layout is
+-- needed, though most of the work on Pango so far has been done in the
+-- context of the GTK+ widget toolkit. Pango forms the core of text and font
+-- handling for GTK+-2.x.
+-- [_$_]
+-- Pango is designed to be modular; the core Pango layout engine can be used
+-- with different font backends. There are three basic backends:
+-- [_$_]
+-- * Client side fonts using the FreeType and fontconfig libraries.
+--
+-- * Native fonts on Microsoft Windows using Uniscribe for complex-text handling.
+--
+-- * Native fonts on MacOS X using ATSUI for complex-text handling.
+--
+-- The integration of Pango
+-- with Cairo <http://cairographics.org/> provides a complete solution with
+-- high quality text handling and graphics rendering.
+-- [_$_]
+-- Dynamically loaded modules then handle text layout for particular
+-- combinations of script and font backend. Pango ships with a wide selection
+-- of modules, including modules for Hebrew, Arabic, Hangul, Thai, and a
+-- number of Indic scripts. Virtually all of the world's major scripts are
+-- supported.
+-- [_$_]
+-- As well as the low level layout rendering routines, Pango includes
+-- 'PangoLayout', a high level driver for laying out entire blocks of text, and
+-- routines to assist in editing internationalized text.
+-- [_$_]
+-- Pango depends on 2.x series of the GLib library.
+--
+-- This module only re-exports the parts of the Pango library that are relevant for
+-- text rendering (as opposed to integration with other libraries).
+--
+module Graphics.Rendering.Pango (
+ module Graphics.Rendering.Pango.Context,
+ module Graphics.Rendering.Pango.Layout,
+ module Graphics.Rendering.Pango.Rendering,
+ module Graphics.Rendering.Pango.Markup,
+ module Graphics.Rendering.Pango.Font,
+ module Graphics.Rendering.Pango.Enums,
+ module Graphics.Rendering.Pango.Cairo,
+ ) where
+
+import Graphics.Rendering.Pango.Font
+import Graphics.Rendering.Pango.Enums hiding (
+ Markup,
+ Language,
+ emptyLanguage,
+ languageFromString,
+ )
+import Graphics.Rendering.Pango.Context
+import Graphics.Rendering.Pango.Layout hiding (
+ PangoRectangle(..),
+#if PANGO_VERSION_CHECK(1,6,0)
+ EllipsizeMode(..),
+#endif
+ )
+import Graphics.Rendering.Pango.Rendering
+import Graphics.Rendering.Pango.Markup
+import Graphics.Rendering.Pango.Cairo
hunk ./pango/Graphics/Rendering/Pango/Attributes.chs 149
--- | Parse the marked-up text (see 'Graphics.UI.Gtk.Pango.Markup.Markup'
+-- | Parse the marked-up text (see 'Graphics.Rendering.Pango.Markup.Markup'
addfile ./pango/Graphics/Rendering/Pango/Cairo.chs
hunk ./pango/Graphics/Rendering/Pango/Cairo.chs 1
+{-# LANGUAGE CPP #-}
+-- -*-haskell-*-
+-- GIMP Toolkit (GTK) Cair Pango integration
+--
+-- Author : Duncan Coutts, Axel Simon
+--
+-- Created: 17 August 2005
+--
+-- Copyright (C) 2005 Duncan Coutts
+--
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either
+-- version 2.1 of the License, or (at your option) any later version.
+--
+-- This library is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-- Lesser General Public License for more details.
+--
+-- |
+-- Maintainer : gtk...@li...
+-- Stability : provisional
+-- Portability : portable (depends on GHC)
+--
+-- [_$_]
+-- Pango specific functions to for redering with Cairo.
+--
+-- Cairo is a graphics library that supports vector graphics and image
+-- compositing that can be used with Pango. The functions in this module provide
+-- ways of rendering text in Cairo using Pango.
+--
+module Graphics.Rendering.Pango.Cairo (
+ -- * Global Cairo settings.
+ cairoFontMapGetDefault,
+ cairoFontMapSetResolution,
+ cairoFontMapGetResolution,
+ cairoCreateContext,
+ cairoContextSetResolution,
+ cairoContextGetResolution,
+ cairoContextSetFontOptions,
+ cairoContextGetFontOptions,
+ -- * Functions for the 'Render' monad.
+ setSourceColor,
+ updateContext,
+ createLayout,
+ updateLayout,
+ showGlyphString,
+ showLayoutLine,
+ showLayout,
+ glyphStringPath,
+ layoutLinePath,
+ layoutPath
+ ) where
+
+import Control.Exception (bracket)
+
+import System.Glib.FFI
+import System.Glib.GObject (constructNewGObject, makeNewGObject,
+ objectRef, objectUnref)
+{#import Graphics.Rendering.Pango.Types#}
+{#import Graphics.Rendering.Pango.BasicTypes#}
+import Graphics.Rendering.Pango.Structs ( pangoItemGetFont, Color(..) )
+{#import Graphics.Rendering.Pango.Layout#} ( layoutSetText )
+import Data.IORef
+
+{#import Graphics.Rendering.Cairo.Types#} as Cairo
+import qualified Graphics.Rendering.Cairo.Internal as Cairo.Internal
+import qualified Graphics.Rendering.Cairo as Cairo
+import Graphics.Rendering.Cairo.Internal (Render(Render))
+import Control.Monad.Reader
+
+{# context lib="gdk" prefix="gdk" #}
+
+--------------------
+-- Methods
+
+-- | Sets the specified 'Color' as the source color of the 'Render' context.
+--
+setSourceColor :: Color -> Render ()
+setSourceColor (Color red green blue) =
+ Cairo.setSourceRGB
+ (realToFrac red / 65535.0)
+ (realToFrac green / 65535.0)
+ (realToFrac blue / 65535.0)
+
+-- cairo_font_map_new cannot be bound due to incorrect memory management
+-- in functions like font_map_list_families that create new structures
+-- that store the font map without referencing them
+
+-- | Retrieve the default 'Graphics.Rendering.Pango.FontMap' that contains a
+-- list of available fonts.
+--
+-- * One purpose of creating an explicit
+-- 'Graphics.Rendering.Pango.Font.FontMap' is to set
+-- a different scaling factor between font sizes (in points, pt) and
+-- Cairo units (in pixels). The default is 96dpi (dots per inch) which
+-- corresponds to an average screen as output medium. A 10pt font will
+-- therefore scale to
+-- @10pt * (1\/72 pt\/inch) * (96 pixel\/inch) = 13.3 pixel@.
+--
+cairoFontMapGetDefault :: IO FontMap
+cairoFontMapGetDefault = [_$_]
+ makeNewGObject mkFontMap $ {#call unsafe pango_cairo_font_map_get_default#}
+
+-- | Set the scaling factor between font size and Cairo units.
+--
+-- * Value is in dots per inch (dpi). See 'cairoFontMapGetDefault'.
+--
+cairoFontMapSetResolution :: FontMap -> Double -> IO ()
+cairoFontMapSetResolution (FontMap fm) dpi =
+ withForeignPtr fm $ \fmPtr ->
+ {#call unsafe pango_cairo_font_map_set_resolution#}
+ (castPtr fmPtr) (realToFrac dpi)
+
+-- | Ask for the scaling factor between font size and Cairo units.
+--
+-- * Value is in dots per inch (dpi). See 'cairoFontMapGetDefault'.
+--
+cairoFontMapGetResolution :: FontMap -> IO Double
+cairoFontMapGetResolution (FontMap fm) = liftM realToFrac $
+ withForeignPtr fm $ \fmPtr ->
+ {#call unsafe pango_cairo_font_map_get_resolution#} (castPtr fmPtr)
+
+-- | Create a 'PangoContext'.
+--
+-- * If no 'FontMap' is specified, it uses the default 'FontMap' that
+-- has a scaling factor of 96 dpi. See 'cairoFontMapGetDefault'.
+--
+cairoCreateContext :: Maybe FontMap -> IO PangoContext
+cairoCreateContext (Just (FontMap fm)) = constructNewGObject mkPangoContext $
+ withForeignPtr fm $ \fmPtr -> -- PangoCairoFontMap /= PangoFontMap
+ {#call unsafe pango_cairo_font_map_create_context#} (castPtr fmPtr)
+cairoCreateContext Nothing = do
+ fmPtr <- {#call unsafe pango_cairo_font_map_get_default#}
+ constructNewGObject mkPangoContext $
+ {#call unsafe pango_cairo_font_map_create_context#} (castPtr fmPtr)
+
+-- | Set the scaling factor of the 'PangoContext'.
+--
+-- * Supplying zero or a negative value will result in the resolution value
+-- of the underlying 'FontMap' to be used. See also 'cairoFontMapGetDefault'.
+--
+cairoContextSetResolution :: PangoContext -> Double -> IO ()
+cairoContextSetResolution pc dpi =
+ {#call unsafe pango_cairo_context_set_resolution#} pc (realToFrac dpi)
+
+-- | Ask for the scaling factor of the 'PangoContext'.
+--
+-- * A negative value will be returned if no resolution has been set.
+-- See 'cairoContextSetResolution'.
+--
+cairoContextGetResolution :: PangoContext -> IO Double
+cairoContextGetResolution pc = liftM realToFrac $
+ {#call unsafe pango_cairo_context_get_resolution#} pc
+
+-- | Set Cairo font options.
+--
+-- * Apply the given font options to the context. Values set through this
+-- functions override those that are set by 'updateContext'.
+--
+cairoContextSetFontOptions :: PangoContext -> FontOptions -> IO ()
+cairoContextSetFontOptions pc fo =
+ {#call unsafe pango_cairo_context_set_font_options#} pc fo
+
+-- | Reset Cairo font options.
+--
+cairoContextResetFontOptions :: PangoContext -> IO ()
+cairoContextResetFontOptions pc =
+ {#call unsafe pango_cairo_context_set_font_options#} pc
+ (Cairo.Internal.FontOptions nullForeignPtr)
+
+-- | Retrieve Cairo font options.
+--
+cairoContextGetFontOptions :: PangoContext -> IO FontOptions
+cairoContextGetFontOptions pc = do
+ foPtr <- {#call unsafe pango_cairo_context_get_font_options#} pc
+ Cairo.Internal.mkFontOptions foPtr
+
+-- | Update a 'PangoContext' with respect to changes in a 'Render'
+-- environment.
+--
+-- * The 'PangoContext' must have been created with
+-- 'cairoCreateContext'. Any 'PangoLayout's that have been
+-- previously created with this context have to be update using
+-- 'Graphics.Rendering.Pango.Layout.layoutContextChanged'.
+--
+updateContext :: PangoContext -> Render ()
+updateContext pc = Render $ do
+ cr <- ask
+ liftIO $ {# call unsafe pango_cairo_update_context #} cr pc
+
+-- | Create a 'PangoLayout' within a 'Render' context.
+--
+-- * This is a convenience function that creates a new 'PangoContext'
+-- within this 'Render' context and creates a new 'PangoLayout'.
+-- If the transformation or target surface of the 'Render' context
+-- change, 'updateLayout' has to be called on this layout.
+--
+createLayout :: String -> Render PangoLayout
+createLayout text = Render $ do
+ cr <- ask
+ liftIO $ do
+ layRaw <- constructNewGObject mkPangoLayoutRaw $
+ {#call unsafe pango_cairo_create_layout#} cr
+ textRef <- newIORef undefined
+ let pl = (PangoLayout textRef layRaw)
+ layoutSetText pl text
+ return pl
+
+-- | Propagate changed to the 'Render' context to a 'PangoLayout'.
+--
+-- * This is a convenience function that calls 'updateContext' on the
+-- (private) 'PangoContext' of the given layout to propagate changes
+-- from the 'Render' context to the 'PangoContext' and then calls
+-- 'Graphics.Rendering.Pango.Layout.layoutContextChanged' on the layout.
+-- This function is necessary for
+-- 'createLayout' since a private 'PangoContext' is created that is
+-- not visible to the user.
+--
+updateLayout :: PangoLayout -> Render ()
+updateLayout (PangoLayout _ lay) = Render $ do
+ cr <- ask
+ liftIO $ {#call unsafe pango_cairo_update_layout#} cr lay
+
+-- | Draw a glyph string.
+--
+-- * The origin of the glyphs (the left edge of the baseline) will be drawn
+-- at the current point of the cairo context.
+--
+showGlyphString :: GlyphItem -> Render ()
+showGlyphString (GlyphItem pi gs) = Render $ do
+ cr <- ask
+ font <- liftIO $ pangoItemGetFont pi
+ liftIO $ {#call unsafe pango_cairo_show_glyph_string#} cr font gs
+
+-- | Draw a 'LayoutLine'.
+--
+-- * The origin of the glyphs (the left edge of the baseline) will be drawn
+-- at the current point of the cairo context.
+--
+showLayoutLine :: LayoutLine -> Render ()
+showLayoutLine (LayoutLine _ ll) = Render $ do
+ cr <- ask
+ liftIO $ {#call unsafe pango_cairo_show_layout_line#} cr ll
+
+-- | Draw a 'PangoLayout'.
+--
+-- * The top-left corner of the 'PangoLayout' will be drawn at the current
+-- point of the cairo context.
+--
+showLayout :: PangoLayout -> Render ()
+showLayout (PangoLayout _ lay) = Render $ do
+ cr <- ask
+ liftIO $ {#call unsafe pango_cairo_show_layout#} cr lay
+
+
+-- | Add the extent of a glyph string to the current path.
+--
+-- * The origin of the glyphs (the left edge of the line) will be at the
+-- current point of the cairo context.
+--
+glyphStringPath :: GlyphItem -> Render ()
+glyphStringPath (GlyphItem pi gs) = Render $ do
+ cr <- ask
+ font <- liftIO $ pangoItemGetFont pi
+ liftIO $ {#call unsafe pango_cairo_glyph_string_path#} cr font gs
+
+-- | Add the extent of a layout line to the current path.
+--
+-- * The origin of the glyphs (the left edge of the line) will be at the
+-- current point of the cairo context.
+--
+layoutLinePath :: LayoutLine -> Render ()
+layoutLinePath (LayoutLine _ ll) = Render $ do
+ cr <- ask
+ liftIO $ {#call unsafe pango_cairo_layout_line_path#} cr ll
+
+-- | Add the layout to the current path.
+--
+-- * Adds the top-left corner of the text to the current path. Afterwards,
+-- the path position is at the bottom-right corner of the 'PangoLayout'.
+--
+layoutPath :: PangoLayout -> Render ()
+layoutPath (PangoLayout _ lay) = Render $ do
+ cr <- ask
+ liftIO $ {#call unsafe pango_cairo_layout_path#} cr lay
+
+
hunk ./pango/Graphics/Rendering/Pango/Context.chs 31
--- 'Graphics.UI.Gtk.Pango.Rendering') or, at a more abstract level, using
--- layouts (see 'Graphics.UI.Gtk.Pango.Layout').
+-- 'Graphics.Rendering.Pango.Rendering') or, at a more abstract level, using
+-- layouts (see 'Graphics.Rendering.Pango.Layout.Layout').
hunk ./pango/Graphics/Rendering/Pango/Context.chs 40
--- 'Graphics.UI.Gtk.Cairo.cairoCreateContext'.
+-- 'Graphics.Rendering.Cairo.cairoCreateContext'.
hunk ./pango/Graphics/Rendering/Pango/Context.chs 44
--- rendered text, call 'Graphics.UI.Gtk.Pango.Layout.layoutContextChanged'.
+-- rendered text, call 'Graphics.Rendering.Pango.Layout.layoutContextChanged'.
hunk ./pango/Graphics/Rendering/Pango/Context.chs 49
+ PangoContextClass,
hunk ./pango/Graphics/Rendering/Pango/Enums.chs 29
- Markup,
hunk ./pango/Graphics/Rendering/Pango/Enums.chs 34
- Language,
- emptyLanguage,
- languageFromString,
-
hunk ./pango/Graphics/Rendering/Pango/Enums.chs 50
+
+ -- these will not be exported from this module in the future
+ Markup,
+ Language,
+ emptyLanguage,
+ languageFromString,
hunk ./pango/Graphics/Rendering/Pango/Font.chs 58
+ FontMapClass,
hunk ./pango/Graphics/Rendering/Pango/Font.chs 61
+ FontFamilyClass,
hunk ./pango/Graphics/Rendering/Pango/Font.chs 67
+ FontFaceClass,
hunk ./pango/Graphics/Rendering/Pango/Font.chs 73
+ FontClass,
hunk ./pango/Graphics/Rendering/Pango/Font.chs 93
--- 'Graphics.UI.Gtk.Cairo.cairoFontMapGetDefault'. [_$_]
+-- 'Graphics.Rendering.Pango.Cairo.cairoFontMapGetDefault'. [_$_]
hunk ./pango/Graphics/Rendering/Pango/Layout.chs 468
--- 'PangoContext'. (See 'Graphics.UI.Gtk.Pango.Context.contextSetTextDir').
+-- 'PangoContext'. (See 'Graphics.Rendering.Pango.Context.contextSetTextDir').
hunk ./pango/Graphics/Rendering/Pango/Layout.chs 758
- ("Graphics.UI.Gtk.Pango.Layout.layoutGetLine: "++
+ ("Graphics.Rendering.Pango.Layout.layoutGetLine: "++
hunk ./pango/Graphics/Rendering/Pango/Rendering.chs 40
--- such as 'Graphics.UI.Gtk.Cairo.cairoShowGlyphString'.
+-- such as 'Graphics.Rendering.Cairo.cairoShowGlyphString'.
hunk ./pango/Graphics/Rendering/Pango/Structs.hsc 140
--- 'Graphics.UI.Gtk.Pango.Rendering.PangoContext' is by default weakly
+-- 'Graphics.Rendering.Pango.Rendering.PangoContext' is by default weakly
hunk ./pango/hspango.h 10
+#include<pango/pangocairo.h>
hunk ./pango/pango.cabal 44
- process, directory, array, containers, pretty, haskell98,
+ process, directory, array, containers, pretty, mtl, haskell98,
hunk ./pango/pango.cabal 56
- exposed-modules: Graphics.Rendering.Pango.Font
+ exposed-modules: Graphics.Rendering.Pango
+ Graphics.Rendering.Pango.Font
hunk ./pango/pango.cabal 63
+ Graphics.Rendering.Pango.Cairo
hunk ./pango/pango.cabal 83
-
+ pkgconfig-depends: cairo >= 1.2.0
}
|
|
From: Axel S. <si...@co...> - 2010-07-20 07:03:42
|
diffing dir...
Tue Jul 20 03:01:51 EDT 2010 Axe...@in...
* Add an option to the type generator to ignore the --destructor command line spec. This allows e.g. Pixbufs to be GC'd immediatlely.
Ignore-this: fe533f76b033d2783713909f5c03eaf9
{
hunk ./gtk/hierarchy.list 18
-
+# Before these conditions, two additional properties may be given:
+# * noDestr : ignores the destructor given by the --destructor
+# command line argument and uses 'objectUnref'
+# * noEq : do not make this type an instance of Eq; used
+# if a different equality instance is manually
+# defined later
hunk ./gtk/hierarchy.list 48
- GdkPixbuf
- GdkPixbufAnimation
- GdkPixbufSimpleAnim
- GdkPixbufAnimationIter
+ GdkPixbuf noDestr
+ GdkPixbufAnimation noDestr
+ GdkPixbufSimpleAnim noDestr
+ GdkPixbufAnimationIter noDestr
hunk ./tools/hierarchyGen/TypeGen.hs 26
- tiNoEqualInst :: Bool
+ tiNoEqualInst :: Bool,
+ tiDefaultDestr :: Bool
hunk ./tools/hierarchyGen/TypeGen.hs 76
- (name,specialQuery,rem'') = case (dropWhile isBlank rem') of
+ (defDestr,rem'') = [_$_]
+ let r = dropWhile isBlank rem' in
+ if "noDestr" `isPrefixOf` r then (True, drop 7 r) else (False, r)
+ (name,specialQuery,rem''') = case (dropWhile isBlank rem'') of
hunk ./tools/hierarchyGen/TypeGen.hs 85
- (tyName, (tyName, TypeInfo origCName (Just tyQuery) eqInst), r')
- r -> (tyName, (tyName, TypeInfo origCName Nothing eqInst), r)
- r -> (origHsName, (origHsName, TypeInfo origCName Nothing eqInst), r)
+ (tyName, (tyName, TypeInfo origCName (Just tyQuery) eqInst defDestr), r')
+ r -> (tyName, (tyName, TypeInfo origCName Nothing eqInst defDestr), r)
+ r -> (origHsName, (origHsName, TypeInfo origCName Nothing eqInst defDestr), r)
hunk ./tools/hierarchyGen/TypeGen.hs 90
- (readTag, rem''') = case (dropWhile isBlank rem'') of
+ (readTag, rem'''') = case (dropWhile isBlank rem''') of
hunk ./tools/hierarchyGen/TypeGen.hs 296
- indent 0.ss "mk".ss name.ss " = (".ss name.ss ", ".ss destr.ss ")".
+ indent 0.ss "mk".ss name.ss " = (".ss name.ss ", ".
+ (case lookup name table of Just TypeInfo { tiDefaultDestr = False } -> ss destr
+ Just TypeInfo { tiDefaultDestr = True } -> ss "objectUnref").ss ")".
}
|
|
From: Axel S. <si...@co...> - 2010-07-20 07:03:38
|
diffing dir...
Tue Jul 20 03:01:36 EDT 2010 Axe...@in...
* Doc fix.
Ignore-this: 8e845b0b6ce26e38abf6e9112e061010
hunk ./gtk/gtk.cabal 313
- -- Due to http://hackage.haskell.org/trac/ghc/ticket/781
+ -- Due to http://hackage.haskell.org/trac/ghc/ticket/781
|
|
From: Andy S. <laz...@gm...> - 2010-07-17 05:24:03
|
Hi Axel, Axel Simon <Axe...@in...> writes: > Hi Andy, > > I think we need to install all versions of Gtk (2.8, 2.10... 2.20) on one machine (into different > dirs using --prefix= to ./configure) and then build Gtk2Hs against each of these version (this can > be done by setting PKG_CONFIG_PATH appropriately before each cabal configure). BTW, i suggest you test version problem from 2.20 to 2.8, then you can find version problems more quickly. Cheers, -- Andy |
|
From: Andy S. <And...@co...> - 2010-07-16 16:50:57
|
diffing dir... Fri Jul 16 12:47:18 EDT 2010 Andy Stewart <laz...@gm...> * Add missing type in Pango.BasicTypes Weight. (Fixed bug 1184) Ignore-this: 17f38af03f07808b251727b4e01797e9 Documentation at http://library.gnome.org/devel/pango/1.28/PangoMarkupFormat.html is leak, need check those type in pango-enum-types.c { hunk ./pango/Graphics/Rendering/Pango/BasicTypes.chs 130 + showsPrec _ WeightThin = shows "thin" hunk ./pango/Graphics/Rendering/Pango/BasicTypes.chs 133 + showsPrec _ WeightBook = shows "book" hunk ./pango/Graphics/Rendering/Pango/BasicTypes.chs 135 + showsPrec _ WeightMedium = shows "medium" + showsPrec _ WeightSemibold = shows "semibold" hunk ./pango/Graphics/Rendering/Pango/BasicTypes.chs 140 + showsPrec _ WeightUltraheavy = shows "ultraheavy" } |
|
From: Andy S. <And...@co...> - 2010-07-16 16:50:55
|
diffing dir...
Fri Jul 16 12:07:50 EDT 2010 Andy Stewart <laz...@gm...>
* Add gdk_get_default_root_window (Fixed ticket 1118)
Ignore-this: 3d19dd5ea992ebf60425cbd6183a077a
{
hunk ./gtk/Graphics/UI/Gtk/Gdk/DrawWindow.chs 81
- drawWindowForeignNew
+ drawWindowForeignNew,
+ drawWindowGetDefaultRootWindow,
hunk ./gtk/Graphics/UI/Gtk/Gdk/DrawWindow.chs 561
+-- | Obtains the root window (parent all other windows are inside) for the default display and screen.
+drawWindowGetDefaultRootWindow :: [_$_]
+ IO DrawWindow -- ^ returns the default root window [_$_]
+drawWindowGetDefaultRootWindow =
+ makeNewGObject mkDrawWindow $
+ {#call gdk_get_default_root_window #}
}
|
|
From: Andy S. <laz...@gm...> - 2010-07-16 15:29:54
|
Axel Simon <Axe...@in...> writes: > On 16.07.2010, at 17:01, Andy Stewart wrote: > >> Axel Simon <Axe...@in...> writes: >> >>> Hi Andy, >>> >>> I think we need to install all versions of Gtk (2.8, 2.10... 2.20) on one machine (into different >>> dirs using --prefix= to ./configure) and then build Gtk2Hs against each of these version (this >>> can >>> be done by setting PKG_CONFIG_PATH appropriately before each cabal configure). >>> >>> There are probably other build problems due to version differences. >>> >>> Do you want to look into this? It involves installing a lot of tar files (you need to download >>> atk, >>> pango, glib, cairo for each gtk version). Besides that, it's fairly straightforward. I could >>> give >>> you access to a computer I have under my desk, if you don't want to do that on yours. >> Can we do half and half? >> >> You test 2.8, 2.10, 2.12 >> >> I test 2.14, 2.16, 2.18 2.20 >> > > I think this work should be > > - create a table of version-tuples that belong together (gtk version, pango version, atk > version,...) > - writing a script that downloads the different versions, extracts and builds them > - write a script that sets PKG_CONFIG_PATH and then calls ./bootstrap > > So I think one person should do it. But we could do it on the computer under my desk so we both have > access to it. To be honest, i don't want do those work, less fun. :) Can i choose fix bug at http://hackage.haskell.org/trac/gtk2hs/report/1 ? :) -- Andy > >> BTW, we need fix all bugs in >> http://hackage.haskell.org/trac/gtk2hs/report/2 ? >> Or just fix 0.11.0 ? >> > > Well we should fix whatever we can. > >> Can we finish *enhancement* ticket in gtk2hs-0.12.0 ? >> > > Well, some of them are done already. > > This should be fixed: > > http://hackage.haskell.org/trac/gtk2hs/ticket/1164 > > Also 1179 and 1174. > > A. > > > >> Cheers, >> >> -- Andy >> >>> >>> Cheers, >>> Axel >>> >>> On 16.07.2010, at 16:34, Andy Stewart wrote: >>> >>>> diffing dir... >>>> Fri Jul 16 10:32:51 EDT 2010 Andy Stewart <laz...@gm... >>>> > >>>> * Add 2.14 macro to make Builder.chs can build on gtk+-2.12 or higher (Fixed bug 1189) >>>> Ignore-this: beb720b6f7556bbb0352287f7bc5d56f >>>> { >>>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 85 >>>> +#if GTK_CHECK_VERSION(2,14,0) >>>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 88 >>>> +#endif >>>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 149 >>>> +#if GTK_CHECK_VERSION(2,14,0) >>>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 191 >>>> +#endif >>>> } >>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by Sprint >>>> What will you do first with EVO, the first 4G phone? >>>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >>>> _______________________________________________ >>>> Gtk2hs-commit mailing list >>>> Gtk...@li... >>>> https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit |
|
From: Axel S. <Axe...@in...> - 2010-07-16 15:18:30
|
On 16.07.2010, at 17:01, Andy Stewart wrote: > Axel Simon <Axe...@in...> writes: > >> Hi Andy, >> >> I think we need to install all versions of Gtk (2.8, 2.10... 2.20) >> on one machine (into different >> dirs using --prefix= to ./configure) and then build Gtk2Hs against >> each of these version (this can >> be done by setting PKG_CONFIG_PATH appropriately before each cabal >> configure). >> >> There are probably other build problems due to version differences. >> >> Do you want to look into this? It involves installing a lot of tar >> files (you need to download atk, >> pango, glib, cairo for each gtk version). Besides that, it's >> fairly straightforward. I could give >> you access to a computer I have under my desk, if you don't want >> to do that on yours. > Can we do half and half? > > You test 2.8, 2.10, 2.12 > > I test 2.14, 2.16, 2.18 2.20 > I think this work should be - create a table of version-tuples that belong together (gtk version, pango version, atk version,...) - writing a script that downloads the different versions, extracts and builds them - write a script that sets PKG_CONFIG_PATH and then calls ./bootstrap So I think one person should do it. But we could do it on the computer under my desk so we both have access to it. > BTW, we need fix all bugs in > http://hackage.haskell.org/trac/gtk2hs/report/2 ? > Or just fix 0.11.0 ? > Well we should fix whatever we can. > Can we finish *enhancement* ticket in gtk2hs-0.12.0 ? > Well, some of them are done already. This should be fixed: http://hackage.haskell.org/trac/gtk2hs/ticket/1164 Also 1179 and 1174. A. > Cheers, > > -- Andy > >> >> Cheers, >> Axel >> >> On 16.07.2010, at 16:34, Andy Stewart wrote: >> >>> diffing dir... >>> Fri Jul 16 10:32:51 EDT 2010 Andy Stewart <laz...@gm... >>> > >>> * Add 2.14 macro to make Builder.chs can build on gtk+-2.12 or >>> higher (Fixed bug 1189) >>> Ignore-this: beb720b6f7556bbb0352287f7bc5d56f >>> { >>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 85 >>> +#if GTK_CHECK_VERSION(2,14,0) >>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 88 >>> +#endif >>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 149 >>> +#if GTK_CHECK_VERSION(2,14,0) >>> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 191 >>> +#endif >>> } >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by Sprint >>> What will you do first with EVO, the first 4G phone? >>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >>> _______________________________________________ >>> Gtk2hs-commit mailing list >>> Gtk...@li... >>> https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit |
|
From: Andy S. <And...@co...> - 2010-07-16 15:14:19
|
diffing dir...
Fri Jul 16 11:12:37 EDT 2010 Andy Stewart <laz...@gm...>
* Make sure click close button will destory window in ghci. (Fixed bug 1172)
Ignore-this: 11a06164b3a56ea4f8a6f4e460f42c1e
{
hunk ./gtk/demo/carsim/CarSim.hs 125
+ mainWindow <- windowNew
hunk ./gtk/demo/carsim/CarSim.hs 177
- onClicked qq mainQuit
+ onClicked qq (do
+ widgetDestroy mainWindow
+ mainQuit)
hunk ./gtk/demo/carsim/CarSim.hs 252
- mainWindow <- windowNew
hunk ./gtk/demo/filechooser/FileChooserDemo.hs 38
- quitButton `onClicked` mainQuit
+ quitButton `onClicked` (do
+ widgetDestroy mainWindow
+ mainQuit)
}
|
|
From: Andy S. <laz...@gm...> - 2010-07-16 15:02:10
|
Axel Simon <Axe...@in...> writes: > Hi Andy, > > I think we need to install all versions of Gtk (2.8, 2.10... 2.20) on one machine (into different > dirs using --prefix= to ./configure) and then build Gtk2Hs against each of these version (this can > be done by setting PKG_CONFIG_PATH appropriately before each cabal configure). > > There are probably other build problems due to version differences. > > Do you want to look into this? It involves installing a lot of tar files (you need to download atk, > pango, glib, cairo for each gtk version). Besides that, it's fairly straightforward. I could give > you access to a computer I have under my desk, if you don't want to do that on yours. Can we do half and half? You test 2.8, 2.10, 2.12 I test 2.14, 2.16, 2.18 2.20 BTW, we need fix all bugs in http://hackage.haskell.org/trac/gtk2hs/report/2 ? Or just fix 0.11.0 ? Can we finish *enhancement* ticket in gtk2hs-0.12.0 ? Cheers, -- Andy > > Cheers, > Axel > > On 16.07.2010, at 16:34, Andy Stewart wrote: > >> diffing dir... >> Fri Jul 16 10:32:51 EDT 2010 Andy Stewart <laz...@gm...> >> * Add 2.14 macro to make Builder.chs can build on gtk+-2.12 or higher (Fixed bug 1189) >> Ignore-this: beb720b6f7556bbb0352287f7bc5d56f >> { >> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 85 >> +#if GTK_CHECK_VERSION(2,14,0) >> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 88 >> +#endif >> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 149 >> +#if GTK_CHECK_VERSION(2,14,0) >> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 191 >> +#endif >> } >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Gtk2hs-commit mailing list >> Gtk...@li... >> https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit |
|
From: Axel S. <Axe...@in...> - 2010-07-16 14:50:01
|
Hi Andy,
I think we need to install all versions of Gtk (2.8, 2.10... 2.20) on
one machine (into different dirs using --prefix= to ./configure) and
then build Gtk2Hs against each of these version (this can be done by
setting PKG_CONFIG_PATH appropriately before each cabal configure).
There are probably other build problems due to version differences.
Do you want to look into this? It involves installing a lot of tar
files (you need to download atk, pango, glib, cairo for each gtk
version). Besides that, it's fairly straightforward. I could give you
access to a computer I have under my desk, if you don't want to do
that on yours.
Cheers,
Axel
On 16.07.2010, at 16:34, Andy Stewart wrote:
> diffing dir...
> Fri Jul 16 10:32:51 EDT 2010 Andy Stewart <laz...@gm...>
> * Add 2.14 macro to make Builder.chs can build on gtk+-2.12 or
> higher (Fixed bug 1189)
> Ignore-this: beb720b6f7556bbb0352287f7bc5d56f
> {
> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 85
> +#if GTK_CHECK_VERSION(2,14,0)
> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 88
> +#endif
> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 149
> +#if GTK_CHECK_VERSION(2,14,0)
> hunk ./gtk/Graphics/UI/Gtk/Builder.chs 191
> +#endif
> }
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Sprint
> What will you do first with EVO, the first 4G phone?
> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> _______________________________________________
> Gtk2hs-commit mailing list
> Gtk...@li...
> https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit
|
|
From: Andy S. <And...@co...> - 2010-07-16 14:34:49
|
diffing dir...
Fri Jul 16 10:32:51 EDT 2010 Andy Stewart <laz...@gm...>
* Add 2.14 macro to make Builder.chs can build on gtk+-2.12 or higher (Fixed bug 1189)
Ignore-this: beb720b6f7556bbb0352287f7bc5d56f
{
hunk ./gtk/Graphics/UI/Gtk/Builder.chs 85
+#if GTK_CHECK_VERSION(2,14,0)
hunk ./gtk/Graphics/UI/Gtk/Builder.chs 88
+#endif
hunk ./gtk/Graphics/UI/Gtk/Builder.chs 149
+#if GTK_CHECK_VERSION(2,14,0)
hunk ./gtk/Graphics/UI/Gtk/Builder.chs 191
+#endif
}
|
|
From: Andy S. <And...@co...> - 2010-07-16 14:13:34
|
diffing dir...
Fri Jul 16 09:53:20 EDT 2010 Andy Stewart <laz...@gm...>
* Export drawWindowScroll (Fixed ticket: 1186)
Ignore-this: f759d2754007b99f16915a8eaab2847d
hunk ./gtk/Graphics/UI/Gtk/Gdk/DrawWindow.chs 56
+ drawWindowScroll,
|
|
From: Andy S. <And...@co...> - 2010-07-16 14:13:33
|
diffing dir...
Fri Jul 16 09:41:38 EDT 2010 Andy Stewart <laz...@gm...>
* Fix null pointer bug in some signals. (Fixed bug 1194)
Ignore-this: de9e51c5f86a5d3cd4f375bfe0ab043d
{
hunk ./gtk/Graphics/UI/Gtk/Abstract/Container.chs 532
-setFocusChild :: ContainerClass self => Signal self (Widget -> IO ())
-setFocusChild = Signal (connect_OBJECT__NONE "set-focus-child")
+setFocusChild :: ContainerClass self => Signal self (Maybe Widget -> IO ())
+setFocusChild = Signal (connect_MOBJECT__NONE "set-focus-child")
hunk ./gtk/Graphics/UI/Gtk/Abstract/Container.chs 583
- -> (Widget -> IO ())
+ -> (Maybe Widget -> IO ())
hunk ./gtk/Graphics/UI/Gtk/Abstract/Container.chs 585
-onSetFocusChild = connect_OBJECT__NONE "set-focus-child" False
+onSetFocusChild = connect_MOBJECT__NONE "set-focus-child" False
hunk ./gtk/Graphics/UI/Gtk/Abstract/Container.chs 590
- -> (Widget -> IO ())
+ -> (Maybe Widget -> IO ())
hunk ./gtk/Graphics/UI/Gtk/Abstract/Container.chs 592
-afterSetFocusChild = connect_OBJECT__NONE "set-focus-child" True
+afterSetFocusChild = connect_MOBJECT__NONE "set-focus-child" True
hunk ./gtk/Graphics/UI/Gtk/Windows/Window.chs 2258
-setFocus :: WindowClass self => Signal self (Widget -> IO ())
-setFocus = Signal (connect_OBJECT__NONE "set-focus")
+setFocus :: WindowClass self => Signal self (Maybe Widget -> IO ())
+setFocus = Signal (connect_MOBJECT__NONE "set-focus")
hunk ./gtk/Graphics/UI/Gtk/Windows/Window.chs 2266
- -> (foc -> IO ())
+ -> (Maybe foc -> IO ())
hunk ./gtk/Graphics/UI/Gtk/Windows/Window.chs 2268
-onSetFocus = connect_OBJECT__NONE "set-focus" False
-afterSetFocus = connect_OBJECT__NONE "set-focus" True
+onSetFocus = connect_MOBJECT__NONE "set-focus" False
+afterSetFocus = connect_MOBJECT__NONE "set-focus" True
}
|
|
From: Andy S. <And...@co...> - 2010-07-16 12:58:33
|
diffing dir...
Fri Jul 16 08:56:55 EDT 2010 Andy Stewart <laz...@gm...>
* Export imageSurfaceCreateFromPNG. (Fixed bug 1173)
Ignore-this: 22cbe2f1c6df7f587bccb1b5d4d60ed7
{
hunk ./cairo/Graphics/Rendering/Cairo.hs 210
+ , imageSurfaceCreateFromPNG
hunk ./cairo/Graphics/Rendering/Cairo.hs 293
+import Graphics.Rendering.Cairo.Internal (imageSurfaceCreateFromPNG)
+
}
|
|
From: Andy S. <And...@co...> - 2010-07-16 12:53:58
|
diffing dir...
Fri Jul 16 08:52:09 EDT 2010 Andy Stewart <laz...@gm...>
* Export some functions (fix bug 1171)
Ignore-this: e40b04bb32d6b90580eca3a2094a9577
{
hunk ./gtk/Graphics/UI/Gtk/ModelView/TreeStore.hs 46
--- treeStoreSetTree,
hunk ./gtk/Graphics/UI/Gtk/ModelView/TreeStore.hs 49
+ treeStoreInsertForest,
hunk ./gtk/Graphics/UI/Gtk/ModelView/TreeStore.hs 53
+
+ treeStoreChange,
+ treeStoreChangeM,
}
|
|
From: Axel S. <si...@co...> - 2010-07-16 11:44:09
|
diffing dir...
Fri Jul 16 07:34:29 EDT 2010 Axe...@in...
* Work around a bug in ghci that causes a crash on x86-64 platforms.
Ignore-this: 2e16c4dea831f0e52fbc7b1834d564f6
hunk ./gtk/gtk.cabal 313
-
+ -- Due to http://hackage.haskell.org/trac/ghc/ticket/781
+ -- we need to compile the hsgthread.c module with -fPIC to ensure that a global
+ -- variable in GLib that holds the address for the mutex lock and unlock functions
+ -- is accessed correctly. This bug only exists on x86-64 platforms.
+ if arch(x86_64)
+ cc-options: -fPIC
|
|
From: Axel S. <si...@co...> - 2010-07-16 11:44:07
|
diffing dir...
Fri Jul 16 07:34:01 EDT 2010 Axe...@in...
* Fix indentation in hsgthread.c module.
Ignore-this: ee943347749c31249eb0141113d86be5
{
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 68
-#ifdef DEBUG
- printf("gtk2hs_threads_initialise: thread lock function=%lx\n",
- (unsigned long) g_thread_functions_for_glib_use.mutex_lock);
-#endif
- /* from here onwards, the Gdk lock is held */
- GDK_THREADS_ENTER ();
+
+ /* from here onwards, the Gdk lock is held */
+ GDK_THREADS_ENTER ();
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 81
- printf("acquiring lock to add a %s object at %lx\n",
+ printf("acquiring lock to add a %s object at %lx\n",
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 95
- if (mutex_locked) printf("within mutex: ");
+ if (mutex_locked) printf("within mutex: ");
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 106
- printf("creating finalizer list.\n");
+ printf("creating finalizer list.\n");
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 111
- printf("re-initializing finalizer source.\n");
+ printf("re-initializing finalizer source.\n");
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 128
- printf("releasing lock to add a %s object at %lx\n",
- g_type_name(G_OBJECT_TYPE(object)), (unsigned long) object);
+ printf("releasing lock to add a %s object at %lx\n",
+ g_type_name(G_OBJECT_TYPE(object)), (unsigned long) object);
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 144
- GDK_THREADS_ENTER ();
+ GDK_THREADS_ENTER ();
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 149
- printf("acquiring lock to kill objects\n");
+ printf("acquiring lock to kill objects\n");
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 172
- printf("releasing lock to kill objects\n");
+ printf("releasing lock to kill objects\n");
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 181
- GDK_THREADS_LEAVE ();
+ GDK_THREADS_LEAVE ();
}
|