[pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows
Hi, I'm quite new to pgAdmin and wxWidgets, but since I never managed to build wxWidgets from source, I eventually found wxWidgets 2.9.4 binaries (http://wxwidgets.blogspot.fr/2012/08/how-to-use-294-wxmsw-binaries.html) which I'm now using to build pgAdmin3 1.16.1. However, now I get a linker error saying "cannot open file 'wxbase28u.lib'" and I don't know where the problem is. I can find wxbase29u-lib in the directories and I assume it should be trying to link with that one... Would really appreciate any help with this one - thanks. KariK
Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows
Hi Florian, Thanks a lot for your quick and detailed response. Yes, I followed those pgAdmin building instructions from the INSTALL file. But I struggled (including discovering that vcbuild has been replaced with msbuild with incompatible switches...) with that stuff for a couple of days and gave up, and was hoping the wxWidgets binaries+headers would be the way to go. I am getting much further with this approach but still failing at the end. I'm using Visual Studio 2010 Professional (running on 64bit Win 7); not sure if that is a problem. I have noticed that at wxWiki (http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide) they recommend using VC++ 2008 Express edition which, as you pointed out, is not so easy to find anymore. But as I said, currently my build fails since 'wxbase28u.lib' is not there. However, 'wxbase29u.lib' is there (because I'm using the 2.9.4 binaries, I assume), but I just don't know why the linker is looking for the 28 version and not the 29 version, and how to change this... KariK ____ From: Florian Klaar To: Kari Karkkainen Cc: "pgadmin-hackers@postgresql.org" Sent: Sunday, February 10, 2013 2:40 AM Subject: Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows Hi Kari, I assume you followed the instructions from pgadmin.org? http://git.postgresql.org/gitweb/?p=pgadmin3.git;a=blob;f=INSTALL;h=b8ec1a51fd877efc1be701f4ed938b92daf219fc;hb=REL-1_16_0_PATCHES I was struggling with wxWidgets on Windows as well since the instructions didn't seem to work with my installation of VC++ 2010 Express. I'm no expert on this, but my guess is that it'll still be easier to get wxWidgets 2.8 to work than make pgAdmin compile with version 2.9. You didn't mention which version of Visual C++ you are using, but I wanted to use the Express edition and ended up having to install both VC 2008 Express and 2010 Express to make the supplied build-wxmsw.bat work and at as well be able to open the pgAdmin solution file. My rather clumsy and trial-and-error-driven approach was (from memory): - Use VC 2008 Express to execute pgAdmin's supplied build-wxmsw.bat, since VC 2010 Express doesn't seem to include vcbuild.exe any more. However, 2008's vcbuild.exe didn't recognize wxWidget's .dsp files as project files (the error message was something like "make sure the file is from VC++4 or newer bla"), so I opened all the needed .dsp files one by one in VC 2008 Express using File -> Open -> Project (NOT File -> Open -> File!). For each project file, VC asked to upgrade it, which I confirmed, causing VC to kindly generate a .vcproj file for the respective .dsp file. This is the first part of what pgAdmin's build-wxmsw.bat was supposed to do. - Then (still in VC 2008) I executed build-wxmsw.bat again in order to build the binaries. Which worked, as far as I remember. - Since pgAdmin's solution file is for version 2010, use VC 2010 Express to open it. I also had to change a few of the project's include paths in order for VC to find all the needed external libraries when compiling pgAdmin, but that's no biggie. I also wasn't aware at the beginning that I had to download the binary distributions of the libraries and not the source packages. But that may be due to my general lack of experience with these things. Took me an evening to work all this out, but at least I learned something new along the way. Oh BTW, if you need to get VC++ 2008 Express from the web, make sure the web installer you are using does indeed download version 2008 and not 2010. Microsoft seems to have replaced the old installer with the new one in place, so many old links found on the web that are labeled "2008" actually point to the 2010 installer now. This was almost driving me nuts :-) Hope this helps. Florian
Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows
Hi, Thank you all, I'm making some progress. I think I sorted out the 2.8 vs 2.9 issue (by removing all wxWidgets 2.9 libraries from "Additional Dependencies" under the Linker configuration), but now I cannot figure out why I get a bunch of these types of linking errors: "error LINKxxx: unresolved external symbol_PQxxx" I'm guessing these are maybe due to the PostgreSQL libbq.lib not being linked with properly - any thoughts on this? KariK From: Dave Page To: Wahlstedt Jyrki Cc: Kari Karkkainen ; Florian Klaar ; "pgadmin-hackers@postgresql.org" Sent: Sunday, February 10, 2013 3:21 PM Subject: Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows In VC++ we have different build targets for wx2.9 (and, VC++ 2010 is supported - I use it all the time - it's just the wxmsw build script that hasn't been updated recently). On Sun, Feb 10, 2013 at 7:42 AM, Wahlstedt Jyrki wrote: Hi, >in configure phase (on other platforms, I haven't looked at Windows) there is >a setting: > --with-wx-version=2.9 > > >If you can find something similar, that might help. > > >On 10.2.2013, at 9.12, Kari Karkkainen wrote: > >Hi Florian, >> >> >>Thanks a lot for your quick and detailed response. >> >> >>Yes, I followed those pgAdmin building instructions from the INSTALL file. >>But I struggled (including discovering that vcbuild has been replaced with >>msbuild with incompatible switches...) with that stuff for a couple of days >>and gave up, and was hoping the wxWidgets binaries+headers would be the way >>to go. I am getting much further with this approach but still failing at the >>end. >> >> >>I'm using Visual Studio 2010 Professional (running on 64bit Win 7); not sure >>if that is a problem. I have noticed that at wxWiki >>(http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide) they recommend >>using VC++ 2008 Express edition which, as you pointed out, is not so easy to >>find anymore. >> >> >>But as I said, currently my build fails since 'wxbase28u.lib' is not there. >>However, 'wxbase29u.lib' is there (because I'm using the 2.9.4 binaries, I >>assume), but I just don't know why the linker is looking for the 28 version >>and not the 29 version, and how to change this... >> >> >>KariK >> >> >> > > > >!! Jyrki Wahlstedt >!http://www.wahlstedt.fi/jyrki/ >! >! Our life is no dream; but it ought to become one and perhaps will. >! PGP key ID: 0x139CC386 fingerprint: F355 B46F 026C B8C1 89C0 A780 6366 EFD9 >139C C386 > > > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows
Hi, Just wanted to let you know that I was now finally able to build pgAdmin 1.16.1 sources with wxWidgets 2.9.4 binaries using VS 2010 Professional. The issue with unresolved PQ symbols seemed to have been caused by a mismatch between 32bit and 64bit versions; I was wanting to build a 32bit pgAdmin target but had used the EnterpriseDB installer only for a 64bit PostgreSQL. Dave, to be able to build with the pre-built wxWidgets binaries, I had to tweak the linker configuration according to these instructions: http://wxwidgets.blogspot.fr/2012/08/how-to-use-294-wxmsw-binaries.html KariK From: Dave Page To: Kari Karkkainen Cc: Wahlstedt Jyrki ; Florian Klaar ; "pgadmin-hackers@postgresql.org" Sent: Sunday, February 10, 2013 4:40 PM Subject: Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets binaries for Windows You shouldn't need to touch the linker config - just use the non-2.9 build targets. If you're hacking config options, you're almost certainly doing it wrong. Unresolved PQ symbols indicate you don't have either the PostgreSQL libraries installed (I'd suggest using the EnterpriseDB installer as we know that'll work), or you don't have %PGDIR% pointing to the installation. On Sun, Feb 10, 2013 at 1:46 PM, Kari Karkkainen wrote: Hi, > > >Thank you all, I'm making some progress. > > >I think I sorted out the 2.8 vs 2.9 issue (by removing all wxWidgets 2.9 >libraries from "Additional Dependencies" under the Linker configuration), but >now I cannot figure out why I get a bunch of these types of linking errors: >"error LINKxxx: unresolved external symbol_PQxxx" > > >I'm guessing these are maybe due to the PostgreSQL libbq.lib not being linked >with properly - any thoughts on this? > > >KariK > > > > > > From: Dave Page >To: Wahlstedt Jyrki >Cc: Kari Karkkainen ; Florian Klaar >; "pgadmin-hackers@postgresql.org" > >Sent: Sunday, February 10, 2013 3:21 PM > >Subject: Re: [pgadmin-hackers] Problems building pgAdmin with wxWidgets >binaries for Windows > > > >In VC++ we have different build targets for wx2.9 (and, VC++ 2010 is supported >- I use it all the time - it's just the wxmsw build script that hasn't been >updated recently). > > > >On Sun, Feb 10, 2013 at 7:42 AM, Wahlstedt Jyrki wrote: > >Hi, >>in configure phase (on other platforms, I haven't looked at Windows) there is >>a setting: >> --with-wx-version=2.9 >> >> >>If you can find something similar, that might help. >> >> >>On 10.2.2013, at 9.12, Kari Karkkainen wrote: >> >>Hi Florian, >>> >>> >>>Thanks a lot for your quick and detailed response. >>> >>> >>>Yes, I followed those pgAdmin building instructions from the INSTALL file. >>>But I struggled (including discovering that vcbuild has been replaced with >>>msbuild with incompatible switches...) with that stuff for a couple of days >>>and gave up, and was hoping the wxWidgets binaries+headers would be the way >>>to go. I am getting much further with this approach but still failing at the >>>end. >>> >>> >>>I'm using Visual Studio 2010 Professional (running on 64bit Win 7); not sure >>>if that is a problem. I have noticed that at wxWiki >>>(http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide) they recommend >>>using VC++ 2008 Express edition which, as you pointed out, is not so easy to >>>find anymore. >>> >>> >>>But as I said, currently my build fails since 'wxbase28u.lib' is not there. >>>However, 'wxbase29u.lib' is there (because I'm using the 2.9.4 binaries, I >>>assume), but I just don't know why the linker is looking for the 28 version >>>and not the 29 version, and how to change this... >>> >>> >>>KariK >>> >>> >>> >> >> >> >>!! Jyrki Wahlstedt >>!http://www.wahlstedt.fi/jyrki/ >>! >>! Our life is no dream; but it ought to become one and perhaps will. >>! PGP key ID: 0x139CC386 fingerprint: F355 B46F 026C B8C1 89C0 A780 6366 >>EFD9 139C C386 >> >> >> >> > > > >-- >Dave Page >Blog: http://pgsnake.blogspot.com >Twitter: @pgsnake > >EnterpriseDB UK: http://www.enterprisedb.com >The Enterprise PostgreSQL Company > > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
[pgadmin-hackers] Detecting mouse events in the SQL grid
Hi, I'm trying to add some additional mouse event detection into the SQL grid, but I'm not succeeding. Besides pgAdmin, also wxWidgets is new to me, so I'm probably missing something obvious... The grid was already detecting EVT_MOUSEWHEEL, so I tried to use that as my guideline: In ctlSQLGrid.h for the ctlSQLGrid class I added two private functions on the bottom: private: void OnCopy(wxCommandEvent &event); void OnMouseWheel(wxMouseEvent &event); void OnMouseLeftDown(wxMouseEvent &event); void OnMouseLeftUp(wxMouseEvent &event); In ctlSQLGrid.cpp I added two events: BEGIN_EVENT_TABLE(ctlSQLGrid, wxGrid) EVT_MENU(MNU_COPY, ctlSQLGrid::OnCopy) EVT_MOUSEWHEEL(ctlSQLGrid::OnMouseWheel) EVT_LEFT_DOWN(ctlSQLGrid::OnMouseLeftDown) EVT_LEFT_UP(ctlSQLGrid::OnMouseLeftUp) END_EVENT_TABLE() An then in ctlSQLGrid.cpp I defined the functions e.g. like this: void ctlSQLGrid::OnMouseLeftUp(wxMouseEvent &event) { SetTotals(); } However, I never hit these functions by clicking the mouse, and I don't understand why. Would really appreciate any advice. Thanks, KariK
Re: [pgadmin-hackers] Detecting mouse events in the SQL grid
Hi Guillaume, No, I don't know if it is dealt with at the window level. I also thought that this could be the issue, i.e. that the event is intercepted and handled somewhere else, but I could not find out where that might be. Any advice? Also, one (probably basic) thing is unclear to me: If I handle this mouse event (or most other input events), do I then prevent the event from being managed by its default handler, which maybe I need to invoke from my event handler to make sure no default behavior is missed? Thanks, KariK From: Guillaume Lelarge To: Kari Karkkainen Cc: pgadmin-hackers Sent: Saturday, February 23, 2013 4:50 PM Subject: Re: [pgadmin-hackers] Detecting mouse events in the SQL grid On Sun, 2013-02-17 at 12:21 -0800, Kari Karkkainen wrote: > Hi, > > I'm trying to add some additional mouse event detection into the SQL grid, > but I'm not succeeding. Besides pgAdmin, also wxWidgets is new to me, so I'm > probably missing something obvious... > > The grid was already detecting EVT_MOUSEWHEEL, so I tried to use that as my > guideline: > > In ctlSQLGrid.h for the ctlSQLGrid class I added two private functions on the > bottom: > private: > void OnCopy(wxCommandEvent &event); > void OnMouseWheel(wxMouseEvent &event); > void OnMouseLeftDown(wxMouseEvent &event); > void OnMouseLeftUp(wxMouseEvent &event); > > In ctlSQLGrid.cpp I added two events: > BEGIN_EVENT_TABLE(ctlSQLGrid, wxGrid) > EVT_MENU(MNU_COPY, ctlSQLGrid::OnCopy) > EVT_MOUSEWHEEL(ctlSQLGrid::OnMouseWheel) > EVT_LEFT_DOWN(ctlSQLGrid::OnMouseLeftDown) > EVT_LEFT_UP(ctlSQLGrid::OnMouseLeftUp) > END_EVENT_TABLE() > > An then in ctlSQLGrid.cpp I defined the functions e.g. like this: > void ctlSQLGrid::OnMouseLeftUp(wxMouseEvent &event) > { > SetTotals(); > } > > However, I never hit these functions by clicking the mouse, and I don't > understand why. Would really appreciate any advice. > Are you sure it's not already dealt with at the window level? -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers