F      !"#$ % & ' ( )*+,-./0123456789:;<=>?@ABCDEFGHIJKL M N O P Q R S TUVWXYZ[\]^_`ab c d e f g h i j k lmnopqrstuvwxyz { | } ~  #non-portable (requires concurrency)internallibraries@haskell.org#non-portable (requires concurrency)internallibraries@haskell.orgportableinternallibraries@haskell.org How to draw in a window. draw directly to the window. - This runs slightly faster but is more prone  to flicker. use a  double buffer to reduce flicker. . You should probably use this for animations. Title of a window. Vertical alignment of text. ;align the bottom edge of the text with the reference point 8align the baseline of the text with the reference point 8align the top edge of the text with the reference point Horizontal alignment of text. , Names have a tick to distinguish them from Prelude names. :align the right edge of the text with the reference point )center the text with the reference point 9align the left edge of the text with the reference point How strings drawn with Graphics.HGL.Draw.Text.text are positioned , relative to the specified reference point. "Background mode for drawing text. *Draw text without a background rectangle. 2Draw text on a bounding rectangle filled with the  current background color. "The style of line drawn by a pen. 4A color, comprising red, green and blue components.  Time, measured in milliseconds.  An angle in degrees (0 to 360). 1A (width, height) pair, both measured in pixels. EA position within a window, measured in pixels to the right and down  from the top left corner. .A distance on the screen, measured in pixels. 1Time in milliseconds since some arbitrary epoch.     #non-portable (requires concurrency)internallibraries@haskell.org! !"# !"# !"##non-portable (requires concurrency)internallibraries@haskell.org$-Monad for sequential construction of images. %(An abstract representation of an image. & Embed an  action in a drawing action. 'BWrap a drawing action in initialization and finalization actions. .a pre-operation, whose value is passed to the  other two components. /a post-operation, to be performed on exit from 1 the bracket, whether normal or by an exception. 'the drawing action inside the bracket. ( A variant of ', in which the inner drawing action does not & use the result of the pre-operation. .a pre-operation, whose value is passed to the  other two components. /a post-operation, to be performed on exit from 1 the bracket, whether normal or by an exception. 'the drawing action inside the bracket. $%&'($%&'(#non-portable (requires concurrency)internallibraries@haskell.org#non-portable (requires concurrency)internallibraries@haskell.org #non-portable (requires concurrency) provisionallibraries@haskell.org$%&'(%$&'(portable provisionallibraries@haskell.org))Converts a character key to a character. *+,-./0123456789:;<=>#)*+,-./0123456789:;<=>#)*+,-./0123456789:;<=>)*+,-./0123456789:;<=>#non-portable (requires concurrency)internallibraries@haskell.org ?A user interface event. Notes: $ Programmers should assume that the ? datatype will be E extended in the not-too-distant future and that individual events 8 may change slightly. As a minimum, you should add a "match anything" = alternative to any function which pattern matches against ?s. H X11 systems typically have three button mice. Button 1 is used as the F left button, button 3 as the right button and button 2 (the middle  button) is ignored. @"occurs when the window is closed. A#occurs when the window is resized. B2occurs when the mouse is moved inside the window. C3occurs when a mouse button is pressed or released. D4the position of the mouse cursor after the movement Eif , it was the left button F+occurs when a key was pressed or released. G,representation of the keyboard keys pressed Hif , the button was pressed;  otherwise it was released I,a properly translated character, sent after  a key press. J/the character represented by a key combination ?@ABCDEFGHIJ ? IFCBA@JGHDEHD@ABCDEFGHIJ#non-portable (requires concurrency)internallibraries@haskell.org       #non-portable (requires concurrency)internallibraries@haskell.org$   K !"#$%&'()*+,- K !"'()- K !"'()- #non-portable (requires concurrency) provisionallibraries@haskell.orgLEInitialize the system to do graphics, run an action while collecting I user interface events and forwarding them to the action, and then clean  up everything else at the end. < The other functions of the library may only be used inside L. LLLportable provisionallibraries@haskell.org #non-portable (requires concurrency) provisionallibraries@haskell.org MA filled arc from an ellipse. 0a corner of the rectangle bounding the ellipse. ;the opposite corner of the rectangle bounding the ellipse. 7the start angle of the arc, measured counter-clockwise  from the horizontal. 7the extent of the arc, measured counter-clockwise from  the start angle. a filled shape N=A filled ellipse that fits inside a rectangle defined by two  s on the window. 0a corner of the rectangle bounding the ellipse. ;the opposite corner of the rectangle bounding the ellipse. a filled shape .OBA filled sheared ellipse that fits inside a parallelogram defined  by three 5s on the window. This function is implemented using ! polygons on both Win32 and X11. (a corner of the bounding parallelogram. <another corner of the parallelogram, adjacent to the first. ;another corner of the parallelogram, adjacent to the first " and thus opposite to the second. a filled shape /0PA line between two s. Q$A series of lines through a list of s. R&A filled polygon defined by a list of s. S;A series of (unfilled) Bezier curves defined by a list of 3n+1  control 5s. This function is not supported on X11 (it yields  an error message and a Q). 12MNOPQRSMNOPQRSMNOPQRS#non-portable (requires concurrency) provisionallibraries@haskell.orgT Render a 3& positioned relative to the specified . UU s returns: @ The offset at which the string would be drawn according to the # current text alignment (e.g., ( , ) will result  in an offset of (-width/2,0)) C The size at which the text would be drawn using the current font. VISet the foreground color for drawing text, returning the previous value. WISet the background color for drawing text, returning the previous value. 2 The background color is ignored when the mode is . XHSet the background mode for drawing text, returning the previous value. YBSet the alignment for drawing text, returning the previous value.  TUVWXYTUVWX YTUVWXY#non-portable (requires concurrency) provisionallibraries@haskell.orgZ Create a !. [ Destroy a ! created with Z. \Set the !9 for subsequent drawing, returning the previous setting. ] Create a ! locally to a drawing. !Z[\]!Z[\]Z[\]#non-portable (requires concurrency) provisionallibraries@haskell.org^ Create a  . _ Destroy a   created with ^. `Set the  9 for subsequent drawing, returning the previous setting. a Create a   locally to a drawing.  ^_`a ^_`a^_`a #non-portable (requires concurrency) provisionallibraries@haskell.org4b5c2An empty region. This is not supported on Win32. : It is possible to use an empty rectangle region instead. dAA rectangular region, with the given points as opposite corners. eFAn elliptical region that fits in the rectangle with the given points  as opposite corners. 67f(A polygonal region defined by a list of s. g!The intersection of two regions. hThe union of two regions. i=The part of the first region that is not also in the second. j)The symmetric difference of two regions. 8kFill a b using the current Graphics.HGL.Draw.Brush. bcdefghijk bcdefghijk bcdefghijk#non-portable (requires concurrency) provisionallibraries@haskell.orgl@Generate a font for use in a drawing, and delete it afterwards. 4 The rotation angle is ignored if the font is not a "TrueType" font  (e.g., a System font on Win32). #size of character glyphs in pixels rotation angle  bold font?  italic font?  font family mCreate a font. 4 The rotation angle is ignored if the font is not a "TrueType" font  (e.g., a System font on Win32). #size of character glyphs in pixels rotation angle  bold font?  italic font?  font family nDelete a font created with m. o@Set the font for subsequent text, and return the previous font. "lmno"mnollmno#non-portable (requires concurrency) provisionallibraries@haskell.orgA  !"$%&'(MNOPQRSTUVWXYZ[\]^_`abcdefghijklmno#non-portable (requires concurrency) provisionallibraries@haskell.org p-Wait for the next event on the given window. q/Check for a pending event on the given window. rAWait for the next tick event from the timer on the given window. s%Get the current drawing in a window. t%Set the current drawing in a window. u!Update the drawing for a window. ) Note that this does not force a redraw. vGeneral window creation. title of the window *the optional initial position of a window initial size of the window 'how to display a graphic on the window /the time between ticks (in milliseconds) of an + optional timer associated with the window wClose the window. xAThe position of the top left corner of the window on the screen,  and the size of the window. 9y?@ABCDEFGHIJKpqrstuvwxyKvxwtsuy?IFCBA@JGHDEHDpqr pqrstuvwxy#non-portable (requires concurrency) provisionallibraries@haskell.orgy  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy #non-portable (requires concurrency) provisionallibraries@haskell.org'zNamed colors. {|}~/Create a window with the given title and size. !Erase all drawing in the window.  (That is, set the % held by the window to .)  The current size of the window. ADraw the given graphic on the window, on top of anything that is  already there.  (That is, combine the given % and the one held by the window  using 3, store the result in the window, and display it.) IRun an action inside a new window, ensuring that the window is destroyed  on exit.  A variant of ( that ignores the result of the action. A combination of L and . +Wait for a press of the left mouse button, . and return the position of the mouse cursor. ,Wait for a press of the right mouse button, . and return the position of the mouse cursor. *Wait until a key is pressed and released. 7Wait until a key is pressed (if the second argument is )  or released (otherwise). 3Wait for a mouse button to be pressed or released, . and return the position of the mouse cursor. if , wait for the left button if , wait for a press;  otherwise wait for a release. 4Wait for a translated character (from a key press).  Use in preference to  if the aim is to read text. An empty drawing. IA composite drawing made by overlaying the first argument on the second. Overlay a list of drawings. $Set the default font for a drawing. 0Set the default alignment of text in a drawing. (Set the default color for drawing text. BSet the default background color for drawing text with background  mode 4. The background color is ignored when the mode is  . 2Set the default background mode for drawing text. 'Set the default pen for drawing lines. *Set the default brush for filling shapes. ,A convenience function that sets the brush, ( pen and text colors to the same value.  A mapping of z names to  triples.  A mapping of z names to  triples. $Set the default drawing color for a %. Run two @ actions in parallel and terminate when both actions terminate. Run two @ actions in parallel and terminate when both actions terminate, ( discarding the results of the actions.  Run several 4 actions in parallel and terminate when all actions 3 terminate, discarding the results of the actions. 'z{|}~'z~}|{'z~}|{{|}~#non-portable (requires concurrency) provisionallibraries@haskell.org  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~#non-portable (requires concurrency)stablelibraries@haskell.orgUser interface events "occurs when the window is closed. #occurs when the window is resized. - The new window size can be discovered using  . 2occurs when the mouse is moved inside the window. 3occurs when a mouse button is pressed or released. !the position of the mouse cursor if , it was the left button +occurs when a key was pressed or released. #character corresponding to the key if , the button was pressed;  otherwise it was released an extended version of . the title of the window #the initial position of the window the initial size of the window 'how to display a graphic on the window )optionally attach a timer to the window, + with the specified time (in milliseconds)  between ticks. AA rectangular region, with the given points as opposite corners. FAn elliptical region that fits in the rectangle with the given points  as opposite corners. (A polygonal region defined by a list of s. The union of two regions. !The intersection of two regions. =The part of the first region that is not also in the second. Draw a b in the current color. Draw directly to the window  (slightly faster than , but more prone to flicker). Use a  double buffer- to reduce flicker and thus improve the look  of animations. Another name for (, retained for backwards compatibility. +The current time of day (in milliseconds). :An obsolete special case of ;. *Wait until a key is pressed and released, ) and return the corresponding character. <7Wait until a key is pressed (if the second argument is ) B or released (otherwise), and return the corresponding character.  (not in SOE) 'Wait for the next event in the window. -Return a pending eventin the window, if any. =C%KLMNOPQRSTbjrtwz{|}~ELKtw%z~}|{TNOPRQSMbjr > !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab@cdefg h i j k l m n opqrstuvwxyz{|} ~            \]^_`ab@fdDE=>?        !"#$%&'()*+,-./ 0 1 2 3 456 7 8 1 2 9+:;<=> HGL-3.2.0.2 Graphics.SOEGraphics.HGL.WindowGraphics.HGL.Draw.TextGraphics.HGL.Draw.PenGraphics.HGL.UnitsGraphics.HGL.Draw.BrushGraphics.HGL.Draw.FontGraphics.HGL.KeyGraphics.HGL.Draw.MonadGraphics.HGL.RunGraphics.HGL.Draw.PictureGraphics.HGL.Draw.RegionGraphics.HGL.UtilsGraphics.HGL.Internals.Flag Graphics.HGL.Internals.UtilitiesGraphics.HGL.X11.DisplayGraphics.HGL.Internals.TypesGraphics.HGL.X11.TypesGraphics.HGL.Internals.DrawGraphics.HGL.X11.DCGraphics.HGL.X11.TimerGraphics.HGL.Internals.EventGraphics.HGL.Internals.EventsGraphics.HGL.X11.WindowGraphics.HGL.DrawGraphics.HGL.Core Graphics.HGLbaseGHC.WordWord32 RedrawMode UnbufferedDoubleBufferedTitleVAlignBottomBaselineTopHAlignRight'CenterLeft' AlignmentBkMode TransparentOpaqueStyle InsideFrameNull DashDotDotDashDotDotDashSolidRGBTimeAngleSizePointgetTimePenBrushFontKeyDrawGraphicioToDrawbracketbracket_ keyToChar isCharKeyisBackSpaceKeyisTabKey isClearKey isReturnKey isEscapeKey isDeleteKey isHomeKey isLeftKeyisUpKey isRightKey isDownKey isPriorKey isPageUpKey isNextKey isPageDownKeyisEndKey isShiftLKey isShiftRKey isControlLKey isControlRKeyEventClosedResize MouseMoveButtonptisLeftkeysymisDownCharcharWindow runGraphicsarcellipse shearEllipselinepolylinepolygon polyBeziertexttextInfo setTextColor setBkColor setBkModesetTextAlignment createBrush deleteBrush selectBrushmkBrush createPen deletePen selectPenmkPenRegion emptyRegionrectangleRegion ellipseRegion polygonRegionintersectRegion unionRegionsubtractRegion xorRegionregionToGraphicmkFont createFont deleteFont selectFontgetWindowEventmaybeGetWindowEvent getWindowTick getGraphic setGraphic modGraphic openWindowEx closeWindow getWindowRect directDrawColorWhiteYellowMagentaRedCyanGreenBlueBlack openWindow clearWindow getWindowSize drawInWindow withWindow withWindow_ runWindowgetLBPgetRBPgetKeygetKeyEx getButtonwGetChar emptyGraphic overGraphic overGraphicswithFontwithTextAlignment withTextColor withBkColor withBkModewithPen withBrushwithRGB colorList colorTable withColorparpar_parManycreateRectangle createEllipse createPolygonorRegion andRegion diffRegion drawRegion drawGraphicdrawBufferedGraphicdrawInWindowNow timeGetTime word32ToIntFlagnewFlagsetFlag resetFlag ExceptionsafeTrymodMVarmodMVar_getDisplayName displayRef openDisplay closeDisplay getDisplay DimensionMkKeyDC_Bits textColorbkColorbkMode textAlignmentbrushpenfontDCMkDCdispdrawabletextGCpaintGCbrushGCref_rectref_bits fromPointtoPointfromSizetoSize defaultPen lookupColor xcolor_flagsMkDrawunDrawghc-prim GHC.TypesIOmkDrawdrawUnbuffered drawBufferederaseTimersTimerperiodactiontag newTimers clearTimers fireTimersnextTicknewstop insertTimer deleteTimer firedTimers keySymToCharGHC.BoolTrueEventseventstick newEventsgetEvent isNoEvent sendEventsendTickgetTickthreaded RedrawStuff BufferedStuffUnbufferedStuffMkWindowwndref_dcexposedgraphicredrawtimer closeWindow' removeBufferremoveDeadWindowscloseAllWindows sendTickswndstimers runGraphicsEx catchErrors main_eloop minor_eloopdrawOnDC newWindow redrawWindow findWindowsend dispatchEvent showEvent threeSixty cos'n'sinsangles minAndDeltaavgGHC.BaseString XRegionOpMkRegioncombineintegerToWord32GHC.Real fromIntegral toSOEEvent