module Graphics.UI.Gtk.SourceView.SourceBuffer (
SourceBuffer,
SourceBufferClass,
castToSourceBuffer,
sourceBufferNew,
sourceBufferNewWithLanguage,
sourceBufferSetHighlightSyntax,
sourceBufferGetHighlightSyntax,
sourceBufferSetLanguage,
sourceBufferGetLanguage,
sourceBufferSetHighlightMatchingBrackets,
sourceBufferGetHighlightMatchingBrackets,
sourceBufferSetStyleScheme,
sourceBufferGetStyleScheme,
sourceBufferSetMaxUndoLevels,
sourceBufferGetMaxUndoLevels,
sourceBufferGetCanUndo,
sourceBufferGetCanRedo,
sourceBufferUndo,
sourceBufferRedo,
sourceBufferBeginNotUndoableAction,
sourceBufferEndNotUndoableAction,
sourceBufferCreateSourceMark,
sourceBufferGetSourceMarksAtLine,
sourceBufferGetSourceMarksAtIter,
sourceBufferRemoveSourceMarks,
sourceBufferForwardIterToSourceMark,
sourceBufferBackwardIterToSourceMark,
sourceBufferEnsureHighlight,
sourceBufferCanRedo,
sourceBufferCanUndo,
sourceBufferHighlightMatchingBrackets,
sourceBufferHighlightSyntax,
sourceBufferLanguage,
sourceBufferSourceStyleScheme,
sourceBufferMaxUndoLevels,
sourceBufferUndoManager,
sourceBufferHighlightUpdated,
sourceBufferRedoSignal,
sourceBufferUndoSignal,
sourceBufferSourceMarkUpdated,
) where
import Control.Monad (liftM)
import Data.Maybe (fromMaybe)
import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
import System.Glib.Attributes
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.GList
import System.Glib.GObject (wrapNewGObject, makeNewGObject)
import Graphics.UI.Gtk.Multiline.TextIter
import Graphics.UI.Gtk.SourceView.Signals
import Graphics.UI.Gtk.SourceView.SourceMark
import Graphics.UI.Gtk.SourceView.Types
import System.Glib.Properties
sourceBufferNew :: Maybe TextTagTable -> IO SourceBuffer
sourceBufferNew tt = wrapNewGObject mkSourceBuffer $
(\(TextTagTable arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_new argPtr1)
(fromMaybe (TextTagTable nullForeignPtr) tt)
sourceBufferNewWithLanguage :: SourceLanguage -> IO SourceBuffer
sourceBufferNewWithLanguage lang = wrapNewGObject mkSourceBuffer $
(\(SourceLanguage arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_new_with_language argPtr1) lang
sourceBufferSetHighlightSyntax :: SourceBufferClass buffer => buffer
-> Bool
-> IO ()
sourceBufferSetHighlightSyntax sb newVal =
(\(SourceBuffer arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_set_highlight_syntax argPtr1 arg2)
(toSourceBuffer sb)
(fromBool newVal)
sourceBufferGetHighlightSyntax :: SourceBufferClass buffer => buffer
-> IO Bool
sourceBufferGetHighlightSyntax sb = liftM toBool $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_highlight_syntax argPtr1)
(toSourceBuffer sb)
sourceBufferSetLanguage :: SourceBufferClass buffer => buffer
-> Maybe SourceLanguage
-> IO ()
sourceBufferSetLanguage sb lang =
(\(SourceBuffer arg1) (SourceLanguage arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_source_buffer_set_language argPtr1 argPtr2)
(toSourceBuffer sb)
(fromMaybe (SourceLanguage nullForeignPtr) lang)
sourceBufferGetLanguage :: SourceBufferClass buffer => buffer
-> IO (Maybe SourceLanguage)
sourceBufferGetLanguage sb =
maybeNull (makeNewGObject mkSourceLanguage) $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_language argPtr1) (toSourceBuffer sb)
sourceBufferSetHighlightMatchingBrackets :: SourceBufferClass buffer => buffer
-> Bool
-> IO ()
sourceBufferSetHighlightMatchingBrackets sb newVal =
(\(SourceBuffer arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_set_highlight_matching_brackets argPtr1 arg2) (toSourceBuffer sb) (fromBool newVal)
sourceBufferGetHighlightMatchingBrackets :: SourceBufferClass buffer => buffer
-> IO Bool
sourceBufferGetHighlightMatchingBrackets sb = liftM toBool $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_highlight_matching_brackets argPtr1) (toSourceBuffer sb)
sourceBufferSetStyleScheme :: SourceBufferClass buffer => buffer
-> Maybe SourceStyleScheme
-> IO ()
sourceBufferSetStyleScheme sb scheme =
(\(SourceBuffer arg1) (SourceStyleScheme arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_source_buffer_set_style_scheme argPtr1 argPtr2)
(toSourceBuffer sb)
(fromMaybe (SourceStyleScheme nullForeignPtr) scheme)
sourceBufferGetStyleScheme :: SourceBufferClass buffer => buffer
-> IO (Maybe SourceStyleScheme)
sourceBufferGetStyleScheme sb =
maybeNull (makeNewGObject mkSourceStyleScheme) $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_style_scheme argPtr1) (toSourceBuffer sb)
sourceBufferSetMaxUndoLevels :: SourceBufferClass buffer => buffer
-> Int
-> IO ()
sourceBufferSetMaxUndoLevels sb newVal =
(\(SourceBuffer arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_set_max_undo_levels argPtr1 arg2) (toSourceBuffer sb) (fromIntegral newVal)
sourceBufferGetMaxUndoLevels :: SourceBufferClass buffer => buffer
-> IO Int
sourceBufferGetMaxUndoLevels sb = liftM fromIntegral $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_max_undo_levels argPtr1) (toSourceBuffer sb)
sourceBufferGetCanUndo :: SourceBufferClass buffer => buffer
-> IO Bool
sourceBufferGetCanUndo sb = liftM toBool $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_can_undo argPtr1) (toSourceBuffer sb)
sourceBufferGetCanRedo :: SourceBufferClass buffer => buffer
-> IO Bool
sourceBufferGetCanRedo sb = liftM toBool $
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_can_redo argPtr1) (toSourceBuffer sb)
sourceBufferUndo :: SourceBufferClass buffer => buffer -> IO ()
sourceBufferUndo sb =
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_undo argPtr1) (toSourceBuffer sb)
sourceBufferRedo :: SourceBufferClass buffer => buffer -> IO ()
sourceBufferRedo sb =
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_redo argPtr1) (toSourceBuffer sb)
sourceBufferBeginNotUndoableAction :: SourceBufferClass buffer => buffer -> IO ()
sourceBufferBeginNotUndoableAction sb =
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_begin_not_undoable_action argPtr1) (toSourceBuffer sb)
sourceBufferEndNotUndoableAction :: SourceBufferClass buffer => buffer -> IO ()
sourceBufferEndNotUndoableAction sb =
(\(SourceBuffer arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_end_not_undoable_action argPtr1) (toSourceBuffer sb)
sourceBufferCreateSourceMark :: (SourceBufferClass buffer, GlibString string) => buffer
-> Maybe string
-> string
-> TextIter -> IO SourceMark
sourceBufferCreateSourceMark sb name category iter =
makeNewGObject mkSourceMark $
maybeWith withUTFString name $ \strPtr1 ->
withUTFString category $ \strPtr2 ->
(\(SourceBuffer arg1) arg2 arg3 (TextIter arg4) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg4 $ \argPtr4 ->gtk_source_buffer_create_source_mark argPtr1 arg2 arg3 argPtr4) (toSourceBuffer sb) strPtr1 strPtr2 iter
sourceBufferGetSourceMarksAtLine :: (SourceBufferClass buffer, GlibString string) => buffer
-> Int
-> string
-> IO [SourceMark]
sourceBufferGetSourceMarksAtLine buffer line category =
withUTFString category $ \categoryPtr ->
(\(SourceBuffer arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_buffer_get_source_marks_at_line argPtr1 arg2 arg3)
(toSourceBuffer buffer)
(fromIntegral line)
categoryPtr
>>= readGSList
>>= mapM (\markPtr -> makeNewGObject mkSourceMark (return markPtr))
sourceBufferGetSourceMarksAtIter :: (SourceBufferClass buffer, GlibString string) => buffer
-> TextIter
-> string
-> IO [SourceMark]
sourceBufferGetSourceMarksAtIter buffer iter category =
withUTFString category $ \categoryPtr ->
(\(SourceBuffer arg1) (TextIter arg2) arg3 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_source_buffer_get_source_marks_at_iter argPtr1 argPtr2 arg3)
(toSourceBuffer buffer)
iter
categoryPtr
>>= readGSList
>>= mapM (\markPtr -> makeNewGObject mkSourceMark (return markPtr))
sourceBufferRemoveSourceMarks :: (SourceBufferClass buffer, GlibString string) => buffer
-> TextIter
-> TextIter
-> string
-> IO ()
sourceBufferRemoveSourceMarks buffer start end category =
withUTFString category $ \categoryPtr ->
(\(SourceBuffer arg1) (TextIter arg2) (TextIter arg3) arg4 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->withForeignPtr arg3 $ \argPtr3 ->gtk_source_buffer_remove_source_marks argPtr1 argPtr2 argPtr3 arg4)
(toSourceBuffer buffer)
start
end
categoryPtr
sourceBufferForwardIterToSourceMark :: (SourceBufferClass buffer, GlibString string) => buffer
-> TextIter
-> string
-> IO Bool
sourceBufferForwardIterToSourceMark buffer iter category =
liftM toBool $
withUTFString category $ \categoryPtr ->
(\(SourceBuffer arg1) (TextIter arg2) arg3 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_source_buffer_forward_iter_to_source_mark argPtr1 argPtr2 arg3)
(toSourceBuffer buffer)
iter
categoryPtr
sourceBufferBackwardIterToSourceMark :: (SourceBufferClass buffer, GlibString string) => buffer
-> TextIter
-> string
-> IO Bool
sourceBufferBackwardIterToSourceMark buffer iter category =
liftM toBool $
withUTFString category $ \categoryPtr ->
(\(SourceBuffer arg1) (TextIter arg2) arg3 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_source_buffer_backward_iter_to_source_mark argPtr1 argPtr2 arg3)
(toSourceBuffer buffer)
iter
categoryPtr
sourceBufferEnsureHighlight :: SourceBufferClass buffer => buffer
-> TextIter
-> TextIter
-> IO ()
sourceBufferEnsureHighlight sb start end =
(\(SourceBuffer arg1) (TextIter arg2) (TextIter arg3) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->withForeignPtr arg3 $ \argPtr3 ->gtk_source_buffer_ensure_highlight argPtr1 argPtr2 argPtr3) (toSourceBuffer sb) start end
sourceBufferCanRedo :: SourceBufferClass buffer => ReadAttr buffer Bool
sourceBufferCanRedo = readAttrFromBoolProperty "can-redo"
sourceBufferCanUndo :: SourceBufferClass buffer => ReadAttr buffer Bool
sourceBufferCanUndo = readAttrFromBoolProperty "can-undo"
sourceBufferHighlightMatchingBrackets :: SourceBufferClass buffer => Attr buffer Bool
sourceBufferHighlightMatchingBrackets = newAttrFromBoolProperty "highlight-matching-brackets"
sourceBufferHighlightSyntax :: SourceBufferClass buffer => Attr buffer Bool
sourceBufferHighlightSyntax = newAttrFromBoolProperty "highlight-matching-brackets"
sourceBufferLanguage :: SourceBufferClass buffer => Attr buffer (Maybe SourceLanguage)
sourceBufferLanguage = newAttrFromMaybeObjectProperty "language" gTypeSourceLanguage
sourceBufferMaxUndoLevels :: SourceBufferClass buffer => Attr buffer Int
sourceBufferMaxUndoLevels = newAttrFromIntProperty "max-undo-levels"
sourceBufferSourceStyleScheme :: SourceBufferClass buffer => Attr buffer (Maybe SourceStyleScheme)
sourceBufferSourceStyleScheme = newAttrFromMaybeObjectProperty "style-scheme" gTypeSourceStyleScheme
sourceBufferUndoManager :: SourceBufferClass buffer => Attr buffer SourceUndoManager
sourceBufferUndoManager = newAttrFromObjectProperty "undo-manager"
gtk_source_undo_manager_get_type
sourceBufferHighlightUpdated :: SourceBufferClass buffer => Signal buffer (TextIter -> TextIter -> IO ())
sourceBufferHighlightUpdated = Signal $ connect_BOXED_BOXED__NONE "highlight-updated" mkTextIterCopy mkTextIterCopy
sourceBufferRedoSignal :: SourceBufferClass buffer => Signal buffer (IO ())
sourceBufferRedoSignal = Signal $ connect_NONE__NONE "redo"
sourceBufferUndoSignal :: SourceBufferClass buffer => Signal buffer (IO ())
sourceBufferUndoSignal = Signal $ connect_NONE__NONE "undo"
sourceBufferSourceMarkUpdated :: SourceBufferClass buffer => Signal buffer (TextMark -> IO ())
sourceBufferSourceMarkUpdated = Signal $ connect_OBJECT__NONE "source-mark-updated"
foreign import ccall unsafe "gtk_source_buffer_new"
gtk_source_buffer_new :: ((Ptr TextTagTable) -> (IO (Ptr SourceBuffer)))
foreign import ccall unsafe "gtk_source_buffer_new_with_language"
gtk_source_buffer_new_with_language :: ((Ptr SourceLanguage) -> (IO (Ptr SourceBuffer)))
foreign import ccall unsafe "gtk_source_buffer_set_highlight_syntax"
gtk_source_buffer_set_highlight_syntax :: ((Ptr SourceBuffer) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_source_buffer_get_highlight_syntax"
gtk_source_buffer_get_highlight_syntax :: ((Ptr SourceBuffer) -> (IO CInt))
foreign import ccall unsafe "gtk_source_buffer_set_language"
gtk_source_buffer_set_language :: ((Ptr SourceBuffer) -> ((Ptr SourceLanguage) -> (IO ())))
foreign import ccall unsafe "gtk_source_buffer_get_language"
gtk_source_buffer_get_language :: ((Ptr SourceBuffer) -> (IO (Ptr SourceLanguage)))
foreign import ccall unsafe "gtk_source_buffer_set_highlight_matching_brackets"
gtk_source_buffer_set_highlight_matching_brackets :: ((Ptr SourceBuffer) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_source_buffer_get_highlight_matching_brackets"
gtk_source_buffer_get_highlight_matching_brackets :: ((Ptr SourceBuffer) -> (IO CInt))
foreign import ccall unsafe "gtk_source_buffer_set_style_scheme"
gtk_source_buffer_set_style_scheme :: ((Ptr SourceBuffer) -> ((Ptr SourceStyleScheme) -> (IO ())))
foreign import ccall unsafe "gtk_source_buffer_get_style_scheme"
gtk_source_buffer_get_style_scheme :: ((Ptr SourceBuffer) -> (IO (Ptr SourceStyleScheme)))
foreign import ccall unsafe "gtk_source_buffer_set_max_undo_levels"
gtk_source_buffer_set_max_undo_levels :: ((Ptr SourceBuffer) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_source_buffer_get_max_undo_levels"
gtk_source_buffer_get_max_undo_levels :: ((Ptr SourceBuffer) -> (IO CInt))
foreign import ccall unsafe "gtk_source_buffer_can_undo"
gtk_source_buffer_can_undo :: ((Ptr SourceBuffer) -> (IO CInt))
foreign import ccall unsafe "gtk_source_buffer_can_redo"
gtk_source_buffer_can_redo :: ((Ptr SourceBuffer) -> (IO CInt))
foreign import ccall safe "gtk_source_buffer_undo"
gtk_source_buffer_undo :: ((Ptr SourceBuffer) -> (IO ()))
foreign import ccall safe "gtk_source_buffer_redo"
gtk_source_buffer_redo :: ((Ptr SourceBuffer) -> (IO ()))
foreign import ccall safe "gtk_source_buffer_begin_not_undoable_action"
gtk_source_buffer_begin_not_undoable_action :: ((Ptr SourceBuffer) -> (IO ()))
foreign import ccall safe "gtk_source_buffer_end_not_undoable_action"
gtk_source_buffer_end_not_undoable_action :: ((Ptr SourceBuffer) -> (IO ()))
foreign import ccall safe "gtk_source_buffer_create_source_mark"
gtk_source_buffer_create_source_mark :: ((Ptr SourceBuffer) -> ((Ptr CChar) -> ((Ptr CChar) -> ((Ptr TextIter) -> (IO (Ptr SourceMark))))))
foreign import ccall safe "gtk_source_buffer_get_source_marks_at_line"
gtk_source_buffer_get_source_marks_at_line :: ((Ptr SourceBuffer) -> (CInt -> ((Ptr CChar) -> (IO (Ptr ())))))
foreign import ccall safe "gtk_source_buffer_get_source_marks_at_iter"
gtk_source_buffer_get_source_marks_at_iter :: ((Ptr SourceBuffer) -> ((Ptr TextIter) -> ((Ptr CChar) -> (IO (Ptr ())))))
foreign import ccall safe "gtk_source_buffer_remove_source_marks"
gtk_source_buffer_remove_source_marks :: ((Ptr SourceBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> ((Ptr CChar) -> (IO ())))))
foreign import ccall safe "gtk_source_buffer_forward_iter_to_source_mark"
gtk_source_buffer_forward_iter_to_source_mark :: ((Ptr SourceBuffer) -> ((Ptr TextIter) -> ((Ptr CChar) -> (IO CInt))))
foreign import ccall safe "gtk_source_buffer_backward_iter_to_source_mark"
gtk_source_buffer_backward_iter_to_source_mark :: ((Ptr SourceBuffer) -> ((Ptr TextIter) -> ((Ptr CChar) -> (IO CInt))))
foreign import ccall safe "gtk_source_buffer_ensure_highlight"
gtk_source_buffer_ensure_highlight :: ((Ptr SourceBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ()))))
foreign import ccall unsafe "gtk_source_undo_manager_get_type"
gtk_source_undo_manager_get_type :: CULong