normal under Windows and Motif, pressing return causes the default button to
be depressed when the return key is pressed. See also \helpref{wxWindow::SetFocus}{wxwindowsetfocus}\rtfsp
which sets the keyboard focus for windows and text panel items,\rtfsp
-and \helpref{wxWindow::GetDefaultItem}{wxwindowgetdefaultitem}.
+and \helpref{wxPanel::SetDefaultItem}{wxpanelsetdefaultitem}.
Note that under Motif, calling this function immediately after
creation of a button and before the creation of other buttons
\twocolitem{\helpref{wxMDIParentFrame}{wxmdiparentframe}}{MDI parent frame}
\twocolitem{\helpref{wxMDIChildFrame}{wxmdichildframe}}{MDI child frame}
\twocolitem{\helpref{wxMiniFrame}{wxminiframe}}{A frame with a small title bar}
-\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog}
+\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog
+(deprecated, use wxNotebook instead)}
\end{twocollist}
See also {\bf Common dialogs}.
{\large {\bf Miscellaneous windows}}
-The following are a variety of windows that are derived from wxWindow.
+The following are a variety of classes that are derived from wxWindow.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for flexible I/O}
\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for flexible I/O}
-\twocolitem{\helpref{wxDate}{wxdate}}{A class for date manipulation}
+\twocolitem{\helpref{wxDate}{wxdate}}{A class for date manipulation (deprecated in favour of wxDateTime)}
+\twocolitem{\helpref{wxDateTime}{wxdatetime}}{A class for date/time manipulations}
\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation}
+% \twocolitem{\helpref{wxHashTableLong}{wxhashtablelong}}{A wxHashTable version for storing long data}
\twocolitem{\helpref{wxList}{wxlist}}{A simple linked list implementation}
+\twocolitem{\helpref{wxLongLong}{wxlonglong}}{A portable 64 bit integer type}
\twocolitem{\helpref{wxNode}{wxnode}}{Represents a node in the wxList implementation}
\twocolitem{\helpref{wxObject}{wxobject}}{The root class for most wxWindows classes}
\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths}
\twocolitem{\helpref{wxStringTokenizer}{wxstringtokenizer}}{A class for interpreting a string as a list of tokens or words}
\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers}
\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size}
-\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation}
-\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types
-that may change at run-time}
+\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation (deprecated in favour of wxDateTime)}
+\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types that may change at run-time}
\end{twocollist}
{\large {\bf Run-time class information system}}
\input dobjsmpl.tex
\input datstrm.tex
\input date.tex
+\input datetime.tex
\input dc.tex
\input ddeclint.tex
\input ddeconn.tex
\input wave.tex
\input window.tex
\input windowdc.tex
+\input wnddisbl.tex
\input zipstrm.tex
\input strmzlib.tex
\input function.tex
--- /dev/null
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: datetime.tex
+%% Purpose: wxDateTime documentation
+%% Author: Vadim Zeitlin
+%% Modified by:
+%% Created: 07.03.00
+%% RCS-ID: $Id$
+%% Copyright: (c) Vadim Zeitlin
+%% Licence: wxWindows licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{\class{wxDateTime}}\label{wxdatetime}
+
+wxDateTime class represents an absolute moment in the time.
+
+\wxheading{Types}
+
+The type {\tt wxDateTime\_t} is typedefed as {\tt unsigned short} and is used
+to contain the number of years, hours, minutes, seconds and milliseconds.
+
+\wxheading{Constants}
+
+Global constant {\tt wxDefaultDateTime} and synonym for it {\tt
+wxInvalidDateTime} are defined. This constant will be different from any valid
+wxDateTime object.
+
+All the following constants are defined inside wxDateTime class (i.e., to refer to
+them you should prepend their names with {\tt wxDateTime::}).
+
+Time zone symbolic names:\label{wxdatetimetimezones}
+
+\begin{verbatim}
+ enum TZ
+ {
+ // the time in the current time zone
+ Local,
+
+ // zones from GMT (= Greenwhich Mean Time): they're guaranteed to be
+ // consequent numbers, so writing something like `GMT0 + offset' is
+ // safe if abs(offset) <= 12
+
+ // underscore stands for minus
+ GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7,
+ GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
+ GMT0,
+ GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
+ GMT7, GMT8, GMT9, GMT10, GMT11, GMT12,
+ // Note that GMT12 and GMT_12 are not the same: there is a difference
+ // of exactly one day between them
+
+ // some symbolic names for TZ
+
+ // Europe
+ WET = GMT0, // Western Europe Time
+ WEST = GMT1, // Western Europe Summer Time
+ CET = GMT1, // Central Europe Time
+ CEST = GMT2, // Central Europe Summer Time
+ EET = GMT2, // Eastern Europe Time
+ EEST = GMT3, // Eastern Europe Summer Time
+ MSK = GMT3, // Moscow Time
+ MSD = GMT4, // Moscow Summer Time
+
+ // US and Canada
+ AST = GMT_4, // Atlantic Standard Time
+ ADT = GMT_3, // Atlantic Daylight Time
+ EST = GMT_5, // Eastern Standard Time
+ EDT = GMT_4, // Eastern Daylight Saving Time
+ CST = GMT_6, // Central Standard Time
+ CDT = GMT_5, // Central Daylight Saving Time
+ MST = GMT_7, // Mountain Standard Time
+ MDT = GMT_6, // Mountain Daylight Saving Time
+ PST = GMT_8, // Pacific Standard Time
+ PDT = GMT_7, // Pacific Daylight Saving Time
+ HST = GMT_10, // Hawaiian Standard Time
+ AKST = GMT_9, // Alaska Standard Time
+ AKDT = GMT_8, // Alaska Daylight Saving Time
+
+ // Australia
+
+ A_WST = GMT8, // Western Standard Time
+ A_CST = GMT12 + 1, // Central Standard Time (+9.5)
+ A_EST = GMT10, // Eastern Standard Time
+ A_ESST = GMT11, // Eastern Summer Time
+
+ // Universal Coordinated Time = the new and politically correct name
+ // for GMT
+ UTC = GMT0
+ };
+\end{verbatim}
+
+Month names: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec and
+Inv\_Month for an invalid.month value are the values of {\tt wxDateTime::Month}
+enum.
+
+Likely, Sun, Mon, Tue, Wed, Thu, Fri, Sat, and Inv\_WeekDay are the values in
+{\tt wxDateTime::WeekDay} enum.
+
+Finally, Inv\_Year is defined to be an invalid value for year parameter.
+
+\wxheading{Derived from}
+
+No base class
+
+\wxheading{Include files}
+
+<wx/datetime.h>
+
+\wxheading{See also}
+
+\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp
+\helpref{wxTimeSpan}{wxtimespan},\rtfsp
+\helpref{wxDateSpan}{wxdatespan},\rtfsp
+\helpref{wxCalendarCtrl}{wxcalendarctrl}
+
+\latexignore{\rtfignore{\wxheading{Function groups}}}
+
+\membersection{Static functions}
+
+For convinience, all static functions are collected here. These functions
+either set or return the static variables of wxDateSpan (the country), return
+the current moment, year, month or number of days in it, or do some general
+calendar-related actions.
+
+\helpref{SetCountry}{wxdatetimesetcountry}\\
+\helpref{GetCountry}{wxdatetimegetcountry}\\
+\helpref{IsWestEuropeanCountry}{wxdatetimeiswesteuropeancountry}\\
+\helpref{GetCurrentYear}{wxdatetimegetcurrentyear}\\
+\helpref{ConvertYearToBC}{wxdatetimeconvertyeartobc}\\
+\helpref{GetCurrentMonth}{wxdatetimegetcurrentmonth}\\
+\helpref{IsLeapYear}{wxdatetimeisleapyear}\\
+\helpref{GetCentury}{wxdatetimegetcentury}\\
+\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\
+\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\
+\helpref{GetMonthName}{wxdatetimegetmonthname}\\
+\helpref{GetWeekDayName}{wxdatetimegetweekdayname}\\
+\helpref{GetAmPmStrings}{wxdatetimegetampmstrings}\\
+\helpref{IsDSTApplicable}{wxdatetimeisdstapplicable}\\
+\helpref{GetBeginDST}{wxdatetimegetbegindst}\\
+\helpref{GetEndDST}{wxdatetimegetenddst}\\
+\helpref{Now}{wxdatetimenow}\\
+\helpref{Today}{wxdatetimetoday}
+
+\membersection{Constructors, assignment operators and setters}
+
+\membersection{Accessors}
+
+\membersection{Date comparison}
+
+\membersection{Date arithmetics}
+
+\membersection{Parsing and formatting dates}
+
+\membersection{Calendar calculations}
+
+\membersection{Astronomical/historical functions}
+
+\membersection{Time zone support}
+
+\helponly{\insertatlevel{2}{
+
+\wxheading{Members}
+
+}}
+
+\membersection{wxDateTime::ConvertYearToBC}{wxdatetimeconvertyeartobc}
+
+\func{static int}{ConvertYearToBC}(int year);
+
+Converts the year in absolute notation (i.e. a number which can be negative,
+positive or zero) to the year in BC/AD notation. For the positive years,
+nothing is done, but the year 0 is year 1 BC and so for other years there is a
+difference of 1.
+
+This function should be used like this:
+
+\begin{verbatim}
+ wxDateTime dt(...);
+ int y = dt.GetYear();
+ printf("The year is %d%s", wxDateTime::ConvertYearToBC(y), y > 0 ? "AD" : "BC");
+\end{verbatim}
+
+\membersection{wxDateTime::GetAmPmStrings}{wxdatetimegetampmstrings}
+
+\func{static void}{GetAmPmStrings}{\param{wxString *}{am}, \param{wxString *}{pm}}
+
+\membersection{wxDateTime::GetBeginDST}{wxdatetimegetbegindst}
+
+\func{static wxDateTime}{GetBeginDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
+
+\membersection{wxDateTime::GetCountry}{wxdatetimegetcountry}
+
+\func{static Country}{GetCountry}{\void}
+
+\membersection{wxDateTime::GetCurrentYear}{wxdatetimegetcurrentyear}
+
+\func{static int}{GetCurrentYear}{\param{Calendar }{cal = Gregorian}}
+
+\membersection{wxDateTime::GetCurrentMonth}{wxdatetimegetcurrentmonth}
+
+\func{static Month}{GetCurrentMonth}{\param{Calendar }{cal = Gregorian}}
+
+\membersection{wxDateTime::GetCentury}{wxdatetimegetcentury}
+
+\func{static int}{GetCentury}{\param{int }{year = Inv\_Year}}
+
+\membersection{wxDateTime::GetEndDST}{wxdatetimegetenddst}
+
+\func{static wxDateTime}{GetEndDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
+
+\membersection{wxDateTime::GetMonthName}{wxdatetimegetmonthname}
+
+\func{static wxString}{GetMonthName}{\param{Month }{month}, \param{NameFlags }{flags = Name\_Full}}
+
+\membersection{wxDateTime::GetNumberOfDays}{wxdatetimegetnumberofdays}
+
+\func{static wxDateTime\_t}{GetNumberOfDays}{\param{int }{year}, \param{Calendar }{cal = Gregorian}}
+
+\membersection{wxDateTime::GetNumberOfDays}{wxdatetimegetnumberofdays}
+
+\func{static wxDateTime\_t}{GetNumberOfDays}{\param{Month }{month}, \param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}}
+
+\membersection{wxDateTime::GetWeekDayName}{wxdatetimegetweekdayname}
+
+\func{static wxString}{GetWeekDayName}{\param{WeekDay }{weekday}, \param{NameFlags }{flags = Name\_Full}}
+
+\membersection{wxDateTime::IsLeapYear}{wxdatetimeisleapyear}
+
+\func{static bool}{IsLeapYear}{\param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}}
+
+\membersection{wxDateTime::IsWestEuropeanCountry}{wxdatetimeiswesteuropeancountry}
+
+\func{static bool}{IsWestEuropeanCountry}{\param{Country }{country = Country\_Default}}
+
+\membersection{wxDateTime::IsDSTApplicable}{wxdatetimeisdstapplicable}
+
+\func{static bool}{IsDSTApplicable}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
+
+\membersection{wxDateTime::Now}{wxdatetimenow}
+
+\func{static wxDateTime}{Now}{\void}
+
+\membersection{wxDateTime::SetCountry}{wxdatetimesetcountry}
+
+\func{static void}{SetCountry}{\param{Country }{country}}
+
+\membersection{wxDateTime::Today}{wxdatetimetoday}
+
+\func{static wxDateTime}{Today}{\void}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: longlong.tex
+%% Purpose: wxLongLong documentation
+%% Author: Vadim Zeitlin
+%% Modified by:
+%% Created: 07.03.00
+%% RCS-ID: $Id$
+%% Copyright: (c) Vadim Zeitlin
+%% Licence: wxWindows licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxLongLong}}\label{wxlonglong}
This class represents a signed 64 bit long number. It is implemented using the
{\it long long} type if it exists and {\it long}.
You would usually use this type in exactly the same manner as any other
-(built-in) arithmetic type.
+(built-in) arithmetic type. Note that wxLongLong is a signed type.
+
+If a native (i.e. supported directly by the compiler) 64 bit integer type was
+found a typedef {\it wxLongLong\_t} will be defined to correspond it.
+
+\wxheading{Derived from}
+
+No base class
+
+\wxheading{Include files}
+
+<wx/longlong.h>
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongdef}
+
+\func{}{wxLongLong}{\void}
+
+Default constructor initializes the object to 0.
+
+\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongll}
+
+\func{}{wxLongLong}{\param{wxLongLong\_t }{ll}}
+
+Constructor from native long long (only for compilers supporting it).
+
+\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglong}
+
+\func{}{wxLongLong}{\param{long }{hi}, \param{unsigned long }{lo}}
+
+Constructor from 2 longs: the high and low part are combined into one
+wxLongLong.
+
+\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassign}
+
+\func{wxLongLong\& operator}{operator=}{\param{wxLongLong\_t }{ll}}
+
+Assignment operator from native long long (only for compilers supporting it).
+
+\membersection{wxLongLong::Abs}\label{wxlonglongabs}
+
+\constfunc{wxLongLong}{Abs}{\void}
+
+\func{wxLongLong\&}{Abs}{\void}
+
+Returns an absolute value of wxLongLong - either making a copy (const version)
+or modifying it in place (the second one).
+
+\membersection{wxLongLong::Assign}\label{wxlonglongassign}
+
+\func{wxLongLong\&}{Assign}{\param{double }{d}}
+
+This allows to convert a double value to wxLongLong type. Such conversion is
+not always possible in which case the result will be silently truncated in a
+platform-dependent way.
+
+\membersection{wxLongLong::GetHi}\label{wxlonglonggethi}
+
+\constfunc{long}{GetHi}{\void}
+
+Returnes the high 32 bits of 64 bit integer.
+
+\membersection{wxLongLong::GetLo}\label{wxlonglonggetlo}
+
+\constfunc{unsigned long}{GetLo}{\void}
+
+Returnes the low 32 bits of 64 bit integer.
+
+\membersection{wxLongLong::GetValue}\label{wxlonglonggetvalue}
+
+\constfunc{wxLongLong\_t}{GetValue}{\void}
+
+Convert to native long long (only for compilers supporting it)
+
+\membersection{wxLongLong::ToLong}\label{wxlonglongtolong}
+
+\constfunc{long}{ToLong}{\void}
+
+Truncate wxLongLong to long. If the conversion loses data (i.e. the wxLongLong
+value is outside the range of built-in long type), an assert will be triggered
+in debug mode.
+
+\membersection{wxLongLong::operator$+$}\label{wxlonglongoperatorplus}
+
+\constfunc{wxLongLong}{operator$+$}{\param{const wxLongLong\& }{ll}}
+
+Adds 2 wxLongLongs together and returns the result.
+
+\membersection{wxLongLong::operator$+=$}\label{wxlonglongoperatorplusassign}
+
+\func{wxLongLong\&}{operator+}{\param{const wxLongLong\& }{ll}}
+
+Add another wxLongLong to this one.
+
+\membersection{wxLongLong::operator$++$}\label{wxlonglongoperatorinc}
+
+\func{wxLongLong\&}{operator$++$}{\void}
+
+\func{wxLongLong\&}{operator$++$}{\param{int}{}}
+
+Pre/post increment operator.
+
+\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorunaryminus}
+
+\constfunc{wxLongLong}{operator$-$}{\void}
+
+Returns the value of this wxLongLong with opposite sign.
+
+\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorminus}
+
+\constfunc{wxLongLong}{operator$-$}{\param{const wxLongLong\& }{ll}}
+
+Substracts 2 wxLongLongs and returns the result.
+
+\membersection{wxLongLong::operator$-=$}\label{wxlonglongoperatorminusassign}
+
+\func{wxLongLong\&}{operator-}{\param{const wxLongLong\& }{ll}}
+
+Substracts another wxLongLong from this one.
+
+\membersection{wxLongLong::operator$--$}\label{wxlonglongoperatordec}
+
+\func{wxLongLong\&}{operator$--$}{\void}
+
+\func{wxLongLong\&}{operator$--$}{\param{int}{}}
+
+Pre/post decrement operator.
+% TODO document all other arithmetics operations: shitfs, multiplication,
+% division, bitwise, comparison
--- /dev/null
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: tdate.tex
+%% Purpose: wxDateTime and related classes overview
+%% Author: Vadim Zeitlin
+%% Modified by:
+%% Created: 07.03.00
+%% RCS-ID: $Id$
+%% Copyright: (c) Vadim Zeitlin
+%% Licence: wxWindows licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Date and time classes overview}\label{wxdatetimeoverview}
+
+Classes: \helpref{wxDateTime}{wxdatetime}, \helpref{wxDateSpan}{wxdatespan}, \helpref{wxTimeSpan}, \helpref{wxtimespan}, \helpref{wxCalendarCtrl}{wxcalendarctrl}
+
+\subsection{Introduction}
+
+wxWindows provides a set of powerful classes to work with dates and times. Some
+of the supported features of \helpref{wxDateTime}{wxdatetime} class are:
+
+\twocolwidtha{7cm}
+\begin{twocollist}\itemsep=0pt
+\item{Wide range}{The range of supported dates goes from about 4714 B.C. to
+some 480 million years in the future.}
+\item{Precision}{Not using floating point calculations anywhere ensures that
+the date calculations don't suffer from rounding errors.}
+\item{Many features}{Not only all usual calculations with dates are supported,
+but also more exotic week and year day calculations, work day testing, standard
+astronomical functions, conversion to and from strings in either strict or free
+format.}
+\item{Efficiency}{Objects of wxDateTime are small (8 bytes) and working with
+them is fast}
+\end{twocollist}
+
+\subsection{All date/time classes at a glance}
+
+There are 3 main classes declared in {\tt <wx/datetime.h>}: except
+\helpref{wxDateTime}{wxdatetime} itself which represents an absolute
+moment in the time, there are also two classes -
+\helpref{wxTimeSpan}{wxtimespan} and \helpref{wxDateSpan}{wxdatespan} which
+represent the intervals of time.
+
+There are also helper classes which are used together with wxDateTime:
+\helpref{wxDateTimeHolidayAuthority}{wxdatetimeholidayauthority} which is used
+to determine whether a given date is a holiday or not and
+\helpref{wxDateTimeWorkDays}{wxdatetimeworkdays} which is a derivation of this
+class for which (only) Saturdays and Sundays are the holidays.
+
+Finally, in other parts of this manual you may find mentions of wxDate and
+wxTime classes. \helpref{These classes}{tdatecompatibility} are obsolete and
+superseded by wxDateTime.
+
+\subsection{wxDateTime characteristics}
+
+\helpref{wxDateTime}{wxdatetime} stores the time as a signed number of
+milliseconds since the Epoch which is fixed, by convention, to Jan 1, 1970 -
+however this is not visible to the class users (in particular, dates prior to
+the Epoch are handled just as well (or as bad) as the dates after it). But it
+does mean that the best resolution which can be achieved with this class is 1
+millisecond.
+
+The size of wxDateTime object is 8 bytes because it is represented as a 64 bit
+integer. The resulting range of supported dates is thus approximatively 580
+million years, but due to the current limitations in the Gregorian calendar
+support, only dates from Nov 24, 4714BC are supported (this is subject to
+change if there is sufficient interest in doing it).
+
+Finally, the internal representation is time zone independent (always in GMT)
+and the time zones only come into play when a date is broken into
+year/month/day components. See more about \helpref{timezones}{tdatetimezones}
+below.
+
+Currently, the only supported calendar is Gregorian one (which is used even
+for the dates prior to the historic introduction of this calendar which was
+first done on Oct 15, 1582 but is, generally speaking, country, and even
+region, dependent). Future versions will probably have Julian calendar support
+as well and support for other calendars (Maya, Hebrew, Chinese...) is not
+ruled out.
+
+\subsection{Difference between wxDateSpan and wxTimeSpan}
+
+While there is only one logical way to represent an absolute moment in the
+time (and hence only one wxDateTime class), there are at least two methods to
+describe a time interval.
+
+First, there is the direct and self-explaining way implemented by
+\helpref{wxTimeSpan}{wxtimespan}: it is just a difference in milliseconds
+between two moments in the time. Adding and substracting such interval to
+wxDateTime is always well-defined and is a fast operation.
+
+But in the daily life other, calendar-dependent time interval specifications are
+used. For example, `one month later' is commonly used. However, it is clear
+that this is not the same as wxTimeSpan of $60*60*24*31$ seconds because `one
+month later' Feb 15 is Mar 15 and not Mar 17 or Mar 16 (depending on whether
+the year is leap or not).
+
+This is why there is another class for representing such intervals called
+\helpref{wxDateSpan}{wxdatespan}. It handles this sort of operations in the
+most natural way possible, but note that manipulating with thei ntervals of
+this kind is not always well-defined. Consider, for example, Jan 31 + `1
+month': this will give Feb 28 (or 29), i.e. the last day of February and not
+the non-existing Feb 31. Of course, this is what is usually wanted, but you
+still might be surprized to notice that now substracting back the same
+interval from Feb 28 will result in Jan 28 and {\bf not} Jan 31 we started
+with!
+
+So, unless you plan to implement some kind of natural language parsing in the
+program, you should probably use wxTimeSpan instead of wxDateSpan (which is
+also more efficient). However, wxDateSpan may be very useful in situations
+when you do need to understand what does `in a month' mean (of course, it is
+just {\tt wxDateTime::Now() + wxDateSpan::Month()}).
+
+\subsection{Date arithmetics}
+
+Many different operations may be performed with the dates, however not all of
+them make sense. For example, multiplying date by a number is an invalid
+operation, even though multiplying either of time span classes by a number is
+perfectly valid.
+
+Here is what can be done:
+
+\begin{twocollist}
+\item{{\bf Addition}}{a wxTimeSpan or wxDateSpan can be added to wxDateTime
+resulting in a new wxDateTime object and also 2 objects of the same span class
+can be added together giving another object of the smae class.}
+\item{{\bf Substraction}}{the same types of operations as above are
+allowed and, additionally, a difference between two wxDateTime objects can be
+taken and this will yield wxTimeSpan.}
+\item{{\bf Multiplication}}{a wxTimeSpan or wxDateSpan object can be
+multiplied by an integer number resulting in an object of the same type.}
+\item{{\bf Unary minus}}{a wxTimeSpan or wxDateSpan object may finally be
+negated giving an interval of the same magnitude but of opposite time
+direction.}
+\end{twocollist}
+
+For all these operations there are corresponding global (overloaded) operators
+and also member functions which are synonyms for them: Add(), Substract() and
+Multiply(). Unary minus as well as composite assignment operations (like $+=$)
+are only implemented as members and Neg() is the synonym for unary minus.
+
+\subsection{Time zone considerations}\label{tdatetimezones}
+
+Although the time is always stored internally in GMT, you will usually work in
+the local time zone. Because of this, all wxDateTime constructors and setters
+which take the broken down date assume that these values are for the local
+time zone. Thus, {\tt wxDateTime(1, wxDateTime::Jan, 1970)} will not
+correspond to the wxDateTime Epoch unless you happen to live in the UK.
+
+All methods returning the date components (year, month, day, hour, minute,
+second...) will also return the correct values for the local time zone by
+default, so, generally, doing the natural things will lead to natural and
+correct results.
+
+If you only want to do this, you may safely skip the rest of this section.
+However, if you want to work with different time zones, you should read it to
+the end.
+
+In this (rare) case, you are still limited to the local time zone when
+constructing wxDateTime objects, i.e. there is no way to construct a
+wxDateTime corresponding to the given date in, say, Pacific Standard Time.
+To do it, you will need to call \helpref{ToTimezone}{wxdatetimetotimezone} or
+\helpref{MakeTimezone}{wxdatetimemaketimezone} methods to adjust the date for
+the target time zone. There are also special versions of these functions
+\helpref{ToGMT}{wxdatetimetogmt} and \helpref{MakeGMT}{wxdatetimemakegmt} for
+the most common case - when the date should be constructed in GMT.
+
+You also can just retrieve the value for some time zone without converting the
+obejct to it first. For this you may pass TimeZone argument to any of the
+methods which are affected by the time zone (all methods getting date
+components and the date formatting ones, for example). In particular, the
+Format() family of methods accepts a TimeZone parameter and this allows to
+simply print time in any time zone.
+
+To see how to do it, the last issue to address is how to construct a TimeZone
+object which must be passed to all these methods. First of all, you may construct
+it manually by specifying the time zone offset in seconds from GMT, but
+usually you will just use one of the \helpref{symbolic time zone
+names}{wxdatetimetimezones} and let the conversion constructor do the job.
+I.e.. you would just write
+
+\begin{verbatim}
+wxDateTime dt(...whatever...);
+printf("The time is %s in local time zone", dt.FormatTime().c_str());
+printf("The time is %s in GMT", dt.FormatTime(wxDateTime::GMT).c_str());
+\end{verbatim}
+
+\subsection{Daylight saving time (DST)}
+
+DST (a.k.a. `summer time') handling is always a delicate task which is better
+left to the operating system which is supposed to be configured by the
+administrator to behave correctly. Unfortunately, when doing calculations with
+date outside of the range supported by the standard library, we are forced to
+deal with these issues ourselves.
+
+Several functions are provided to calculate the beginning and end of DST in
+the given year and to determine whether it is in effect at the given moment or
+not, but they should not be considered as absolutely correct because, first of
+all, they only work more or less correctly for only a handful of countries
+(any information about other ones appreciated!) and even for them the rules
+may perfectly well change in the future.
+
+The time zone handling \helpref{methods}{tdatetimezones} use these functions
+too, so they are subject to the same limitations.
+
+% is this really needed? \subsection{Conversion to/from text}
+
+\subsection{Compatibility}\label{tdatecompatibility}
+
+The old classes for date/time manipulations ported from wxWindows version 1.xx
+are still included but are reimplemented in terms of wxDateTime. However, using
+them is strongly discouraged because they have a few quirks/bugs and were not
+`Y2K' compatible.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: wnddsbl.tex
+%% Purpose: wxWindowDisabler class documentation
+%% Author: Vadim Zeitlin
+%% Modified by:
+%% Created: 03.03.00
+%% RCS-ID: $Id$
+%% Copyright: (c) Vadim Zeitlin
+%% Licence: wxWindows licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxWindowDisabler}}\label{wxwindowdisabler}
This class disables all windows of the application (may be with the exception
[OPTIONS]
-BMROOT=d:\wx2\wxWind~1\docs/latex/wx ; Assume that bitmaps are where the source is
+BMROOT=L:\wxWindows\docs\latex\wx ; Assume that bitmaps are where the source is
TITLE=wxWindows Manual
CONTENTS=Contents
COMPRESS=HIGH
[FILES]
-wx.rtf
+Wx.rtf
[CONFIG]
-CreateButton("Up", "&Up", "JumpId(`wx.hlp', `Contents')")
+CreateButton("Up", "&Up", "JumpId(`Wx.hlp', `Contents')")
BrowseButtons()
[MAP]
type,
this,
row, col,
- FALSE,
mouseEv.GetX(), mouseEv.GetY(),
+ FALSE,
mouseEv.ControlDown(),
mouseEv.ShiftDown(),
mouseEv.AltDown(),
m_targetWindow = this;
- // we need wxWANTS_CHARS to process arrows ourselves
- return wxPanel::Create(parent, id, pos, size, style | wxWANTS_CHARS, name);
+ bool ok = wxPanel::Create(parent, id, pos, size, style, name);
+
+#ifdef __WXMSW__
+ // we need to process arrows ourselves for scrolling
+ m_lDlgCode |= DLGC_WANTARROWS;
+#endif // __WXMSW__
+
+ return ok;
}
wxScrolledWindow::~wxScrolledWindow()
if( m_xScrollPixelsPerLine )
{
clix /= m_xScrollPixelsPerLine;
- szx /= m_xScrollPixelsPerLine;
+ szx /= m_xScrollPixelsPerLine;
}
else
{
clix = 0;
- szx = -1;
+ szx = -1;
}
if( m_yScrollPixelsPerLine )
{
else
{
cliy = 0;
- szy = -1;
+ szy = -1;
}
int dsty;
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Output_Dir "BaseRelease"
+# PROP BASE Intermediate_Dir "BaseRelease"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
+# PROP Output_Dir "BaseRelease"
+# PROP Intermediate_Dir "BaseRelease"
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /Zi /O2 /I "$(wx)\include" /I "$(wx)\src\zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D WIN95=1 /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN32__" /Yu"wx/wxprec.h" /FD /c
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MT" /YX /FD /c
+# ADD CPP /nologo /W3 /Zi /O2 /I "$(wx)\include" /I "$(wx)\src\zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D WIN95=1 /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN32__" /D "_MT" /Yu"wx/wxprec.h" /FD /c
# ADD BASE RSC /l 0x409
# ADD RSC /l 0x409
BSC32=bscmake.exe
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Output_Dir "BaseDebug"
+# PROP BASE Intermediate_Dir "BaseDebug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "BaseDebug"
# PROP Intermediate_Dir "BaseDebug"
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MTd /W4 /Zi /Od /I "$(wx)\include" /I "$(wx)\src\zlib" /D DEBUG=1 /D "_DEBUG" /D WXDEBUG=1 /D "__WXDEBUG__" /D wxUSE_GUI=0 /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WIN32__" /D "__WXMSW__" /D "_MT" /Fr /Yu"wx/wxprec.h" /FD /c
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MT" /YX /FD /c
+# ADD CPP /nologo /MTd /W4 /Zi /Od /I "$(wx)\include" /I "$(wx)\src\zlib" /D "_DEBUG" /D DEBUG=1 /D WXDEBUG=1 /D "__WXDEBUG__" /D wxUSE_GUI=0 /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WIN32__" /D "__WXMSW__" /D "_MT" /Fr /Yu"wx/wxprec.h" /FD /c
# ADD BASE RSC /l 0x409
# ADD RSC /l 0x409
BSC32=bscmake.exe
# End Source File
# Begin Source File
+SOURCE=.\src\common\cmdline.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\config.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\datstrm.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\msw\dde.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\msw\dir.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\fs_inet.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\common\fs_mem.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\common\fs_zip.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\hash.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\ipcbase.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\list.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
-SOURCE=.\src\common\mimetype.cpp
+SOURCE=.\src\common\mimecmn.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\msw\mimetype.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\mstream.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\object.cpp
# End Source File
# Begin Source File
+SOURCE=.\src\common\objstrm.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\process.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\serbase.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\strconv.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\unzip.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
SOURCE=.\src\msw\utils.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=.\src\common\wfstream.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\common\wxchar.cpp
# End Source File
# Begin Source File
!ENDIF
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\common\zipstrm.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\common\zstream.cpp
# End Source File
# End Target
# End Project