Copyright | (C) 2017 mniip |
---|---|
License | MIT |
Maintainer | mniip@mniip.com |
Stability | none |
Portability | none |
Safe Haskell | None |
Language | Haskell2010 |
HexChat.Internal
Description
This module contains the "raw" functions that leak the fact that all Haskell scripts are actually executed under the same hexchat_plugin
structure. You should unhook everything you have hooked.
- pri_HIGHEST :: CInt
- pri_HIGH :: CInt
- pri_NORM :: CInt
- pri_LOW :: CInt
- pri_LOWEST :: CInt
- data Hook
- data Eat
- = EatNone
- | EatHexChat
- | EatPlugin
- | EatAll
- data EventAttrs = EventAttrs {}
- data Context
- data List
- command :: Plugin -> String -> IO ()
- print :: Plugin -> String -> IO ()
- emitPrint :: Plugin -> String -> [String] -> IO Bool
- emitPrintAttrs :: Plugin -> EventAttrs -> String -> [String] -> IO Bool
- sendModes :: Plugin -> [String] -> Int -> Char -> Char -> IO ()
- nickCmp :: Plugin -> String -> String -> IO Ordering
- strip :: Plugin -> Bool -> Bool -> String -> IO String
- getPrefs :: Plugin -> String -> (String -> IO a) -> (Int -> IO a) -> (Bool -> IO a) -> IO (Maybe a)
- listGet :: Plugin -> String -> IO (Maybe List)
- listFields :: Plugin -> String -> IO [String]
- listNext :: Plugin -> List -> IO Bool
- listStr :: Plugin -> List -> String -> IO String
- listInt :: Plugin -> List -> String -> IO Int
- listTime :: Plugin -> List -> String -> IO CTime
- hookCommand :: Plugin -> String -> CInt -> String -> ([String] -> [String] -> IO Eat) -> IO Hook
- hookPrint :: Plugin -> String -> CInt -> ([String] -> IO Eat) -> IO Hook
- hookPrintAttrs :: Plugin -> String -> CInt -> ([String] -> EventAttrs -> IO Eat) -> IO Hook
- hookServer :: Plugin -> String -> CInt -> ([String] -> [String] -> IO Eat) -> IO Hook
- hookServerAttrs :: Plugin -> String -> CInt -> ([String] -> [String] -> EventAttrs -> IO Eat) -> IO Hook
- unhook :: Plugin -> Hook -> IO ()
- findContext :: Plugin -> Maybe String -> Maybe String -> IO (Maybe Context)
- getContext :: Plugin -> IO Context
- setContext :: Plugin -> Context -> IO Bool
- pluginguiAdd :: Plugin -> String -> String -> String -> String -> IO Plugin
- pluginguiRemove :: Plugin -> Plugin -> IO ()
- data StaticData
- staticData :: StaticData
- lPlugin :: IORef Plugin
- lHandle :: IORef (IORef Plugin)
- lHooks :: IORef (IORef [(Plugin, Hook)])
- initStaticData :: Plugin -> IO ()
- joinStaticData :: StaticData -> IO ()
- getPlugin :: IO Plugin
- getHandle :: IO Plugin
- withHandle :: Plugin -> IO a -> IO a
- unhookHandle :: Plugin -> IO ()
- module Foreign.C.Types
- newtype Plugin = Plugin (Ptr HexChat_Plugin)
- type Plugin_Init = Plugin -> Ptr CString -> Ptr CString -> Ptr CString -> CString -> IO CInt
- type Plugin_Deinit = Plugin -> IO CInt
Documentation
pri_HIGHEST :: CInt Source #
pri_LOWEST :: CInt Source #
An opaque type referencing a particular hook. Can be passed to unhook
.
This type defines whether the current hook "consumes" the event or lets other hooks know about it.
Constructors
EatNone | Pass the event to everything else. |
EatHexChat | Pass the event to all other scripts but not HexChat. |
EatPlugin | Pass the event to HexChat but not any other scripts. |
EatAll | Completely consume the event. |
An opaque type referencing a context (tab or window).
emitPrintAttrs :: Plugin -> EventAttrs -> String -> [String] -> IO Bool Source #
getPrefs :: Plugin -> String -> (String -> IO a) -> (Int -> IO a) -> (Bool -> IO a) -> IO (Maybe a) Source #
hookCommand :: Plugin -> String -> CInt -> String -> ([String] -> [String] -> IO Eat) -> IO Hook Source #
hookPrintAttrs :: Plugin -> String -> CInt -> ([String] -> EventAttrs -> IO Eat) -> IO Hook Source #
hookServerAttrs :: Plugin -> String -> CInt -> ([String] -> [String] -> EventAttrs -> IO Eat) -> IO Hook Source #
data StaticData Source #
initStaticData :: Plugin -> IO () Source #
joinStaticData :: StaticData -> IO () Source #
unhookHandle :: Plugin -> IO () Source #
module Foreign.C.Types