From d7da975624b24ca0b243e9e70974ecaf9047c50a Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Fri, 10 Mar 2000 01:15:17 +0000
Subject: [PATCH] 1. fixed warning which was hiding a bug in
 wxGrid::SendEvent() 2. started documenting wxDateTime 3. and wxLongLong

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/button.tex   |   2 +-
 docs/latex/wx/category.tex |  15 ++-
 docs/latex/wx/classes.tex  |   2 +
 docs/latex/wx/datetime.tex | 249 +++++++++++++++++++++++++++++++++++++
 docs/latex/wx/longlong.tex | 142 ++++++++++++++++++++-
 docs/latex/wx/tdate.tex    | 212 +++++++++++++++++++++++++++++++
 docs/latex/wx/wnddisbl.tex |  11 ++
 docs/latex/wx/wx.hpj       |   6 +-
 src/generic/grid.cpp       |   2 +-
 src/generic/scrolwin.cpp   |  16 ++-
 wxBase.dsp                 |  83 +++++++++++--
 11 files changed, 712 insertions(+), 28 deletions(-)
 create mode 100644 docs/latex/wx/datetime.tex
 create mode 100644 docs/latex/wx/tdate.tex

diff --git a/docs/latex/wx/button.tex b/docs/latex/wx/button.tex
index 7bac1a1118..d4b848e12f 100644
--- a/docs/latex/wx/button.tex
+++ b/docs/latex/wx/button.tex
@@ -120,7 +120,7 @@ Under Windows, only dialog box buttons respond to this function.  As
 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
diff --git a/docs/latex/wx/category.tex b/docs/latex/wx/category.tex
index 91601cf3f5..95def882ea 100644
--- a/docs/latex/wx/category.tex
+++ b/docs/latex/wx/category.tex
@@ -17,14 +17,15 @@ Frames may contain windows, and dialog boxes may directly contain controls.
 \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}
@@ -227,9 +228,12 @@ These are the data structure classes supported by wxWindows.
 \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}
@@ -241,9 +245,8 @@ These are the data structure classes supported by wxWindows.
 \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}}
diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex
index 6f1a24c213..e3dd1d59ea 100644
--- a/docs/latex/wx/classes.tex
+++ b/docs/latex/wx/classes.tex
@@ -48,6 +48,7 @@
 \input dobjsmpl.tex
 \input datstrm.tex
 \input date.tex
+\input datetime.tex
 \input dc.tex
 \input ddeclint.tex
 \input ddeconn.tex
@@ -278,6 +279,7 @@
 \input wave.tex
 \input window.tex
 \input windowdc.tex
+\input wnddisbl.tex
 \input zipstrm.tex
 \input strmzlib.tex
 \input function.tex
diff --git a/docs/latex/wx/datetime.tex b/docs/latex/wx/datetime.tex
new file mode 100644
index 0000000000..6a4864816d
--- /dev/null
+++ b/docs/latex/wx/datetime.tex
@@ -0,0 +1,249 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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}
+
diff --git a/docs/latex/wx/longlong.tex b/docs/latex/wx/longlong.tex
index 948c69903e..8e753cab32 100644
--- a/docs/latex/wx/longlong.tex
+++ b/docs/latex/wx/longlong.tex
@@ -1,3 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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
@@ -13,5 +24,134 @@ also has operators for implicit construction from and conversion to the native
 {\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
diff --git a/docs/latex/wx/tdate.tex b/docs/latex/wx/tdate.tex
new file mode 100644
index 0000000000..fa232d914d
--- /dev/null
+++ b/docs/latex/wx/tdate.tex
@@ -0,0 +1,212 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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.
diff --git a/docs/latex/wx/wnddisbl.tex b/docs/latex/wx/wnddisbl.tex
index 0148385180..43a92d3da7 100644
--- a/docs/latex/wx/wnddisbl.tex
+++ b/docs/latex/wx/wnddisbl.tex
@@ -1,3 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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
diff --git a/docs/latex/wx/wx.hpj b/docs/latex/wx/wx.hpj
index 5bf567ae88..b8f8205dae 100644
--- a/docs/latex/wx/wx.hpj
+++ b/docs/latex/wx/wx.hpj
@@ -1,14 +1,14 @@
 [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]
diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp
index 792b92b12c..196891b59a 100644
--- a/src/generic/grid.cpp
+++ b/src/generic/grid.cpp
@@ -4946,8 +4946,8 @@ bool wxGrid::SendEvent( const wxEventType type,
                              type,
                              this,
                              row, col,
-                             FALSE,
                              mouseEv.GetX(), mouseEv.GetY(),
+                             FALSE,
                              mouseEv.ControlDown(),
                              mouseEv.ShiftDown(),
                              mouseEv.AltDown(),
diff --git a/src/generic/scrolwin.cpp b/src/generic/scrolwin.cpp
index 6834384fad..3de943ec7c 100644
--- a/src/generic/scrolwin.cpp
+++ b/src/generic/scrolwin.cpp
@@ -110,8 +110,14 @@ bool wxScrolledWindow::Create(wxWindow *parent,
 
     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()
@@ -640,12 +646,12 @@ void wxScrolledWindow::OnChar(wxKeyEvent& event)
     if( m_xScrollPixelsPerLine )
     {
         clix /= m_xScrollPixelsPerLine;
-	szx /= m_xScrollPixelsPerLine;
+        szx /= m_xScrollPixelsPerLine;
     }
     else
     {
         clix = 0;
-	szx = -1;
+        szx = -1;
     }
     if( m_yScrollPixelsPerLine )
     {
@@ -655,7 +661,7 @@ void wxScrolledWindow::OnChar(wxKeyEvent& event)
     else
     {
         cliy = 0;
-	szy = -1;
+        szy = -1;
     }
 
     int dsty;
diff --git a/wxBase.dsp b/wxBase.dsp
index e32e9a8b1f..dd38e46bd4 100644
--- a/wxBase.dsp
+++ b/wxBase.dsp
@@ -32,16 +32,16 @@ RSC=rc.exe
 
 # 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
@@ -55,16 +55,16 @@ LIB32=link.exe -lib
 
 # 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
@@ -86,6 +86,10 @@ SOURCE=.\src\common\appcmn.cpp
 # 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
@@ -94,6 +98,14 @@ SOURCE=.\src\common\datetime.cpp
 # 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
@@ -140,6 +152,18 @@ SOURCE=.\src\common\filesys.cpp
 # 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
@@ -152,6 +176,10 @@ SOURCE=.\src\common\intl.cpp
 # 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
@@ -168,7 +196,11 @@ SOURCE=.\src\msw\main.cpp
 # 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
 
@@ -176,10 +208,18 @@ SOURCE=.\src\common\module.cpp
 # 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
@@ -192,6 +232,10 @@ SOURCE=.\src\msw\registry.cpp
 # 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
@@ -224,6 +268,11 @@ SOURCE=.\src\common\txtstrm.cpp
 # 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
@@ -240,6 +289,10 @@ SOURCE=.\src\common\variant.cpp
 # 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
@@ -257,6 +310,14 @@ SOURCE=.\src\common\y_tab.c
 
 !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
-- 
2.47.2

