----------------------------------------------------------------------------
-- |
-- Module : Main
-- Copyright : (c) Jan Vornberger 2009
-- License : BSD3-style (see LICENSE)
--
-- Maintainer : jan.vornberger@informatik.uni-oldenburg.de
-- Stability : unstable
-- Portability : not portable
--
-----------------------------------------------------------------------------
module Main where
import Graphics.UI.Gtk
import Graphics.UI.Gtk.Glade
import Paths_bluetileutils
import Utils
import Control.Monad(when)
import System.Environment(getEnv)
import System.FilePath(pathSeparator)
import System.Directory(doesFileExist)
main :: IO ()
main = do
home <- getEnv "HOME"
let configFile = home ++ [pathSeparator] ++ ".bluetilegreet"
exists <- doesFileExist configFile
when (not exists) $ greetingScreen configFile
greetingScreen :: String -> IO ()
greetingScreen configFile = do
initGUI
gladeFile <- getDataFileName "bluetilegreet.glade"
Just xml <- xmlNew gladeFile
window <- xmlGetWidget xml castToWindow "bluetilegreetwindow"
onDestroy window mainQuit
windowSetPosition window WinPosCenter
openWindowsBtn <- xmlGetWidget xml castToButton "openwindowsbutton"
onClicked openWindowsBtn $ do
spawnPipe "bluetilemockwin 0 0 65535"
spawnPipe "bluetilemockwin 65535 0 0"
return ()
startBtn <- xmlGetWidget xml castToButton "startbutton"
startupAgainChkBtn <- xmlGetWidget xml castToCheckButton "startupagaincheckbutton"
onClicked startBtn $ do
noFutureStartups <- toggleButtonGetActive startupAgainChkBtn
when noFutureStartups $ do
writeFile configFile "Delete this file to show the Bluetile greeting screen again.\n"
mainQuit
widgetShowAll window
mainGUI