Paperback: 744 pages
Publisher: Prentice Hall; F Second Printing Used edition (August 5, 2005)
Language: English
ISBN-10: 0131473816
ISBN-13: 978-0131473812
Product Dimensions: 6.8 x 1.5 x 9.1 inches
Shipping Weight: 2.4 pounds (View shipping rates and policies)
Average Customer Review: 3.7 out of 5 stars See all reviews (37 customer reviews)
Best Sellers Rank: #938,687 in Books (See Top 100 in Books) #17 in Books > Computers & Technology > Programming > Cross-platform Development #379 in Books > Computers & Technology > Computer Science > Human-Computer Interaction #666 in Books > Computers & Technology > Operating Systems > Linux
"Cross-Platform GUI Programming with wxWidgets" from Bruce Perens' "Open Source Series" is the first and only book covering cross platform development using wxWidgets. wxWidgets is "a first-class, open source response to the need for portability in an increasingly heterogeneous computing world". It is a very mature library with over 13 years of active development behind it. Although primarily a C++ library, wxWidgets has language bindings for Python, Perl, Basic, Lua, JavaScript, Java, Ruby, Eiffel, C#, Haskell, and Euphoria and many of the techniques taught in this book could easily be adapted to any of these languages (provided you can read and understand C++). The authors--Julian Smart, Kevin Hock, and Stefan Csomor--are three of the primary developers of wxWidgets with Julian being the founder of wxWidgets.Before I get into the actual review, please note that this book is for people who have a decent grasp of C++. You won't need to know advanced features such as templates and exceptions but having a decent understanding of memory management, pointer logic, OOP, and inheritance is highly recommended. You will not learn C++ while reading this book as it forgoes detailing language features that are used. Having an understanding of event based programming would be useful but is not required. I'd also like to note that I (the reviewer) have over two years of full-time, professional experience with wxWidgets and am an occasional patch contributor.The book starts off at a fairly fast pace. I was worried they were glossing over too many details but many things I felt were lacking were covered in sufficient detail in later sections. It does not baby your intellect like far too many programming books do in the first few sections.
The Good:This is (currently) the only book on wxWidgets (formerly wxWindows). The book is packed with information. All of it relevant, all of it covering as much as they could cram into one book and not make it into a tome so heavy that you couldn't lift it. As a reference book it excels in that it does present everything you need in order to get up and running.The Bad:As a reference book - it is not as well laid out as many of the other reference books I've read and/or bought. Many of the standard methods to present data are not used. That is to say: In most reference books a section is well delineated whereas in this book the terms and explanations for those terms are not separated in such a way that it is obvious to the reader that they have stopped talking about one subject and begun another. For example:Page 121: Use Check to toggle a check or radio item on or off, passing the menu item identifier and a boolean value. Use IsChecked to get the checked status. Delete deletes a menu item specified by identifier or by wxMenuItem pointer....In other books the above would appear as:Check Used to toggle a check or radio item on or off, passing the menu item identifier and a boolean value. Example: ......IsChecked Used to get the checked status. Example: .......Delete This deletes a menu item specified by an identifier or by the wxMenuItem pointer....And so on...This isn't a big complaint but it does make the book hard to read sometimes. Especially when you have thirty or forty specialized words. You wind up hunting for where the words are that you need in order to do anything.
This book was co-authored by the creator of wxwidgets (Julian Smart). This raises the spector of a great deal of promise and peril. Promise because as the creator, he knows his creation better than most and so can lead you through the more arcane sidestreets, peril because as the creator he is too close to his creation and can assume his readers know his creation too well and thereby make many assumption, so explanation becomes about 'reminding' not exposition. He navigates these waters reaosnably well.The CD contains a great deal of useful software (but don't expect too much accessible guidance on how to use it with wxwidgets-> particularly the open source software-> minGW, open watcom, etc...which is very ironic! since we are using open source because it is open source and wxwidgets is open source...but there seems to be little attempt at really working say minGW studio and wxwidgets together, event though minGW studio was built with wxwdigets-> minGW studio even contains a option to make a wxwidgets projects ->but that doesn't work. Left hand and the right hand aren't working toegther too well so it seems...but I digress)However be aware that you may need to be familiar with the ins and out of you respective compiler to use wxwidgets. Compare this with C++ GUI Programming with Qt 3(isbn: 0131240722) and you'll notice an obvious difference. The QT book provides first up a walk through of how to compile not only their examples but your own. You are told how to set paths, how to build, etc. This book shows you how to compile their samples, but leaves you hanging with you own (perhaps we are supposed to modiy theirs??). They do talk about visual studios (old and .
Cross-Platform GUI Programming with wxWidgets Cross Stitch: for Beginners - Cross Stitch Patterns - Cross Stitch Guide - Cross Stitch Explained for Starters (Cross Stitch Books for Dummies - Cross Stitch Tips - Cross Stitch 101) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Programming HTML5 Applications: Building Powerful Cross-Platform Environments in JavaScript Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) Xamarin Mobile Application Development: Cross-Platform C# and Xamarin.Forms Fundamentals Cross-Platform Development in C++: Building Mac OS X, Linux, and Windows Applications Xamarin Cross-platform Application Development - Second Edition From null to full HTML5 cross platform game