1 patch for repository http://code.haskell.org/gtk2hs/:
Tue Jun 1 21:18:28 CST 2010 Andy Stewart <lazycat.mana...@gmail.com> * Add Tooltip.chs (The new module to replace Tooltips.chs)
New patches: [Add Tooltip.chs (The new module to replace Tooltips.chs) Andy Stewart <lazycat.mana...@gmail.com>**20100601131828 Ignore-this: ca64d1d45d3c526494a41fb537d16c6c ] { hunk ./gtk/Graphics/UI/Gtk.chs 197 module Graphics.UI.Gtk.Misc.HandleBox, module Graphics.UI.Gtk.Misc.IMMulticontext, module Graphics.UI.Gtk.Misc.SizeGroup, + module Graphics.UI.Gtk.Misc.Tooltip, module Graphics.UI.Gtk.Misc.Tooltips, module Graphics.UI.Gtk.Misc.Viewport, -- * Abstract base classes hunk ./gtk/Graphics/UI/Gtk.chs 390 import Graphics.UI.Gtk.Misc.HandleBox import Graphics.UI.Gtk.Misc.IMMulticontext import Graphics.UI.Gtk.Misc.SizeGroup +import Graphics.UI.Gtk.Misc.Tooltip import Graphics.UI.Gtk.Misc.Tooltips import Graphics.UI.Gtk.Misc.Viewport --import Accessible addfile ./gtk/Graphics/UI/Gtk/Misc/Tooltip.chs hunk ./gtk/Graphics/UI/Gtk/Misc/Tooltip.chs 1 +{-# LANGUAGE CPP #-} +-- -*-haskell-*- +-- GIMP Toolkit (GTK) Widget Tooltip +-- +-- Author : Andy Stewart +-- +-- Created: 24 Mar 2010 +-- +-- Copyright (C) 2010 Andy Stewart +-- +-- 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 : gtk2hs-us...@lists.sourceforge.net +-- Stability : provisional +-- Portability : portable (depends on GHC) +-- +-- Add tips to your widgets +-- +-- * Module available since Gtk+ version 2.12 +-- +module Graphics.UI.Gtk.Misc.Tooltip ( + +-- * Detail +-- +-- | 'Tooltip' belongs to the new tooltips API that was introduced in Gtk+ +-- 2.12 and which deprecates the old 'Tooltips' API. +-- +-- Basic tooltips can be realized simply by using 'widgetSetTooltipText' or +-- 'widgetSetTooltipMarkup' without any explicit tooltip object. +-- +-- When you need a tooltip with a little more fancy contents, like adding an +-- image, or you want the tooltip to have different contents per 'TreeView' row +-- or cell, you will have to do a little more work: +-- +-- * Set the 'hasTooltip' property to 'True', this will make GTK+ monitor the widget for motion and +-- related events which are needed to determine when and where to show a tooltip. +-- +-- * Connect to the 'queryTooltip' signal. This signal will be emitted when a tooltip is supposed to +-- be shown. One of the arguments passed to the signal handler is a 'Tooltip' object. This is the +-- object that we are about to display as a tooltip, and can be manipulated in your callback using +-- functions like 'tooltipSetIcon'. There are functions for setting the tooltip's markup, +-- setting an image from a stock icon, or even putting in a custom widget. +-- +-- * Return 'True' from your query-tooltip handler. This causes the tooltip to be show. If you return +-- 'False', it will not be shown. +-- +-- In the probably rare case where you want to have even more control over the tooltip that is about to +-- be shown, you can set your own 'Window' which will be used as tooltip window. This works as +-- follows: +-- +-- * Set 'hasTooltip' and connect to 'queryTooltip' as before. +-- +-- * Use 'widgetSetTooltipWindow' to set a 'Window' created by you as tooltip window. +-- +-- * In the 'queryTooltip' callback you can access your window using 'widgetGetTooltipWindow' +-- and manipulate as you wish. The semantics of the return value are exactly as before, return 'True' +-- to show the window, 'False' to not show it. + +-- * Class Hierarchy +-- +-- | +-- @ +-- | 'GObject' +-- | +----Tooltip +-- @ + +#if GTK_CHECK_VERSION(2,12,0) +-- * Types + Tooltip, + TooltipClass, + castToTooltip, + toTooltip, + +-- * Methods + tooltipSetMarkup, + tooltipSetText, + tooltipSetIcon, + tooltipSetIconFromStock, +#if GTK_CHECK_VERSION(2,14,0) + tooltipSetIconFromIconName, +#endif + tooltipSetCustom, + tooltipTriggerTooltipQuery, + tooltipSetTipArea, +#endif + ) where + +import Control.Monad (liftM) +import Data.Maybe (fromMaybe) + +import System.Glib.FFI +import System.Glib.UTFString +import System.Glib.GObject (constructNewGObject,makeNewGObject) +import Graphics.UI.Gtk.General.Structs (IconSize(..), Rectangle) +{#import Graphics.UI.Gtk.Types#} + +{# context lib="gtk" prefix="gtk" #} + +#if GTK_CHECK_VERSION(2,12,0) +-------------------- +-- Methods + +-- | Sets the text of the tooltip to be @markup@, which is marked up with the +-- Pango text markup language. If @markup@ is 'Nothing', the label will be hidden. +-- +tooltipSetMarkup :: TooltipClass self => self + -> Maybe String -- ^ @markup@ - a markup string (see Pango markup format) or 'Nothing' + -> IO () +tooltipSetMarkup self markup = + maybeWith withUTFString markup $ \markupPtr -> + {# call gtk_tooltip_set_markup #} + (toTooltip self) + markupPtr + +-- | Sets the text of the tooltip to be @t...@. If @text@ is 'Nothing' +-- the label will be hidden. See also 'tooltipSetMarkup'. +-- +tooltipSetText :: TooltipClass self => self + -> Maybe String -- ^ @text@ - a text string or 'Nothing' + -> IO () +tooltipSetText self text = + maybeWith withUTFString text $ \textPtr -> + {# call gtk_tooltip_set_text #} + (toTooltip self) + textPtr + +-- | Sets the icon of the tooltip (which is in front of the text) to be +-- @pix...@. If @pixbuf@ is 'Nothing' the image will be hidden. +-- +tooltipSetIcon :: TooltipClass self => self + -> Maybe Pixbuf -- ^ @pixbuf@ - a 'Pixbuf' or 'Nothing' + -> IO () +tooltipSetIcon self pixbuf = + {#call tooltip_set_icon#} + (toTooltip self) + (fromMaybe (Pixbuf nullForeignPtr) pixbuf) + +-- | Sets the icon of the tooltip (which is in front of the text) to be the +-- stock item indicated by @stockId@ with the size indicated by @s...@. If +-- @stockId@ is 'Nothing' the image will be hidden. +-- +tooltipSetIconFromStock :: TooltipClass self => self + -> Maybe String -- ^ @id@ a stock id, or 'Nothing' + -> IconSize -- ^ @size@ a stock icon size + -> IO () +tooltipSetIconFromStock self id size = + maybeWith withUTFString id $ \ idPtr -> + {#call tooltip_set_icon_from_stock#} + (toTooltip self) + idPtr + ((fromIntegral . fromEnum) size) + +#if GTK_CHECK_VERSION(2,14,0) +-- | Sets the icon of the tooltip (which is in front of the text) to be the +-- icon indicated by @iconName@ with the size indicated by @s...@. If +-- @iconName@ is 'Nothing' the image will be hidden. +-- +-- * Available since Gtk+ version 2.14 +-- +tooltipSetIconFromIconName :: TooltipClass self => self + -> Maybe String -- ^ @iconName@ an icon name, or 'Nothing' + -> IconSize -- ^ @size@ a stock icon size + -> IO () +tooltipSetIconFromIconName self iconName size = + maybeWith withUTFString iconName $ \ iconPtr -> + {#call tooltip_set_icon_from_icon_name#} + (toTooltip self) + iconPtr + ((fromIntegral . fromEnum) size) +#endif + +-- | Replaces the widget packed into the tooltip with @customwid...@. +-- @customWidget@ does not get destroyed when the tooltip goes away. By default +-- a box with a 'Image' and 'Label' is embedded in the tooltip, which can be +-- configured using 'tooltipSetMarkup' and 'tooltipSetIcon'. +-- +tooltipSetCustom :: (TooltipClass self, WidgetClass widget) => self + -> Maybe widget -- ^ @customWidget@ a 'Widget', or 'Nothing' to unset the old custom widget. + -> IO () +tooltipSetCustom self customWidget = + {#call tooltip_set_custom#} + (toTooltip self) + (maybe (Widget nullForeignPtr) toWidget customWidget) + +-- | Triggers a new tooltip query on @display@, in order to update the current +-- visible tooltip, or to show\/hide the current tooltip. This function is +-- useful to call when, for example, the state of the widget changed by a key +-- press. +-- +tooltipTriggerTooltipQuery :: + Display -- ^ @display@ - a 'Display' + -> IO () +tooltipTriggerTooltipQuery display = + {# call gtk_tooltip_trigger_tooltip_query #} + display + +-- | Sets the area of the widget, where the contents of this tooltip apply, to +-- be @rect@ (in widget coordinates). This is especially useful for properly +-- setting tooltips on 'TreeView' rows and cells, 'IconView' +-- +-- For setting tooltips on 'TreeView', please refer to the convenience +-- functions for this: 'treeViewSetTooltipRow' and 'treeViewSetTooltipCell'. +-- +tooltipSetTipArea :: TooltipClass self => self -> Rectangle -> IO () +tooltipSetTipArea self rect = + with rect $ \ rectPtr -> + {#call tooltip_set_tip_area#} + (toTooltip self) + (castPtr rectPtr) +#endif hunk ./gtk/gtk.cabal 238 Graphics.UI.Gtk.Misc.HandleBox Graphics.UI.Gtk.Misc.IMMulticontext Graphics.UI.Gtk.Misc.SizeGroup + Graphics.UI.Gtk.Misc.Tooltip Graphics.UI.Gtk.Misc.Tooltips Graphics.UI.Gtk.Misc.Viewport Graphics.UI.Gtk.ModelView hunk ./tools/hierarchyGen/hierarchy.list 186 # least GObjects. GtkCellLayout if gtk-2.4 GtkTreeSortable if gtk-2.4 + GtkTooltip if gtk-2.12 # These are derived from GObject: GtkStatusIcon if gtk-2.10 GtkTreeSelection } Context: [Clean bootstrap.sh Andy Stewart <lazycat.mana...@gmail.com>**20100601122113 Ignore-this: f59b5f9bf21945c39258a39432621a03 ] [Note that Cabal 1.8 is required for ghci support under Windows. axel.si...@in.tum.de**20100527181310 Ignore-this: 1c5fc3bb7ad83f5d1094e0083ddd9913 ] [Do not query g_object_get_type as it only exists in newer Gtk+ versions. axel.si...@in.tum.de**20100527163435 Ignore-this: 70d62f66a2eb159c7fd3e23079c5debf ] [Remove gnomevfs sourceview mozembed since those packages has deprecated. Andy Stewart <lazycat.mana...@gmail.com>**20100527124728 Ignore-this: a1dfda3669b7417a7b09c3b4acfaa2d Below are backup repositories for those deprecated packages: * gnomevfs : http://www2.in.tum.de/~simona/gnomevfs/ * sourceview : http://www2.in.tum.de/~simona/sourceview/ * mozembed : http://www2.in.tum.de/~simona/mozembed/ ] [Fix IconTheme.chs docs. Andy Stewart <lazycat.mana...@gmail.com>**20100527102140 Ignore-this: 2f2b7ab508c688cc73f1b59012966d13 ] [Fix Gtk2HsSetup.hs bug. Andy Stewart <lazycat.mana...@gmail.com>**20100527095530 Ignore-this: 1b65945da174e05d0ad2a1f01e2ee651 ] [Add gnomevfs demo directory. Andy Stewart <lazycat.mana...@gmail.com>**20100527061234 Ignore-this: 40c6dd74b460d7546937212dacf1f9e1 ] [Add gtk demo directory. Andy Stewart <lazycat.mana...@gmail.com>**20100527061041 Ignore-this: 876a827c6f1bac1a8b26a99cd68c6005 ] [Add cairo demo directory. Andy Stewart <lazycat.mana...@gmail.com>**20100527051924 Ignore-this: b1a70c2a24812fb84c899e4e8ce3ca6c ] [Add pango demo directory. Andy Stewart <lazycat.mana...@gmail.com>**20100527051205 Ignore-this: af1ff611ab459ee2b6c5bc09a3f63c11 ] [Fix the license of gnomevfs Andy Stewart <lazycat.mana...@gmail.com>**20100527035350 Ignore-this: 9ac7c768af168d6f0c7af8c8790e8643 ] [Fix the license of gio. axel.si...@in.tum.de**20100526152125 Ignore-this: 42fe27de2030e0395227f889ba5345d8 ] [Fix Trac #1164. toGSList was reversing lists. m.ni...@gmail.com**20090514122933 Ignore-this: c466eadbc5ae61ba71721fe15b44735a ] [Remove gconf glade gstreamer gtkglext gtksourceview2 soegtk svgcairo vte webkit since these all now have their own repos. axel.si...@in.tum.de**20100525211947] [Documentation fix for EventM. axel.si...@in.tum.de**20100525131428 Ignore-this: 25c3bf3513ec6467cbd0febe397ab53e ] [Put upper bounds on base version. axel.si...@in.tum.de**20100525082101 Ignore-this: f92b2d9970c436c9fcbcf141fc988e8 ] [Make documentation parsable. axel.si...@in.tum.de**20100525080209 Ignore-this: 60f44b8251a9f3e933c874f72d8e8801 ] [Make the version test in pango less complex as Cabal 1.6 doesn't parse it otherwise. axel.si...@in.tum.de**20100525075706 Ignore-this: f3446237cf66abf49e81bd4ba8ef9744 ] [Fix an incorrect pattern in windowSetIcon. axel.si...@in.tum.de**20100525075639 Ignore-this: eb596c778897b4ae4fd7f9a8dde59726 ] [Get rid of stock images under ./docs/reference/images Andy Stewart <lazycat.mana...@gmail.com>**20100524235315 Ignore-this: 1094aaf32c73ba189937e1beee24ee49 ] [Redirect image link to library.gnome.org and update image items to GTK+ 2.20 Andy Stewart <lazycat.mana...@gmail.com>**20100524233947 Ignore-this: f33362d57605d16365e4dfac59c01122 ] [Add an upper version to the requirement on base. axel.si...@in.tum.de**20100524211158] [Be more specific as to the prerequisites of packages. axel.si...@in.tum.de**20100524210210] [Fix docu. axel.si...@in.tum.de**20100524210157] [Make soegtk compile by fixing dependency on old-time and by not relying on Gtk 2.18. axel.si...@in.tum.de**20100524210032] [don't mention tools in the docs for unregistering. axel.si...@in.tum.de**20100524201401] [TAG 0.11.0 axel.si...@in.tum.de**20100524200857] Patch bundle hash: a3e8891e6ba250582e3563a093e81149baa013e4
------------------------------------------------------------------------------
_______________________________________________ Gtk2hs-devel mailing list Gtk2hs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel