-- Author:     Andy Stewart <lazycat.manatee@gmail.com>
-- Maintainer: Andy Stewart <lazycat.manatee@gmail.com>
-- 
-- Copyright (C) 2010 Andy Stewart, all rights reserved.
-- 
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- any later version.
-- 
-- This program 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 General Public License for more details.
-- 
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Manatee.Extension.IrcClient.Types where

import Graphics.UI.Gtk hiding (Statusbar, statusbarNew, get, Language)
import Language.Translate.Google

import qualified Data.ByteString.Char8 as B

type Server     = String
type Channel    = String
type Port       = Int
type Nick       = String
type Password   = String

-- | Temporary user name for test.
tempUser :: B.ByteString
tempUser = "Irc client for Manatee ( http://www.flickr.com/photos/48809572@N02/ )."

-- | Temporary real name for test.
tempRealname :: B.ByteString
tempRealname = "Andy Stewart"

-- | Default user nick.
defaultNick :: String
defaultNick = "manateeUser"

-- | Default server.
defaultServer :: String
defaultServer = "irc.freenode.net"

-- | Default port.
defaultPort :: Int
defaultPort = 6667

-- | Default channel
defaultChannel :: String
defaultChannel = "#haskell"

-- | Enable join message.
enableJoinMessage :: Bool
enableJoinMessage = True

-- | Enable quit message.
enableQuitMessage :: Bool
enableQuitMessage = True

-- | Target language to translate.
targetLanguage :: Language
targetLanguage = English

-- | Source language.
sourceLanguage :: Language
sourceLanguage = ChineseSimplified

-- | Show line number.
showLineNumber :: Bool
showLineNumber = False

-- | Time stamp position.
timeStampPosition :: TextWindowType
timeStampPosition = TextWindowLeft

-- | The prompt string.
promptStr :: String
promptStr = "> "

-- | The column limit to wrap irc message.
wrapColumn :: Int
wrapColumn = 100

-- | The default time stamp : [00:00:00]
defaultTimeStamp :: String
defaultTimeStamp = 
    "          "

-- | Server message color.
serverMsgColor :: Color
serverMsgColor = Color 30000 30000 0

-- | Self message color.
selfMsgColor :: Color
selfMsgColor = Color 7710 37008 65535
-- selfMsgColor = Color 12850 52685 12850

-- | Other message color.
otherMsgColor :: Color
otherMsgColor = Color 0 0 0
-- otherMsgColor = Color 8738 35723 8738

-- | Join message color.
joinMsgColor :: Color
joinMsgColor = Color 12850 52685 12850 
-- joinMsgColor = Color 26985 26985 26985

-- | Quit message color.
quitMsgColor :: Color
quitMsgColor = Color 52685 14135 0
-- quitMsgColor = Color 26985 26985 26985

-- | Part message color.
partMsgColor :: Color
partMsgColor = Color 52685 14135 0
-- partMsgColor = Color 26985 26985 26985

-- | Action message color.
actionMsgColor :: Color
actionMsgColor = Color 41120 8224 61680
-- actionMsgColor = Color 48830 48830 48830

-- | Url color.
urlColor :: Color
urlColor = Color 38036 0 54227