Cross-platform GUI programming with wxWidgets

Bibliographic Information

Cross-platform GUI programming with wxWidgets

Julian Smart and Kevin Hock

(Bruce Perens' Open Source series)

Prentice Hall, c2006

  • pbk. : alk. paper

Available at  / 4 libraries

Search this Book/Journal

Description and Table of Contents

Description

"This book is the best way for beginning developers to learn wxWidgets programming in C++. It is a must-have for programmers thinking of using wxWidgets and those already using it." -Mitch Kapor, founder of Lotus Software and the Open Source Applications Foundation Build advanced cross-platform applications that support native look-and-feel on Windows, Linux, Unix, Mac OS X, and even Pocket PC Master wxWidgets from start to finish-even if you've never built GUI applications before Leverage advanced wxWidgets capabilities: networking, multithreading, streaming, and more CD-ROM: library of development tools, source code, and sample applications Foreword by Mitch Kapor, founder, Lotus Development and Open Source Application Foundation wxWidgets is an easy-to-use, open source C++ API for writing GUI applications that run on Windows, Linux, Unix, Mac OS X, and even Pocket PC-supporting each platform's native look and feel with virtually no additional coding. Now, its creator and two leading developers teach you all you need to know to write robust cross-platform software with wxWidgets. This book covers everything from dialog boxes to drag-and-drop, from networking to multithreading. It includes all the tools and code you need to get great results, fast. From AMD to AOL, Lockheed Martin to Xerox, world-class developers are using wxWidgets to save money, increase efficiency, and reach new markets. With this book, you can, too. wxWidgets quickstart: event/input handling, window layouts, drawing, printing, dialogs, and more Working with window classes, from simple to advanced Memory management, debugging, error checking, internationalization, and other advanced topics Includes extensive code samples for Windows, Linux (GTK+), and Mac OS X About the CD-ROM The CD-ROM contains all of the source code from the book; wxWidgets distributions for Windows, Linux, Unix, Mac OS X, and other platforms; the wxWidgets reference guide; and development tools including the OpenWatcom C++ compiler, the poEdit translation helper, and the DialogBlocks user interface builder. (c) Copyright Pearson Education. All rights reserved.

Table of Contents

Foreword by Mitch Kapor. Preface. Acknowledgments. About the Authors. 1. Introduction. What Is wxWidgets? Why Use wxWidgets? A Brief History of wxWidgets The wxWidgets Community wxWidgets and Object-Oriented Programming License Considerations The wxWidgets Architecture wxMSW wxGTK wxX11 wxMotif wxMac wxCocoa wxWinCE wxPalmOS wxOS2 wxMGL Internal Organization Summary 2. Getting Started. A Small wxWidgets Sample The Application Class The Frame Class The Event Handlers The Frame Constructor The Whole Program Compiling and Running the Program Program Flow Summary 3. Event Handling. Event-Driven Programming Event Tables and Handlers Skipping Events Pluggable Event Handlers Dynamic Event Handlers Window Identifiers Defining Custom Events Summary 4. Window Basics. Anatomy of a Window The Concept of a Window Client and Non-Client Areas Scrollbars Caret and Cursor Top-Level Windows Coordinate System Painting Color and Font Window Variant Sizing Input Idle Time Processing and UI Updates Window Creation and Deletion Window Styles A Quick Guide to the Window Classes Base Window Classes Top-Level Windows Container Windows Non-Static Controls Static Controls Menus Control Bars Base Window Classes wxWindow wxControl Top-Level Windows wxFrame wxMDIParentFrame wxMDIChildFrame wxDialog wxPopupWindow Container Windows wxPanel wxNotebook wxScrolledWindow wxSplitterWindow Non-Static Controls wxButton wxButton Labels wxBitmapButton wxChoice wxComboBox wxCheckBox wxListBox and wxCheckListBox wxRadioBox wxRadioButton wxScrollBar wxSpinButton wxSpinCtrl wxSlider wxTextCtrl wxToggleButton Static Controls wxGauge wxStaticText wxStaticBitmap wxStaticLine wxStaticBox Menus wxMenu Control Bars wxMenuBar wxToolBar wxStatusBar Summary 5. Drawing and Printing. Understanding Device Contexts Available Device Contexts Drawing on Windows with wxClientDC Erasing Window Backgrounds Drawing on Windows with wxPaintDC Drawing on Bitmaps with wxMemoryDC Creating Metafiles with wxMetafileDC Accessing the Screen with wxScreenDC Printing with wxPrinterDC and wxPostScriptDC Drawing Tools wxColour wxPen wxBrush wxFont wxPalette Device Context Drawing Functions Drawing Text Drawing Lines and Shapes Drawing Splines Drawing Bitmaps Filling Arbitrary Areas Logical Functions Using the Printing Framework More on wxPrintout Scaling for Printing and Previewing Printing under Unix with GTK+ 3D Graphics with wxGLCanvas Summary 6. Handling Input. Mouse Input Handling Button and Motion Events Handling Mouse Wheel Events Handling Keyboard Events An Example Character Event Handler Key Code Translation Modifier Key Variations Accelerators Handling Joystick Events wxJoystick Events wxJoystickEvent Member Functions wxJoystick Member Functions Summary 7. Window Layout Using Sizers. Layout Basics Sizers Common Features of Sizers Programming with Sizers Programming with wxBoxSizer Programming with wxStaticBoxSizer Programming with wxGridSizer Programming with wxFlexGridSizer Programming with wxGridBagSizer Further Layout Issues Dialog Units Platform-Adaptive Layouts Dynamic Layouts Summary 8. Using Standard Dialogs. Informative Dialogs wxMessageDialog wxProgressDialog wxProgressDialog Example wxBusyInfo wxShowTip File and Directory Dialogs wxFileDialog wxDirDialog Choice and Selection Dialogs wxColourDialog wxFontDialog wxSingleChoiceDialog wxMultiChoiceDialog Entry Dialogs wxNumberEntryDialog wxTextEntryDialog and wxPasswordEntryDialog wxFindReplaceDialog Printing Dialogs wxPageSetupDialog wxPrintDialog Summary 9. Writing Custom Dialogs. Steps in Creating a Custom Dialog An Example: PersonalRecordDialog Deriving a New Class Designing Data Storage Coding the Controls and Layout Data Transfer and Validation Handling Events Handling UI Updates Adding Help The Complete Class Invoking the Dialog Adapting Dialogs for Small Devices Further Considerations in Dialog Design Keyboard Navigation Data and UI Separation Layout Aesthetics Alternatives to Dialogs Using wxWidgets Resource Files Loading Resources Using Binary and Embedded Resource Files Translating Resources The XRC Format Writing Resource Handlers Foreign Controls Summary 10. Programming with Images. Image Classes in wxWidgets Programming with wxBitmap Creating a wxBitmap Setting a wxMask The XPM Format Drawing with Bitmaps Packaging Bitmap Resources Programming with wxIcon Creating a wxIcon Using wxIcon Associating an Icon with an Application Programming with wxCursor Creating a wxCursor Using wxCursor Using wxSetCursorEvent Programming with wxImage Loading and Saving Images Transparency Transformations Color Reduction Manipulating wxImage Data Directly Image Lists and Icon Bundles Customizing Art in wxWidgets Summary 11. Clipboard and Drag and Drop. Data Objects Data Source Duties Data Target Duties Using the Clipboard Implementing Drag and Drop Implementing a Drag Source Implementing a Drop Target Using Standard Drop Targets Creating a Custom Drop Target More on wxDataObject Drag and Drop Helpers in wxWidgets Summary 12. Advanced Window Classes. wxTreeCtrl wxTreeCtrl Styles wxTreeCtrl Events wxTreeCtrl Member Functions wxListCtrl wxListCtrl Styles wxListCtrl Events wxListItem wxListCtrl Member Functions Using wxListCtrl Virtual List Controls wxWizard wxWizard Events wxWizard Member Functions wxWizard Example wxHtmlWindow wxHtmlWindow Styles wxHtmlWindow Member Functions Embedding Windows in HTML Pages HTML Printing wxGrid The wxGrid System of Classes wxGrid Events wxGrid Member Functions wxTaskBarIcon wxTaskBarIcon Events wxTaskBarIcon Member Functions Writing Your Own Controls The Custom Control Declaration Adding DoGetBestSize Defining a New Event Class Displaying Information on the Control Handling Input Defining Default Event Handlers Implementing Validators Implementing Resource Handlers Determining Control Appearance A More Complex Example: wxThumbnailCtrl Summary 13. Data Structure Classes. Why Not STL? Strings Using wxString wxString, Characters, and String Literals Basic wxString to C Pointer Conversions Standard C String Functions Converting to and from Numbers wxStringTokenizer wxRegEx wxArray Array Types wxArrayString Array Construction, Destruction, and Memory Management Array Sample Code wxList and wxNode wxHashMap Storing and Processing Dates and Times wxDateTime wxDateTime Constructors and Modifiers wxDateTime Accessors Getting the Current Time Parsing and Formatting Dates Date Comparisons Date Arithmetic Helper Data Structures wxObject wxLongLong wxPoint and wxRealPoint wxRect wxRegion wxSize wxVariant Summary 14. Files and Streams. File Classes and Functions wxFile and wxFFile wxTextFile wxTempFile wxDir wxFileName File Functions Stream Classes File Streams Memory and String Streams Reading and Writing Data Types Socket Streams Filter Streams Zip Streams Virtual File Systems Summary 15. Memory Management, Debugging, and Error Checking. Memory Management Basics Creating and Deleting Window Objects Creating and Copying Drawing Objects Initializing Your Application Object Cleaning Up Your Application Detecting Memory Leaks and Other Errors Facilities for Defensive Programming Error Reporting wxMessageOutput Versus wxLog Providing Run-Time Type Information Using wxModule Loading Dynamic Libraries Exception Handling Debugging Tips Debugging X11 Errors Simplify the Problem Debugging a Release Build Summary 16. Writing International Applications. Introduction to Internationalization Providing Translations poEdit Step-by-Step Guide to Using Message Catalogs Using wxLocale Character Encodings and Unicode Converting Data wxEncodingConverter wxCSConv (wxMBConv) Converting Outside of a Temporary Buffer Help Files Numbers and Dates Other Media A Simple Sample Summary 17. Writing Multithreaded Applications. When to Use Threads, and When Not To Using wxThread Creation Specifying Stack Size Specifying Priority Starting the Thread How to Pause a Thread or Wait for an External Condition Termination Synchronization Objects wxMutex Deadlocks wxCriticalSection wxCondition wxSemaphore The wxWidgets Thread Sample Alternatives to Multithreading Using wxTimer Idle Time Processing Yielding Summary 18. Programming with wxSocket. Socket Classes and Functionality Overview Introduction to Sockets and Basic Socket Processing The Client The Server Connecting to a Server Socket Events Socket Status and Error Notifications Sending and Receiving Socket Data Creating a Server Socket Event Recap Socket Flags Blocking and Non-Blocking Sockets in wxWidgets How Flags Affect Socket Behavior Using wxSocket as a Standard Socket Using Socket Streams File Sending Thread File Receiving Thread Alternatives to wxSocket Summary 19. Working with Documents and Views. Document/View Basics Step 1: Choose an Interface Style Step 2: Create and Use Frame Classes Step 3: Define Your Document and View Classes Step 4: Define Your Window Classes Step 5: Use wxDocManager and wxDocTemplate Other Document/View Capabilities Standard Identifiers Printing and Previewing File History Explicit Document Creation Strategies for Implementing Undo/Redo Summary 20. Perfecting Your Application. Single Instance or Multiple Instances? Modifying Event Handling Reducing Flicker Implementing Online Help Using a Help Controller Extended wxWidgets HTML Help Authoring Help Other Ways to Provide Help Context-Sensitive Help and Tooltips Menu Help Parsing the Command Line Storing Application Resources Reducing the Number of Data Files Finding the Application Path Invoking Other Applications Running an Application Launching Documents Redirecting Process Input and Output Managing Application Settings Storing Settings Editing Settings Application Installation Installation on Windows Installation on Linux Installation on Mac OS X Following UI Design Guidelines Standard Buttons Menus Icons Fonts and Colors Application Termination Behavior Further Reading Summary Appendix A. Installing wxWidgets. Appendix B. Building Your Own wxWidgets Applications. Appendix C. Creating Applications with DialogBlocks. Appendix D. Other Features in wxWidgets. Appendix E. Third-Party Tools for wxWidgets. Appendix F. wxWidgets Application Showcase. Appendix G. Using the CD-ROM. Appendix H. How wxWidgets Processes Events. Appendix I. Event Classes and Macros. Appendix J. Code Listings. Appendix K. Porting from MFC. Glossary. Index.

by "Nielsen BookData"

Related Books: 1-1 of 1

Details

  • NCID
    BA73590893
  • ISBN
    • 0131473816
  • Country Code
    us
  • Title Language Code
    eng
  • Text Language Code
    eng
  • Place of Publication
    Upper Saddle River, NJ
  • Pages/Volumes
    xxxv , 700 p.
  • Size
    24 cm
  • Attached Material
    1 CD-ROM
  • Parent Bibliography ID
Page Top