packages feed

gluturtle 0.0.13 → 0.0.14

raw patch · 5 files changed

+26/−9 lines, 5 files

Files

gluturtle.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.6  name:		gluturtle-version:	0.0.13+version:	0.0.14 stability:	alpha author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
src/Graphics/UI/GLUT/Turtle.hs view
@@ -93,7 +93,9 @@ 	windowWidth, 	windowHeight, -	outputString+	outputString,++	prompt ) where  import Graphics.UI.GLUT.Turtle.Data(shapeTable, speedTable)@@ -101,7 +103,7 @@ 	TurtleState, direction, visible, undonum, drawed, polyPoints) import qualified Graphics.UI.GLUT.Turtle.State as S(position, degrees, pendown) import Graphics.UI.GLUT.Turtle.Input(TurtleInput(..), turtleSeries)-import Graphics.UI.GLUT.Turtle.Move(+import Graphics.UI.GLUT.Turtle.Move(prompt, 	Field, Coordinates(..), openField, closeField, waitField, 	topleft, center, coordinates, fieldSize, forkField, flushField, 	addLayer, clearLayer, addCharacter, clearCharacter, moveTurtle,
src/Graphics/UI/GLUT/Turtle/Field.hs view
@@ -48,7 +48,9 @@ 	ontimer,  	addLayer,-	addCharacter+	addCharacter,++	prompt ) where  import Control.Monad@@ -76,6 +78,10 @@  -------------------------------------------------------------------------------- +prompt f p = do+	writeIORef (fPrompt f) p+	atomicModifyIORef_ (fString f) (\ls -> init ls ++ [p ++ last ls])+ data Coordinates = CoordTopLeft | CoordCenter  data Field = Field{@@ -95,6 +101,8 @@ 	fFieldWindow :: Window, 	fConsoleWindow :: Window, +	fPrompt :: IORef String,+ 	fLayers :: IORef Layers  } @@ -117,6 +125,8 @@ 	str2 <- newIORef [] 	inputtext <- newIORef $ const $ return True +	prmpt <- newIORef ""+ 	initialDisplayMode $= [RGBMode, DoubleBuffered] 	initialWindowSize $= Size (fromIntegral w) (fromIntegral h) 	wt <- createWindow name@@ -150,7 +160,8 @@ 		fHeight = h, 		fInputtext = inputtext, 		fFieldWindow = wt,-		fConsoleWindow = wc+		fConsoleWindow = wc,+		fPrompt = prmpt 	 } 	G.keyboardMouseCallback $= Just (keyboardProc f) 	return f@@ -345,10 +356,11 @@  keyboardProc :: Field -> G.Key -> G.KeyState -> G.Modifiers -> G.Position -> IO () keyboardProc f (G.Char '\r') G.Down _ _ = do+	p <- readIORef $ fPrompt f 	str <- readIORef (fString f) 	atomicModifyIORef_ (fString2 f) (reverse str ++)-	writeIORef (fString f) [""]-	continue <- ($ concat str) =<< readIORef (fInputtext f)+	writeIORef (fString f) [p]+	continue <- ($ drop (length p) $ concat str) =<< readIORef (fInputtext f) 	unless continue G.leaveMainLoop keyboardProc f (G.Char '\b') G.Down _ _ = 	atomicModifyIORef_ (fString f) $ \s -> case s of
src/Graphics/UI/GLUT/Turtle/Move.hs view
@@ -30,11 +30,13 @@ 	addLayer, 	addCharacter, -	outputString+	outputString,++	prompt ) where  import Graphics.UI.GLUT.Turtle.State(TurtleState(..), makeShape)-import Graphics.UI.GLUT.Turtle.Field(+import Graphics.UI.GLUT.Turtle.Field(prompt, 	Field, Layer, Character, Coordinates(..), 	openField, closeField, waitField, coordinates, topleft, center, 	fieldSize, forkField, flushField, clearLayer,
tests/testGLUT.hs view
@@ -9,6 +9,7 @@ 	rawArgs <- getArgs 	_args <- initialize prgName rawArgs 	f <- openField "test" 640 480+	prompt f "> " 	t <- newTurtle f 	oninputtext f (processInput f t) --	speed t "slowest"