packages feed

apelsin-1.2: src/Types.hs

module Types (
	module Control.Concurrent, module ConcurrentUtil
	, Bundle(..), ClanHook, PolledHook, ClanPolledHook, SetCurrent, BrowserStore, PlayerStore
) where
import Graphics.UI.Gtk

import Control.Concurrent
import ConcurrentUtil
import Network.Tremulous.Protocol
import Config
import ClanFetcher
import IndividualServerSettings
import AutoRefresh

data Bundle = Bundle {
	  mpolled	:: !(MVar PollResult)
	, mconfig	:: !(MVar Config)
	, mclans	:: !(MVar [Clan])
	, mrefresh	:: !(MVar ())
	, parent	:: !Window
	, browserStore	:: !BrowserStore
	, playerStore	:: !PlayerStore
	, msettings	:: !(MVar ServerSettings)
	, mauto		:: !(MVar AutoSignal)
	}

type ClanHook		= [Clan] -> IO ()
type PolledHook		= PollResult -> IO ()
type ClanPolledHook	= [Clan] -> PollResult -> IO ()
type SetCurrent		= Bool -> GameServer -> IO ()
type PlayerStore	= ListStore (TI, GameServer)
type BrowserStore	= ListStore GameServer