Re: Another wx behavior question - Mailing list pgadmin-hackers

From Andreas Pflug
Subject Re: Another wx behavior question
Date
Msg-id 3FD502D3.4070003@pse-consulting.de
Whole thread Raw
In response to Another wx behavior question  (John McCawley <jmccawley@worleyco.com>)
List pgadmin-hackers
John McCawley wrote:

> I have done a ton of work on pgDesigner, and I'm almost ready for a
> 1.0 release.  I decided to compile a Windows binary, but I am getting
> the following compile error when compiling under MSVC 6 (Note: it
> compiles and runs fine under Linux)
>
> error C2440: 'type case' : cannot convert from 'void
> (__thiscall_CDiagramWindow::*)(void)' to 'void (__thiscall
> wxEvtHandler::*)(class wxCommandEvent &)'
>
> I only get this on EVT_PAINT and EVT_MENU events, but not in all
> classes, just two of them.  Is there something flakey regarding MSVC
> and event handlers?  All of my handlers are pretty vanilla.  The only
> thing I can see is that one of the classes that isn't working uses
> multiple inheritance.  However, the other one doesn't, and it still
> isn't working.
>
> Below is one of the ones that isn't working:
>
> class CDiagramWindow : public wxScrolledWindow {
> public:
> /* stuff */
> private:
>        DECLARE_DYNAMIC_CLASS(CDiagramWindow)
>        DECLARE_EVENT_TABLE()
> };
>
> IMPLEMENT_DYNAMIC_CLASS(CDiagramWindow, wxScrolledWindow)
>
> BEGIN_EVENT_TABLE(CDiagramWindow, wxScrolledWindow)
>        EVT_CHAR(CDiagramWindow::OnChar)
>        EVT_RIGHT_UP(CDiagramWindow::OnRightClick)
>        EVT_LEFT_DOWN(CDiagramWindow::OnLeftDown)
>        EVT_MENU(ID_NEW_TABLE, CDiagramWindow::OnNewTable)
>        EVT_MENU(ID_SELECT_COLOR, CDiagramWindow::OnSelectColor)
>        EVT_MENU(ID_DELETE_KEY, CDiagramWindow::OnDeleteKey)
>        EVT_PAINT(CDiagramWindow::OnPaint)
>        EVT_MOTION(CDiagramWindow::OnMotion)
> END_EVENT_TABLE()


John, you really should post stuff like this on the wx lists....

Still, I have some suggestions to you.
First: It appears to me that you're defining event handler methods that
don't have an event& argument. This will lead to a major desaster if you
use another compiler. This might already cover your problem as well.
Second: If registering event handlers outside the event table, you will
need some casting, sometimes even multiple casts.

Regards,
Andreas



pgadmin-hackers by date:

Previous
From: John McCawley
Date:
Subject: Another wx behavior question
Next
From: Jean-Michel POURE
Date:
Subject: Re: pgAdmin3 tl_PH translation (Partial)