\begin{code}
module WidgetSet (
 module WidgetConf,
 module Widgets,
 module WidgetExports,
 Font,namedFont,FontStyle(..),
 Bitmap,namedBitmap,Cursor,namedCursor,Image,namedImage
 ) where

import WidgetExports
import Widgets
import WidgetConf
import AbstractInterface
import WidgetSetImpl
import FranPrim (runFranOnce,setFranTime,getFranTime)
import IOExts
import Compatibility
\end{code}
{-

This interface should be implemented by any underlying widget set.

-- from widget exports

data GUIInfo
data WindowPrim 
data CanvasPrim
data Config
rootWinPrim :: GUIInfo -> IO WindowPrim
getTimeW :: GUIInfo -> IO Time

runLoop :: (GUIInfo -> IO ()) -> IO ()
debugW :: Bool -> GUIInfo -> IO ()
after :: Time -> IO () -> GUIInfo -> IO Remover
every :: Time -> IO () -> GUIInfo -> IO Remover

-- from WidgetSet

getOpenFileName :: GUIInfo -> IO (Maybe FilePath)
getSaveFileName :: GUIInfo -> IO (Maybe FilePath)

-- implementations of the provided widget set, see Widgets.lhs for
-- the tcl-tk implementation eg
-- to do: specify this interface more precisely

data Window
window :: [Conf Window] -> GUI Window
instance WidgetItem WindowPrim
instance WindowItem WindowPrim
instance Bindable WindowPrim
+ configuration options
-}
