On 29 July 2011 21:49, Dave Tapley <duked...@gmail.com> wrote:

> Hi Jeremy,
>
> Did you ever make a start wrapping wxPropertyGrid?
> http://permalink.gmane.org/gmane.comp.lang.haskell.wxhaskell.general/1016
>
> I'm going to have a go now.
>
> Dave,
>

In my quest to understand how a class from wxWidgets is wrapped I took at
look at wxSlider as it shares the same class hierarchy as wxPropertyGrid and
'slider' is a fairly distinct term.

Searching for 'slider' in the wxHaskell code I extracted the following
references to it.
Does this look complete? If anyone could comment further on what function
each part provides I'd be very grateful.


# HAND-WRITTEN FILES #

./wx/src/Graphics/UI/WX/Controls.hs:
Haskell impl

./wxcore/src/eiffel/wx_defs.e:
Eiffel alias for wxEVT_COMMAND_SLIDER_UPDATED as
expEVT_COMMAND_SLIDER_UPDATED

./wxcore/src/include/wxc.h:
TClassDefExtend saying wxSlider95 and wxSliderMSW are wxSlider

./wxcore/src/include/wxc_glue.h:
Decl of int expEVT_COMMAND_SLIDER_UPDATED();
TClassDefExtend saying wxSlider is a wxControl
Decl of many wxSlider_ methods such as wxSlider_ClearSel
Decl of wxXmlResource_GetSlider method

./wxcore/src/haskell/Graphics/UI/WXCore/Layout.hs:
This code is commented out

./wxcore/src/haskell/Graphics/UI/WXCore/Events.hs:
Exports sliderOnCommand, sliderGetOnCommand
Def for sliderOnCommand which sends wxEVT_COMMAND_SLIDER_UPDATED and take an
eventHandler
Def for sliderGetOnCommand which returns the event handler

./wxcore/src/cpp/extra.cpp:
ifdef wxUSE_SLIDER  wxT("SLIDER")

./wxcore/src/cpp/eljslider.cpp:
EWXWEXPORT calls for all the wxSlider_ methods decl'd in wxc_glue.h

./wxcore/src/cpp/eljrc.cpp:
BUILD_XRCGETCTRL_FN(Slider) (constructs functions for geting control
pointers out of window hierarchies created from XRC files. The functions
themselves)

./wxcore/src/cpp/defs.cpp:EWXWCONSTANTINT(wxEVT_COMMAND_SLIDER_UPDATED,wxEVT_COMMAND_SLIDER_UPDATED)

./wxcore/src/cpp/eljevent.cpp:
MAKE_EVENT_WRAPPER(EVT_COMMAND_SLIDER_UPDATED)


# MISC FILES #

./wxcore/wxcore.cabal:
    add src/cpp/eljslider.cpp to c-sources

./samples/test/XRCControls/XRCControls_Wx.hs:
    test code for xrc


# GENERATED FILES #

./wxcore/src/haskell/Graphics/UI/WXCore/WxcClassesMZ.hs:
File generated by wxDirect from ./wxcore/src/include/wxc.h:
Export of (wxEVT_COMMAND_SLIDER_UPDATED :: EventId)
Export of many slider functions such as sliderClearSel, these match the
wxSlider_ methods decl'd in wxc_glue.h
Export of xmlResourceGetSlider function decl'd in wxc_glue.h
Definition for slider functions using FFI foreign import ccall
Definition of wxEVT_COMMAND_SLIDER_UPDATED which imports the enum value
Definition of xmlResourceGetSlider using FFI foreign import ccall

./wxcore/src/haskell/Graphics/UI/WXCore/WxcClassInfo.hs:
File generated by wxDirect
Export of classSlider, classSlider95, classSliderMSW
Export of downcastSlider, downcastSlider95, downcastSliderMSW
Definition classSlider functions which bind them to the their C++ class
names using a classInfoFindClass function
Definition of downcast functions using an objectCast function

./wxcore/src/haskell/Graphics/UI/WXCore/WxcClassTypes.hs:
File generated by wxDirect from ./wxcore/src/include/wxc.h:
Exports Slider, TSlider, CSlider, and 95 and MSW variants
Definitions of these as data types, encapsulating the class hierarchy from
C++ classes. TSlider is the inheritance type, CSlider is the abstract type.
------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
wxhaskell-devel mailing list
wxhaskell-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxhaskell-devel

Reply via email to