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: Daniel W. <dm...@lu...> - 2012-06-03 00:10:28
|
diffing dir... Tue Mar 13 14:13:11 GMT 2012 Axe...@in... * Add a note on how to connect to bufferInsertText. Ignore-this: c9a6011fbae46b14c6c18d92de9e6732 hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1254 +-- * See note in 'bufferInsertText'. +-- hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1262 +-- * See note in 'bufferInsertText'. +-- hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1267 --- | Some text was inserted. +-- | Some text is inserted. Insertion actually occurs in the default handler. +-- +-- * The function connected to this handler may not modify the buffer since +-- this would invalidate the iterator. If this function replaces the +-- default handler, it needs to stop the emission of this signal in order +-- to prevent the default handler from running. If additional text should +-- be inserted, this can be done using the 'after' function to connect. |
From: Daniel W. <dm...@lu...> - 2012-05-27 22:27:13
|
diffing dir... Sun May 27 23:16:08 BST 2012 Daniel Wagner <da...@wa...> tagged 0.12.3.1 Ignore-this: fba81e067f20815572c143782547944e |
From: Daniel W. <dm...@lu...> - 2012-05-27 22:27:09
|
diffing dir... Sun May 27 23:14:13 BST 2012 Daniel Wagner <da...@wa...> * bump version numbers of gtk2hs-buildtools, glib, and cairo Ignore-this: 73dec909621bcbdbd3f1cf561ca5551a hunk ./cairo/cairo.cabal 2 -Version: 0.12.3 +Version: 0.12.3.1 hunk ./glib/glib.cabal 2 -Version: 0.12.3 +Version: 0.12.3.1 hunk ./tools/gtk2hs-buildtools.cabal 2 -Version: 0.12.3 +Version: 0.12.3.1 |
From: Daniel W. <dm...@lu...> - 2012-05-27 22:27:07
|
diffing dir... Sun May 27 22:51:17 BST 2012 Daniel Wagner <da...@wa...> * remove TreeStoreStatic Ignore-this: 87504218d1864b1239985ee7fb4e3495 This module hasn't been touched in over five years; doesn't build; and wasn't mentioned in the cabal file anyway. hunk ./gtk/Graphics/UI/Gtk/ModelView/TreeStoreStatic.hs 1 -module Graphics.UI.Gtk.ModelView.TreeStoreStatic ( - treeStoreNewStatic - ) where - -import Data.Bits -import Data.Word (Word) -import qualified Data.Tree as Tree -import Data.Tree (Tree) -import Data.Array - -import Graphics.UI.Gtk.ModelView.TreeModel -import Graphics.UI.Gtk.ModelView.CustomStore -import Graphics.UI.Gtk.ModelView.TreeIter -import Graphics.UI.Gtk.ModelView.Column - -import Control.Exception (assert) - --------------------------------------------- --- internal model data types --- - -data ArrTree a = Node a !(ArrForest a) - | Leaf a -type ArrForest a = Array Word (ArrTree a) - -label :: ArrTree a -> a -label (Node a _) = a -label (Leaf a) = a - -mkArrForest :: [Tree a] -> ArrForest a -mkArrForest trees = - let bounds = (0, fromIntegral (length trees) - 1) - in listArray bounds (map mkArrTree trees) - -mkArrTree :: Tree a -> ArrTree a -mkArrTree (Tree.Node a []) = Leaf a -mkArrTree (Tree.Node a trees) = Node a (mkArrForest trees) - --------------------------------------------- --- the actual TreeStore implementation --- - -treeStoreNewStatic :: [Column a] -> [Tree a] -> IO TreeModel -treeStoreNewStatic rs ts = - customStoreNew $ - let forest = mkArrForest ts - cols = listArray (0, length rs - 1) rs - in CustomStore { - customStoreGetFlags = return [], - customStoreGetNColumns = return (length rs), - customStoreGetColumnType = \n -> return $! columnGType (cols ! n), - - customStoreGetIter = \path -> return $! pathToIter forest path, - customStoreGetPath = \iter -> return $! iterToPath forest iter, - - customStoreGetValue = \iter i gvalue -> - case forest `lookupNode` iter of [_$_] - (node, _, _, _, _) -> - columnSetGValue (cols ! i) (label node) gvalue, - - customStoreIterNext = \iter -> return $! treeStoreIterNext forest iter, - customStoreIterChildren = \iter -> return $! treeStoreIterChildren forest iter, - customStoreIterHasChild = \iter -> return $! treeStoreIterHasChild forest iter, - customStoreIterNChildren = \iter -> return $! treeStoreIterNChildren forest iter, - customStoreIterNthChild = \iter n -> return $! treeStoreIterNthChild forest iter n, - customStoreIterParent = \iter -> return $! treeStoreIterParent forest iter, - - customStoreRefNode = \_ -> return (), - customStoreUnrefNode = \_ -> return () -} - -treeStoreIterNext :: ArrForest a -> TreeIter -> Maybe TreeIter -treeStoreIterNext forest iter = - case forest `lookupNode` iter of - (_, forest, index, off, count) - | inRange (bounds forest) index -> Just $! setBitSlice iter off count (index+1) - | otherwise -> Nothing - -treeStoreIterChildren forest Nothing - | forestElemCount forest == 0 = Nothing - | otherwise = Just $! TreeIter 0 1 0 0 -treeStoreIterChildren forest (Just iter) = - case forest `lookupNode` iter of - (Leaf _, _, _, _, _) -> Nothing - (Node _ forest, _, index, off, count) -> - let count' = forestBitsNeeded forest - in Just $! setBitSlice iter (off+count) count' 1 - -treeStoreIterHasChild forest iter = - case forest `lookupNode` iter of - (Leaf _, _, _, _, _) -> False - (Node _ _, _, _, _, _) -> True - -treeStoreIterNChildren forest Nothing = forestElemCount forest -treeStoreIterNChildren forest (Just iter) = - case forest `lookupNode` iter of - (Leaf _, _, _, _, _) -> 0 - (Node _ forest, _, _, _, _) -> forestElemCount forest - -treeStoreIterNthChild forest Nothing n = Just $! TreeIter 0 (fromIntegral n + 1) 0 0 -treeStoreIterNthChild forest (Just iter) n = - case forest `lookupNode` iter of - (Leaf _, _, _, _, _) -> Nothing - (Node _ forest, _, _, off, count) -> - let count' = forestBitsNeeded forest - in Just $! setBitSlice iter (off+count) count' (fromIntegral n + 1) - -treeStoreIterParent forest iter = - case forest `lookupNode` iter of - (_, forest, _, 0, count) -> Nothing - (_, forest, _, off, count) -> Just $! setBitSlice iter off count 0 - --------------------------------------------- --- lookup functions --- - -lookupNode :: ArrForest a -> TreeIter -> (ArrTree a, ArrForest a, Word, Int, Int) -lookupNode forest iter = - let count = forestBitsNeeded forest - index = getBitSlice iter 0 count - in lookup forest index 0 count - - where - lookup :: [_$_] - ArrForest a -- the forest of trees we are currently looking in - -> Word -- the index of the node in the forest (non-zero) - -> Int -- the iterator bit offset for the node in the forest - -> Int -- the number of bits needed to index the current forest - - -> (ArrTree a, -- the node we found - ArrForest a, -- the forrest the node is part of - Word, -- the index of the node within the forest - Int, -- the iterator bit offset for the node we found - Int) -- the iterator bit count for the forest - lookup forest index bit count = - assert (index > 0) $ - case forest ! (index - 1) of - node@(Leaf _) -> (node, forest, index, bit, count) - node@(Node _ forest') -> - let count' = forestBitsNeeded forest' - in case getBitSlice iter (bit+count) count' of - 0 -> (node, forest, index, bit, count) - index -> lookup forest' index (bit+count) count' - -iterToPath :: ArrForest a -> TreeIter -> TreePath -iterToPath forest iter = lookup forest 0 - where - lookup :: ArrForest a -> Int -> TreePath - lookup forest off = - let count = forestBitsNeeded forest - in case getBitSlice iter off count of [_$_] - 0 -> [] - index -> - case forest ! (index - 1) of - Leaf _ -> fromIntegral index - 1 : [] - Node _ forest -> fromIntegral index - 1 - : lookup forest (off+count) - -pathToIter :: ArrForest a -> TreePath -> Maybe TreeIter -pathToIter forest [] = Nothing -pathToIter forest path = lookup forest path 0 (TreeIter 0 0 0 0) - where - lookup :: ArrForest a -> TreePath -> Int -> TreeIter -> Maybe TreeIter - lookup forest [] off iter = Just iter - lookup forest (index:path) off iter = - let count = forestBitsNeeded forest - index' = fromIntegral index + 1 - iter' = setBitSlice iter off count index' - in if not $ inRange (bounds forest) (index' - 1) - then Nothing - else case forest ! (index' - 1) of - Leaf _ | null path -> Just $! iter' - | otherwise -> Nothing - Node _ forest -> lookup forest path (off + count) iter' - -forestBitsNeeded :: ArrForest a -> Int -forestBitsNeeded forest = - case bounds forest of - (_, upperBound) -> bitsNeeded (upperBound + 2) - -forestElemCount :: ArrForest a -> Int -forestElemCount forest = - case bounds forest of - (_, upperBound) -> fromIntegral (upperBound + 1) - --------------------------------------------- --- low leve bit-twiddling utility functions --- - -bitsNeeded :: Word -> Int -bitsNeeded n = bitsNeeded' 0 n - where bitsNeeded' b 0 = b - bitsNeeded' b n = bitsNeeded' (b+1) (n `shiftR` 1) - -getBitSlice :: TreeIter -> Int -> Int -> Word -getBitSlice (TreeIter _ a b c) off count = - getBitSliceWord a off count - .|. getBitSliceWord b (off-32) count - .|. getBitSliceWord c (off-64) count - - where getBitSliceWord :: Word -> Int -> Int -> Word - getBitSliceWord word off count = - word `shiftR` off .&. (1 `shiftL` count - 1) - -setBitSlice :: TreeIter -> Int -> Int -> Word -> TreeIter -setBitSlice (TreeIter stamp a b c) off count value = - assert (value < 1 `shiftL` count) $ - TreeIter stamp - (setBitSliceWord a off count value) - (setBitSliceWord b (off-32) count value) - (setBitSliceWord c (off-64) count value) - - where setBitSliceWord :: Word -> Int -> Int -> Word -> Word - setBitSliceWord word off count value = - let mask = (1 `shiftL` count - 1) `shiftL` off - in (word .&. complement mask) .|. (value `shiftL` off) - -------------------- --- testing --- - -aforest :: ArrForest String -aforest = - let leafNode a = Tree.Node a [] - trees = - [Tree.Node "A" [leafNode "AA", leafNode "AB"], - Tree.Node "B" [leafNode "BA", leafNode "BB"], - Tree.Node "C" [leafNode "CA", leafNode "CB"], - leafNode "D"] - in mkArrForest trees - -instance Show TreeIter where - show (TreeIter _ a b c) = show (a,b,c) - -showIterBits (TreeIter _ a b c) = [showBits a, showBits b, showBits c] - -showBits :: Bits a => a -> String -showBits a = [ if testBit a i then '1' else '0' | i <- [0..bitSize a - 1] ] - --- property 1: --- forall aforest. forall valid path. iterToPath aforest (pathToIter aforest path) == path - --- property 2: --- forall aforest. forall (node, path). lookup (pathToIter aforest path) == node rmfile ./gtk/Graphics/UI/Gtk/ModelView/TreeStoreStatic.hs |
From: Daniel W. <dm...@lu...> - 2012-05-27 22:27:04
|
diffing dir... Sun May 27 22:50:00 BST 2012 Daniel Wagner <da...@wa...> * bump gtk2hsC2hs version number Ignore-this: 73733f7c7ab88e693f84b58ef3a45e59 hunk ./tools/c2hs/toplevel/Version.hs 7 -idstr = "$Id: Version.hs,v 1.1 2004/11/21 21:05:42 as49 Exp $" +idstr = "$Id: Version.hs,v 1.1 2012/05/27 16:49:07 dmwit Exp $" hunk ./tools/c2hs/toplevel/Version.hs 9 -versnum = "0.13.5 (gtk2hs branch)" +versnum = "0.13.6 (gtk2hs branch)" hunk ./tools/c2hs/toplevel/Version.hs 11 -date = "13 Nov 2004" +date = "27 May 2012" |
From: Daniel W. <dm...@lu...> - 2012-05-27 22:27:01
|
diffing dir... Sun May 27 22:32:35 BST 2012 Daniel Wagner <da...@wa...> tagged 0.12.3 Ignore-this: 47bd4f3f913adfdc0d4099aed325b9b8 |
From: Daniel W. <dm...@lu...> - 2012-05-17 22:53:14
|
diffing dir... Thu May 17 23:50:52 BST 2012 Daniel Wagner <da...@wa...> * rename the HCAR report per Janis' instructions Ignore-this: f687965d8d6149ff6dfb95e0ae64f55d move ./Gtk2Hs-AG.tex ./Gtk2Hs-DG.tex |
From: Daniel W. <dm...@lu...> - 2012-05-02 00:28:46
|
diffing dir... Tue Apr 24 00:09:20 BST 2012 Takano Akio <al...@hy...> * Fix a memory leak in customStoreNew (#1251) Ignore-this: 3940fee6a1c17c2a5951a7d9f6a6573b hunk ./gtk/Graphics/UI/Gtk/ModelView/CustomStore.chs 242 - liftM con $ makeNewGObject (CustomStore, objectUnref) $ + liftM con $ wrapNewGObject (CustomStore, objectUnref) $ |
From: Daniel W. <dm...@lu...> - 2012-05-01 22:48:56
|
diffing dir... Mon Apr 23 07:33:14 BST 2012 Sergei Trofimovich <sl...@co...> * Fix include path on cabal-1.14 Ignore-this: ed72a58f39def26c3590f59523fd6a8f Building cairo-0.12.3... Preprocessing library cairo-0.12.3... dist/build/Graphics/Rendering/Cairo/Matrix.h:1:26: fatal error: cairo-gtk2hs.h: No such file or directory compilation terminated. gtk2hsC2hs: Error during preprocessing custom header file hunk ./cairo/cairo.cabal 72 + Include-dirs: . |
From: Daniel W. <dm...@lu...> - 2012-05-01 22:48:55
|
diffing dir... Mon Apr 23 07:31:08 BST 2012 Sergei Trofimovich <sl...@co...> * Fix build failure against glib-2.32 Ignore-this: cea441ef4442d0d44d4974f8b0024186 In file included from Graphics/UI/Gtk/General/hsgthread.c:29:0: /usr/include/glib-2.0/glib/gthread.h:28:2: error: #error "Only <glib.h> can be included directly." hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 29 -#include <glib/gthread.h> |
From: Daniel W. <dm...@lu...> - 2012-04-26 16:51:28
|
diffing dir... Thu Apr 26 17:50:39 BST 2012 Daniel Wagner <da...@wa...> * some "darcs log name -> real world name" translations to remember Ignore-this: db0b53c299aa90ffcad5f1ce4fa9a758 hunk ./RELEASING 34 + juhp is Jens Petersen + as49 is Axel Simon |
From: Daniel W. <dm...@lu...> - 2012-04-26 16:50:22
|
diffing dir... Thu Apr 26 17:48:28 BST 2012 Daniel Wagner <da...@wa...> * fix for http://hackage.haskell.org/trac/gtk2hs/ticket/1259 suggested by Christian Maeder Ignore-this: b98294f4711f0e413eeac94e7a024917 hunk ./tools/hierarchyGen/Hierarchy.chs.template 2 +{-# LANGUAGE CPP #-} |
From: Daniel W. <dm...@lu...> - 2012-04-22 23:13:44
|
diffing dir... Mon Apr 23 00:12:12 BST 2012 Daniel Wagner <da...@wa...> * record carefully what I'm supposed to do when it comes time to make a release Ignore-this: 74beca0a3c44929e5db7d03681b7e3ed addfile ./RELEASING hunk ./RELEASING 1 +This file is a collection of notes and reminders of things to do around the +time of a release. None of this is by any means set in stone. + +Before release: + +* Take a look through the bug tracker. + http://hackage.haskell.org/trac/gtk2hs +* Test that it builds! This is supposed to be a cross-platform library, too, + and support for a lot of setups is one of our selling points. There's a lot + of knobs, each with a lot of settings: + 32-bit or 64-bit architecture + Windows, Linux, or Mac + GHC version + GTK library version + It's basically impossible to test that it builds on every combination, but a + representative sampling would be nice. +* Check that the demos still work. There are demo directories in each Hackage + package's directory. +* Bump all the version numbers in tandem. + +At release time: + +* Upload all the new packages. Some shell like this seems reasonable: + for i in tools glib gio cairo pango gtk; do + pushd $i + rm dist/*.tar.gz + cabal sdist && cabal upload dist/*.tar.gz + popd + done +* Make an announcement on the mailing lists. Below is a template email. Once in + a while, you might want to run a command like this to update the + "contributors" section: + darcs log | grep '^[^ ]' | cut -b31- | sort | uniq -c | sort -n + + To: ha...@ha... + Subject: [ANN] gtk2hs-X.X.X + Body: + + Today, we welcome into the world version X.X.X of Gtk2Hs[1], a set of Haskell + bindings to many of the libraries included in the Gtk+/Gnome platform. Gtk+ + is an extensive and mature multi-platform toolkit for creating graphical user + interfaces. + + GUIs written using Gtk2Hs use themes to resemble the native look on Windows. + Gtk is the toolkit used by Gnome, one of the two major GUI toolkits on Linux. + On Mac OS programs written using Gtk2Hs are run by Apple's X11 server but may + also be linked against a native Aqua implementation of Gtk. + + You can look forward to using the following improvements in this release: + + XXX + + This release has been tested on Linux and Windows with a variety of + combinations of Gtk+ and GHC versions. + + Installation + ------------ + Assuming you have the necessary Gtk+ base libraries already installed, you + can get the basic set of Haskell bindings with these two commands: + + cabal install gtk2hs-buildtools + cabal install gtk + + Other available packages include gconf, glade, gnomevfs, gstreamer, gtkglext, + gtksourceview2, soegtk, svgcairo, vte, and webkit. There are longer-winded + instructions that include pointers on getting the Gtk+ base libraries + installed on the website [2]. + + Features + -------- + * Automatic memory management (unlike some other C/C++ GUI libraries, Gtk+ + provides proper support for garbage-collected languages) + * Unicode support + * High quality vector graphics using Cairo + * Extensive reference documentation + * An implementation of the ``Haskell School of Expression'' graphics API + + Community + --------- + You can keep up with the latest developments on the mailing lists: + * gtk2hs-users [3]: discussions about writing code that uses Gtk2Hs + * gtk2hs-devel [4]: discussions about modifying the Gtk2Hs bindings + * gtk2hs-commit [5]: a read-only mailing list with announcements of every + patch to hit the darcs repository + + Check out the latest code via darcs: + darcs get http://code.haskell.org/gtk2hs/ + + Or complain on the bug tracker [6]. + + This code was brought to you by: + Duncan Coutts + Axel Simon + Andy Stewart + Peter Gavin + Jens Petersen + John Obbele + Hans van Thiel + Daniel Wagner + Bertram Felgenhauer + ...and many, many more + + [1] http://projects.haskell.org/gtk2hs/ + [2] http://code.haskell.org/gtk2hs/INSTALL + [3] https://lists.sourceforge.net/lists/listinfo/gtk2hs-users + [4] https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel + [5] https://lists.sourceforge.net/lists/listinfo/gtk2hs-commit + [6] http://hackage.haskell.org/trac/gtk2hs/ +* Make an announcement on the blog via: + http://projects.haskell.org/gtk2hs/wp-admin/post-new.php + Below is a template. + Title: New Gtk2Hs X.X.X release + Tags: + Categories: Announcements, Releases + Body: + Thanks to X, X, and X, we have a bunch of improvements in Gtk2Hs X.X.X: + + XXX + + Thanks to everyone who helped out! + ~d +* Update the documentation links. You can get there directly at + http://projects.haskell.org/gtk2hs/wp-admin/page.php?action=edit&post=5 + or by visiting the admin page at + http://projects.haskell.org/gtk2hs/wp-admin + and clicking "Manage", then "Pages", then "Documentation". |
From: Daniel W. <dm...@lu...> - 2012-04-22 20:53:58
|
diffing dir... Wed Apr 11 15:05:17 BST 2012 ads...@ya... * Bindings for gtk_menu_item_get_label, gtk_menu_item_get_use_underline, and the associated setters. Ignore-this: cc9d70d06e02b6ae93fe8e39daf96ea7 hunk ./gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 79 +#if GTK_CHECK_VERSION(2,16,0) + menuItemSetLabel, + menuItemGetLabel, + menuItemSetUseUnderline, + menuItemGetUseUnderline, +#endif hunk ./gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 98 +#if GTK_CHECK_VERSION(2,16,0) + menuItemLabel, + menuItemUseUnderline, +#endif hunk ./gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 176 +#if GTK_CHECK_VERSION(2,16,0) +-- | Sets text on the MenuItem label + +menuItemSetLabel :: (MenuItemClass self) => self -> String -> IO () +menuItemSetLabel self label = + withUTFString label $ {# call gtk_menu_item_set_label #} (toMenuItem self) + +-- | Gets text on the MenuItem label +menuItemGetLabel :: (MenuItemClass self) => self -> IO String +menuItemGetLabel self = + {# call gtk_menu_item_get_label #} + (toMenuItem self) + >>= \strPtr -> if strPtr == nullPtr + then return "" + else peekUTFString strPtr + +-- | If True, an underline in the text indicates the next character should be used for the mnemonic accelerator key. +-- +menuItemSetUseUnderline :: (MenuItemClass self) => self -> Bool -> IO () +menuItemSetUseUnderline self = + {# call gtk_menu_item_set_use_underline #} (toMenuItem self) . fromBool hunk ./gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 198 +-- | Checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key. +-- +menuItemGetUseUnderline :: (MenuItemClass self) => self -> IO Bool +menuItemGetUseUnderline self = + liftM toBool $ {# call gtk_menu_item_get_use_underline #} + (toMenuItem self) + +#endif hunk ./gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 320 +#if GTK_CHECK_VERSION(2,16,0) +-- | \'label\' property. See 'menuItemSetLabel' and 'menuItemGetLabel' +-- +menuItemLabel :: MenuItemClass self => Attr self String +menuItemLabel = newAttr + menuItemGetLabel + menuItemSetLabel + +-- | \'useUnderline\' property. See 'menuItemSetUseUnderline' and [_$_] +-- 'menuItemGetUseEUnderline' +-- +menuItemUseUnderline :: MenuItemClass self => Attr self Bool +menuItemUseUnderline = newAttr + menuItemGetUseUnderline + menuItemSetUseUnderline +#endif |
From: Daniel W. <dm...@lu...> - 2012-04-22 20:24:33
|
diffing dir... Tue Mar 20 19:04:11 GMT 2012 bla...@gm... * added pixbufNewFromData Ignore-this: e3bd65acdcad39fbe22258e53ec4ed22 hunk ./gtk/Graphics/UI/Gtk/Gdk/Pixbuf.chs 72 + pixbufNewFromData, hunk ./gtk/Graphics/UI/Gtk/Gdk/Pixbuf.chs 406 +pixbufNewFromData :: Ptr CUChar -> Colorspace -> Bool -> Int -> Int -> Int -> Int -> IO Pixbuf +pixbufNewFromData imData cSpace hasAlpha bitsPerSample width height rowStride + = wrapNewGObject mkPixbuf $ + {#call pixbuf_new_from_data #} + imData + (fromIntegral . fromEnum $ cSpace) + (fromBool hasAlpha) + (fromIntegral bitsPerSample) + (fromIntegral width) + (fromIntegral height) + (fromIntegral rowStride) + nullFunPtr nullPtr + |
From: Daniel W. <dm...@lu...> - 2012-04-22 20:24:21
|
diffing dir... Fri Apr 20 14:35:54 BST 2012 ads...@ya... * Add entryGet/SetBuffer functions. Ignore-this: 5e083fd21fc5e63986fa0bae6a7d5442 hunk ./gtk/Graphics/UI/Gtk/Entry/Entry.chs 81 +#if GTK_CHECK_VERSION (2,18,0) + entryGetBuffer, + entrySetBuffer, +#endif hunk ./gtk/Graphics/UI/Gtk/Entry/Entry.chs 111 +#if GTK_CHECK_VERSION (2,18,0) + entryBuffer, +#endif hunk ./gtk/Graphics/UI/Gtk/Entry/Entry.chs 167 +#if GTK_CHECK_VERSION (2,18,0) +import Graphics.UI.Gtk.Entry.EntryBuffer +#endif hunk ./gtk/Graphics/UI/Gtk/Entry/Entry.chs 442 +#if GTK_CHECK_VERSION(2,18,0) +-- | Get the 'EntryBuffer' object which holds the text for this widget. +entryGetBuffer :: EntryClass self => self + -> IO EntryBuffer +entryGetBuffer self = + makeNewGObject mkEntryBuffer $ + {# call gtk_entry_get_buffer #} + (toEntry self) + +-- | Set the 'EntryBuffer' object which holds the text for this widget. +entrySetBuffer :: (EntryClass self, EntryBufferClass buffer) => self + -> buffer -> IO () +entrySetBuffer self = + {# call gtk_entry_set_buffer #} + (toEntry self) . toEntryBuffer +#endif + hunk ./gtk/Graphics/UI/Gtk/Entry/Entry.chs 653 +#if GTK_CHECK_VERSION(2,18,0) +entryBuffer :: (EntryClass self, EntryBufferClass buffer) => + ReadWriteAttr self EntryBuffer buffer +entryBuffer = newAttr + entryGetBuffer + entrySetBuffer +#endif + + |
From: Daniel W. <dm...@lu...> - 2012-04-22 20:24:09
|
diffing dir... Sun Apr 22 20:52:06 BST 2012 Daniel Wagner <da...@wa...> * add a surface type for raw data, plus a demo program showing how to use this with SDL (code supplied by Eli Frey) Ignore-this: 254fd58bd2322a9fecb5449741d7a697 hunk ./cairo/Graphics/Rendering/Cairo.hs 200 + , withImageSurfaceForData hunk ./cairo/Graphics/Rendering/Cairo.hs 204 + , createImageSurfaceForData hunk ./cairo/Graphics/Rendering/Cairo.hs 1688 +-- | Like 'withImageSurface' but creating a surface to target external +-- data pointed to by 'PixelData'. +-- +withImageSurfaceForData :: + PixelData -- ^ pointer to pixel data + -> Format -- ^ format of pixels in the surface to create + -> Int -- ^ width of the surface, in pixels + -> Int -- ^ height of the surface, in pixels + -> Int -- ^ size of stride between rows in the surface to create + -> (Surface -> IO a) -- ^ an action that may use the surface. The surface is + -- only valid within this action + -> IO a +withImageSurfaceForData pixels format width height stride f = + bracket (Internal.imageSurfaceCreateForData pixels format width height stride) + (\surface -> do status <- Internal.surfaceStatus surface + Internal.surfaceDestroy surface + unless (status == StatusSuccess) $ + Internal.statusToString status >>= fail) + (\surface -> f surface) + +-- | Like 'createImageSurface' but creating a surface to target external +-- data pointed to by 'PixelData'. +-- +createImageSurfaceForData :: + PixelData -- ^ pointer to pixel data + -> Format -- ^ format of pixels in the surface to create + -> Int -- ^ width of the surface, in pixels + -> Int -- ^ height of the surface, in pixels + -> Int -- ^ size of stride between rows in the surface to create + -> IO Surface +createImageSurfaceForData pixels format width height stride = do + surface <- Internal.imageSurfaceCreateForData pixels format width height stride + Internal.manageSurface surface + return surface + hunk ./cairo/Graphics/Rendering/Cairo/Internal/Surfaces/Image.chs 24 +{#fun image_surface_create_for_data as imageSurfaceCreateForData + { id `Ptr CUChar' + , cFromEnum `Format' + , `Int' + , `Int' + , `Int' + } -> `Surface' mkSurface*#} + hunk ./cairo/Graphics/Rendering/Cairo/Types.chs 17 - Matrix(Matrix), MatrixPtr + PixelData + , Matrix(Matrix), MatrixPtr hunk ./cairo/Graphics/Rendering/Cairo/Types.chs 67 +type PixelData = Ptr CUChar + addfile ./cairo/demo/CairoSDL.hs hunk ./cairo/demo/CairoSDL.hs 1 +import qualified Graphics.UI.SDL as SDL +import Graphics.Rendering.Cairo +import Foreign.Ptr ( castPtr ) + +demo1 :: Render () +demo1 = do + setSourceRGB 0 0 0 + moveTo 100 100 + lineTo 500 500 + stroke + +demo2 :: Render () +demo2 = do + setSourceRGB 0 0 0 + moveTo 500 100 + lineTo 100 500 + stroke + +main = SDL.withInit [ SDL.InitVideo ] $ do + screen <- SDL.setVideoMode 600 600 32 [ SDL.SWSurface ] + + SDL.fillRect screen Nothing (SDL.Pixel maxBound) + + pixels <- fmap castPtr $ SDL.surfaceGetPixels screen + + canvas <- createImageSurfaceForData pixels FormatRGB24 600 600 (600 * 4) + renderWith canvas demo1 + + withImageSurfaceForData pixels FormatRGB24 600 600 (600 * 4) $ \canvas -> + renderWith canvas demo2 + + SDL.flip screen + + idle + where + idle = do + e <- SDL.waitEvent + case e of + SDL.Quit -> return () + otherwise -> idle hunk ./cairo/demo/Makefile 2 -PROGS = drawing drawing2 starandring text clock graph -SOURCES = Drawing.hs Drawing2.hs StarAndRing.hs Text.hs Clock.hs Graph.hs +PROGS = drawing drawing2 starandring text clock graph sdldrawing +SOURCES = Drawing.hs Drawing2.hs StarAndRing.hs Text.hs Clock.hs Graph.hs CairoSDL.hs hunk ./cairo/demo/Makefile 25 +sdldrawing : CairoSDL.hs + $(HC_RULE) + |
From: Axel S. <si...@lu...> - 2012-03-13 16:10:37
|
diffing dir... Tue Mar 13 14:13:11 GMT 2012 Axe...@in... * Add a note on how to connect to bufferInsertText. Ignore-this: c9a6011fbae46b14c6c18d92de9e6732 hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1254 +-- * See note in 'bufferInsertText'. +-- hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1262 +-- * See note in 'bufferInsertText'. +-- hunk ./gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 1267 --- | Some text was inserted. +-- | Some text is inserted. Insertion actually occurs in the default handler. +-- +-- * The function connected to this handler may not modify the buffer since +-- this would invalidate the iterator. If this function replaces the +-- default handler, it needs to stop the emission of this signal in order +-- to prevent the default handler from running. If additional text should +-- be inserted, this can be done using the 'after' function to connect. |
From: Daniel W. <dm...@lu...> - 2012-03-08 23:16:00
|
diffing dir... Thu Mar 8 23:13:32 GMT 2012 Daniel Wagner <da...@wa...> * update .cabal files: bump version numbers + record which versions of GHC this has been tested with Ignore-this: fe46cb8791cb9fb36618f26678dc3f4a hunk ./cairo/cairo.cabal 2 -Version: 0.12.2 +Version: 0.12.3 hunk ./cairo/cairo.cabal 18 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./gio/gio.cabal 2 -Version: 0.12.2 +Version: 0.12.3 hunk ./gio/gio.cabal 20 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./glib/glib.cabal 2 -Version: 0.12.2 +Version: 0.12.3 hunk ./glib/glib.cabal 19 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./gtk/gtk.cabal 2 -Version: 0.12.2 +Version: 0.12.3 hunk ./gtk/gtk.cabal 18 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./pango/pango.cabal 2 -Version: 0.12.2 +Version: 0.12.3 hunk ./pango/pango.cabal 19 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./pango/pango.cabal 45 - glib >= 0.12 && < 0.13, - cairo >= 0.12 && < 0.13 + glib >= 0.12.0 && < 0.13, + cairo >= 0.12.0 && < 0.13 hunk ./tools/gtk2hs-buildtools.cabal 2 -Version: 0.12.1 +Version: 0.12.3 hunk ./tools/gtk2hs-buildtools.cabal 23 -Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1 +Tested-With: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 hunk ./tools/gtk2hs-buildtools.cabal 117 + BangPatterns |
From: Daniel W. <dm...@lu...> - 2012-03-08 10:32:48
|
diffing dir... Thu Mar 8 10:13:11 GMT 2012 Daniel Wagner <da...@wa...> * fixes for gtk-2.12 on Windows Ignore-this: 5c66fd3081d3f6cdadde33ddfad2a70 hunk ./cairo/Graphics/Rendering/Cairo.hs 8 -#include<cairo-version.h> hunk ./cairo/Graphics/Rendering/Cairo.hs 9 + +-- GTK-2.12 doesn't have cairo-version.h, but defines the appropriate VERSION +-- variables in cairo-features.h instead. So only include this when necessary. +#ifndef CAIRO_VERSION_MAJOR +#include<cairo-version.h> +#endif hunk ./gio/System/GIO/Icons/ThemedIcon.chs 42 +#if GLIB_CHECK_VERSION(2,18,0) hunk ./gio/System/GIO/Icons/ThemedIcon.chs 44 +#endif hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 122 +#if !defined(WIN32) || GTK_CHECK_VERSION(2,14,0) +#else +import Unsafe.Coerce +#endif hunk ./gtk/Graphics/UI/Gtk/General/Structs.hsc 612 +#if GTK_CHECK_VERSION(2,14,0) +#else + -- GTK-2.12 is a bit sloppy about the distinction between pointers and + -- 32-bit ints, so we have to mimic that sloppiness here + liftM unsafeCoerce $ +#endif |
From: <du...@lu...> - 2012-03-05 20:22:28
|
diffing dir... Mon Mar 5 20:20:45 GMT 2012 Duncan Coutts <du...@co...> * Correct the name/path of the glib #include Ignore-this: 89a8cba1724af487f2a5bc633cb302cc It must be #include <glib.h> and not #include <glib-2.0/glib.h> This fixes the build on Windows. hunk ./pango/Graphics/Rendering/Pango/Structs.hsc 25 -#include <glib-2.0/glib.h> +#include <glib.h> |
From: Daniel W. <dm...@lu...> - 2012-02-13 17:20:26
|
diffing dir... Mon Feb 13 17:19:10 GMT 2012 Daniel Wagner <da...@wa...> * and note the "glade" requirement for these two Ignore-this: c34d418be4fbd7990a2eefd21d79393a hunk ./gtk/demo/demos.txt 34 -filechooser: examples of Save and Open dialogs. +filechooser: examples of Save and Open dialogs. requires the glade package hunk ./gtk/demo/demos.txt 96 -treelist: some examples showing how to use ListView and TreeView widgets +treelist: some examples showing how to use ListView and TreeView widgets; requires the glade package |
From: Daniel W. <dm...@lu...> - 2012-02-13 17:18:08
|
diffing dir... Mon Feb 13 17:17:16 GMT 2012 Daniel Wagner <da...@wa...> * note the uzbl requirement Ignore-this: 32d999fd5040449834c945a4fe32c876 hunk ./gtk/demo/demos.txt 30 +embedded: You will need uzbl installed (http://uzbl.org/) to run the Uzbl demo. + |
From: Daniel W. <dm...@lu...> - 2012-02-13 03:37:23
|
diffing dir... Sun Jan 29 21:38:06 GMT 2012 ti...@do... * added widgetRestoreFg, widgetRestoreBg, widgetRestoreText, widgetRestoreBase Ignore-this: dc8a919c680a57799abbd1f19b40825d These new functions undo the effects of previous calls are to widgetModifyFg, widgetModifyBg, widgetModifyText, and widgetModifyBase. Whilst it may have been preferable to implement this behaviour by having the existing functions take a Maybe type (as this would be consitent with both widgetModifyFont and the underlying gtk API), new functions were added so as to preserve the current API. hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 161 + widgetRestoreFg, + widgetRestoreBg, + widgetRestoreText, + widgetRestoreBase, hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1391 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyFg'. + -- allocated) hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1400 +-- | Restores the foreground color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyFg'. +-- +widgetRestoreFg :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the foreground color. + -> IO () +widgetRestoreFg self state = + {# call gtk_widget_modify_fg #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1426 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyBg'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1435 +-- | Restores the background color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyBg'. +-- +widgetRestoreBg :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the background color. + -> IO () +widgetRestoreBg self state = + {# call gtk_widget_modify_bg #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1456 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyText'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1465 +-- | Restores the text color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyText'. +-- +widgetRestoreText :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the text color. + -> IO () +widgetRestoreText self state = + {# call gtk_widget_modify_text #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1493 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyBase'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1502 +-- | Restores the base color for a widget in a particular state. This undoes +-- the effects of previous calls to widgetModifyBase. +-- +widgetRestoreBase :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the base color. + -> IO () +widgetRestoreBase self state = + {# call gtk_widget_modify_base #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + + |
From: Daniel W. <dm...@lu...> - 2012-02-13 03:34:12
|
diffing dir... Sun Jan 29 21:38:06 GMT 2012 ti...@do... * added widgetRestoreFg, widgetRestoreBg, widgetRestoreText, widgetRestoreBase Ignore-this: dc8a919c680a57799abbd1f19b40825d These new functions undo the effects of previous calls are to widgetModifyFg, widgetModifyBg, widgetModifyText, and widgetModifyBase. Whilst it may have been preferable to implement this behaviour by having the existing functions take a Maybe type (as this would be consitent with both widgetModifyFont and the underlying gtk API), new functions were added so as to preserve the current API. hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 161 + widgetRestoreFg, + widgetRestoreBg, + widgetRestoreText, + widgetRestoreBase, hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1391 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyFg'. + -- allocated) hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1400 +-- | Restores the foreground color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyFg'. +-- +widgetRestoreFg :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the foreground color. + -> IO () +widgetRestoreFg self state = + {# call gtk_widget_modify_fg #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1426 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyBg'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1435 +-- | Restores the background color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyBg'. +-- +widgetRestoreBg :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the background color. + -> IO () +widgetRestoreBg self state = + {# call gtk_widget_modify_bg #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1456 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyText'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1465 +-- | Restores the text color for a widget in a particular state. This +-- undoes the effects of previous calls to `widgetModifyText'. +-- +widgetRestoreText :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the text color. + -> IO () +widgetRestoreText self state = + {# call gtk_widget_modify_text #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1493 - -- allocated), or @Nothing@ to undo the effect of previous calls - -- to of 'widgetModifyBase'. + -- allocated). hunk ./gtk/Graphics/UI/Gtk/Abstract/Widget.chs 1502 +-- | Restores the base color for a widget in a particular state. This undoes +-- the effects of previous calls to widgetModifyBase. +-- +widgetRestoreBase :: WidgetClass self => self + -> StateType -- ^ @state@ - the state for which to restore the base color. + -> IO () +widgetRestoreBase self state = + {# call gtk_widget_modify_base #} + (toWidget self) + ((fromIntegral . fromEnum) state) + nullPtr + + |