From: Luc T. <luc...@gm...> - 2013-03-25 22:04:11
|
I tried this so far which is copied from the basic Paint.hs from the sample. - it compiles , run and break at run time if I omit Line [1] gr <- graphicsContextCreate dc -- 1. this break for now and it does not compile when I leave it on. My sources are [1] and [2] [1]: http://docs.wxwidgets.org/trunk/classwx_graphics_context.html [2]: http://chandlerproject.org/Projects/WxPythonGraphicsContext Ill keep you posted ---------- module Main where import Graphics.UI.WXCore import Graphics.UI.WX main :: IO () main = start gui gui :: IO () gui = do f <- frame [text := "Paint demo", fullRepaintOnResize := False] sw <- scrolledWindow f [ on paint := onpaint , virtualSize := sz 500 500, scrollRate := sz 10 10 , fullRepaintOnResize := False] set f [clientSize := sz 150 150, layout := fill $ widget sw] return () where onpaint dc viewArea = do gr <- graphicsContextCreate dc -- 1. this break for now pa <-graphicsPathCreate graphicsPathAddCircle pa (pt 30 30) 20 graphicsPathCloseSubpath pa --circle dc (pt 30 30) 20 [penKind := PenSolid] Paint.hs:13:45: Couldn't match expected type `()' with actual type `CWindowDC a0' Expected type: DC () -> Rect -> IO () Actual type: WindowDC a0 -> t0 -> IO () In the second argument of `(:=)', namely `onpaint' In the expression: on paint := on paint void MyCanvas::OnPaint(wxPaintEvent (http://docs.wxwidgets.org/trunk/classwx_paint_event.html) &event) { // Create paint DC wxPaintDC (http://docs.wxwidgets.org/trunk/classwx_paint_d_c.html) dc(this); // Create graphics context from it wxGraphicsContext (http://docs.wxwidgets.org/trunk/classwx_graphics_context.html) *gc = wxGraphicsContext::Create (http://docs.wxwidgets.org/trunk/classwx_graphics_context.html#adbc3ec3262f53e209276293ff1c0944e)( dc ); if (gc) { // make a path that contains a circle and some lines gc->SetPen (http://docs.wxwidgets.org/trunk/classwx_graphics_context.html#ac34d6320c2777fe2afcf8777868e37d3)( *wxRED_PEN (http://docs.wxwidgets.org/trunk/pen_8h.html#a62930a76d6d75371553b90661f8d9d30) ); wxGraphicsPath (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html) path = gc->CreatePath (http://docs.wxwidgets.org/trunk/classwx_graphics_context.html#a55c95ed392ed17f6fbd6e83b2a442a80)(); path.AddCircle (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#a1dedee16234c079524b51db8e0395f68)( 50.0, 50.0, 50.0 ); path.MoveToPoint (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#a62c899479b6bd2105507317a1246978e)(0.0, 50.0); path.AddLineToPoint (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#abd69d09ad6fe10af99a675ac79d2717a)(100.0, 50.0); path.MoveToPoint (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#a62c899479b6bd2105507317a1246978e)(50.0, 0.0); path.AddLineToPoint (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#abd69d09ad6fe10af99a675ac79d2717a)(50.0, 100.0 ); path.CloseSubpath (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#a93ee08b5acd2a2aa82dceb4bbd9cc819)(); path.AddRectangle (http://docs.wxwidgets.org/trunk/classwx_graphics_path.html#ac257fef3393f29b2705438fdc08b28a0)(25.0, 25.0, 50.0, 50.0); gc->StrokePath (http://docs.wxwidgets.org/trunk/classwx_graphics_context.html#a4f7f8f768e84dcdf50493f0e7ef0c00a)(path); delete gc; } } -------------- Luc be.linkedin.com/in/luctaesch/ (http://be.linkedin.com/in/luctaesch/) Envoyé avec Sparrow (http://www.sparrowmailapp.com/?sig) Le lundi 25 mars 2013 à 22:52, Henk-Jan van Tuyl a écrit : > On Mon, 25 Mar 2013 19:00:58 +0100, Luc TAESCH <luc...@gm... (mailto:luc...@gm...)> > wrote: > > > ah many thanks ! I understand better now ( change quite a bit since > > 2003 :-) > > I indeed can see the classes . > > > > are these new renderers already mapped into wx, or should we use them as > > such , directly ? > > any sample / test available , out of chance ? > > > > Many thanks for your patience, anyway :-) > > > > Luc > > I can't find any renderer functions in wx, or any samples/tests; I suppose > the best thing to do is to try to translate C++ sample programs to Haskell. > > Regards, > Henk-Jan van Tuyl > > > -- > http://Van.Tuyl.eu/ > http://members.chello.nl/hjgtuyl/tourdemonad.html > Haskell programming > -- > > |