{-# LINE 2 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}-- -*-haskell-*--- GIMP Toolkit (GTK) TextMark TextBuffer---- Author : Axel Simon---- Created: 23 February 2002---- Copyright (C) 2002-2005 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 : gtk2hs-users@lists.sourceforge.net-- Stability : provisional-- Portability : portable (depends on GHC)---- A position in the buffer preserved across buffer modifications--moduleGraphics.UI.Gtk.Multiline.TextMark(-- * Detail---- | You may wish to begin by reading the text widget conceptual overview-- which gives an overview of all the objects and data types related to the-- text widget and how they work together.---- A 'TextMark' is like a bookmark in a text buffer; it preserves a position-- in the text. You can convert the mark to an iterator using-- 'textBufferGetIterAtMark'. Unlike-- iterators, marks remain valid across buffer mutations, because their-- behavior is defined when text is inserted or deleted. When text containing-- a mark is deleted, the mark remains in the position originally occupied by-- the deleted text. When text is inserted at a mark, a mark with left-- gravity will be moved to the beginning of the newly-inserted text, and a-- mark with right gravity will be moved to the end.---- Marks can be deleted from the buffer at any time with-- 'textBufferDeleteMark'. Once deleted-- from the buffer, a mark is essentially useless.---- Marks optionally have names; these can be convenient to avoid passing the-- 'TextMark' object around.---- Marks are typically created using the-- 'textBufferCreateMark' function.-- * Class Hierarchy-- |-- @-- | 'GObject'-- | +----TextMark-- @-- * TypesTextMark,TextMarkClass,castToTextMark,gTypeTextMark,toTextMark,MarkName,-- * ConstructorstextMarkNew,-- * MethodstextMarkSetVisible,textMarkGetVisible,textMarkGetDeleted,textMarkGetName,textMarkGetBuffer,textMarkGetLeftGravity,-- * AttributestextMarkVisible,)whereimportControl.Monad(liftM)importSystem.Glib.FFIimportSystem.Glib.UTFStringimportSystem.Glib.AttributesimportSystem.Glib.PropertiesimportSystem.Glib.GObject(makeNewGObject,wrapNewGObject)importGraphics.UI.Gtk.Types{-# LINE 94 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}{-# LINE 96 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}-- | The name of a mark.typeMarkName=String---------------------- Constructors-- | Creates a text mark. Add it to a buffer using 'textBufferAddMark'. If-- @name@ is @Nothing@, the mark is anonymous; otherwise, the mark can be retrieved by-- this name-- using 'textBufferGetMark'. If a mark has left gravity, and text is inserted-- at the mark's current location, the mark will be moved to the left of the-- newly-inserted text. If the mark has right gravity (@leftGravity@ =-- @False@), the mark will end up on the right of newly-inserted text. The-- standard left-to-right cursor is a mark with right gravity (when you type,-- the cursor stays on the right side of the text you\'re typing).---- * Available since Gtk+ version 2.12--textMarkNew::MaybeMarkName-- ^ @markName@ - name for mark, or @Nothing@->Bool-- ^ @leftGravity@ - whether the mark has left gravity->IOTextMarktextMarkNewmarkNameleftGravity=wrapNewGObjectmkTextMark$maybeWithwithUTFStringmarkName$\markNamePtr->gtk_text_mark_new{-# LINE 124 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}markNamePtr(fromBoolleftGravity)---------------------- Methods-- | Sets the visibility of @mark@; the insertion point is normally visible,-- i.e. you can see it as a vertical bar. Also, the text widget uses a visible-- mark to indicate where a drop will occur when dragging-and-dropping text.-- Most other marks are not visible. Marks are not visible by default.--textMarkSetVisible::TextMarkClassself=>self->Bool->IO()textMarkSetVisibleselfsetting=(\(TextMarkarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_text_mark_set_visibleargPtr1arg2){-# LINE 139 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)(fromBoolsetting)-- | Returns @True@ if the mark is visible (i.e. a cursor is displayed for it)--textMarkGetVisible::TextMarkClassself=>self->IOBooltextMarkGetVisibleself=liftMtoBool$(\(TextMarkarg1)->withForeignPtrarg1$\argPtr1->gtk_text_mark_get_visibleargPtr1){-# LINE 148 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)-- | Returns @True@ if the mark has been removed from its buffer with-- 'textBufferDeleteMark'. Marks can't-- be used once deleted.--textMarkGetDeleted::TextMarkClassself=>self->IOBooltextMarkGetDeletedself=liftMtoBool$(\(TextMarkarg1)->withForeignPtrarg1$\argPtr1->gtk_text_mark_get_deletedargPtr1){-# LINE 158 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)-- | Returns the mark name; returns @Nothing@ for anonymous marks.--textMarkGetName::TextMarkClassself=>self->IO(MaybeMarkName)textMarkGetNameself=(\(TextMarkarg1)->withForeignPtrarg1$\argPtr1->gtk_text_mark_get_nameargPtr1){-# LINE 165 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)>>=maybePeekpeekUTFString-- | Gets the buffer this mark is located inside, or @Nothing@ if the mark is-- deleted.--textMarkGetBuffer::TextMarkClassself=>self->IO(MaybeTextBuffer)textMarkGetBufferself=maybeNull(makeNewGObjectmkTextBuffer)$(\(TextMarkarg1)->withForeignPtrarg1$\argPtr1->gtk_text_mark_get_bufferargPtr1){-# LINE 175 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)-- | Determines whether the mark has left gravity.---- The name is misleading as Arabic, Hebrew and some other languages have the-- beginning of a line towards the right.--textMarkGetLeftGravity::TextMarkClassself=>self->IOBooltextMarkGetLeftGravityself=liftMtoBool$(\(TextMarkarg1)->withForeignPtrarg1$\argPtr1->gtk_text_mark_get_left_gravityargPtr1){-# LINE 186 "./Graphics/UI/Gtk/Multiline/TextMark.chs" #-}(toTextMarkself)---------------------- Attributes-- | Retreives the name of a mark.--textMarkName::TextMarkClassself=>ReadAttrself(MaybeMarkName)textMarkName=readAttrFromMaybeStringProperty"name"-- | The \'visible\' property. See 'textMarkGetVisible' and 'textMarkSetVisible'--textMarkVisible::TextMarkClassself=>AttrselfBooltextMarkVisible=newAttrtextMarkGetVisibletextMarkSetVisible-- | Determines whether the mark keeps to the left when text is inserted at its position.--textMarkLeftGravity::TextMarkClassself=>ReadAttrselfBooltextMarkLeftGravity=readAttrFromBoolProperty"left-gravity"foreignimportccallsafe"gtk_text_mark_new"gtk_text_mark_new::((PtrCChar)->(CInt->(IO(PtrTextMark))))foreignimportccallunsafe"gtk_text_mark_set_visible"gtk_text_mark_set_visible::((PtrTextMark)->(CInt->(IO())))foreignimportccallunsafe"gtk_text_mark_get_visible"gtk_text_mark_get_visible::((PtrTextMark)->(IOCInt))foreignimportccallunsafe"gtk_text_mark_get_deleted"gtk_text_mark_get_deleted::((PtrTextMark)->(IOCInt))foreignimportccallunsafe"gtk_text_mark_get_name"gtk_text_mark_get_name::((PtrTextMark)->(IO(PtrCChar)))foreignimportccallunsafe"gtk_text_mark_get_buffer"gtk_text_mark_get_buffer::((PtrTextMark)->(IO(PtrTextBuffer)))foreignimportccallunsafe"gtk_text_mark_get_left_gravity"gtk_text_mark_get_left_gravity::((PtrTextMark)->(IOCInt))