+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: wxmsw.tex
+%% Purpose: wxMSW and wxWinCE platform specific informations
+%% Author: wxWidgets Team
+%% Modified by:
+%% Created:
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets Team
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{wxMSW port}\label{wxmswport}
wxMSW is a port of wxWidgets for the Windows platforms
If the screen orientation changes, the windows will automatically be resized
so no further action needs to be taken (unless you want to change the layout
according to the orientation, which you could detect in idle time, for example).
-However, if the input panel (SIP) is shown, windows do not yet resize accordingly. This will
-be implemented soon.
+When input panel (SIP) is shown, top level windows (frames and dialogs) resize
+accordingly (see \helpref{wxTopLevelWindow::HandleSettingChange}{wxtoplevelwindowhandlesettingchange}).
\subsubsection{Closing top-level windows in wxWinCE}
not repeat an OK button on the dialog. You can add a Cancel button if necessary, but some dialogs
simply don't offer you the choice (the guidelines recommend you offer an Undo facility
to make up for it). When the user clicks on the OK button, your dialog will receive
-a wxID\_OK event by default. If you wish to change this, call wxDialog::SetAffirmativeId
-with the required identifier to be used. Or, override wxDialog::DoOK (return false to
+a wxID\_OK event by default. If you wish to change this, call \helpref{wxDialog::SetAffirmativeId}{wxdialogsetaffirmativeid}
+with the required identifier to be used. Or, override \helpref{wxDialog::DoOK}{wxdialogdook} (return false to
have wxWidgets simply call Close to dismiss the dialog).
Smartphone dialogs do {\it not} have an OK button on the caption, and are closed
-using one of the two menu buttons. You need to assign these using wxTopLevelWindow::SetLeftMenu
-and wxTopLevelWindow::SetRightMenu, for example:
+using one of the two menu buttons. You need to assign these using \helpref{wxTopLevelWindow::SetLeftMenu}{wxtoplevelwindowsetleftmenu}
+and \helpref{wxTopLevelWindow::SetRightMenu}{wxtoplevelwindowsetrightmenu}, for example:
\begin{verbatim}
#ifdef __SMARTPHONE__
defines this accelerator by default and if your application handles
wxID\_EXIT, it will do the right thing.
+\subsubsection{Context menus in wxWinCE}
+
+To enable context menus in PocketPC, you currently need to call wxWindow::EnableContextMenu,
+a wxWinCE-only function. Otherwise the context menu event (wxContextMenuEvent) will
+never be sent. This API is subject to change.
+
+Context menus are not supported in Smartphone.
+
\subsubsection{Control differences on wxWinCE}
These controls and styles are specific to wxWinCE:
\itemsep=0pt
\begin{itemize}
-\item {\bf wxCheckListBox} This can be implemented using a wxListCtrl in report mode
-with checked/unchecked images.
\item {\bf MDI classes} MDI is not supported under Windows CE.
\item {\bf wxMiniFrame} Not supported under Windows CE.
\end{itemize}
a known problem for PocketPC developers, and a wxFileDialog
replacement will need to be written.
+\subsubsection{Embedded Visual C++ Issues}
+
+\wxheading{Run-time type information}
+
+If you wish to use runtime type information (RTTI) with eVC++ 4, you need to download
+an extra library, {\tt ccrtrtti.lib}, and link with it. At the time of
+writing you can get it from here:
+
+\begin{verbatim}
+http://support.microsoft.com/kb/830482/en-us
+\end{verbatim}
+
+Otherwise you will get linker errors similar to this:
+
+\begin{verbatim}
+wxwince26d.lib(control.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_info@@6B@)
+\end{verbatim}
+
\subsubsection{Remaining issues}
These are some of the remaining problems to be sorted out, and features
the correct size on the emulator, but too small on a VGA Pocket Loox device.
\item {\bf wxStaticLine.} Lines don't show up, and the documentation suggests that
missing styles are implemented with WM\_PAINT.
-\item {\bf wxCheckListBox.} This class needs to be implemented in terms of a wxListCtrl
-in report mode, using icons for checkbox states. This is necessary because owner-draw listboxes
-are not supported on Windows CE.
\item {\bf wxFileDialog.} A more flexible dialog needs to be written (probably using wxGenericFileDialog)
that can access arbitrary locations.
\item {\bf HTML control.} PocketPC has its own HTML control which can be used for showing
\item {\bf Further abstraction.} We should be able to abstract away more of the differences
between desktop and mobile applications, in particular for sizer layout.
\end{itemize}
-