From: shelarcy <she...@gm...> - 2007-08-16 02:38:12
|
DarcsURL: http://darcs.haskell.org/wxhaskell=0A= MIME-Version: 1.0=0A= Content-Type: multipart/mixed; boundary=3D"=3D_"=0A= =0A= --=3D_=0A= Content-Type: text/plain=0A= Content-Transfer-Encoding: quoted-printable=0A= =0A= Thu Aug 16 02:51:37 =3D93=3D8C=3D8B=3D9E (=3D95W=3D8F=3D80=3D8E=3D9E) = 2007 shelarcy <shelarc=3D=0A= y...@gm...>=0A= * Add Drag & Drop and ClipBoard Support=0A= =0A= --=3D_=0A= Content-Type: text/x-darcs-patch; = name=3D"add-drag-_-drop-and-clipboard-support.dpatch"=0A= Content-Transfer-Encoding: quoted-printable=0A= Content-Description: A darcs patch for your repository!=0A= =0A= =0A= New patches:=0A= =0A= [Add Drag & Drop and ClipBoard Support=0A= shelarcy <she...@gm...>**20070815175137] {=0A= hunk ./configure 862=0A= + Graphics.UI.WXCore.DragAndDrop,=0A= hunk ./makefile 89=0A= + Graphics/UI/WXCore/Image \=0A= + Graphics/UI/WXCore/DragAndDrop \=0A= hunk ./makefile 97=0A= - Graphics/UI/WXCore/Image \=0A= hunk ./makefile 123=0A= + Graphics/UI/WXCore/DragAndDrop \=0A= hunk ./makefile 150=0A= - treectrl image apppath db glcanvas wave managed \=0A= + treectrl image apppath db dragimage glcanvas wave managed \=0A= hunk ./wxc/eiffel/wxc_defs.e 175=0A= +=3D0D=0A= +=3D0D=0A= +wxDRAG_COPYONLY: INTEGER is 0=3D0D=0A= +wxDRAG_ALLOWMOVE: INTEGER is 1=3D0D=0A= +wxDRAG_DEFALUTMOVE: INTEGER is 3=3D0D=0A= addfile ./wxc/include/dragimage.h=0A= hunk ./wxc/include/dragimage.h 1=0A= +/*----------------------------------------------------------------------= --=3D=0A= -----=3D0D=0A= + DragImage=3D0D=0A= +------------------------------------------------------------------------= --=3D=0A= ---*/=3D0D=0A= +TClassDefExtend(wxGenericDragImage,wxDragImage);=3D0D=0A= +=3D0D=0A= +TClass(wxDragImage) wxDragImage_Create( TClass(wxBitmap) image, int x, = in=3D=0A= t y );=3D0D=0A= +TClass(wxDragImage) wxDragIcon( TClass(wxIcon) icon, int x, int y = );=3D0D=0A= +TClass(wxDragImage) wxDragString( TClass(wxString) test, int x, int y = );=3D=0A= =3D0D=0A= +TClass(wxDragImage) wxDragTreeItem( TClass(wxTreeCtrl) treeCtrl, = TClass(w=3D=0A= xTreeItemId) id );=3D0D=0A= +TClass(wxDragImage) wxDragListItem( TClass(wxListCtrl) treeCtrl, long = id =3D=0A= );=3D0D=0A= +TClass(wxGenericDragImage) wxGenericDragImage_Create( TClass(wxCursor) = cu=3D=0A= rsor, int x, int y );=3D0D=0A= +TClass(wxGenericDragImage) wxGenericDragIcon( TClass(wxIcon) icon, int = x,=3D=0A= int y );=3D0D=0A= +TClass(wxGenericDragImage) wxGenericDragString( TClass(wxString) test, = in=3D=0A= t x, int y );=3D0D=0A= +TClass(wxGenericDragImage) wxGenericDragTreeItem( TClass(wxTreeCtrl) = tree=3D=0A= Ctrl, TClass(wxTreeItemId) id );=3D0D=0A= +TClass(wxGenericDragImage) wxGenericDragListItem( TClass(wxListCtrl) = tree=3D=0A= Ctrl, long id );=3D0D=0A= +void wxDragImage_Delete(TSelf(wxDragImage) self);=3D0D=0A= +TBool wxDragImage_BeginDragFullScreen(TSelf(wxDragImage) self, int = x_pos,=3D=0A= int y_pos, TClass(wxWindow) window, TBool fullScreen, TClass(wxRect) = rect)=3D=0A= ;=3D0D=0A= +TBool wxDragImage_BeginDrag(TSelf(wxDragImage) self, int x, int y, = TClass=3D=0A= (wxWindow) window, TClass(wxWindow) boundingWindow );=3D0D=0A= +TBool wxGenericDragImage_DoDrawImage(TSelf(wxGenericDragImage) self, = TCla=3D=0A= ss(wxDC) dc, int x, int y );=3D0D=0A= +void wxDragImage_EndDrag(TSelf(wxDragImage) self );=3D0D=0A= +void wxGenericDragImage_GetImageRect(TSelf(wxGenericDragImage) self, = int =3D=0A= x_pos, int y_pos, int* x, int* y, int* w, int* h );=3D0D=0A= +TBool wxDragImage_Hide(TSelf(wxDragImage) self );=3D0D=0A= +TBool wxDragImage_Move(TSelf(wxDragImage) self, int x, int y );=3D0D=0A= +TBool wxDragImage_Show(TSelf(wxDragImage) self );=3D0D=0A= +TBool = wxGenericDragImage_UpdateBackingFromWindow(TSelf(wxGenericDragImage=3D=0A= ) self, TClass(wxDC) windowDC, TClass(wxMemoryDC) destDC, int x, int y, = int=3D=0A= w, int h, int xdest, int ydest, int width, int height );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1072=0A= -int wxClipboard_AddData( TSelf(wxClipboard) _obj, void* data = );=3D0D=0A= +int wxClipboard_AddData( TSelf(wxClipboard) _obj, = TClass(wxDataObje=3D=0A= ct) data );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1077=0A= -int wxClipboard_GetData( TSelf(wxClipboard) _obj, void* data = );=3D0D=0A= +int wxClipboard_GetData( TSelf(wxClipboard) _obj, = TClass(wxDataObje=3D=0A= ct) data );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1079=0A= -TBool wxClipboard_IsSupported( TSelf(wxClipboard) _obj, void* = format =3D=0A= );=3D0D=0A= +TBool wxClipboard_IsSupported( TSelf(wxClipboard) _obj, = TClass(wxData=3D=0A= Format) format );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1081=0A= -int wxClipboard_SetData( TSelf(wxClipboard) _obj, void* data = );=3D0D=0A= +int wxClipboard_SetData( TSelf(wxClipboard) _obj, = TClass(wxDataObje=3D=0A= ct) data );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1294=0A= +TClass(wxCursor) Cursor_CreateFromImage( TClass(wxImage) image );=3D0D=0A= +TClass(wxCursor) Cursor_CreateLoad( TStringVoid name, long type, = TSize(wi=3D=0A= dth,height) );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1649=0A= -TClass(wxDropSource) DropSource_Create( void* data, TClass(wxWindow) = win, =3D=0A= void* copy, void* move, void* none );=3D0D=0A= +TClass(wxDropSource) DropSource_Create( TClass(wxDataObject) data, = TClass(=3D=0A= wxWindow) win, void* copy, void* move, void* none );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1784=0A= -TClass(wxFileDataObject) FileDataObject_Create( TClass(wxList) _lst, = int _=3D=0A= cnt );=3D0D=0A= +TClass(wxFileDataObject) FileDataObject_Create( TArrayString(_cnt, = _lst) )=3D=0A= ;=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 1786=0A= -int FileDataObject_GetFilenames( TSelf(wxFileDataObject) _obj, = TCla=3D=0A= ss(wxList) _lst );=3D0D=0A= +TArrayLen FileDataObject_GetFilenames( TSelf(wxFileDataObject) = _obj=3D=0A= , TArrayStringOutVoid _lst );=3D0D=0A= hunk ./wxc/include/ewxw/wxc_glue.h 4279=0A= +size_t TextDataObject_GetTextLength( TSelf(TextDataObject) _obj );=3D0D=0A= +TStringLen TextDataObject_GetText( TSelf(TextDataObject) _obj, = TStri=3D=0A= ngOutVoid _buf );=3D0D=0A= +void TextDataObject_SetText( TSelf(TextDataObject) _obj, TString = tex=3D=0A= t );=3D0D=0A= hunk ./wxc/include/wxc.h 23=0A= +#include "dragimage.h"=0A= addfile ./wxc/src/dragimage.cpp=0A= hunk ./wxc/src/dragimage.cpp 1=0A= +#include "wrapper.h"=0A= +#include <wx/dragimag.h>=0A= +#include <wx/generic/dragimgg.h>=0A= +=0A= +extern "C" {=0A= +/*----------------------------------------------------------------------= --=3D=0A= -----=0A= + DragImage=0A= +------------------------------------------------------------------------= --=3D=0A= ---*/=0A= +EWXWEXPORT(wxDragImage*,wxDragImage_Create)( const wxBitmap* image, int = x,=3D=0A= int y )=0A= +{=0A= + return new wxDragImage(*image, wxNullCursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxDragImage*,wxDragIcon)( const wxIcon* icon, int x, int y )=0A= +{=0A= + return new wxDragImage(*icon, wxNullCursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxDragImage*,wxDragString)( const wxString* text, int x, int = y =3D=0A= )=0A= +{=0A= + return new wxDragImage(*text, wxNullCursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxDragImage*,wxDragTreeItem)( const wxTreeCtrl* treeCtrl, = wxTre=3D=0A= eItemId* id )=0A= +{=0A= + return new wxDragImage(*treeCtrl, *id);=0A= +}=0A= +=0A= +EWXWEXPORT(wxDragImage*,wxDragListItem)( const wxListCtrl* listCtrl, = long =3D=0A= id )=0A= +{=0A= + return new wxDragImage(*listCtrl, id);=0A= +}=0A= +=0A= +EWXWEXPORT(wxGenericDragImage*,wxGenericDragImage_Create)( const = wxCursor*=3D=0A= cursor, int x, int y )=0A= +{=0A= + return new wxGenericDragImage(*cursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxGenericDragImage*,wxGenericDragIcon)( const wxIcon* icon, = int=3D=0A= x, int y )=0A= +{=0A= + return new wxGenericDragImage(*icon, wxNullCursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxGenericDragImage*,wxGenericDragString)( const wxString* = text,=3D=0A= int x, int y )=0A= +{=0A= + return new wxGenericDragImage(*text, wxNullCursor, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(wxGenericDragImage*,wxGenericDragTreeItem)( const = wxTreeCtrl* t=3D=0A= reeCtrl, wxTreeItemId* id )=0A= +{=0A= + return new wxGenericDragImage(*treeCtrl, *id);=0A= +}=0A= +=0A= +EWXWEXPORT(wxGenericDragImage*,wxGenericDragListItem)( const = wxListCtrl* l=3D=0A= istCtrl, long id )=0A= +{=0A= + return new wxGenericDragImage(*listCtrl, id);=0A= +}=0A= +=0A= +EWXWEXPORT(void,wxDragImage_Delete)(wxDragImage* self) =3D=0A= =0A= +{=0A= + if (self) delete self;=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_BeginDragFullScreen)( wxDragImage* self, = int x=3D=0A= _pos, int y_pos,=0A= + wxWindow* window, = bool f=3D=0A= ullScreen,=0A= + wxRect* rect)=0A= +{=0A= + return self->BeginDrag(wxPoint(x_pos, y_pos), window, fullScreen, = rect);=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_BeginDrag)( wxDragImage* self, int x, int y,=0A= + wxWindow* window, wxWindow* = boundi=3D=0A= ngWindow)=0A= +{=0A= + return self->BeginDrag(wxPoint(x, y), window, boundingWindow);=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxGenericDragImage_DoDrawImage)( wxGenericDragImage* = self,=3D=0A= wxDC* dc, int x, int y)=0A= +{=0A= + return self->DoDrawImage(*dc, wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_EndDrag)( wxDragImage* self)=0A= +{=0A= + return self->EndDrag();=0A= +}=0A= +=0A= +EWXWEXPORT(void,wxGenericDragImage_GetImageRect)( wxGenericDragImage* = self=3D=0A= , int x_pos, int y_pos,=0A= + int* x, int* y, int* = w, =3D=0A= int* h)=0A= +{=0A= + wxRect rc =3D3D self->GetImageRect(wxPoint(x_pos, y_pos));=0A= + *x =3D3D rc.x;=0A= + *y =3D3D rc.y;=0A= + *w =3D3D rc.width;=0A= + *h =3D3D rc.height;=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_Hide)( wxDragImage* self)=0A= +{=0A= + return self->Hide();=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_Move)( wxDragImage* self, int x, int y)=0A= +{=0A= + return self->Move(wxPoint(x, y));=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxDragImage_Show)( wxDragImage* self)=0A= +{=0A= + return self->Show();=0A= +}=0A= +=0A= +EWXWEXPORT(bool,wxGenericDragImage_UpdateBackingFromWindow)( = wxGenericDrag=3D=0A= Image* self, wxDC* windowDC, wxMemoryDC* destDC,=0A= + int x, int = y,=3D=0A= int w, int h,=0A= + int xdest, = in=3D=0A= t ydest, int width, int height)=0A= +{=0A= + return self->UpdateBackingFromWindow(*windowDC, *destDC,=0A= + wxRect(x, y, w, h),=0A= + wxRect(xdest, ydest, width, = height)=3D=0A= );=0A= +}=0A= +=0A= +}=0A= +=0A= +=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 31=0A= -EWXWEXPORT(int, wxClipboard_SetData)(void* _obj, void* data)=3D0D=0A= +EWXWEXPORT(int, wxClipboard_SetData)(void* _obj, wxDataObject* = data)=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 33=0A= - return (int)((wxClipboard*)_obj)->SetData((wxDataObject*)data);=3D0D=0A= + return (int)((wxClipboard*)_obj)->SetData(data);=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 36=0A= -EWXWEXPORT(int, wxClipboard_AddData)(void* _obj, void* data)=3D0D=0A= +EWXWEXPORT(int, wxClipboard_AddData)(void* _obj, wxDataObject* = data)=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 38=0A= - return (int)((wxClipboard*)_obj)->AddData((wxDataObject*)data);=3D0D=0A= + return (int)((wxClipboard*)_obj)->AddData(data);=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 41=0A= -EWXWEXPORT(int, wxClipboard_IsSupported)(void* _obj, void* format)=3D0D=0A= +EWXWEXPORT(int, wxClipboard_IsSupported)(void* _obj, wxDataFormat* = format)=3D=0A= =3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 43=0A= - return = (int)((wxClipboard*)_obj)->IsSupported(*((wxDataFormat*)format));=3D=0A= =3D0D=0A= + return (int)((wxClipboard*)_obj)->IsSupported(*format);=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 46=0A= -EWXWEXPORT(int, wxClipboard_GetData)(void* _obj, void* data)=3D0D=0A= +EWXWEXPORT(int, wxClipboard_GetData)(void* _obj, wxDataObject* = data)=3D0D=0A= hunk ./wxc/src/ewxw/eljclipboard.cpp 48=0A= - return (int)((wxClipboard*)_obj)->GetData(*((wxDataObject*)data));=3D0D=0A= + return (int)((wxClipboard*)_obj)->GetData(*data);=3D0D=0A= hunk ./wxc/src/ewxw/eljcursor.cpp 10=0A= +=3D0D=0A= +EWXWEXPORT(void*, Cursor_CreateFromImage)(wxImage* image)=3D0D=0A= +{=3D0D=0A= + return (void*) new wxCursor(*image);=3D0D=0A= +}=3D0D=0A= +=3D0D=0A= +EWXWEXPORT(void*, Cursor_CreateLoad) (const wxString* name, long type, = int=3D=0A= width, int height)=3D0D=0A= +{=3D0D=0A= + return (void*) new wxCursor(*name, type, width, height);=3D0D=0A= +}=3D0D=0A= hunk ./wxc/src/ewxw/eljdnd.cpp 178=0A= -EWXWEXPORT(void*, FileDataObject_Create)(void* _lst, int _cnt)=3D0D=0A= +EWXWEXPORT(size_t, TextDataObject_GetTextLength)(void* _obj)=3D0D=0A= +{=3D0D=0A= + return ((wxTextDataObject*)_obj)->GetTextLength();=3D0D=0A= +}=3D0D=0A= +=3D0D=0A= +EWXWEXPORT(int, TextDataObject_GetText)(void* _obj, void* _buf)=3D0D=0A= +{=3D0D=0A= + wxString result =3D3D((wxTextDataObject*)_obj)->GetText();=3D0D=0A= + return copyStrToBuf(_buf, result);=3D0D=0A= +}=3D0D=0A= +=3D0D=0A= +EWXWEXPORT(void, TextDataObject_SetText)(void* _obj, const wxString* = strTe=3D=0A= xt)=3D0D=0A= +{=3D0D=0A= + ((wxTextDataObject*)_obj)->SetText(*strText);=3D0D=0A= +}=3D0D=0A= +=3D0D=0A= +EWXWEXPORT(void*, FileDataObject_Create)(int _cnt, void* _lst )=3D0D=0A= hunk ./wxc/src/ewxw/eljdnd.cpp 253=0A= -EWXWEXPORT(void*, DropSource_Create)(void* data, void* win, void* copy, = vo=3D=0A= id* move, void* none)=3D0D=0A= +EWXWEXPORT(void*, DropSource_Create)(wxDataObject* data, void* win, = void* =3D=0A= copy, void* move, void* none)=3D0D=0A= hunk ./wxc/src/ewxw/eljdnd.cpp 256=0A= - return (void*) new wxDropSource(*((wxDataObject*)data), = (wxWindow*)win, *=3D=0A= ((wxCursor*)copy), *((wxCursor*)move), *((wxCursor*)none));=3D0D=0A= + return (void*) new wxDropSource(*data, (wxWindow*)win, = *((wxCursor*)copy)=3D=0A= , *((wxCursor*)move), *((wxCursor*)none));=3D0D=0A= hunk ./wxc/src/ewxw/eljdnd.cpp 258=0A= - return (void*) new wxDropSource(*((wxDataObject*)data), = (wxWindow*)win, *=3D=0A= ((wxIcon*)copy), *((wxIcon*)move), *((wxIcon*)none));=3D0D=0A= + return (void*) new wxDropSource(*data, (wxWindow*)win, = *((wxIcon*)copy), =3D=0A= *((wxIcon*)move), *((wxIcon*)none));=3D0D=0A= hunk ./wxc/wxc-2.4.dsp 107=0A= +SOURCE=3D3D.\include\dragimage.h=3D0D=0A= +# End Source File=3D0D=0A= +# Begin Source File=3D0D=0A= +=3D0D=0A= hunk ./wxc/wxc-2.4.dsp 177=0A= +# Begin Source File=3D0D=0A= +=3D0D=0A= +SOURCE=3D3D.\src\dragimage.cpp=3D0D=0A= +# End Source File=3D0D=0A= hunk ./wxc/wxcu-2.6.4.dsp 109=0A= +SOURCE=3D3D.\include\dragimage.h=3D0D=0A= +# End Source File=3D0D=0A= +# Begin Source File=3D0D=0A= +=3D0D=0A= hunk ./wxc/wxcu-2.6.4.dsp 179=0A= +# Begin Source File=3D0D=0A= +=3D0D=0A= +SOURCE=3D3D.\src\dragimage.cpp=3D0D=0A= +# End Source File=3D0D=0A= hunk ./wxcore/src/Graphics/UI/WXCore.hs 33=0A= + , module Graphics.UI.WXCore.DragAndDrop=0A= hunk ./wxcore/src/Graphics/UI/WXCore.hs 64=0A= +import Graphics.UI.WXCore.DragAndDrop=0A= hunk ./wxcore/src/Graphics/UI/WXCore/Controls.hs 23=0A= + , execClipBoardData=0A= hunk ./wxcore/src/Graphics/UI/WXCore/Controls.hs 118=0A= - =3D=0A= =0A= +=0A= +=0A= +-- | Use a 'clipboardSetData' or 'clipboardGetData' in this function. = But =3D=0A= don't=0A= +-- use long computation in this function. Because this function = encloses t=3D=0A= he=0A= +-- computation with 'clipboardOpen' and 'clipboardClose', and wxHaskell = us=3D=0A= es=0A= +-- Global clipboard on your environment. So, long computation causes = probl=3D=0A= em.=0A= +execClipBoardData :: Clipboard a -> (Clipboard a -> IO b) -> IO b=0A= +execClipBoardData cl event =3D3D bracket_ (clipboardOpen cl) = (clipboardClose=3D=0A= cl) (event cl)=0A= +=0A= addfile ./wxcore/src/Graphics/UI/WXCore/DragAndDrop.hs=0A= hunk ./wxcore/src/Graphics/UI/WXCore/DragAndDrop.hs 1=0A= +{-# OPTIONS -fglasgow-exts #-}=0A= +{-----------------------------------------------------------------------= --=3D=0A= ----------------=0A= + Module : DragAndDrop=0A= + Copyright : (c) shelarcy 2007=0A= + License : wxWidgets=0A= +=0A= + Maintainer : she...@gm...=0A= + Stability : provisional=0A= + Portability : portable=0A= +=0A= + Drag & Drop events.=0A= +------------------------------------------------------------------------= --=3D=0A= ---------------}=0A= +module Graphics.UI.WXCore.DragAndDrop (=0A= + -- * Drop Targets=0A= + dropTarget=0A= + -- * Create Drop Soruces=0A= + , dropSource=0A= + , dropSourceWithCursor=0A= + , dropSourceWithCursorByString=0A= + , dropSourceWithIcon=0A= +=0A= + -- * Set event handlers=0A= + -- ** Drop Target events=0A= + , DragResult (..)=0A= + , dropTargetOnData=0A= + , dropTargetOnDrop=0A= + , dropTargetOnEnter=0A= + , dropTargetOnDragOver=0A= + , dropTargetOnLeave=0A= + =3D=0A= =0A= + -- ** On DragAndDropEvent=0A= + , DragMode (..)=0A= + , dragAndDrop=0A= + =3D=0A= =0A= + -- ** Special handler for Drop File event=0A= + , fileDropTarget=0A= + -- ** Special handler for Drop Text event =3D=0A= =0A= + , textDropTarget=0A= + ) where=0A= +=0A= +import Graphics.UI.WXCore.Defines=0A= +import Graphics.UI.WXCore.Image=0A= +import Graphics.UI.WXCore.WxcDefs=0A= +import Graphics.UI.WXCore.WxcObject=0A= +import Graphics.UI.WXCore.WxcTypes=0A= +import Graphics.UI.WXCore.WxcClassTypes=0A= +import Graphics.UI.WXCore.WxcClassesAL=0A= +import Graphics.UI.WXCore.WxcClassesMZ=0A= +=0A= +import Foreign.Ptr=0A= +import Foreign.C.String=0A= +import Foreign.Marshal.Array=0A= +import Foreign.Marshal.Utils=0A= +=0A= +=0A= +{-----------------------------------------------------------------------= --=3D=0A= -------=0A= + Drop Target=0A= +------------------------------------------------------------------------= --=3D=0A= ------}=0A= +-- | Set a drop target window and 'DataObject' that is associated with = dro=3D=0A= p event.=0A= +dropTarget :: Window a -> DataObject b -> IO (WXCDropTarget ())=0A= +dropTarget window wxdata =3D3D do=0A= + drop <- wxcDropTargetCreate nullPtr=0A= + dropTargetSetDataObject drop wxdata=0A= + windowSetDropTarget window drop=0A= + return drop=0A= +=0A= +{-----------------------------------------------------------------------= --=3D=0A= ----------------=0A= + Drag and Drop events=0A= +------------------------------------------------------------------------= --=3D=0A= ---------------}=0A= +-- | Drag results=0A= +data DragResult=0A= + =3D3D DragError=0A= + | DragNone=0A= + | DragCopy=0A= + | DragMove=0A= + | DragLink=0A= + | DragCancel=0A= + | DragUnknown=0A= + deriving (Eq,Show)=0A= +=0A= +dragResults :: [(Int, DragResult)]=0A= +dragResults=0A= + =3D3D [(wxDRAG_ERROR ,DragError)=0A= + ,(wxDRAG_NONE ,DragNone)=0A= + ,(wxDRAG_COPY ,DragCopy)=0A= + ,(wxDRAG_MOVE ,DragMove)=0A= + ,(wxDRAG_LINK ,DragLink)=0A= + ,(wxDRAG_CANCEL ,DragCancel)]=0A= +=0A= +fromDragResult :: DragResult -> Int=0A= +fromDragResult drag=0A= + =3D3D case drag of=0A= + DragError -> wxDRAG_ERROR=0A= + DragNone -> wxDRAG_NONE=0A= + DragCopy -> wxDRAG_COPY=0A= + DragMove -> wxDRAG_MOVE=0A= + DragLink -> wxDRAG_LINK=0A= + DragCancel -> wxDRAG_CANCEL=0A= + DragUnknown -> wxDRAG_ERROR=0A= +=0A= +toDragResult :: Int -> DragResult=0A= +toDragResult drag=0A= + =3D3D case lookup drag dragResults of=0A= + Just x -> x=0A= + Nothing -> DragError=0A= +=0A= +-- | Set an event handler that is called when the drop target can be = fille=3D=0A= d with data.=0A= +-- This function require to use 'dropTargetGetData' in your event = handler =3D=0A= to fill data.=0A= +dropTargetOnData :: DropTarget a -> (Point -> DragResult -> IO = DragResult)=3D=0A= -> IO ()=0A= +dropTargetOnData drop event =3D3D do=0A= + funPtr <- dragThreeFuncHandler event=0A= + wxcDropTargetSetOnData (objectCast drop) (toCFunPtr funPtr)=0A= +=0A= +-- | Set an event handler for an drop command in a drop target.=0A= +dropTargetOnDrop :: DropTarget a -> (Point -> IO Bool) -> IO ()=0A= +dropTargetOnDrop drop event =3D3D do=0A= + funPtr <- dragTwoFuncHandler event=0A= + wxcDropTargetSetOnDrop (objectCast drop) (toCFunPtr funPtr)=0A= +=0A= +-- | Set an event handler for an enter command in a drop target.=0A= +dropTargetOnEnter :: DropTarget a -> (Point -> DragResult -> IO = DragResult=3D=0A= ) -> IO ()=0A= +dropTargetOnEnter drop event =3D3D do=0A= + funPtr <- dragThreeFuncHandler event=0A= + wxcDropTargetSetOnEnter (objectCast drop) (toCFunPtr funPtr)=0A= +=0A= +-- | Set an event handler for a drag over command in a drop target.=0A= +dropTargetOnDragOver :: DropTarget a -> (Point -> DragResult -> IO = DragRes=3D=0A= ult) -> IO ()=0A= +dropTargetOnDragOver drop event =3D3D do=0A= + funPtr <- dragThreeFuncHandler event=0A= + wxcDropTargetSetOnDragOver (objectCast drop) (toCFunPtr funPtr)=0A= +=0A= +-- | Set an event handler for a leave command in a drop target.=0A= +dropTargetOnLeave :: DropTarget a -> (IO ()) -> IO ()=0A= +dropTargetOnLeave drop event =3D3D do=0A= + funPtr <- dragZeroFuncHandler event=0A= + wxcDropTargetSetOnLeave (objectCast drop) (toCFunPtr funPtr)=0A= +=0A= +dragZeroFuncHandler event =3D3D=0A= + dragZeroFunc $ \obj -> do=0A= + event=0A= +=0A= +dragTwoFuncHandler event =3D3D=0A= + dragTwoFunc $ \obj x y -> do=0A= + result <- event (point (fromIntegral x) (fromIntegral y))=0A= + return $ fromBool result=0A= +=0A= +dragThreeFuncHandler event =3D3D=0A= + dragThreeFunc $ \obj x y pre -> do=0A= + result <- event (point (fromIntegral x) (fromIntegral y)) = (toDragResul=3D=0A= t $ fromIntegral pre)=0A= + return $ fromIntegral $ fromDragResult result=0A= +=0A= +-- | Set an event handler for a drag & drop command between drag source = wi=3D=0A= ndow and drop=0A= +-- target. You must set 'dropTarget' before use this action.=0A= +-- And If you use 'fileDropTarget' or 'textDropTarget', you need not = use t=3D=0A= his.=0A= +dragAndDrop :: DropSource a -> DragMode -> (DragResult -> IO ()) -> IO = ()=0A= +dragAndDrop drSrc flag event =3D3D do=0A= + result <- dropSourceDoDragDrop drSrc (fromDragMode flag)=0A= + case lookup result dragResults of=0A= + Just x -> event x=0A= + Nothing -> return ()=0A= +=0A= +-- | Create 'DropSource'. Then 'dragAndDrop' replace target\'s = 'DataObject=3D=0A= ' by this 'DataObject'.=0A= +dropSource :: DataObject a -> Window b -> IO (DropSource ())=0A= +dropSource wxdata win =3D3D=0A= + withObjectPtr nullIcon $ \icon ->=0A= + withObjectPtr nullIcon $ \icon ->=0A= + withObjectPtr nullIcon $ \icon ->=0A= + dropSourceCreate wxdata win icon icon icon=0A= +=0A= +-- | On Windows or Mac OS X platform, you must choose this function or = 'dr=3D=0A= opSourceWithCursorByString',=0A= +-- if you want to use Custom Cursor for Drag & Drop event. = 'dropSourceWith=3D=0A= Icon' doesn't work these=0A= +-- platform, and this function doesn't work other platforms.=0A= +dropSourceWithCursor :: DataObject a -> Window b -> Cursor c -> Cursor = c -=3D=0A= > Cursor c -> IO (DropSource ())=0A= +dropSourceWithCursor wxdata win copy move none =3D3D=0A= + withObjectPtr copy $ \dndCopy ->=0A= + withObjectPtr move $ \dndMove ->=0A= + withObjectPtr none $ \dndNone ->=0A= + dropSourceCreate wxdata win dndCopy dndMove dndNone=0A= +=0A= +dropSourceWithIcon :: DataObject a -> Window b -> Icon c -> Icon c -> = Icon=3D=0A= c -> IO (DropSource ())=0A= +dropSourceWithIcon wxdata win copy move none =3D3D=0A= + withObjectPtr copy $ \dndCopy ->=0A= + withObjectPtr move $ \dndMove ->=0A= + withObjectPtr none $ \dndNone ->=0A= + dropSourceCreate wxdata win dndCopy dndMove dndNone=0A= +=0A= +dropSourceWithCursorByString :: DataObject a -> Window b -> String -> = Stri=3D=0A= ng -> String -> IO (DropSource ())=0A= +dropSourceWithCursorByString wxdata win copy move none =3D3D=0A= + case wxToolkit of=0A= + WxMSW -> do=0A= + dndCopy <- cursorCreateFromFile copy=0A= + dndMove <- cursorCreateFromFile move=0A= + dndNone <- cursorCreateFromFile none=0A= + dropSourceWithCursor wxdata win dndCopy dndMove dndNone=0A= + WxMac -> do=0A= + dndCopy <- cursorCreateFromFile copy=0A= + dndMove <- cursorCreateFromFile move=0A= + dndNone <- cursorCreateFromFile none=0A= + dropSourceWithCursor wxdata win dndCopy dndMove dndNone=0A= + _ -> do=0A= + dndCopy <- iconCreateFromFile copy sizeNull=0A= + dndMove <- iconCreateFromFile move sizeNull=0A= + dndNone <- iconCreateFromFile none sizeNull=0A= + dropSourceWithIcon wxdata win dndCopy dndMove dndNone=0A= +=0A= +=0A= +-- | Set an event handler that is called when text is dropped in target = wi=3D=0A= ndow.=0A= +textDropTarget :: Window a -> TextDataObject b -> (Point -> String -> = IO (=3D=0A= )) -> IO ()=0A= +textDropTarget window textData event =3D3D do=0A= + funPtr <- dropTextHandler event=0A= + textDrop <- wxcTextDropTargetCreate nullPtr (toCFunPtr funPtr)=0A= + dropTargetSetDataObject textDrop textData=0A= + windowSetDropTarget window textDrop=0A= +=0A= +dropTextHandler event =3D3D=0A= + wrapTextDropHandler $ \obj x y cstr -> do=0A= + str <- peekCWString cstr=0A= + event (point (fromIntegral x) (fromIntegral y)) str=0A= +=0A= +-- | Set an event handler that is called when files are dropped in = target =3D=0A= window.=0A= +fileDropTarget :: Window a -> (Point -> [String] -> IO ()) -> IO ()=0A= +fileDropTarget window event =3D3D do=0A= + funPtr <- dropFileHandler event=0A= + fileDrop <- wxcFileDropTargetCreate nullPtr (toCFunPtr funPtr)=0A= + windowSetDropTarget window fileDrop=0A= +=0A= +dropFileHandler event =3D3D=0A= + wrapFileDropHandler $ \obj x y carr size -> do=0A= + arr <- peekArray (fromIntegral size) carr=0A= + files <- mapM peekCWString arr=0A= + event (point (fromIntegral x) (fromIntegral y)) files=0A= +=0A= +data DragMode =3D3D CopyOnly | AllowMove | Default=0A= + deriving (Eq,Show)=0A= + -- deriving (Eq,Show,Read,Typeable)=0A= +=0A= +fromDragMode :: DragMode -> Int=0A= +fromDragMode mode=0A= + =3D3D case mode of=0A= + CopyOnly -> wxDRAG_COPYONLY=0A= + AllowMove -> wxDRAG_ALLOWMOVE=0A= + Default -> wxDRAG_DEFALUTMOVE=0A= +=0A= +foreign import ccall "wrapper" dragZeroFunc :: (Ptr obj -> IO ()) -> IO = (F=3D=0A= unPtr (Ptr obj -> IO ()))=0A= +foreign import ccall "wrapper" dragTwoFunc :: (Ptr obj -> CInt -> CInt = -> =3D=0A= IO CInt) -> IO (FunPtr (Ptr obj -> CInt -> CInt -> IO CInt))=0A= +foreign import ccall "wrapper" dragThreeFunc :: (Ptr obj -> CInt -> = CInt -=3D=0A= > CInt -> IO CInt) -> IO (FunPtr (Ptr obj -> CInt -> CInt -> CInt -> IO = CIn=3D=0A= t))=0A= +foreign import ccall "wrapper" wrapTextDropHandler :: (Ptr obj -> CInt = -> =3D=0A= CInt -> Ptr CWchar -> IO ()) -> IO (FunPtr (Ptr obj -> CInt -> CInt -> = Ptr =3D=0A= CWchar -> IO ()))=0A= +foreign import ccall "wrapper" wrapFileDropHandler :: (Ptr obj -> CInt = -> =3D=0A= CInt -> Ptr (Ptr CWchar) -> CInt -> IO ()) -> IO (FunPtr (Ptr obj -> = CInt -=3D=0A= > CInt -> Ptr (Ptr CWchar) -> CInt -> IO ()))=0A= hunk ./wxcore/src/Graphics/UI/WXCore/Image.hs 21=0A= + -- ** Cursors=0A= + , withCursorFromFile=0A= + , cursorCreateFromFile=0A= hunk ./wxcore/src/Graphics/UI/WXCore/Image.hs 127=0A= +{-----------------------------------------------------------------------= --=3D=0A= ----------------=0A= + Cursors=0A= +------------------------------------------------------------------------= --=3D=0A= ---------------}=0A= +-- | Load an cursor (see 'cursorCreateFromFile') and automatically = delete =3D=0A= it=0A= +-- after use.=0A= +withCursorFromFile :: FilePath -> (Cursor () -> IO a) -> IO a=0A= +withCursorFromFile fname f=0A= + =3D3D bracket (cursorCreateFromFile fname)=0A= + (cursorDelete)=0A= + f=0A= +=0A= +-- | Load an cursor from an icon file (ico,xbm,xpm,gif).=0A= +-- For a reason, this function is incomatible with 'iconCreateFromFile'.=0A= +cursorCreateFromFile :: String -> IO (Cursor ())=0A= +cursorCreateFromFile fname =3D3D imageCreateFromFile fname >>=3D3D = cursorCreat=3D=0A= eFromImage=0A= +=0A= }=0A= =0A= Context:=0A= =0A= [Add (Multi-)MediaCtrl Support=0A= shelarcy <she...@gm...>**20070811123742] =3D=0A= =0A= [Rework wxToolkit and isDefined by fixing *defs' char array to wxChar = array=0A= shelarcy <she...@gm...>**20070806121930] =3D=0A= =0A= [Change some str* functions or wcs* functions to wxStr* functions=0A= shelarcy <she...@gm...>**20070805112624] =3D=0A= =0A= [Remove unused wxh directory files=0A= shelarcy <she...@gm...>**20070803123528] =3D=0A= =0A= [Remove unused wxWidgets 2.5.x's VC project=0A= shelarcy <she...@gm...>**20070803120930] =3D=0A= =0A= [Add VC project for wxWidgets 2.6.4=0A= shelarcy <she...@gm...>**20070803120733] =3D=0A= =0A= [Fix broken wxc-2.4 Visual Studio Project=0A= shelarcy <she...@ho...>**20070723214850] =3D=0A= =0A= [polyline-64bit-compatibility-fix=0A= ar...@cs...**20070313080116=0A= Fixes a problem with the polyline function on a 64-bit platform.=0A= The wxDC_DrawLines function now properly indexes into the array=0A= with points.=0A= ] =3D=0A= =0A= [fix-polygon-behaviour-64=0A= ar...@cs...**20070202154517=0A= Fixed issue 'Strange polygon behaviour on 64-bit machines'=0A= reported by Chris Mears at 14 Dec 2006.=0A= =3D=0A= =0A= Problem: the arrays inspected by the wxDC_Polygon function=0A= are assumed to contain 32-bits ints. On 64-bit machines=0A= these are actually 64-bits ints.=0A= =3D=0A= =0A= Fix: (a bit of a hack...) the code now assumes that the=0A= arrays contain intptr_t values. This type represents ints=0A= of the same number of bits as the Haskell ints (on 32-bit=0A= and 64-bit machines). The code now dereferences each element=0A= in the array correctly, but still truncates the possibly=0A= 64-bit value to a 32-bit value. This is not a problem=0A= in practice.=0A= ] =3D=0A= =0A= [Announce new maintainers, darcs (homepage).=0A= Eric Kow <eri...@lo...>**20070120231403] =3D=0A= =0A= [Add miscellaneous other images (homepage).=0A= Eric Kow <eri...@lo...>**20070120224435] =3D=0A= =0A= [Add application screenshots (homepage).=0A= Eric Kow <eri...@lo...>**20070120224104] =3D=0A= =0A= [Add images used in quick start (homepage).=0A= Eric Kow <eri...@lo...>**20070120223650] =3D=0A= =0A= [Add images used for samples (homepage).=0A= Eric Kow <eri...@lo...>**20070120223301] =3D=0A= =0A= [Add images directory (and wxhaskell logo).=0A= Eric Kow <eri...@lo...>**20070120222724] =3D=0A= =0A= [Remove counter code from homepage.=0A= Eric Kow <eri...@lo...>**20070120221619=0A= =3D=0A= =0A= This counter has an pop-up ads, which is rather obnoxious.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Add wxhaskell homepage files (main html, css only).=0A= Eric Kow <eri...@lo...>**20070120221304=0A= =3D=0A= =0A= I took the liberty of running dos2unix on these.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Add some wxhaskell-specifile boring file regexps.=0A= Eric Kow <eri...@lo...>**20070120221235] =3D=0A= =0A= [Use a custom boring file. (Right now just the darcs default)=0A= Eric Kow <eri...@lo...>**20070120221223] =3D=0A= =0A= [Add an etc/ directory for misc use.=0A= Eric Kow <eri...@lo...>**20070120212146] =3D=0A= =0A= [Modify wx-install so it doesn't accidentally recompile things.=0A= Eric Kow <eri...@lo...>**20070120225914=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Merge wxStyledTextCntrl (Scintilla edit control wrapper) support from = Hast=3D=0A= e project=0A= shelarcy <she...@ca...>**20070111090641] =3D=0A= =0A= [Added #ifndef compilation flag around <inttypes.h> to avoid building = probl=3D=0A= em under Visual C++ (VC). (VC doesn't have <inttypes.h>.)=0A= she...@ca...**20061207005946] =3D=0A= =0A= [Correct previous patch for db.cpp=0A= she...@ca...**20061207004327] =3D=0A= =0A= [Add an eyeball test for Unicode strings.=0A= Eric Kow <eri...@lo...>**20061129042230] =3D=0A= =0A= [Use intptr_t to avoid assumption that integers are 32 bit.=0A= Arie Middelkoop <ar...@cs...>**20061125125628=0A= =3D=0A= =0A= Compiling wxHaskell on a 64bits platform fails, because there=0A= are some assumptions in the code that assume that integers are=0A= 32bits. For example, there are a couple of assignments of a=0A= pointer to an int.=0A= =3D=0A= =0A= This patch fixes these problems. Sometimes, after assigning a=0A= pointer to an integer, the int was used as a boolean value. In=0A= those cases, instead of returning a pointer p, I changed the=0A= code to return p !=3D3D NULL. In two other cases, a pointer is stored=0A= inside the int and in these cases I changed the type of the=0A= int to intptr_t, of which it is guaranteed that a pointer can be=0A= assigned to it and recovered from it.=0A= =3D=0A= =0A= Requires <inttypes.h>.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Added the -fPIC compiler flag to CXX options in the makefile.=0A= Arie Middelkoop <ar...@cs...>**20061115121006=0A= =3D=0A= =0A= Apparantly, my platform (gentoo x86_64 linux) required that .o files = are "=3D=0A= relocatable" when there =3D=0A= =0A= are linked into a dynamic library.=0A= =3D=0A= =0A= (It might be an idea to use libtool to hide this kind of = platform-specific=3D=0A= details)=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Tweak wx build target to depend on wxcore-clean.=0A= Eric Kow <eri...@lo...>**20061115002142=0A= =3D=0A= =0A= This avoids weird build errors with GHC 6.6 like=0A= wx/src/Graphics/UI/WX/Types.hs:94:0:=0A= Bad interface file: out/wx/imports/Graphics/UI/WXCore/Types.hi=0A= Something is amiss; requested module=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Update Windows/VC++ build for 0.10.1 (from jer...@gm...).=0A= Eric Kow <eri...@lo...>**20061029082957=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Separate make/make install for wxcore and wx.=0A= Eric Kow <eri...@lo...>**20061027201218=0A= =3D=0A= =0A= Now the user has to type=0A= make=0A= (sudo) make install=0A= make wx=0A= (sudo) make wx-install=0A= =3D=0A= =0A= This is a tweak of Shelarcy's patch for making wxhaskell compile on GHC = 6.=3D=0A= 6.=0A= The intention is to avoid the surprising behaviour of wxcore being = install=3D=0A= ed=0A= when the user types 'make'.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Add shelarcy patch for compile with GHC-6.6=0A= jer...@gm...**20061027102208] =3D=0A= =0A= [Add support for toolbar divider and other toolbar options (from = shelarcy@g=3D=0A= mail.com)=0A= jer...@gm...**20061023095411] =3D=0A= =0A= [Add support for toolbar divider (for she...@gm...)=0A= jer...@gm...**20061023094720] =3D=0A= =0A= [Add support for list item mask (from she...@gm...)=0A= jer...@gm...**20061023094528] =3D=0A= =0A= [Add support for Calendar events (from sha...@gm...)=0A= jer...@gm...**20061023094412] =3D=0A= =0A= [Add support for wxWidgets version >=3D3D 2.5 (Sound API, db API)=0A= jer...@gm...**20061023094049] =3D=0A= =0A= [Shelarcy patch: fix typos in wxHaskell samples/contrib=0A= jer...@gm...**20060830114937] =3D=0A= =0A= [(OS X) Skip intermediate step of compiling master.o.=0A= Eric Kow <eri...@lo...>**20060813212620=0A= =3D=0A= =0A= Removing this step (which compiles master.o, and combines it with other=0A= stuff to get the real library we want) avoids weird error messages like=0A= =3D=0A= =0A= ld: out/wxc/master.o undefined symbol 36218 (__ZdaPv) can't be a weak=0A= definition=0A= =3D=0A= =0A= It's quite possible that this breaks something else, though...=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Update VC++ project file to reflect new wxWidgets version support = (unteste=3D=0A= d)=0A= jer...@gm...**20060817170205] =3D=0A= =0A= [Update VC++ project file to reflect updated DLL version supporting = wxWidge=3D=0A= ts 2.6.3=0A= jer...@gm...**20060817170011] =3D=0A= =0A= [Update revision numbers and wxversion guesses for Windows / VC++ = (jeremy.o=3D=0A= don...@gm...)=0A= jer...@gm...**20060817165704] =3D=0A= =0A= [Shelarcy patch (VC project for wxWindows 2.6.3)=0A= jer...@gm...**20060816134707] =3D=0A= =0A= [Shelarcy patch (WxcTypes.hs)=0A= jer...@gm...**20060816115419] =3D=0A= =0A= [Shelarcy patch (eljdialup.cpp)=0A= jer...@gm...**20060816114418] =3D=0A= =0A= [Shelarcy patch (db.cpp)=0A= jer...@gm...**20060816113728] =3D=0A= =0A= [(wxc, Unicode) Files for compiling unicode version under Visual Studio.=0A= shelarcy <she...@ca...>**20060813212315=0A= =3D=0A= =0A= This is Eric Kow recording on Shelarcy's behalf. This corresponds to = vers=3D=0A= ion=0A= 08 of my Unicode patch.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [Add a small makefile for compiling the samples.=0A= Eric Kow <eri...@lo...>**20060813211705=0A= =3D=0A= =0A= (This comes from version 08 of my Unicode patch).=0A= =3D=0A= =0A= ] =3D=0A= =0A= [(wxcore, Unicode) Add/use ability to interact with C wchar_t.=0A= Eric Kow <eri...@lo...>**20060813211211=0A= =3D=0A= =0A= This corresponds to the wxcore part of my Unicode patch, version 08=0A= modulo trailing whitespace.=0A= =3D=0A= =0A= I believe this would require for wxWidgets and wxhaskell to be compiled = wi=3D=0A= th=0A= Unicode enabled.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [(wxdirect, Unicode) Use the Haskell types for C wchar_t and friends.=0A= Eric Kow <eri...@lo...>**20060813210420=0A= =3D=0A= =0A= I believe this would require that wxWidgets be compiled with Unicode=0A= enabled.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [(wxc, Unicode) Use wxChar instead of char.=0A= Eric Kow <eri...@lo...>**20060813205557=0A= =3D=0A= =0A= wxChar is a C preprocessor macro that selects for char under=0A= --disable-unicode, and for wchar_t under --enable-unicode.=0A= =3D=0A= =0A= This corresponds to version 08 of my Unicode patch, but only the parts=0A= which affect wxc.=0A= =3D=0A= =0A= ] =3D=0A= =0A= [[wxhaskell-from-cvs @ 2005-05-08 08:12:51 by dleijen]=0A= dleijen**20050508081251=0A= updated change log=0A= ] =3D=0A= =0A= [[wxhaskell-from-cvs @ 2005-05-08 07:24:23 by dleijen]=0A= dleijen**20050508072423=0A= Compile wx via -fvia-C to fix crash with ghci on windows=0A= ] =3D=0A= =0A= [TAG wxhakell-0-9-4=0A= Unknown tagger**20060712042545] =3D=0A= =0A= Patch bundle hash:=0A= 50df8fe807ca580ddfd0c12a48b25c7ed20796ad=0A= =0A= --=3D_--=0A= =0A= .=0A= =0A= |