wxBook mods.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,14 +1,5 @@
|
||||
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
|
||||
% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty
|
||||
% since Tex2RTF doesn't parse it.
|
||||
% BTW, style MUST be report for it to work for Tex2RTF.
|
||||
%KB:
|
||||
%\addtolength{\textwidth}{1in}
|
||||
%\addtolength{\oddsidemargin}{-0.5in}
|
||||
%\addtolength{\topmargin}{-0.5in}
|
||||
%\addtolength{\textheight}{1in}
|
||||
%\sloppy
|
||||
%end of my changes
|
||||
%
|
||||
\newcommand{\indexit}[1]{#1\index{#1}}%
|
||||
\newcommand{\pipe}[0]{$\|$\ }%
|
||||
\definecolour{black}{0}{0}{0}%
|
||||
@@ -25,14 +16,11 @@
|
||||
%\special{!/@scaleunit 1 def}
|
||||
\parskip=10pt
|
||||
\parindent=0pt
|
||||
%
|
||||
\title{Multiplatform application development with wxWindows}
|
||||
\winhelponly{\author{by Julian Smart et al
|
||||
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
|
||||
}}
|
||||
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
|
||||
Robin Dunn, et al}
|
||||
\author{Julian Smart, Robert Roebling, Vadim Zeitlin, Robin Dunn, et al}
|
||||
\date{August 13th 2000}
|
||||
}
|
||||
%
|
||||
\makeindex
|
||||
\begin{document}
|
||||
\maketitle
|
||||
@@ -43,6 +31,9 @@ Robin Dunn, et al}
|
||||
\pagenumbering{roman}
|
||||
\tableofcontents
|
||||
|
||||
% Acknowledgements
|
||||
\input chap\_acknowledge.tex
|
||||
%
|
||||
% Chapter 01: Introduction, advocacy, etc.
|
||||
\input chap\_intro.tex
|
||||
%
|
||||
|
9
docs/latex/book/chap_acknowledge.tex
Normal file
9
docs/latex/book/chap_acknowledge.tex
Normal file
@@ -0,0 +1,9 @@
|
||||
\chapter*{Acknowledgements}\label{chapacknowledgements}
|
||||
\pagenumbering{arabic}%
|
||||
\setheader{{\it CHAPTER \thechapter: ACKNOWLEDGEMENTS}}{}{}{}{}{{\it CHAPTER \thechapter: ACKNOWLEDGEMENTS}}%
|
||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||
|
||||
We would like to acknowledge the help of the following people.
|
||||
|
||||
(Insert list of people here.)
|
||||
|
@@ -3,5 +3,166 @@
|
||||
\setheader{{\it CHAPTER \thechapter: INTRODUCING wxWINDOWS}}{}{}{}{}{{\it CHAPTER \thechapter: INTRODUCING wxWINDOWS}}%
|
||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||
|
||||
Introduction, advocacy, etc.
|
||||
\section{The need for portability}
|
||||
|
||||
Not so long ago, it seemed as though Microsoft was on course to
|
||||
take over the desktop for good with the Windows range of
|
||||
operating systems. Unix was retreating to server territory and
|
||||
had all but given up the fight against NT. Apple was sickening
|
||||
and it seemed almost common sense that the quirky Mac had had
|
||||
its day.
|
||||
|
||||
At the start of the new century, the picture has changed quite
|
||||
dramatically. Linux is advancing from its position of strength
|
||||
in the server market and is poised to make inroads on the
|
||||
desktop, where the high price of Windows gives it an advantage.
|
||||
Apple has made an impressive comeback and is revamping its own
|
||||
operating system. The embedded market continues to explode and
|
||||
has given rise to new niches for specialist operating systems.
|
||||
The keyword bow is diversity, when the best guess of a few years
|
||||
was that Microsoft would conquer all. More than ever,
|
||||
application developers need to keep their options open and
|
||||
targeting one platform only can be a recipe for commercial (or
|
||||
open source) disaster.
|
||||
|
||||
In the light of this change in the computing landscape,
|
||||
cross-platform development (or multiplatform development as we
|
||||
call it in this book) has become quite a hot and sometimes
|
||||
bitterly controversial topic. There are a number of ways to
|
||||
achieve the goal of portability, and many tools and languages to choose from.
|
||||
However, it is still generally agreed wisdom that C++ is the
|
||||
language of choice for desktop applications that depend on
|
||||
speed, ease of delivery and compatibility with billions of lines
|
||||
of existing code. Plus, there are many hundreds of thousands of
|
||||
developers now experienced in C++ programming.
|
||||
|
||||
The purpose of this book is to give you (the developer or
|
||||
interested manager) a solid grounding in one increasingly
|
||||
popular multiplatform solution: wxWindows. wxWindows is an open
|
||||
source GUI toolkit that has been on the scene since 1993 and has
|
||||
reached a high degree of stability and functionality. It is
|
||||
available for Linux (and most other Unix variants), all desktop
|
||||
versions of Microsoft Windows, and Mac. Other ports are in
|
||||
progress.
|
||||
|
||||
\section{Why wxWindows?}
|
||||
|
||||
While wxWindows is labelled a GUI development toolkit, it is in
|
||||
fact much more than that and has many features that are useful
|
||||
for many aspects of application development. This has to
|
||||
be the case, since the whole of a wxWindows application needs to
|
||||
be portable to different platforms, and not just the GUI
|
||||
component. So wxWindows provides classes for working with files
|
||||
and streams, multithreading, management of application settings,
|
||||
interprocess communication, and much else.
|
||||
|
||||
wxWindows is open source, with a vibrant developer and user
|
||||
community, and may be used in any proprietary or non-proprietary
|
||||
project. wxWindows encompasses the whole spectrum of users from
|
||||
one-man software outfits to big-name companies such as Xerox,
|
||||
Lockheed-Martin, Pratt and Whitney, and Motorola; from computer
|
||||
science departments to medical research groups; from ecological
|
||||
research, to the telecommunications industry, and in a myriad of
|
||||
open source projects.
|
||||
|
||||
When you use wxWindows you tap into an astonishing talent pool,
|
||||
with contributors from a wide range of backgrounds. Many aspects
|
||||
of application development that you might otherwise have to
|
||||
laboriously code yourself have been encapsulated by these
|
||||
developers in easy-to-use classes that you can plug into your
|
||||
code. Since there are a lot of people subscribed to the mailing
|
||||
lists, you'll enjoy discussions not only about wxWindows but
|
||||
often other matters close to the hearts of both experienced and
|
||||
inexperienced developers. And hopefully, one day you'll join in the
|
||||
success of wxWindows and become a contributor yourself!
|
||||
|
||||
\section{The history of wxWindows}
|
||||
|
||||
wxWindows was started in 1992 at the Artificial Intelligence
|
||||
Applications Institute, University of Edinburgh, by Julian
|
||||
Smart. Julian was designing a kind of meta-CASE tool called
|
||||
Hardy which needed to run on Windows as well as X-based Unix
|
||||
workstations. The existing commercial cross-platform tools were
|
||||
deemed too expensive for an in-house experimental project, so
|
||||
the only alternative was to build one. wxWindows (w for Microsoft
|
||||
Windows, x for the X Windowing System) started off with support for XView and MFC 1.0, and
|
||||
AIAI allowed it to be released to the Internet. As it became
|
||||
clear that XView was doomed, a Motif port was written. Borland
|
||||
C++ users began to request a version that was not dependent on
|
||||
MFC, so the Windows port was rewritten to use the native Windows
|
||||
API. Over time, a small but enthusiastic community of wxWindows
|
||||
users was established and a mailing list set up. Contributions
|
||||
and fixes were sent in, the largest contributions being the Mac
|
||||
and Xt ports. wxWindows gradually picked up more and more users
|
||||
from all over the world: commercial, government, and - most
|
||||
gratifying of all - company users who found that wxWindows
|
||||
offered a better product, and better support, than the
|
||||
commercial products they had looked at or used.
|
||||
|
||||
During 1995, Markus Holzem released his port of wxWindows to Xt,
|
||||
the X toolkit. This meant that software could be written that
|
||||
would work on X systems without the need for installing Motif,
|
||||
which is a commercial product.
|
||||
|
||||
In 1996, Julian left AIAI to pursue freelance consultancy, and
|
||||
there were few new releases. The seemingly unstoppable advance
|
||||
of Java was throwing some doubt on the future of C++ libraries.
|
||||
After many contributions, the wxWindows code was looking rather
|
||||
tired and in need of a serious rethink. At the start of 1997 it
|
||||
was make or break time - call it a day and move onto other
|
||||
things, or commit to re-engineering wxWindows with an API that
|
||||
was flexible enough for current and future user interface
|
||||
trends, with more 'widgets', and better use of C++. After an
|
||||
exchange between Julian Smart and Markus Holzem (the author of
|
||||
the Xt port), it was decided that it was worthwhile. Julian
|
||||
would do the Windows port, Markus the combined Motif/Xt port,
|
||||
with both contributing to the generic parts. wxWindows 2 API
|
||||
ideas and code started to take shape.
|
||||
|
||||
During 1997 an effort to produce a standard Linux desktop
|
||||
environment was underway - GNOME. Its widget set was GTK+, built
|
||||
on top of X11 and it looked as though GTK+-based apps were to
|
||||
become the standard in the Linux universe. Its one major problem
|
||||
- GTK+ was C-based, and only a thin (and unportable) C++ wrapper
|
||||
existed for it. In August 1997, Wolfram Gloger made a suggestion
|
||||
that wxWindows 2 should be ported to GTK+ - Robert Roebling had
|
||||
initial reservations, but in general supported the idea. He
|
||||
became the prime mover for wxGTK and alphas were made available
|
||||
at the beginning of 1998. In May 1998 the Windows and GTK+ ports
|
||||
were merged and put into a CVS repository made available to all
|
||||
contributors to wxWindows.
|
||||
|
||||
Markus Holzem had to drop out of the wxWindows 2 effort in early
|
||||
1998, but Julian Smart started a new wxMotif port. The idea of
|
||||
an Xt port was dropped, since there remain two possibilities for
|
||||
free Unix programming with wxWindows: wxGTK, and wxMotif with
|
||||
the Motif clone Lesstif.
|
||||
|
||||
In September 1998, Stefan Csomor started a new version of the
|
||||
wxMac 2 port based in part on Greg Whitehead's initial work.
|
||||
Several releases have been made and the code will be integrated
|
||||
into the main CVS stream in Summer 2000.
|
||||
|
||||
David Webster and Stefan Neis are working on an OS/2 port, and
|
||||
interest has been expressed in ports to other systems, such as
|
||||
BeOS.
|
||||
|
||||
wxWindows 2.1.11 saw the bundling of Vaclav Slavik's impressive
|
||||
wxHTML classes, with subsequent enhancements including
|
||||
print/preview ability, and a helpview application and help
|
||||
controller class for cross-platform HTML help. wxHTML gives
|
||||
applications easy access to enviable formatted text viewing and
|
||||
reporting capabilities.
|
||||
|
||||
During 2000 wxWindows will adopt Vaclav's XML resource system
|
||||
as a replacement for the WXR system; this will allow much
|
||||
greater flexibility and portability with support for
|
||||
sizers and many more controls than WXR.
|
||||
|
||||
\section{How to use this book}
|
||||
|
||||
The chapters in this book are meant to be fairly independent, but
|
||||
as usual, the ordering reflects a progression from basic concepts
|
||||
to more advanced ones, so the first few chapters at least
|
||||
should be read consecutively for best effect.
|
||||
|
||||
|
Reference in New Issue
Block a user