module Hbro.Error where
import Control.Monad.Error
import Data.Maybe
import Graphics.UI.Gtk.WebKit.Download
import Graphics.UI.Gtk.WebKit.NetworkRequest
import System.IO.Error
data HError =
CannotGoBack
| CannotGoForward
| EmptyCallback
| EmptyClipboard
| EmptyDownloadURI Download
| EmptyRequestURI NetworkRequest
| EmptySuggestedFileName Download
| InvalidIconURI
| InvalidPageTitle
| InvalidPageURI
| InvalidURI String
| IOE IOError
| OtherError String
instance Error HError where
strMsg = OtherError
instance Show HError where
show CannotGoBack = "Unable to go back: already at oldest page."
show CannotGoForward = "Unable to go forward: already at newest page."
show (IOE e) = "IO error: " ++ ioeGetLocation e ++ ": " ++ fromMaybe "" (ioeGetFileName e) ++ " " ++ ioeGetErrorString e
show InvalidIconURI = "No favicon URI."
show InvalidPageTitle = "No page title."
show InvalidPageURI = "Invalid page URI."
show (InvalidURI s) = show s
show (EmptyDownloadURI _) = "Invalid download URI."
show (EmptyClipboard) = "Empty clipboard."
show (EmptySuggestedFileName _) = "No suggested name for this download."
show (EmptyRequestURI _) = "Invalid request URI."
show EmptyCallback = "No callback defined."
show (OtherError s) = show s