You'll note, toward the bottom of the Configurations Property Sheet, there
is a property called CFG. You might assign, for instance, the value
"Static" to this which then becomes the trailing designation for the build
and lib dirs (i.e., vc_libStatic) for your static build and "Dynamic" for
your shared object build (i.e., vc_libDynamic).
This has been around in wxWidgets for quite some time, but no one ever used
it. When I had need of it, I researched it and asked Julian if it were
possible to add this to DB. He did this quite some time ago. However, even
after answering this question several times in anthemion-devtools and
wxMS_developers, and the fact that it appears in some of my tutorials and
demos and the video tutorial on building under several platforms with
wxWidgets and DialogBlocks, it still goes largely unused!%~{
You know what they say; "You can lead a horse to water, but you can't make
them do the backstroke!"
HTH:
Dave S.
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
wxWidgets Code Exchange
http://www.wxcodex.net/
----- Original Message -----
From: "Andreas Goebel" <a-goebel@...>
To: <anthemion-devtools@yahoogroups.com>
Sent: Sunday, October 18, 2009 4:30 AM
Subject: [anthemion-devtools] Use static runtime linking
> Hi,
>
> for one of my projects I´d like to use static runtime linking. For this,
> wxWidgets has to be rebuilt.
>
> However, for another project I must use dynamic runtime linking, and I´d
> like to keep that build of wx intact.
>
> How can I change the build-directory for wx within my dialogBlocks -
> Project?
>
> Regards,
>
> Andreas
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
5) For an MFC Application, if one selects "German (Germany)" under "Resource Language", Project > Properties > Configuration Properties > General > Character Set is set to "Use Multi-Byte Character Set".
In the case of Visual Studio 10, using unicode libs is checked by default, in all others it is not. If this is checked, then multi-byte is not selected.
Now, I do not know if simply setting the resource language to multi-byte instead of unicode will help, but it's simple enough to check!;)
----- Original Message ----- From: "Julian Smart" <julian@...> To: <anthemion-devtools@yahoogroups.com> Sent: Sunday, September 06, 2009 9:34 AM Subject: Re: [anthemion-devtools] Truncated lines in output and error window from german VC++ 2008 Express
> Hi Robert, > > hoffmann_robert wrote: >> Hi, >> >> I use DB 4.33 together with Visual C++ 2008 Express in a german Windows >> Vista environment. Apparently, DB has problems with german umlauts being >> output from VC++ (nmake and vcbuild). Lines containing umlauts are >> truncated at the first umlaut. >> >> Example error output: >> c:\users\robert\documents\visual studio >> 2008\projects\test\dokumentdlg.cpp(222) : error C4716: >> 'DokumentDlg::TransferDataFromWindow': Muss einen Wert zur >> >> <-- truncated; "zur" should be: "zurückgeben" (must return a value) >> >> Another output example: >> Code wird generiert... >> Verkn >> Das Manifest wird eingebettet... >> >> "Verkn" should be "Verknüpfen" (link) >> > Hm. It looks as though VC++/nmake is writing characters in a different > encoding than DB expects (it's looking for UTF-8). I guess it's using > the current Windows encoding. Not sure how to resolve this, except > perhaps by having an encoding setting for VC++ and having the > pipe-reading code aware of the encoding for the current process. Or > maybe there's a way of telling VC++ to write in UTF-8; maybe by > executing "cmd.exe /U VCExpress.exe ..." but I don't think the /U switch > is intended for this purpose. > > A (not great) workaround might be to switch the VC++ language to > English, in Options/International Settings. > > If anyone has some knowledge about how VC++ output can be persuaded to > be UTF-8 I'd be interested to hear it. An hour or so of Googling hasn't > yielded anything useful yet... although I did come across the > VS_UNICODE_OUTPUT environment variable, which seems to direct output to > the IDE console instead of stdout, so probably isn't useful. > > Regards, > > Julian > > > ------------------------------------ > > Yahoo! Groups Links > > <*> To visit your group on the web, go to: > http://groups.yahoo.com/group/anthemion-devtools/ > > <*> Your email settings: > Individual Email | Traditional > > <*> To change settings online go to: > http://groups.yahoo.com/group/anthemion-devtools/join > (Yahoo! ID required) > > <*> To change settings via email: > mailto:anthemion-devtools-digest@yahoogroups.com > mailto:anthemion-devtools-fullfeatured@yahoogroups.com > > <*> To unsubscribe from this group, send an email to: > anthemion-devtools-unsubscribe@yahoogroups.com > > <*> Your use of Yahoo! Groups is subject to: > http://docs.yahoo.com/info/terms/ >
I won't need to be making modified versions of wxWidgets documentation as I've done in past years. The new paradigm in 2.9.0 and after has now included the extended search and favorites (bookmarks) functionality I made available in past versions!;) It takes time, but patience always wins out!:-)
Hi!
I've changed the procedure for joining this group. It has always been open,
with no restriction.
I changed this to membership on approval to try to curb the spammers who
periodically join and send
garbage messages to the group. I've been avoiding doing this because, frankly,
I have plenty
to keep me busy as it is. However, this last spammer who just joined the group
posted an advert for
pornography, and that was definitely a last straw. Not that I, personally, have
issues with
pornography, as a matter of fact I feel everyone has the right to voice their
opinions. I respect
their rights, and expect the group's rights to be respected, too. Since
pornography is a bit of a
charged issue to some people, some of whom may be members of this group, and in
deference to their rights,
all new memberships will require approval. This is in hopes that a lowered
volume of spam will result,
not just pornography, but all unsolicited ads to the group which have no direct
bearing on wxWidgets,
wxWidgets on Microsoft Windows, and wxWidgets IDE's.
I'm hoping this will meet the approval of the group, because, after all, it is
not really my group,
but yours.
Sincerely,
Dave S.
I went to a great deal of trouble to make sure the link was a complete hyperlink, however, some email clients, especially plain text, may not make it obvious what the actual link is!%~{
That is, everything between 'http' and 'zip', inclusive, is the link. If your particular viewer does not treat it that way, you'll need to copy and paste into the address bar of your browser the whole line/name as described here...
Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI
Hi!
It seems there are some alternatives to deforestation and draining the inkwell!;) If you have some method, portable or PC/Mac based, of reading eBooks, there are a number of packages that address the subject, one way or the other. The real problem is, with no recognized standard, different developers choose different format(s) to address. Mostly these products are based on one of two alternatives: commercial or open source. In turn, each of these is broken down still further to which format(s) are desirable. Desirability seems mostly based on interests, personal or vested. Finding some commonality is indeed difficult.
One free 'commercial' product comes from eReader.com (formerly Palm Digital). In similar fashion to Adobe with their PDF Reader, eReader has a free ebook reader (called, of all things, 'eReader'!;). They also have a free version of their eBook Studio software. Used in conjunction, it's a pretty valuable tool.
eBook Studio allows one to set up an eBook from scratch or import the data (text, etc.) which can be used to create a book. Like most all eBook 'making' software, HTML may be loaded and transformed into the 'native' eBook specification format. For eBook Studio, this is the PML (Palm Markup Language) format. Once the eBook data has been loaded and saved into PML, a PDB (Palm DataBase) eBook can then be produced.
The PDB format is recognized by many PDA readers as well as a few software conversion packages. Getting a PDB eBook is relatively easy in the case of wxWidgets. Getting other formats is a bit harder.
To make an eBook in the PDB format involves just 2 steps. These were learned empirically as most all converter/creation packages are quite short on the 'How To Use' information. One might think at first that all of the HTML files that make up the wxWidgets documentation. This turns out to be quite doable, but very tedious. There are 687 HTML files involved, as well as support files (GIF and CSS). I have been unable to find any converter/creator which loads more than one HTML (or any file) at one time!8-o Thankfully, with eBook Studio, this is not necessary. Going on the basis that all 'groups' of HTML files will have a typical 'index.html' file as 'ground zero', eBook Studio follows the links in that file and all subsequent files to obtain the complete hierarchy. The problem is, which file is the counterpart to 'index.html' in the wxWidgets documentation. It turns out to be the file wx_contents.html. Opening wx_contents.html in eBook Studio causes it to parse the links and build a hierarchy of files/links. This is then saved as a PML file, and from this, one may generate a PDB file, the eBook one is after.
The 2 steps are:
1) Open eBook Studio and then load wx_contents.html.
2) Save the loaded data as a PML, then make the eBook (PDB) from that.
Believe it or not, it took me a good week of investigation to distill these 2 steps!:=]
Other packages operate in much the same way, but their output is not terribly desirable. eBook Studio in conjunction with eReader gives a very nice, comfortably readable presentation.
There are a couple of undesirable points, but they are not the fault of either eBook Studio or eReader. The 'built in' navigational icons in the wxWidgets HTML files aren't recognized as navigation in the eBook. They are displayed, but do nothing. Then there are the anchors for (mostly internal) jumps to specific topics. Although there is no 'right' or 'wrong' way to place these, for the purpose of generating an eBook, they are usually in the 'wrong' place. The result is, when you select a link to an anchor, more often than not, you will need to turn the page to actually get the topic. It would have been nicer had the anchors been placed inside the title/header for the topic, i.e.:
Being separated like this, although not in any way outside of specification (HTML 4.0 Transitional, which is another 'problem' and a different topic), causes the jump location in the eBook to be _before_ the actual topic.
There are, as stated, other packages. Those I've had time to look at in depth do not perform as well. One alternative which I have not yet had time to look into is Open Office. It has the capability to generate several different data /eBook specification formats. This could prove to be a godsend to folks who happen not to have an eReader compatible PDA.
Currently eReader.com advertizes compatibility with and/or software for the following PDA's and Operating Systems:
iPhone and iPod touch BlackBerry Palm OS PocketPC 2002 or Earlier Windows Mobile Smartphone and PocketPC 2003 or Later Symbian Windows Macintosh OQO
A zip archive of the 2.8.10 wxWidgets manual in PDB and PML formats can be obtained with the following link:
----- Original Message ----- From: "Steve Cookson" <steve.cookson@...> To: <wx-users@googlegroups.com> Sent: Wednesday, May 27, 2009 8:08 AM Subject: RE: wxWidgets 2.8.10: A portable C++ and Python GUI
And that certainly applies to me. I need a book that I can read when I'm doing other daily activities (on the Metro, waiting for appointments, ....). But I might try a US printer to see if it's more cost effective.
Thanks for the help.
Regards
Steve
-----Original Message----- From: wx-users@googlegroups.com [mailto:wx-users@googlegroups.com] On Behalf Of Tim Sent: 27 May 2009 09:55 To: wx-users@googlegroups.com Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI
Hi,
I agree with Xavier's suggestion to go to a local print shop to print the PDF version of "wxWidgets 2.8.10: A portable C++ and Python GUI". However, only print a portion of the 2400 pages.
Many beginners learn best by having a printed paper copy to browse and write on. It is somehow easier to see the big picture and not get lost in the details when you have a paper copy to read.
After one get pasts the beginner stage however, then the online copy is better because it is up-to-date with hyperlinks.
Your local printer can probably: a) Accept the pdf online b) Print double-sided c) Bind in books of about 300-400 pages for $25/book
If you want to try this, print pages 2026-2353 first and give it a try. This is the last 300 pages and the most readable portion. If you like it, then print pages i-339 next which is the first 350 pages. Everything in the middle, pages 18-1903 (Chapter 7 Alphabetical class reference and Chapter 8 Functions), or nearly 80% of the book, is probably easier to use online with hyperlinks. You can use the hyperlinked reference at http://docs.wxwidgets.org/stable/ or the MS HTML Help file, for example.
One more note: The paper page numbers don't match the PDF page numbers. So when you give instructions to your print shop, give both page ranges: Example: "Print pages 2026-2353 (pdf pages 2054-2381) double-sided and bind with a cover".
> From: Xavier Miller <xavier.miller@...> > Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI > To: wx-users@googlegroups.com > Date: Tuesday, May 26, 2009, 11:46 PM > > Hello, > > You can also find an online printing service, or go to a local "print > shop". > > Steve Cookson a écrit : > > OK, thanks for this. > > > > I guess you're saying that Amazon won't be beating a > path to your door just > > yet. > > > > Oh well, maybe I'll just stock up on printer ink. > > > > Have a good day. > > > > Regards > > > > Steve > > > > > >> But there seems to be a document out there > "wxWidgets 2.8.10: A > >> portable C++ and Python GUI" - by the ususal > suspects, running in > >> excess of 2,300 pages, as I'm never going to print > out that beast (it > >> would cost 00s in printer ink alone), I looked on > Amazon, and imagine > >> my astonishment when I got "Your search did not > match any products." > >> > >> Well, I have my credit card ready, and I'm hungry > to buy, so where do I go?
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "wx-users" group. To post to this group, send email to wx-users@googlegroups.com To unsubscribe from this group, send email to wx-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/wx-users?hl=en -~----------~----~----~----~------~----~------~--~---
>> This is a very common problem with wxWidgets on Windows.
>> It has to do with mixing and matching incompatible library types.
>> If you want to use shared objects (.dll's),
>> then you must also build wxWidgets as shared objects.
>> If you want to build in library routines statically,
>> then you have to specify static libraries to µ$.
> you can change /MD to /MT (project perperty/c++/code generation) > I think it works
This is exactly what you do when you set 'Build > Configurations... > Runtime library' property for a project. By setting this to Static, DB generates either:
RuntimeLibrary="0"
RuntimeLibrary="1"
for /MT (Release) or /MTd (Debug) respectively. Similarly, when set to Dynamic, DB generates:
RuntimeLibrary="2"
RuntimeLibrary="3"
for /MD (Release) or /MDd (Debug) respectively.
These values are in the generated .vcproj file. For the nmake version (VC++, as opposed to VC++ Project), values are in the makefile.vc as:
OPTFLAGS=/MT
OPTFLAGS=/MTd
OPTFLAGS=/MD
OPTFLAGS=/MDd
Again, the crux of the problem is when your wxWidgets libs and the libs you've chosen for runtime from Windows don't match. You cannot build a dynamic Windows application with static wxWidgets. They were built differently on the Windows platform, using different Windows libraries and you will get conflicts at link time. Ref:
The following libraries contain the C run-time library functions.
Which contains the table (modified for presentation in email: fixed width font):
C run-time library
(without iostream or standard C++ library) Associated DLL Characteristics Option Preprocessor directives ==================================================================================================================================== libcmt.lib None, static link. Multithreaded, static link /MT _MT ------------------------------------------------------------------------------------------------------------------------------------ msvcrt.lib msvcr90.dll Multithreaded, dynamic link /MD _MT, _DLL ------------------------------------------------------------------------------------------------------------------------------------libcmtd.lib None, static link Multithreaded, static link (debug) /MTd _DEBUG, _MT ------------------------------------------------------------------------------------------------------------------------------------ msvcrtd.lib msvcr90d.dll Multithreaded, dynamic link (debug) /MDd _DEBUG, _MT, _DLL ------------------------------------------------------------------------------------------------------------------------------------
As you see, the conflicts come up because on the one hand, either the wxWidgets lib or the project used libcmt, and on the other, it's counterpart (wxWidgets or project) used msvcrt. Hence, the conflict messages containing the two libraries.
Subject: [anthemion-devtools] Re: Problem building demo project under Windows
> Hi, > you can change /MD to /MT (project perperty/c++/code generation) > I think it works > > Ali > > --- In anthemion-devtools@yahoogroups.com, "ronys" <ronys@...> wrote: >> >> Hi, >> >> Using version 4.30 (Unicode) with wxWidgets 2.8.7 and MSVC 8 (VS2005), I get the following error while building the Demo project. Any suggestions welcome. >> >> Thanks, >> >> Rony >> >> link /OUT:VCUnicodeRelease\Elements.exe /LIBPATH:"C:\local\src\wxWidgets-2.8.7/lib/vc_lib" /LIBPATH:"C:\local\MSVS8\vc\lib" /LIBPATH:"C:\local\MSVS8\vc\PlatformSDK\lib" /nologo /SUBSYSTEM:WINDOWS /machine:i386 VCUnicodeRelease\advancedcontrols.obj VCUnicodeRelease\basiccontrols.obj VCUnicodeRelease\complexdialog.obj VCUnicodeRelease\elements.obj VCUnicodeRelease\independentpanel.obj VCUnicodeRelease\myframe.obj VCUnicodeRelease\scrollingdialog.obj VCUnicodeRelease\settingsdialog.obj VCUnicodeRelease\splitterdialog.obj VCUnicodeRelease\topdialog.obj VCUnicodeRelease\wizarddialog.obj VCUnicodeRelease\Elements.res wxmsw28u_richtext.lib wxmsw28u_aui.lib wxmsw28u_core.lib wxbase28u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxmsw28u_adv.lib wxmsw28u_html.lib wxmsw28u_xrc.lib wxbase28u_net.lib wxbase28u_xml.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib >> link /OUT:VCUnicodeRelease\Elements.exe /LIBPATH:"C:\local\src\wxWidgets-2.8.7/lib/vc_lib" /LIBPATH:"C:\local\MSVS8\vc\lib" /LIBPATH:"C:\local\MSVS8\vc\PlatformSDK\lib" /nologo /SUBSYSTEM:WINDOWS /machine:i386 @C:\DOCUME~1\ronys\LOCALS~1\Temp\nm54B.tmp >> LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR80.dll) >> LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library >> VCUnicodeRelease\Elements.exe : fatal error LNK1169: one or more multiply defined symbols found >> *** NMAKE : fatal error U1077: 'C:\local\MSVS8\vc\bin\link.EXE' : return code '0x491' >> *** Stop. >> > > > > > ------------------------------------ > > Yahoo! Groups Links > > <*> To visit your group on the web, go to: > http://groups.yahoo.com/group/anthemion-devtools/ > > <*> Your email settings: > Individual Email | Traditional > > <*> To change settings online go to: > http://groups.yahoo.com/group/anthemion-devtools/join > (Yahoo! ID required) > > <*> To change settings via email: > mailto:anthemion-devtools-digest@yahoogroups.com > mailto:anthemion-devtools-fullfeatured@yahoogroups.com > > <*> To unsubscribe from this group, send an email to: > anthemion-devtools-unsubscribe@yahoogroups.com > > <*> Your use of Yahoo! Groups is subject to: > http://docs.yahoo.com/info/terms/ >
Hi!
If you mean a 'traditional' histogram (bar chart), a wxGrid can be used for
such a purpose. There's a _very_ basic demo of the process. Here's where you
can find it:
http://www.wxcodex.net
In the green menu to the left, click the 'Demo' radio button, then click the
'Go' button at the bottom of that same menu. It's on the second page of
demos, I think. It has all the code for building and a Makefile for Linux
GCC, makefile.gcc for MinGW, and GridHist.vcproj/GridHist.sln for Visual
Studio. It also contains a DialogBlocks project file (that's what was used
to 'create' the GUI and incidentals). You do not have to use DialogBlocks to
use the demo, all the resultant pieces are there.
HTH:
thx,
Dave S.
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
wxWidgets Code Exchange
http://wxcodex.net/
----- Original Message -----
From: "Guy Rutenberg" <guyrutenberg@...>
Newsgroups: comp.soft-sys.wxwindows
To: <wx-users@...>
Sent: Thursday, April 30, 2009 9:26 AM
Subject: Histogram Widget?
>
>
> Hi,
>
> I'm looking for a widget to display histograms of data (not images) as
> means of data visualization.
>
> Does anyone knows about such widget for wxWidgets?
>
> Regards,
>
> Guy
>
> ----
> http://www.openyahtzee.org/ - An open-source Yahtzee game written in
> wxWidgets
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users
There's something new and different stirring at wxCodex.net. The new entry is in the 'Misc' category. It's a video demo of wxWidgets and DialogBlocks working in tandem. It begins with the download of each, then installation. Next, there is a presentation of building an existing DialogBlocks project available on the net. It could equally as well be from a colleague, someone asking for help with a problem, or one you just stumbled upon. Finally, there's an exposition of creating a new project in DialogBlocks from existing code. In this case, it's the 'famous' minimal sample from the wxWidgets distribution, but again, it could have had other origin.
If you're rather weary of 're-'working distributions by hand and/or with 'canned' scripts, etc., you most likely would find this video helpful. It shows how to fill in the compiler configuration property sheet in DialogBlocks for however many compilers/configurations you may have. Once done, it needs little or no revisiting with each release of wxWidgets. It's truly a 'set and forget' paradigm, allowing one to get on with more pressing matters, like meeting application release deadlines!;)
There are several advantages to using DialogBlocks for wxWidgets library builds:
1) Stores all build information. No need for [semi-]manual methods/scripts/etc.
2) DialogBlocks is (usually) more up to date than wiki documents and other guides.
3) Makes having multiple builds under the same wxWidgets distribution tree.
4) Allows easy differentiation of build types beyond just 'Debug' and 'Release'.
And more...
If your primary development platform is Windows and you make use of several versions of Visual Studio to keep in sync with distributed product, DialogBlocks makes this extremely easy as it is 'aware' of the different versions. Plus, once DialogBlocks has the configuration property information, there's no need on Windows to laboriously modify the distributed Visual Studio project files on each new wxWidgets distribution.
For quick building of existing code, say, from wxWidgets samples, DialogBlocks is pretty hard to beat!
Keep in mind, everything addressed here does not require a registered version of DialogBlocks. The 'free forever' evaluation copy of DialogBlocks more than suffices, so, one could consider it the 'Free' version of DialogBlocks! But, once you've used DialogBlocks for a period of time and get to know all of it's design advantages for wxWidgets, you'll probably want a registered copy. And, the good news is, the registration fee is nominal, reasonable, and opens up DialogBlocks' full potential as an IDE/RAD tool.
As stated above, this video is available at wxCodex.net in the Misc category. For a short time, while the host website is under construction, it may also be obtained with the following link:
You will also find an iPhone video of the presentation (sans links and other flash 'hotspots'). It's smaller than the web presentation and may come in handy as a 'cheat sheet'!;)
Like Ori says, if you just want to build the distribution the way it comes out of the chute, it's as simple as converting the dsw to sln in Visual Studio 2008 Express (and all the, 20 now, project files).
What do you do if you need changes? Well, Ori's right again! You can read all the directions in the link he supplied, and extrapolate as necessary (if you know what to extrapolate!;). And, of course, any changes you make must be made (identically and comprehensively) to each and every wxWidgets distributed Visual Studio project file!:-( A _very_ tedious task. I know, I've done it _many_ times.
Oh, and don't forget, when wxWidgets releases another distribution, you have to repeat the ritual!:-)
Somehow, though, I don't think anyone who's asking for a pre-built download wants all that hassle!;) They want a simple solution. One that doesn't require a lot of internal knowledge of Visual Studio and/or wxWidgets build systems. Maybe they are just someone who wants to build their Redhat/Fedora/Ubuntu project on Windows without having to go through the agony of the Windows learning curve...
If that's the case, then DialogBlocks builds of wxWidgets are much simpler. It's a simple matter to set the properties in the DialogBlocks compiler configuration for Visual Studio compilers. Set once, and it's done. No modifications for each project file, no copy and paste from one file to another, no reading the wiki instructions to figure out what you've done wrong!;) And when there's a new Visual Studio, DialogBlocks is usually updated more quickly and accurately than the wiki instructions!;) All you need to do is change the version number in the DialogBlocks compiler configuration property sheet!:-)
And, to build wxWidgets, for any and all platforms, not just Windows (and you don't have to read each and every wiki page for each and every platform!;), DialogBlocks is f-r-e-e, so why put yourself through the added effort and time? That is, unless you are more interested in hack digging (which is okay, I've done my share of it, with pleasure, when that was the aim!;) and less interested in serious professional development!:-)
Both solutions are free, one takes more time and effort... It becomes an individual choice!:-)
On 4/13/2009 8:32:28 AM, Ori Lahav (vbcrlf@...) wrote: > Hey, > Install Visual C++ 2008 Express and Platform SDK, open the project file, > build and > you're done! > If you need any further help, look here: http://wiki.wxwidgets.org/Compiling_WxWidgets_on_Windows#Microsoft_Visual_C.2B.2B_Express_Editions > > Ori. > > On Mon, Apr 13, 2009 at 11:07 AM, Dave Silvia <dsilvia@... [link: mailto:dsilvia@...]> wrote: > Hi! > > On your PC!;) wxMSW builds quite nicely on Windows. I use DialogBlocks and Visual Studio to build, with no complications. Takes about 15 minutes to build ANSI and UniCode through DialogBlocks using the compiler/linker available in Visual Studio 6, 7.0, 7.1, 8, and 9 (I suggest 8 or 9 as these are optimized compilers). It takes up to twice as long with MinGW. Cygwin I haven't > built with for several years, but > it's on a par with MinGW (both GCC). > > All the above tools, DialogBlocks, Visual Studio, MinGW and Cygwin are free for the purpose of building wxWidgets. Visual Studio 8/9 (a.k.a. Visual Studio 2005/2009) are free 'forever' from Microsoft, 6, 7.0, and 7.1 are also free if you search the net, Microsoft no longer supports these. > > HTH: > > thx, > Dave S. > > Development with wxWidgets on MSWindows > http://tech.groups.yahoo.com/group/wxMS_developers/ >
Hi!
Thank you for the input!:-) Most interesting!;)
It's nice to see that I wasn't the only one who didn't automatically forgive
'his highness', Linus Torvalds, for his parochialism, disclaimed or not!:-)
You'll 'catch more flies with honey than with vinegar', providing, of
course, catching flies is one of your hobbies and their not 'pop-flies'!;)
If there's one attitude in the world of software I admire most it's
'TMTOWTDI'; the 'byword' acronym of Perl. And even though Perl aficionados
use the term somewhat 'parochially' themselves, i.e., more than one way in
Perl, it's nonetheless a universal truism.
A particular way to handle a problem may not be the 'best' way, in fact,
more often than not, it is not!:-o More realistically, it's the most
suitable way from the available resources in the extant environment, and,
btw, it has some 'personal' appeal, for completely unrelated reasons, to one
someone involved.
I would love to see a git type of paradigm available on all platforms,
complete with a universal (i.e., not different for each platform and
maintained by unrelated teams) GUI/UI, provision for plugins, and an API. To
me, that would be the ultimate. But that whole world is somewhere in the
future still, and not here today. So, I must make due with the resources at
hand for my environment (and that I personally like!;).
This is definitely a good piece of history in software engineering to follow
as it unfolds!;)
thx,
Dave S.
----- Original Message -----
From: "Soeren.Meyer-Eppler" <Soeren.Meyer-Eppler@...>
To: <anthemion-devtools@yahoogroups.com>
Sent: Sunday, April 05, 2009 12:46 PM
Subject: Re: [anthemion-devtools] On the subject of source control...
> Eric Sink, one of the Vault Version Control system managers/developers,
> blogs about decentralised version control and raises some good points.
> He's biased of course, but his summary is nevertheless worth a read:
>
> http://www.ericsink.com/entries/dvcs_dag_1.html
>
> http://www.ericsink.com/entries/dvcs_dag_2.html
>
> http://www.ericsink.com/entries/merge_history.html
>
> http://www.ericsink.com/entries/why_is_git_fast.html
>
> cheers,
>
> Sören
>
> --
> Sören Meyer-Eppler
> software developer
> Soeren.Meyer-Eppler@...
> http://www.BuschnicK.net
>
>
> ------------------------------------
I thought I might share my experience of the last week, spent looking for a
good, flexible, easy to use, simple to
learn, and *cheap* (read: 'free or less'!;) project management/source control
package. In the years I've been around
software, there have been 3 fairly high rated and widely used free, open source,
source control packages: RCS, CVS,
and SVN. All three quite good 'low level', command line based applications.
Unfortunately, with the possible exception
of CVS and Tortoise, easy to use GUI front ends are few and far between. I hit
about a half dozen 'wrappers' for SVN,
and in my most humble opinion (and it's very true!;), not a one is worth too
much. TortoiseSVN is the most likely
front runner, but even it is not as good as it's predecessor, TortoiseCVS.
Additionally, it suffers from the same
drawback of TortoiseCVS: no true GUI interface, simply a set of system context
menus. A couple of others showed some
promise, but they haven't been actively worked on of late and sadly lack a good
deal of basic functionality.
Speaking of which, that seems to be the biggest 'lack' of all front ends for
SVN, basic functionality for administering
the database (repository, depot, stream, what-have-you). I would think this
would have been one of the first things
out of the chute, but apparently my thinking is wrong!;) For some unknown
reason, none of the front end applications
want to tackle management, just day to day checkin/checkout. But here's hoping
all of that will change in the near
future with CollabNet coming out with a true front end application, at least for
Windows, CollabNet Desktop (and, no,
I'm not talking about the product that previously held that name. That is/was
more or less a plugin for Visual Studio).
I tried using CollabNet Desktop (a.k.a., 'Microsoft Windows Edition'), but it's
only a beta, and still quite in its
infancy.
Biting the bullet, I decided to look at the possibility of shareware/commercial
project management/source control
resources. Here I was a little more successful, although not to a great degree
(say, maybe 4-15% greater success?).
I have been a long time user of Araxis Merge, to my thinking, one of the better
'diff' programs around today. It is
commercial, but not bankrupting. In delving a bit deeper into Merge, I
discovered a fact I was hitherto unaware of;
it's designed to seamlessly work with other 3rd party source control packages,
notably SVN and Perforce. I took a
look at the SVN portions of Merge, but for whatever reason I couldn't easily get
them to work. So, I started looking
at Perforce. In that same time frame, I found both Perforce and PureCM in
wikipedia and thought it might be a good
idea to look at PureCM while I was at it.
Both Perforce and PureCM are UK based companies. I believe Perforce has been
around the longest (not sure though).
Perforce has both 32 and 64 bit versions, PureCM only 32 bit. Perforce's UI has
more functionality, and of all the
GUI's I looked at, it was the only one that actually had clear, concise
documentation on administration of your
database (which they call a 'depot'), and the functionality was actually in the
GUI itself!8-o It wasn't a set of
(usually erratic and not always correct) instructions on how to access the p4
(counterpart of svn/svnadmin)
administration commands from the command line!8-O [I often wonder about it when
people take the time to check out and
document what commands to give at the commandline. Wouldn't it take only
marginally longer to forego that and just
write the UI for same?!%=o] Both Perforce and PureCM have a non-terminating
(i.e., free forever) evaluation which
allows a maximum of 2 users, one for admin and one for user. Perforce puts it
right up front in many places whilst
PureCM keeps it tucked away in little corners. If you're not looking for it (and
I was since the wikipedia article
stated it was a free two-seater!;), you're very likely to miss it. I suppose
there are pros and cons to both
strategies, and most likely based on their price per seat. One needs to have you
know it's there so you'll take a look
at their product and not be scared off by the $$$'s, the other's price per seat
is lower and they probably depend more
on cash flow, so they chance your not being put off by their pricing.
Perforce Licensing
The Perforce End User License Agreement (PDF) is our standard commercial
licensing agreement. All Perforce software
you download is fully functional for two users and five client workspaces when
used without a license. A Perforce
license enables the Perforce Server to support more users and an unlimited
number of workspaces and also entitles you
to Perforce Technical Support.
up to 20 users, $14,800
PureCM
Also free for 2 users.
minimum paid commercial license, $1500 for 5 users
There is a 'starter pack' for $1000, but from what I read in the FAQ, it's
really not as good a deal as it sounds,
especially if you may/will expand.
Perforce seems to be the more robust of the 2 (and the pricier if 2 seats won't
do for you!;) Both claim defect
tracking capability ('bugs'), but it seems peripheral at best.
They are both proprietary, but also 'one stop shop', you won't have to chase
about the network getting support
software (as is the case with almost all free open source products).
Additionally, being commercial, they have a
certain vested interest in stability, customer satisfaction, and performance. As
such, their support is more
responsive, their documentation is far and away of higher caliber than open
source docs tend to be. All the bases are
covered, and without having to wade through web links to get there from here.
Everything that is there is pretty much
on the money and accurate, no guess work. Also, the UI for both is much more
professional, a bit more intuitive
(although they, too, suffer from the same lack of GUI design finesse as open
source products, just not to such a
high degree!;)
This is my first venture into the world of source control in many years (aside
from some casual cvs brushes in the
recent past for obtaining online source). In the 80's and 90's I was quite
fluent in RCS/SCCS, my occupation demanded
it (aerospace and telecommunication GUI development, mostly on Sun Microsystems
boxes). The state of the art has made
some strides, inner workings wise. It's just a shame that no one (especially in
the open source community) seems to
want the 'thankless' jobs of testing, integration, and documentation. For the
most part, I was seriously disappointed
in most all offerings, free and commercial. But no one knows what tomorrow may
bring!;)
For right now, I'm leaning toward free Perforce, coupled into the Araxis Merge I
already own, and possibly using
Araxis' Ketura as the tracking portion. They all seem to fit together nicely and
the total cost is nominal. Araxis has
a package deal for Merge and Ketura, and since it is a fairly tight couple with
Perforce, I think it might just fill
the bill for me. If you are a single developer, like myself, with only a handful
of projects going at a time, you may
find Perforce or PureCM a viable alternative to SVN. Especially since all 3 are
free under these circumstances!;)
fyi & jmtcw:
thx,
Dave S.
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
wxWidgets Code Exchange
http://wxcodex.net/
If I understand the problem correctly (and that could be doubtful!;), the repository is on a windows system and the project file for DB could be changed on either a windows system or a linux box (or even Mac: \r?). It's also my understanding that the actual interaction with subversion is done on windows (TortoiseSVN?). I don't believe using the svn propset from the command line for a single .pjd will be of much use. It would be simpler, I think, to just open specific .pjd's in 'smart' editors that afford global switching of eol for a single file (or even the old 'dos2unix/unix2dos' type utility!;). Of course this applies iff: one does it on a project file by project file basis.
What I've finally gotten to work, with a certain amount of reliability (that is, I've tried it a half dozen times/ways and it didn't fail. That's not rigorous, just indicative!;) involves 2 modifications in TortoiseSVN (and probably similar in other SVN clients).
First, and foremost, svn diff is pretty crude. Which is to say, as long as you're looking at fairly plain, code type (like Pascal, C/C++, Basic, etc.) text files, it does okay. You get into anything more sophisticated (i.e., .vcproj, .pjd, misc. .xml, etc.) and it gets 'confused'. There are several free diff/merge tools out there that will probably work. The one I found and like is Source Gear's DiffMerge. One main reason I like it is that you can either let it make a SWAG at file types _or_ you can have it ask you what the type is in cases where it's not sure. For example, for a .pjd, it may well SWAG that it's an xml file (then again, maybe not). If you're not comfortable with that, or you run into problems with wrong SWAG's, set it to ask and you get a list of file types it 'knows' and you can pick (and, yes, xml is on the list!;).
Second, using propset is still useful, but in a more generic way, via the svn config file. At the very end of that file is a section on 'auto-props'. With the exception of a single line:
[auto-props]
the section is commented out. Uncommenting _and_ adding .pjd as one of the entries takes care of putting eol back to rights with SVN on Windows. That seems to be the only place that it might be a problem, and it would appear not in all places in SVN. But since it's easy enough to make all files in an SVN repository on Windows have Windows eol, it couldn't hurt!;) DB has no problems with line endings either way, it just always writes them out in 'native' no matter how they came in. If you open a .pjd that was last modified on Windows in Unix/Linux, it comes in with '\r\n', and leaves the same if no changes are made. But if changes are made it goes out with '\n'. And, of course, vice versa!;)
In synopsis:
1) In the Explorer context menu, select TortoiseSVN > Settings > External Programs. For each option for an external program, select the 'External' radio button, browse to DiffMerge and select DiffMerge.exe.
2) In the Explorer context menu, select TortoiseSVN > Settings > General > Subversion configuration file:, and click the 'Edit' button.
You'll find, at the bottom of the file, the above mentioned section on 'auto-props'. Uncomment the lines and add the .pjd line to match the following:
enable-auto-props = yes ### Set interactive-conflicts to 'no' to disable interactive ### conflict resolution prompting. It defaults to 'yes'. # interactive-conflicts = no
### Section for configuring automatic properties. [auto-props] ### The format of the entries is: ### file-name-pattern = propname[=value][;propname[=value]...] ### The file-name-pattern can contain wildcards (such as '*' and ### '?'). All entries which match (case-insensitively) will be ### applied to the file. Note that auto-props functionality ### must be enabled, which is typically done by setting the ### 'enable-auto-props' option. *.c = svn:eol-style=native *.cpp = svn:eol-style=native *.h = svn:eol-style=native *.dsp = svn:eol-style=CRLF *.dsw = svn:eol-style=CRLF *.sh = svn:eol-style=native;svn:executable *.txt = svn:eol-style=native *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg Makefile = svn:eol-style=native *.pjd=svn:eol-style=native
Now, it says just above this section that it's for "'svn add' and 'svn import'", but I've found, empirically, it does seem to affect other areas.
----- Original Message ----- From: "Julian Smart" <julian@...> To: <anthemion-devtools@yahoogroups.com> Sent: Friday, April 03, 2009 11:52 AM Subject: Re: [anthemion-devtools] Another suggestion
> Fulvio Senore wrote: >> I think that I have finally figured out what is the problem. >> >> It looks like the Windows version of DialogBlocks creates the project >> file with cr-lf line endings, while the *nix versions create the project >> with only lf line endings. >> This is probably the reason why subversion cannot understand that only a >> few lines have changed. Instead it thinks that the whole file is >> completely different. >> >> I will have to see if it is possible solve this problem at the >> subversion level. >> > If you do this: > > svn propset svn:eol-style native myfile.pjd > > then it should use the line endings for the current operating system. > > Hope that solves it... > > Regards, > > Julian > > > ------------------------------------ > > Yahoo! Groups Links > > <*> To visit your group on the web, go to: > http://groups.yahoo.com/group/anthemion-devtools/ > > <*> Your email settings: > Individual Email | Traditional > > <*> To change settings online go to: > http://groups.yahoo.com/group/anthemion-devtools/join > (Yahoo! ID required) > > <*> To change settings via email: > mailto:anthemion-devtools-digest@yahoogroups.com > mailto:anthemion-devtools-fullfeatured@yahoogroups.com > > <*> To unsubscribe from this group, send an email to: > anthemion-devtools-unsubscribe@yahoogroups.com > > <*> Your use of Yahoo! Groups is subject to: > http://docs.yahoo.com/info/terms/ >
...btw, if you have separate static and shared wxWidgets libraries, this
model works quite well for segregating these, too!;)
:-Dave S.
----- Original Message -----
From: "Dave Silvia" <dsilvia@...>
To: <wx-users@...>
Cc: "anthemion-devtools" <anthemion-devtools@yahoogroups.com>;
"wxMS_developers" <wxMS_developers@yahoogroups.com>
Sent: Wednesday, March 25, 2009 10:17 PM
Subject: Re: Separate output directories for different Visual Studio
versions
> I've been dealing with this scenario for a couple of years now. It's quite
> simple to deal with. I am a DialogBlocks user and have been almost since
> my first encounter with wxWidgets. At one time I approached Julian Smart
> with my need to have various versions of wxWidgets for my separate builds
> of not only Microsoft platforms, but also my various flavors of GCC. Some
> way to have a central build setup that could share one set of sources
> branched out into many versions for wxWidgets libraries. He saw the need,
> but didn't have any immediate solutions via DialogBlocks or wxWidgets
> proper.
>
> After looking over the build process of wxWidgets, I noticed a variable
> there that was virtually everywhere, but never really used: CFG. This
> variable is appended to the library _and_ build directories universally. I
> brought this to Julian's attention, and after some minor preliminary
> discussion, he included the variable in the property sheet for compiler
> configurations in DialogBlocks. He also installed several DialogBlocks
> variables for the separate MSVCDIR variables (as DialogBlocks designates
> them), however, these are not yet fully implemented in DialogBlocks for
> 'automagic' switching for the individual compiler configurations, but I'm
> sure this will be done at some future date.
>
> Now, this does not mean that I'm advocating you use DialogBlocks (although
> I do believe it is a wise decision for any serious developer to make!;),
> it merely means that, 'yes', there is a way to keep your separate builds.
> When building wxWidgets (using the distributed makefile(s) as DialogBlocks
> does), simply add a command line definition for CFG, e.g.,
> '/DCFG=.VC90.Win32', the resultant directory names in build and lib will
> be 'vc_msw[d].VC90.Win32' and 'vc_lib.VC90.Win32', respectively. All you
> must needs then do is point your individual builds at the appropriate lib
> directory!;)
>
> BTW, another find advantage to DialogBlocks is that it properly builds
> wxWidgets for any platform that the wxWidgets toolkits runs on. It 'knows'
> all the correct parameters to pass to the distribution makefiles to effect
> a correct build for whatever flavor of compiler you might have!:-) Even
> though DialogBlocks is a commercial IDE, its 'forever' evaluation version
> (free!!!) will reliably build wxWidgets for any platform, quite worth its
> price (free!!!?).
>
> HTH:
>
> thx,
> Dave S.
>
> Development with wxWidgets on MSWindows
> http://tech.groups.yahoo.com/group/wxMS_developers/
>
> wxWidgets Code Exchange
> http://wxcodex.net/
>
> ----- Original Message -----
> From: "Kenneth Porter" <shiva.blacklist@...>
> Newsgroups: comp.soft-sys.wxwindows
> To: <wx-users@...>
> Sent: Wednesday, March 25, 2009 8:28 PM
> Subject: Separate output directories for different Visual Studio versions
>
>
>>
>>
>> I need to maintain an app with both VS2005 and VS2008 builds, and will
>> probably soon need to get a VS2010 build going. (Fortunately, I've been
>> able to retire my VC6 build.) Currently I clean my wxWidgets tree and
>> rebuild to switch versions, but it would be nice to be able to leave all
>> versions built in separate output directories. Are there any plans to
>> have
>> that in the standard distro?
>>
>> I'm linking to wx statically (so my demo application and my non-GUI
>> library
>> each have their own copies of wx that don't know about each other), and
>> to
>> the compiler runtime dynamically (application and all 3rd party libraries
>> share one copy of the compiler runtime).
>> _______________________________________________
>> wx-users mailing list
>> wx-users@...
>> http://lists.wxwidgets.org/mailman/listinfo/wx-users
>
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users
I've been dealing with this scenario for a couple of years now. It's quite
simple to deal with. I am a DialogBlocks user and have been almost since my
first encounter with wxWidgets. At one time I approached Julian Smart with
my need to have various versions of wxWidgets for my separate builds of not
only Microsoft platforms, but also my various flavors of GCC. Some way to
have a central build setup that could share one set of sources branched out
into many versions for wxWidgets libraries. He saw the need, but didn't have
any immediate solutions via DialogBlocks or wxWidgets proper.
After looking over the build process of wxWidgets, I noticed a variable
there that was virtually everywhere, but never really used: CFG. This
variable is appended to the library _and_ build directories universally. I
brought this to Julian's attention, and after some minor preliminary
discussion, he included the variable in the property sheet for compiler
configurations in DialogBlocks. He also installed several DialogBlocks
variables for the separate MSVCDIR variables (as DialogBlocks designates
them), however, these are not yet fully implemented in DialogBlocks for
'automagic' switching for the individual compiler configurations, but I'm
sure this will be done at some future date.
Now, this does not mean that I'm advocating you use DialogBlocks (although I
do believe it is a wise decision for any serious developer to make!;), it
merely means that, 'yes', there is a way to keep your separate builds. When
building wxWidgets (using the distributed makefile(s) as DialogBlocks does),
simply add a command line definition for CFG, e.g., '/DCFG=.VC90.Win32', the
resultant directory names in build and lib will be 'vc_msw[d].VC90.Win32'
and 'vc_lib.VC90.Win32', respectively. All you must needs then do is point
your individual builds at the appropriate lib directory!;)
BTW, another find advantage to DialogBlocks is that it properly builds
wxWidgets for any platform that the wxWidgets toolkits runs on. It 'knows'
all the correct parameters to pass to the distribution makefiles to effect a
correct build for whatever flavor of compiler you might have!:-) Even though
DialogBlocks is a commercial IDE, its 'forever' evaluation version (free!!!)
will reliably build wxWidgets for any platform, quite worth its price
(free!!!?).
HTH:
thx,
Dave S.
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
wxWidgets Code Exchange
http://wxcodex.net/
----- Original Message -----
From: "Kenneth Porter" <shiva.blacklist@...>
Newsgroups: comp.soft-sys.wxwindows
To: <wx-users@...>
Sent: Wednesday, March 25, 2009 8:28 PM
Subject: Separate output directories for different Visual Studio versions
>
>
> I need to maintain an app with both VS2005 and VS2008 builds, and will
> probably soon need to get a VS2010 build going. (Fortunately, I've been
> able to retire my VC6 build.) Currently I clean my wxWidgets tree and
> rebuild to switch versions, but it would be nice to be able to leave all
> versions built in separate output directories. Are there any plans to have
> that in the standard distro?
>
> I'm linking to wx statically (so my demo application and my non-GUI
> library
> each have their own copies of wx that don't know about each other), and to
> the compiler runtime dynamically (application and all 3rd party libraries
> share one copy of the compiler runtime).
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users
Hi!
This is an application which was originally intended to be a tutorial.
When it grew so large that 'tutorial' was an inappropriate term and
the task of authoring such a tutorial grew to a scope beyond simple
descriptions, it graduated to a demo. However, it soon outgrew even
that classification. It is, for all practical intents and purposes, a
complete application for manipulation of images in an MDI paradigm
written solely in wxWidgets. One says 'complete', but then, no piece
of software ever attains that ultimate goal. It is complete in the
sense that it addresses its current design parameters to a level of
usefulness sufficient for practical application.
Its name implies that it is a tool for browsing graphic images, much
like the common Windows tool which has had various names through
several incarnations, being more or less a viewer and little more.
However, the name is misleading. It has many more functions than
simple viewing, as a perusal of the built in help will reveal. One
can adjust size, rotation, various coloring parameters and schemes,
mirror, convert to other formats, and more. On the other hand, it is
by no means a tool of the complexity or caliber of PhotoShop, Paint
Shop Pro, The Gimp, and other master graphics tools. Such
functionality is beyond the intrinsic scope of wxWidgets alone, and
certainly beyond expertise of MDIBitmapBrowser's author to write from
'scratch'. But it is a most useful tool, in and of itself. Besides it
is a practical 'guide book' for manipulating images in wxWidgets and
illustrates the capabilities of MDI for more than just simple
multiple document display. In view of all this, MDIBitmapBrowser
should be of some interest to a variety of developers and users in
the wxWidgets and associated communities.
The full source, along with the DialogBlocks project used to launch
the graphics and the various platform 'build' files (.sln/.vcproj and
makefiles), sample images to use for 'safe' testing of your build,
and a 'Gotchas' directory listing the ins and outs discovered in
development, are available in a zip archive at:
wxWidgets Code Exchange
In the 'Applications' section.
NOTE: MDI is a 'unique' Microsoft-ism. True MDI implementation only
exists on Windows platforms. However, the wxWidgets toolkit 'adapts'
the MDI paradigm to wxNotebook. The look and feel, obviously, are not
the same, but the basic functionality and methods for image
manipulation are the same. The ability to drag and drop from one MDI
frame to another, for example, is not available in non-Windows
Notebook mode, but drag and drop to other applications is still
possible. Some features were 'modified' for non-Microsoft platforms
and some simply left out.
Enjoy!Smile
thx,
Dave S.
wxMS_developers - Development with wxWidgets on Windows
http://tech.groups.yahoo.com/group/wxMS_developers/
The wxWidgets Code Exchange
http://www.wxCodex.net
Thanks for your reply, Ralph.
I added a zip file in the Files section called MVCTest.zip.
It contains a demo app to illustrate the MVC concept with wxWidgets.
The form contains a text box with a value, and 2 buttons: increment, decrement.
The project does not contain the events, though, because I am not sure how to do
it.
Who can help and make the app work? I guess there is more than one way to do it.
It could be interesting to discuss these.
You can post your solution to the Files section.
Thanks!
Kind regards,
Al
--- In wxMS_developers@yahoogroups.com, Ralph Pass <rppass@...> wrote:
>
> I derive my controller from Frame and put the events there. My view
> creates a view given a wxDC. My events pass relevant information to the
> model. The events also decide if it was such that the views need to be
> updated. It also checks the model to see if the model thinks the views
> need to be updated.
> Conceptually, I have the controllers separate from the models separate
> from the views.
>
> Ralph
>
> al_lo_ja wrote:
> >
> > Hello,
> >
> > I want a clear separation between the UI and the business logic.
> >
> > How do you achieve this? How do you organize your source files for
> > your applications? Which folders do you generally create?
> >
> > I have tried this for my first wxWidget application:
> > \main.cpp
> > \MyApp.h
> > \MyApp.cpp
> > \Controllers\MyAppController.h
> > \Controllers\MyAppController.cpp
> > \Models\MyAppModel.h
> > \Models\MyAppModel.cpp
> > \Views\MyMainWindow.h
> > \Views\MyMainWindow.cpp
> >
> > - main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
> > - the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit
> > method and creates a MyAppController object
> > - the MyAppController object creates a MyAppModel object and a
> > MyMainWindow object
> > - MyAppModel is the core of the application and knows nothing about
> > the GUI
> > - MyMainWindow inherits from wxFrame and is the main window of the
> > application
> >
> > As you can see I've been trying to implement the MVC
> > (model/view/controller) pattern. But I don't know where's the best
> > place to put the event handlers.
> >
> > How do you organize your source files? Where do you catch events?
> >
> > Kind regards,
> > Al
> >
> >
>
I derive my controller from Frame and put the events there. My view
creates a view given a wxDC. My events pass relevant information to the
model. The events also decide if it was such that the views need to be
updated. It also checks the model to see if the model thinks the views
need to be updated.
Conceptually, I have the controllers separate from the models separate
from the views.
Ralph
al_lo_ja wrote:
>
> Hello,
>
> I want a clear separation between the UI and the business logic.
>
> How do you achieve this? How do you organize your source files for
> your applications? Which folders do you generally create?
>
> I have tried this for my first wxWidget application:
> \main.cpp
> \MyApp.h
> \MyApp.cpp
> \Controllers\MyAppController.h
> \Controllers\MyAppController.cpp
> \Models\MyAppModel.h
> \Models\MyAppModel.cpp
> \Views\MyMainWindow.h
> \Views\MyMainWindow.cpp
>
> - main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
> - the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit
> method and creates a MyAppController object
> - the MyAppController object creates a MyAppModel object and a
> MyMainWindow object
> - MyAppModel is the core of the application and knows nothing about
> the GUI
> - MyMainWindow inherits from wxFrame and is the main window of the
> application
>
> As you can see I've been trying to implement the MVC
> (model/view/controller) pattern. But I don't know where's the best
> place to put the event handlers.
>
> How do you organize your source files? Where do you catch events?
>
> Kind regards,
> Al
>
>
Hello,
I want a clear separation between the UI and the business logic.
How do you achieve this? How do you organize your source files for your
applications? Which folders do you generally create?
I have tried this for my first wxWidget application:
\main.cpp
\MyApp.h
\MyApp.cpp
\Controllers\MyAppController.h
\Controllers\MyAppController.cpp
\Models\MyAppModel.h
\Models\MyAppModel.cpp
\Views\MyMainWindow.h
\Views\MyMainWindow.cpp
- main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
- the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit method and
creates a MyAppController object
- the MyAppController object creates a MyAppModel object and a MyMainWindow
object
- MyAppModel is the core of the application and knows nothing about the GUI
- MyMainWindow inherits from wxFrame and is the main window of the application
As you can see I've been trying to implement the MVC (model/view/controller)
pattern. But I don't know where's the best place to put the event handlers.
How do you organize your source files? Where do you catch events?
Kind regards,
Al
Hi,
I've just uploaded a zip archive of modified CHM files for DialogBlocks
and wxWidgets. Modifications are:
1) Added more navigation
2) Added more search parameters
3) Added Favorites tab
I find "Favorites" handy for marking topics that apply to my current
project and/or topics I visit frequently. Search parameters provide for
narrowing down searches more effectively. Navigation provides for
back/forward and previous/next in a different way than what is included
in the pages in the CHM.
Enjoy,
Dave S.
Subject: RE: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient
Hi,
I posted some code in a separate message a few minutes ago, I just wanted to point out that the code runs error free when compiled in Release mode, and works as it should when saving the memory block to a file (and viewing it in a text editor). So the problems only appear in Debug mode on VC8/Vista 64. I can live with that I guess hehe.
--
Kind Regards,
Andy 'Fish-Guy' Kellett <andy@...>
http://www.f1-software.com
From: wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On Behalf Of Dave Silvia Sent: Saturday, December 20, 2008 10:45 PM To: wxMS_developers@yahoogroups.com Subject: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient
Hi, Andy!
It's a little difficult to discuss the problem when the only information available is that you're using wxSocketClient. The problem may be further up the line. With only this one piece of information, one must assume that everything before the call to wxSocketClient methods/functions to retrieve the messages is performing correctly and that everything that was needed to be done before the wxSocketClient transactions was done!;)
It's much, much easier to talk about problems and issues if you attach your project (or a facsimile) to a posting you make from your email client (Yahoo! Groups does not do attachments!:-< ).
If you're using DialogBlocks, it's even easier to "share" as all one must needs do is attach the .pjd file (DialogBlocks project file). This will allow the receiver to build and run on their own system quite easily.
Any attachments should be in archive format (zip or other) to reduce size (.pjd's are quite large, but very compressible!;) and to make it more likely that the receiver's email client/antispam won't prevent its delivery.
The only thing I can do, from the information available here, is make a "swag" at a possibility. It appears that an "undocumented procedure" in wxSocketBase has to be performed first. I put it in quotes because it actually is documented, but only "before" the fact. That is, most wxWidgets "Base" classes are not intended to be used, only derived from. Hence, a developer (like me!;) doesn't often look at base classes in wxWidgets classes. The assumption being that the derived wxWidgets class is/has taken care of any parent class necessities.
In looking at the wxSocketBase documentation I see a blurb:
>>>>>
wxSocketBase is the base class for all socket-related objects, and it defines all basic IO functionality.
Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented) from the main thread before creating any sockets - in wxApp::OnInit for example.
<<<<<
Now, it does say this is for wxWidgets up to 2.5.x, but it's the only "swag" I've got right now!:-( If it doesn't help, you might like to consider archiving an example and attaching it to an email client generated post.
On Sat, Dec 20, 2008 at 9:20 PM, Andy Kellett <andy@...> wrote:
> Hi,
>
> I'm trying to write a really simple POP3 client using wxSocketClient which
> should connect to a POP3 account, and download all messages. It is to be
> part of my order handling processing system and I am having some odd issues
> that I can't seem to solve.
Take a look at http://mailfilter.sf.net 's code. A lot of problems
are actually on the server end, especially if you are trying to deal with
unknown servers. You can see some of the server work around in the
code comments.
> So the problems only appear in Debug mode on VC8/Vista 64. I
> can live with that I guess hehe.
64-bit problems more often than not, are a case where size_t should
have been used rather than int or unsigned int/long etc.
Dave, thanks for your feedback. I am aware of the Initialize()
command you pointed out (read over those docs lots of times!) and do use it to
make sure the thread isn’t a problem. I have pasted the function here for
reading purposes, the project has too many pieces to put together and attach (libs
etc.) so this should be somewhat easier. The DoPOP3() is called right now after
a button is clicked on the window, eventually when its working it will be automated
etc.
Here is a code example:
void SaleMonitorWindow::DoPOP3MailCheck(void)
{
// This is where the magic is done to check the email
account
char WorkString[4096]; char
TempWord[4096];
char BufferString[4096];
uLong ReadCount = 0;
wxSocketBase::Initialize();
// Needed because we are in a multi-thread
environment
7.663: DoPOP3[15]: Size Of Message (Octets) : 0 Bytes
7.664: DoPOP3[15]: Allocated Block Of Memory: 4096 Sizes
7.665: DoPOP3: All Mail Processed, Issuing QUIT
As you can see, something causes it to freak out on occasions
and im not sure what. It works for the most part, so I could probably use it in
the interim on the mails which do turn out good. Thanks again.
--
Kind Regards,
Andy 'Fish-Guy' Kellett <andy@...>
http://www.f1-software.com
From:
wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On
Behalf Of Dave Silvia Sent: Saturday, December 20, 2008 10:45 PM To: wxMS_developers@yahoogroups.com Subject: {Disarmed} Re: [wxMS_developers] Issues with
POP3/wxSocketClient
Hi, Andy!
It's a little difficult to discuss the problem when the only
information available is that you're using wxSocketClient. The problem may be
further up the line. With only this one piece of information, one must assume
that everything before the call to wxSocketClient methods/functions to retrieve
the messages is performing correctly and that everything that was needed to be
done before the wxSocketClient transactions was done!;)
It's much, much easier to talk about problems and issues if
you attach your project (or a facsimile) to a posting you make from your email
client (Yahoo! Groups does not do attachments!:-< ).
If you're using DialogBlocks, it's even easier to
"share" as all one must needs do is attach the .pjd file
(DialogBlocks project file). This will allow the receiver to build and run on
their own system quite easily.
Any attachments should be in archive format (zip or other)
to reduce size (.pjd's are quite large, but very compressible!;) and to make it
more likely that the receiver's email client/antispam won't prevent its
delivery.
The only thing I can do, from the information available
here, is make a "swag" at a possibility. It appears that an
"undocumented procedure" in wxSocketBase has to be performed first. I
put it in quotes because it actually is documented, but only "before"
the fact. That is, most wxWidgets "Base" classes are not intended to
be used, only derived from. Hence, a developer (like me!;) doesn't often look
at base classes in wxWidgets classes. The assumption being that the derived
wxWidgets class is/has taken care of any parent class necessities.
In looking at the wxSocketBase documentation I see a blurb:
>>>>>
wxSocketBase is the base class for all socket-related
objects, and it defines all basic IO functionality.
Note: (Workaround for implementation limitation for
wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as
wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented)
from the main thread before creating any sockets - in wxApp::OnInit for
example.
<<<<<
Now, it does say this is for wxWidgets up to 2.5.x, but it's
the only "swag" I've got right now!:-( If it doesn't help, you might
like to consider archiving an example and attaching it to an email client
generated post.
I posted some code in a separate message a few minutes ago, I
just wanted to point out that the code runs error free when compiled in Release
mode, and works as it should when saving the memory block to a file (and
viewing it in a text editor). So the problems only appear in Debug mode on
VC8/Vista 64. I can live with that I guess hehe.
--
Kind Regards,
Andy 'Fish-Guy' Kellett <andy@...>
http://www.f1-software.com
From:
wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On
Behalf Of Dave Silvia Sent: Saturday, December 20, 2008 10:45 PM To: wxMS_developers@yahoogroups.com Subject: {Disarmed} Re: [wxMS_developers] Issues with
POP3/wxSocketClient
Hi, Andy!
It's a little difficult to discuss the problem when the only
information available is that you're using wxSocketClient. The problem may be
further up the line. With only this one piece of information, one must assume
that everything before the call to wxSocketClient methods/functions to retrieve
the messages is performing correctly and that everything that was needed to be
done before the wxSocketClient transactions was done!;)
It's much, much easier to talk about problems and issues if
you attach your project (or a facsimile) to a posting you make from your email
client (Yahoo! Groups does not do attachments!:-< ).
If you're using DialogBlocks, it's even easier to
"share" as all one must needs do is attach the .pjd file
(DialogBlocks project file). This will allow the receiver to build and run on
their own system quite easily.
Any attachments should be in archive format (zip or other)
to reduce size (.pjd's are quite large, but very compressible!;) and to make it
more likely that the receiver's email client/antispam won't prevent its
delivery.
The only thing I can do, from the information available
here, is make a "swag" at a possibility. It appears that an
"undocumented procedure" in wxSocketBase has to be performed first. I
put it in quotes because it actually is documented, but only "before"
the fact. That is, most wxWidgets "Base" classes are not intended to
be used, only derived from. Hence, a developer (like me!;) doesn't often look
at base classes in wxWidgets classes. The assumption being that the derived
wxWidgets class is/has taken care of any parent class necessities.
In looking at the wxSocketBase documentation I see a blurb:
>>>>>
wxSocketBase is the base class for all socket-related
objects, and it defines all basic IO functionality.
Note: (Workaround for implementation limitation for
wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as
wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented)
from the main thread before creating any sockets - in wxApp::OnInit for
example.
<<<<<
Now, it does say this is for wxWidgets up to 2.5.x, but it's
the only "swag" I've got right now!:-( If it doesn't help, you might
like to consider archiving an example and attaching it to an email client
generated post.