"", wxPoint(controlX, 1), wxSize(pointSizeW, pointSizeH), maxPointSize, pointSizes);
     delete[] pointSizes;
 
+#ifdef __WXGTK__
+    m_diagramToolBar->AddControl(m_pointSizeComboBox);
+#endif
+
     m_pointSizeComboBox->SetSelection(10 - 1);
 
     // Create a combobox for zooming
         "", wxPoint(controlX, 1), wxSize(zoomW, zoomH), noStrings, zoomStrings);
     delete[] zoomStrings;
 
+#ifdef __WXGTK__
+    m_diagramToolBar->AddControl(m_zoomComboBox);
+#endif
+
     // i = (zoom - minZoom)/increment
     // index = noStrings - i - 1
     // 100%
 
 docs/html/icons/*.gif
 docs/html/icons/*.png
 docs/html/icons/*.jpg
+docs/tech/*.txt
 
 src/makeenvs/*.env
 src/make.env
 
 <FONT size=-1>
 [<a href="#install">Install</a>]
 [<a href="#manuals">Manuals</a>]
+[<a href="#technotes">Technical Notes</a>]
 [<a href="#thirdparty">3rd party tools</a>] 
 [<a href="#samples">Samples</a>]
 [<a href="#demos">Demos</a>]
 
 </table>
 
+<h3 align=center><a name="technotes"><hr>Technical notes<hr></a></h3>
+
+<ul>
+<li><a href="tech/index.txt">Index of technical notes</a>
+<li><a href="tech/">Technical notes</a> in text form
+</ul>
 
 <h3 align=center><a name="thirdparty"><hr>Third-party tools<hr></a></h3>
 
 
 
 \wxheading{Constants}
 
-Global constant {\tt wxDefaultDateTime} and synonym for it {\tt
-wxInvalidDateTime} are defined. This constant will be different from any valid
+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}
+Time zone symbolic names:%\label{wxdatetimetimezones} % Sorry, labels not allowed here.
+
 
 \begin{verbatim}
     enum TZ
 
 \wxheading{See also}
 
-\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp
-\helpref{wxTimeSpan}{wxtimespan},\rtfsp
-\helpref{wxDateSpan}{wxdatespan},\rtfsp
+%\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp
+wxTimeSpan,\rtfsp
+wxDateSpan,\rtfsp
 \helpref{wxCalendarCtrl}{wxcalendarctrl}
 
 \latexignore{\rtfignore{\wxheading{Function groups}}}
 
 }}
 
-\membersection{wxDateTime::ConvertYearToBC}{wxdatetimeconvertyeartobc}
+\membersection{wxDateTime::ConvertYearToBC}\label{wxdatetimeconvertyeartobc}
 
-\func{static int}{ConvertYearToBC}(int year);
+\func{static int}{ConvertYearToBC}{\param{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,
     printf("The year is %d%s", wxDateTime::ConvertYearToBC(y), y > 0 ? "AD" : "BC");
 \end{verbatim}
 
-\membersection{wxDateTime::GetAmPmStrings}{wxdatetimegetampmstrings}
+\membersection{wxDateTime::GetAmPmStrings}\label{wxdatetimegetampmstrings}
 
 \func{static void}{GetAmPmStrings}{\param{wxString *}{am}, \param{wxString *}{pm}}
 
-\membersection{wxDateTime::GetBeginDST}{wxdatetimegetbegindst}
+\membersection{wxDateTime::GetBeginDST}\label{wxdatetimegetbegindst}
 
 \func{static wxDateTime}{GetBeginDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
 
-\membersection{wxDateTime::GetCountry}{wxdatetimegetcountry}
+\membersection{wxDateTime::GetCountry}\label{wxdatetimegetcountry}
 
 \func{static Country}{GetCountry}{\void}
 
-\membersection{wxDateTime::GetCurrentYear}{wxdatetimegetcurrentyear}
+\membersection{wxDateTime::GetCurrentYear}\label{wxdatetimegetcurrentyear}
 
 \func{static int}{GetCurrentYear}{\param{Calendar }{cal = Gregorian}}
 
-\membersection{wxDateTime::GetCurrentMonth}{wxdatetimegetcurrentmonth}
+\membersection{wxDateTime::GetCurrentMonth}\label{wxdatetimegetcurrentmonth}
 
 \func{static Month}{GetCurrentMonth}{\param{Calendar }{cal = Gregorian}}
 
-\membersection{wxDateTime::GetCentury}{wxdatetimegetcentury}
+\membersection{wxDateTime::GetCentury}\label{wxdatetimegetcentury}
 
 \func{static int}{GetCentury}{\param{int }{year = Inv\_Year}}
 
-\membersection{wxDateTime::GetEndDST}{wxdatetimegetenddst}
+\membersection{wxDateTime::GetEndDST}\label{wxdatetimegetenddst}
 
 \func{static wxDateTime}{GetEndDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
 
-\membersection{wxDateTime::GetMonthName}{wxdatetimegetmonthname}
+\membersection{wxDateTime::GetMonthName}\label{wxdatetimegetmonthname}
 
 \func{static wxString}{GetMonthName}{\param{Month }{month}, \param{NameFlags }{flags = Name\_Full}}
 
-\membersection{wxDateTime::GetNumberOfDays}{wxdatetimegetnumberofdays}
+\membersection{wxDateTime::GetNumberOfDays}\label{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}
+\membersection{wxDateTime::GetWeekDayName}\label{wxdatetimegetweekdayname}
 
 \func{static wxString}{GetWeekDayName}{\param{WeekDay }{weekday}, \param{NameFlags }{flags = Name\_Full}}
 
-\membersection{wxDateTime::IsLeapYear}{wxdatetimeisleapyear}
+\membersection{wxDateTime::IsLeapYear}\label{wxdatetimeisleapyear}
 
 \func{static bool}{IsLeapYear}{\param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}}
 
-\membersection{wxDateTime::IsWestEuropeanCountry}{wxdatetimeiswesteuropeancountry}
+\membersection{wxDateTime::IsWestEuropeanCountry}\label{wxdatetimeiswesteuropeancountry}
 
 \func{static bool}{IsWestEuropeanCountry}{\param{Country }{country = Country\_Default}}
 
-\membersection{wxDateTime::IsDSTApplicable}{wxdatetimeisdstapplicable}
+\membersection{wxDateTime::IsDSTApplicable}\label{wxdatetimeisdstapplicable}
 
 \func{static bool}{IsDSTApplicable}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
 
-\membersection{wxDateTime::Now}{wxdatetimenow}
+\membersection{wxDateTime::Now}\label{wxdatetimenow}
 
 \func{static wxDateTime}{Now}{\void}
 
-\membersection{wxDateTime::SetCountry}{wxdatetimesetcountry}
+\membersection{wxDateTime::SetCountry}\label{wxdatetimesetcountry}
 
 \func{static void}{SetCountry}{\param{Country }{country}}
 
-\membersection{wxDateTime::Today}{wxdatetimetoday}
+\membersection{wxDateTime::Today}\label{wxdatetimetoday}
 
 \func{static wxDateTime}{Today}{\void}
 
 
 Please note that despite deriving from wxScrolledWindow, scrolling is not enabled for this class under
 Windows.
 
-To switch wxGLCanvas support on under Windows, edit setup.h and set wxUSE\_GLCANVAS to 1.
+To switch wxGLCanvas support on under Windows, edit setup.h and set wxUSE\_GLCANVAS to 1. On Unix,
+pass --with-opengl to configure to compile using OpenGL or Mesa.
 
 \wxheading{Derived from}
 
 
 
 Pre/post decrement operator.
 
-% TODO document all other arithmetics operations: shitfs, multiplication,
+% TODO document all other arithmetics operations: shifts, multiplication,
 % division, bitwise, comparison
+
 
 \nocite{smart95a}%
 \nocite{smart95b}%
 
+\end{comment}
+
 \bibliography{refs}
 \addcontentsline{toc}{chapter}{Bibliography}
 \setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}%
 \setfooter{\thepage}{}{}{}{}{\thepage}%
-\end{comment}
 
 \newpage
 % Note: In RTF, the \printindex must come before the
 
 
 \constfunc{wxInputStream* }{GetInputStream}{\void}
 
-It returns a input stream correspoding to the output stream of the subprocess.
+It returns a output stream corresponding to the input stream of the subprocess. 
 If it is NULL, you have not turned on the redirection.
 See \helpref{wxProcess::Redirect}{wxprocessredirect}.
 
-\membersection{wxProcess::GetInputStream}\label{wxprocessgetinputstream}
+\membersection{wxProcess::GetOutputStream}\label{wxprocessgetoutputstream}
 
-\constfunc{wxInputStream* }{GetInputStream}{\void}
+\constfunc{wxOutputStream* }{GetOutputStream}{\void}
 
-It returns a output stream corresponding to the input stream of the subprocess. 
+It returns an output stream correspoding to the output stream of the subprocess.
 If it is NULL, you have not turned on the redirection.
 See \helpref{wxProcess::Redirect}{wxprocessredirect}.
 
 to catch the subprocess stdio. The caught input stream is returned by
 GetOutputStream() as a non-seekable stream. The caught output stream is returned
 by GetInputStream() as a non-seekable stream.
+
 
 in the socket parlance) for clients. For each incoming client, a new
 \helpref{wxSocketBase}{wxsocketbase} object is created, which represents
 the connection. Connections are independent from the server that created
-them, so they set up their own event handler, and stay awaiting for
+them, so they set up their own event handler, and stay awaiting for 
 {\bf wxSOCKET\_INPUT} (incoming data) or {\bf wxSOCKET\_LOST} (connection
 closed at the remote end) events. This event handler is the same for all
 connections, and demonstrates how to determine which socket the event
 
 \membersection{wxWindowDisabler::\destruct{wxWindowDisabler}}
 
 Reenables back the windows disabled by the constructor.
+
 
 [OPTIONS]
-BMROOT=L:\wxWindows\docs\latex\wx ; Assume that bitmaps are where the source is
+BMROOT=d:\wx2\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]
 
     // Separator spacing
     const int separatorSize = GetToolSeparation(); // 8;
     wxSize margins = GetToolMargins();
+    wxSize packing = GetToolPacking();
     int marginX = margins.x;
     int marginY = margins.y;
 
         switch ( tool->GetStyle() )
         {
             case wxTOOL_STYLE_CONTROL:
-                wxFAIL_MSG( _T("not implemented") );
+                wxControl* control = tool->GetControl();
+                wxSize sz = control->GetSize();
+                wxSize pos = control->GetPosition();
+                control->Move(currentX, pos.y);
+                currentX += sz.x + packing.x;
+
                 break;
 
             case wxTOOL_STYLE_SEPARATOR:
                                   XmNwidth, &width,
                                   XmNheight, & height,
                                   NULL);
-                    currentX += width + marginX;
+                    currentX += width + packing.x;
                     buttonHeight = wxMax(buttonHeight, height);
                 }