Fix various documentation problems.

See https://github.com/wxWidgets/wxWidgets/pull/2367
This commit is contained in:
Vadim Zeitlin
2021-05-31 15:16:43 +02:00
17 changed files with 193 additions and 221 deletions

View File

@@ -174,6 +174,12 @@ ALIASES += row3col{7}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7</td></tr>"
ALIASES += row3col{8}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8</td></tr>" ALIASES += row3col{8}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8</td></tr>"
ALIASES += row3col{9}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9</td></tr>" ALIASES += row3col{9}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9</td></tr>"
ALIASES += row3col{10}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10</td></tr>" ALIASES += row3col{10}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10</td></tr>"
ALIASES += row3col{11}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11</td></tr>"
ALIASES += row3col{12}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11,\12</td></tr>"
ALIASES += row3col{13}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13</td></tr>"
ALIASES += row3col{14}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14</td></tr>"
ALIASES += row3col{15}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14,\15</td></tr>"
ALIASES += row3col{16}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14,\15,\16</td></tr>"
ALIASES += hdr3col{3}="<tr><th>\1</th> <th>\2</th> <th>\3</th></tr>" ALIASES += hdr3col{3}="<tr><th>\1</th> <th>\2</th> <th>\3</th></tr>"
ALIASES += endTable="</table>" ALIASES += endTable="</table>"
@@ -194,7 +200,7 @@ ALIASES += itemdef{8}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4
ALIASES += itemdef{9}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9</td></tr>" ALIASES += itemdef{9}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9</td></tr>"
ALIASES += itemdef{10}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9,\10</td></tr>" ALIASES += itemdef{10}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9,\10</td></tr>"
ALIASES += endDefList="</table>" ALIASES += endDefList="</table>"
ALIASES += stock{3}="<tr><td><span class='itemdef'>\1</span></td> <td> @image html gtk-\2.png\n</td><td>\3</td></tr>" ALIASES += stock{3}="<tr><td><span class='itemdef'>\1</span></td> <td>\2</td> <td> @image html gtk-\3.png </td></tr>"
# Aliases for documenting wxPerl/wxPython-specific parts # Aliases for documenting wxPerl/wxPython-specific parts
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------

View File

@@ -19,79 +19,79 @@ automatically add stock bitmaps when using stock IDs.
Also note that you can retrieve stock bitmaps using wxArtProvider. Also note that you can retrieve stock bitmaps using wxArtProvider.
@beginDefList @beginDefList
@row3col{<b>Stock ID</b>, <b>GTK icon</b>, <b>Stock label</b>} @row3col{<b>Stock ID</b>, <b>Stock label</b>, <b>GTK icon</b>}
@stock{wxID_ABOUT,about,&About} @stock{wxID_ABOUT,&About,about}
@stock{wxID_ADD,add,Add} @stock{wxID_ADD,Add,add}
@stock{wxID_APPLY,apply,&Apply} @stock{wxID_APPLY,&Apply,apply}
@stock{wxID_BACKWARD,go-back-ltr,&Back} @stock{wxID_BACKWARD,&Back,go-back-ltr}
@stock{wxID_BOLD,bold,&Bold} @stock{wxID_BOLD,&Bold,bold}
@stock{wxID_BOTTOM,goto-bottom,&Bottom} @stock{wxID_BOTTOM,&Bottom,goto-bottom}
@stock{wxID_CANCEL,cancel,&Cancel} @stock{wxID_CANCEL,&Cancel,cancel}
@stock{wxID_CDROM,cdrom,&CD-ROM} @stock{wxID_CDROM,&CD-ROM,cdrom}
@stock{wxID_CLEAR,clear,&Clear} @stock{wxID_CLEAR,&Clear,clear}
@stock{wxID_CLOSE,close,&Close} @stock{wxID_CLOSE,&Close,close}
@stock{wxID_CONVERT,convert,&Convert} @stock{wxID_CONVERT,&Convert,convert}
@stock{wxID_COPY,copy,&Copy} @stock{wxID_COPY,&Copy,copy}
@stock{wxID_CUT,cut,Cu&t} @stock{wxID_CUT,Cu&t,cut}
@stock{wxID_DELETE,delete,&Delete} @stock{wxID_DELETE,&Delete,delete}
@stock{wxID_DOWN,go-down,&Down} @stock{wxID_DOWN,&Down,go-down}
@stock{wxID_EDIT,edit,&Edit} @stock{wxID_EDIT,&Edit,edit}
@stock{wxID_EXECUTE,execute,&Execute} @stock{wxID_EXECUTE,&Execute,execute}
@stock{wxID_EXIT,quit,&Quit} @stock{wxID_EXIT,&Quit,quit}
@stock{wxID_FILE,file,&File} @stock{wxID_FILE,&File,file}
@stock{wxID_FIND,find,&Find...} @stock{wxID_FIND,&Find...,find}
@stock{wxID_FIRST,goto-first-ltr,&First} @stock{wxID_FIRST,&First,goto-first-ltr}
@stock{wxID_FLOPPY,floppy,&Floppy} @stock{wxID_FLOPPY,&Floppy,floppy}
@stock{wxID_FORWARD,go-forward-ltr,&Forward} @stock{wxID_FORWARD,&Forward,go-forward-ltr}
@stock{wxID_HARDDISK,harddisk,&Harddisk} @stock{wxID_HARDDISK,&Harddisk,harddisk}
@stock{wxID_HELP,help,&Help} @stock{wxID_HELP,&Help,help}
@stock{wxID_HOME,home,&Home} @stock{wxID_HOME,&Home,home}
@stock{wxID_INDENT,indent-ltr,Indent} @stock{wxID_INDENT,Indent,indent-ltr}
@stock{wxID_INDEX,index,&Index} @stock{wxID_INDEX,&Index,index}
@stock{wxID_INFO,info,&Info} @stock{wxID_INFO,&Info,info}
@stock{wxID_ITALIC,italic,&Italic} @stock{wxID_ITALIC,&Italic,italic}
@stock{wxID_JUMP_TO,jump-to-ltr,&Jump to} @stock{wxID_JUMP_TO,&Jump to,jump-to-ltr}
@stock{wxID_JUSTIFY_CENTER,justify-center,Centered} @stock{wxID_JUSTIFY_CENTER,Centered,justify-center}
@stock{wxID_JUSTIFY_FILL,justify-fill,Justified} @stock{wxID_JUSTIFY_FILL,Justified,justify-fill}
@stock{wxID_JUSTIFY_LEFT,justify-left,Align Left} @stock{wxID_JUSTIFY_LEFT,Align Left,justify-left}
@stock{wxID_JUSTIFY_RIGHT,justify-right,Align Right} @stock{wxID_JUSTIFY_RIGHT,Align Right,justify-right}
@stock{wxID_LAST,goto-last-ltr,&Last} @stock{wxID_LAST,&Last,goto-last-ltr}
@stock{wxID_NETWORK,network,&Network} @stock{wxID_NETWORK,&Network,network}
@stock{wxID_NEW,new,&New} @stock{wxID_NEW,&New,new}
@stock{wxID_NO,no,&No} @stock{wxID_NO,&No,no}
@stock{wxID_OK,ok,&OK} @stock{wxID_OK,&OK,ok}
@stock{wxID_OPEN,open,&Open...} @stock{wxID_OPEN,&Open...,open}
@stock{wxID_PASTE,paste,&Paste} @stock{wxID_PASTE,&Paste,paste}
@stock{wxID_PREFERENCES,preferences,&Preferences} @stock{wxID_PREFERENCES,&Preferences,preferences}
@stock{wxID_PREVIEW,print-preview,Print previe&w} @stock{wxID_PREVIEW,Print previe&w,print-preview}
@stock{wxID_PRINT,print,&Print...} @stock{wxID_PRINT,&Print...,print}
@stock{wxID_PROPERTIES,properties,&Properties} @stock{wxID_PROPERTIES,&Properties,properties}
@stock{wxID_REDO,redo-ltr,&Redo} @stock{wxID_REDO,&Redo,redo-ltr}
@stock{wxID_REFRESH,refresh,Refresh} @stock{wxID_REFRESH,Refresh,refresh}
@stock{wxID_REMOVE,remove,Remove} @stock{wxID_REMOVE,Remove,remove}
@stock{wxID_REPLACE,find-and-replace,Rep&lace...} @stock{wxID_REPLACE,Rep&lace...,find-and-replace}
@stock{wxID_REVERT_TO_SAVED,revert-to-saved-ltr,Revert to Saved} @stock{wxID_REVERT_TO_SAVED,Revert to Saved,revert-to-saved-ltr}
@stock{wxID_SAVE,save,&Save} @stock{wxID_SAVE,&Save,save}
@stock{wxID_SAVEAS,save-as,Save &As...} @stock{wxID_SAVEAS,Save &As...,save-as}
@stock{wxID_SELECTALL,select-all,Select &All} @stock{wxID_SELECTALL,Select &All,select-all}
@stock{wxID_SELECT_COLOR,select-color,&Color} @stock{wxID_SELECT_COLOR,&Color,select-color}
@stock{wxID_SELECT_FONT,select-font,&Font} @stock{wxID_SELECT_FONT,&Font,select-font}
@stock{wxID_SORT_ASCENDING,sort-ascending,&Ascending} @stock{wxID_SORT_ASCENDING,&Ascending,sort-ascending}
@stock{wxID_SORT_DESCENDING,sort-descending,&Descending} @stock{wxID_SORT_DESCENDING,&Descending,sort-descending}
@stock{wxID_SPELL_CHECK,spell-check,&Spell Check} @stock{wxID_SPELL_CHECK,&Spell Check,spell-check}
@stock{wxID_STOP,stop,&Stop} @stock{wxID_STOP,&Stop,stop}
@stock{wxID_STRIKETHROUGH,strikethrough,&Strikethrough} @stock{wxID_STRIKETHROUGH,&Strikethrough,strikethrough}
@stock{wxID_TOP,goto-top,&Top} @stock{wxID_TOP,&Top,goto-top}
@stock{wxID_UNDELETE,undelete-ltr,Undelete} @stock{wxID_UNDELETE,Undelete,undelete-ltr}
@stock{wxID_UNDERLINE,underline,&Underline} @stock{wxID_UNDERLINE,&Underline,underline}
@stock{wxID_UNDO,undo-ltr,&Undo} @stock{wxID_UNDO,&Undo,undo-ltr}
@stock{wxID_UNINDENT,unindent-ltr,&Unindent} @stock{wxID_UNINDENT,&Unindent,unindent-ltr}
@stock{wxID_UP,go-up,&Up} @stock{wxID_UP,&Up,go-up}
@stock{wxID_YES,yes,&Yes} @stock{wxID_YES,&Yes,yes}
@stock{wxID_ZOOM_100,zoom-100,&Actual Size} @stock{wxID_ZOOM_100,&Actual Size,zoom-100}
@stock{wxID_ZOOM_FIT,zoom-fit,Zoom to &Fit} @stock{wxID_ZOOM_FIT,Zoom to &Fit,zoom-fit}
@stock{wxID_ZOOM_IN,zoom-in,Zoom &In} @stock{wxID_ZOOM_IN,Zoom &In,zoom-in}
@stock{wxID_ZOOM_OUT,zoom-out,Zoom &Out} @stock{wxID_ZOOM_OUT,Zoom &Out,zoom-out}
@endDefList @endDefList
Note that some of the IDs listed above also have a stock accelerator and an Note that some of the IDs listed above also have a stock accelerator and an

View File

@@ -276,7 +276,7 @@ library:
@itemdef{wxUSE_LIBSDL, Use SDL for wxSound implementation.} @itemdef{wxUSE_LIBSDL, Use SDL for wxSound implementation.}
@itemdef{wxUSE_PLUGINS, See also wxUSE_LIBSDL.} @itemdef{wxUSE_PLUGINS, See also wxUSE_LIBSDL.}
@itemdef{wxUSE_UNIX, Enabled on Unix Platform.} @itemdef{wxUSE_UNIX, Enabled on Unix Platform.}
@itemdef(wxUSE_XTEST, Use XTest extension.} @itemdef{wxUSE_XTEST, Use XTest extension.}
@endDefList @endDefList
@@ -327,7 +327,7 @@ library:
@itemdef{wxUSE_DC_CACHEING, cache temporary wxDC objects.} @itemdef{wxUSE_DC_CACHEING, cache temporary wxDC objects.}
@itemdef{wxUSE_DDE_FOR_IPC, See wx/ipc.h file.} @itemdef{wxUSE_DDE_FOR_IPC, See wx/ipc.h file.}
@itemdef{wxUSE_DPI_AWARE_MANIFEST, Set the DPI awareness of the application @itemdef{wxUSE_DPI_AWARE_MANIFEST, Set the DPI awareness of the application
(0=none, 1=system, 2=per-monitor. Used by CMake and when wxUSE_RC_MANIFEST is enabled.} (0=none, 1=system, 2=per-monitor). Used by CMake and when wxUSE_RC_MANIFEST is enabled.}
@itemdef{wxUSE_ENH_METAFILE, Use wxEnhMetaFile.} @itemdef{wxUSE_ENH_METAFILE, Use wxEnhMetaFile.}
@itemdef{wxUSE_HOTKEY, Use wxWindow::RegisterHotKey() and wxWindow::UnregisterHotKey} @itemdef{wxUSE_HOTKEY, Use wxWindow::RegisterHotKey() and wxWindow::UnregisterHotKey}
@itemdef{wxUSE_INKEDIT, Use InkEdit library. Related to Tablet PCs.} @itemdef{wxUSE_INKEDIT, Use InkEdit library. Related to Tablet PCs.}

View File

@@ -187,7 +187,7 @@ e.g. if you use `AC_CONFIG_MACRO_DIRS([m4])`).
For applications using Microsoft Visual Studio IDE, simply add the provided For applications using Microsoft Visual Studio IDE, simply add the provided
`wxwidgets.props` property sheet file to your project as explained in the `wxwidgets.props` property sheet file to your project as explained in the
[instructions](@ref #msw_build_apps) and build the project as usual. [instructions](@ref msw_build_apps) and build the project as usual.
### Other IDEs ### Other IDEs
@@ -202,4 +202,4 @@ If you use another IDE, under Unix you should run `wx-config --cxxflags` and
`wx-config --libs` commands separately and copy-and-paste their output to the `wx-config --libs` commands separately and copy-and-paste their output to the
"Additional preprocessor options" and "Additional linker options" fields in "Additional preprocessor options" and "Additional linker options" fields in
your IDE, respectively. Under MSW systems you need to configure the IDE using your IDE, respectively. Under MSW systems you need to configure the IDE using
the instructions in the ["manual setup"](@ref #msw_build_apps) section. the instructions in the ["manual setup"](@ref msw_build_apps) section.

View File

@@ -6,31 +6,31 @@ wxQT uses the same techniques like other ports to wrap the Qt toolkit classes in
### Current (original) Approach ### Current (original) Approach
An '''internal pointer m_qtWindow''' in wxWindow holds the reference to the QWidget (or derived) counterpart, and is accessible through the virtual method '''GetHandle'''. An internal pointer `m_qtWindow` in wxWindow holds the reference to the QWidget (or derived) counterpart, and is accessible through the virtual method `GetHandle`.
This pointer and other window styles are set up in the '''PostCreation''' method that must be called by the derived classes (mostly controls) to initialize the widget correctly. This pointer and other window styles are set up in the `PostCreation` method that must be called by the derived classes (mostly controls) to initialize the widget correctly.
Not doing so will cause painting and deletion issues, as the base class will not know how to handle the Qt widget. Not doing so will cause painting and deletion issues, as the base class will not know how to handle the Qt widget.
wxControl even provides a protected method '''QtCreateControl''' that will do the common initialization (including post creation step, moving, sizing, etc., and calling the base to add the child to the parent). wxControl even provides a protected method `QtCreateControl` that will do the common initialization (including post creation step, moving, sizing, etc., and calling the base to add the child to the parent).
'''Warning:''' Take care of not calling any function that can raise an assertion before `PostCreation`, for example wxFAIL_MSG, as it will interrupt the normal initialization, hence the later cleanup will crash. **Warning**: Take care of not calling any function that can raise an assertion before `PostCreation`, for example wxFAIL_MSG, as it will interrupt the normal initialization, hence the later cleanup will crash.
For example, this issue was caused by WXValidateStyle in wxCheckBox::Create, that was "failing silently" in unit tests, and then raising segmentation faults when the object was later deleted (as Qt checkbox counterpart was never being deleted due the aborted initialization). For example, this issue was caused by WXValidateStyle in wxCheckBox::Create, that was "failing silently" in unit tests, and then raising segmentation faults when the object was later deleted (as Qt checkbox counterpart was never being deleted due the aborted initialization).
Many controls have also other pointers to allow to map different sub-widgets and other features. Many controls have also other pointers to allow to map different sub-widgets and other features.
### New (tentative) Approach ### New (tentative) Approach
In the other end, Top Level Windows (frames and dialogs) '''uses directly the internal window pointer''', doing a static cast to return the correct type for GetHandle, avoiding multilevel pointer hierarchies. In the other end, Top Level Windows (frames and dialogs) uses directly the internal window pointer, doing a static cast to return the correct type for GetHandle, avoiding multilevel pointer hierarchies.
This would be the ideal solution, but not all classes could be mapped 1:1 and that could introduce potential issues (i.e. invalid static casts) and more boilerplate due to additional specific accessor methods. This would be the ideal solution, but not all classes could be mapped 1:1 and that could introduce potential issues (i.e. invalid static casts) and more boilerplate due to additional specific accessor methods.
For a longer discussion of pro and cons, see [PR#43 comments](https://github.com/reingart/wxWidgets/pull/43) For a longer discussion of pro and cons, see [PR#43 comments](https://github.com/reingart/wxWidgets/pull/43)
Note that some special cases are '''not real windows''' like the `wxTabFrame` (AUI), so they don't set the internal pointer and hence drawing methods should not be used at all. Note that some special cases are not real windows like the `wxTabFrame` (AUI), so they don't set the internal pointer and hence drawing methods should not be used at all.
### Scroll Areas ### Scroll Areas
In both approaches, special care should be taken with scrolling areas, as Qt manages this ones slightly different to wxWidgets. In both approaches, special care should be taken with scrolling areas, as Qt manages this ones slightly different to wxWidgets.
'''QtGetScrollBarsContainer''' should be reimplemented to return the QScrollArea widget or similar (where the scroll bars are places). `QtGetScrollBarsContainer` should be reimplemented to return the QScrollArea widget or similar (where the scroll bars are places).
That widget should implement a '''viewport()''' (Qt idiom to differentiate the draw-able area). That widget should implement a `viewport()` (Qt idiom to differentiate the draw-able area).
Attempts to paint directly to the scroll area itself will fail. Attempts to paint directly to the scroll area itself will fail.
This is already handled in the QtHandlePaintEvent wxWindowQt method. This is already handled in the QtHandlePaintEvent wxWindowQt method.
@@ -47,15 +47,15 @@ Many wxWidgets classes maps 1:1 to Qt ones, but there are some exceptions are (1
### Private helpers ### Private helpers
Qt objects needs to be sub-classed to '''re-implement events''' and '''connect signals''' (more info in [wx-dev forum](https://groups.google.com/d/msg/wx-dev/UpkJMnT3V2o/hIoJwT3qpw4J)): Qt objects needs to be sub-classed to re-implement events and connect signals (more info in [wx-dev forum](https://groups.google.com/d/msg/wx-dev/UpkJMnT3V2o/hIoJwT3qpw4J)):
* Qt events are just virtual methods that needs to be overridden by the derived classes to handle them * Qt events are just virtual methods that needs to be overridden by the derived classes to handle them
* Qt signals can be connected to QObject members or simple functions (thanks to Qt5 new signal slot syntax) * Qt signals can be connected to QObject members or simple functions (thanks to Qt5 new signal slot syntax)
The approach chosen was to use templates to help inherit QObject's (QWidget), providing a common base to handle events and signal infrastructure: The approach chosen was to use templates to help inherit QObject's (QWidget), providing a common base to handle events and signal infrastructure:
* '''wxQtSignalHandler< wxWindow >:''' allows emitting wx events for Qt events & signals. This should be used used for all QObjects derivatives that are not widgets, for example QAction (used for shortcut / accelerators). * `wxQtSignalHandler< wxWindow >`: allows emitting wx events for Qt events & signals. This should be used used for all QObjects derivatives that are not widgets, for example QAction (used for shortcut / accelerators).
* '''wxQtEventSignalHandler< QWidget, wxWindow >:''' derived from `wxQtSignalHandler`, also handles basic events (change, focus, mouse, keyboard, paint, close, etc.). This should be used for all QWidget derivatives (controls, top level windows, etc.) * `wxQtEventSignalHandler< QWidget, wxWindow >`: derived from `wxQtSignalHandler`, also handles basic events (change, focus, mouse, keyboard, paint, close, etc.). This should be used for all QWidget derivatives (controls, top level windows, etc.)
### Delete later ### Delete later
@@ -63,7 +63,7 @@ Both templates also have some safety checks to avoid invalid spurious access to
This is due that in some situations, Qt object could still be referenced in the Qt event queue, so it cannot be removed immediately. This is due that in some situations, Qt object could still be referenced in the Qt event queue, so it cannot be removed immediately.
'''Important:''' Currently wxQT is using Qt's '''deleteLater''' method to avoid this kind of issues. **Important**: Currently wxQT is using Qt's `deleteLater` method to avoid this kind of issues.
Please, don't use delete directly except you're confident it will not cause faults or other issues. Please, don't use delete directly except you're confident it will not cause faults or other issues.
Note that no public wxWidget class should be derived directly from QWidget as they could have different lifespans and other implications to run time type systems (RTTI). Note that no public wxWidget class should be derived directly from QWidget as they could have different lifespans and other implications to run time type systems (RTTI).
@@ -78,7 +78,7 @@ wxQT follows the same conventions used in other wxWidgets ports:
* Source code is inside src/qt folder * Source code is inside src/qt folder
* Headers are inside include/qt folder * Headers are inside include/qt folder
There are also some __WXQT__ guards to enable special features in common / generic code (i.e. event loop, graphic renders, grid) There are also some `__WXQT__` guards to enable special features in common / generic code (i.e. event loop, graphic renders, grid)
Although some Qt headers are included in public wx headers, this dependencies should be avoided as this could change in the future (decoupling completely the public wxQT headers from Qt). Although some Qt headers are included in public wx headers, this dependencies should be avoided as this could change in the future (decoupling completely the public wxQT headers from Qt).
@@ -92,7 +92,7 @@ Private headers should be include/qt/private, currently they hold:
To add a Qt derived class simply put it in a .h file and add the corresponding .cpp file to the build/bakefiles/files.bkl e.g.: To add a Qt derived class simply put it in a .h file and add the corresponding .cpp file to the build/bakefiles/files.bkl e.g.:
```
<set var="QT_LOWLEVEL_HDR" hints="files"> <set var="QT_LOWLEVEL_HDR" hints="files">
wx/qt/menuitem.h wx/qt/menuitem.h
</set> </set>
@@ -100,23 +100,17 @@ To add a Qt derived class simply put it in a .h file and add the corresponding .
<set var="QT_LOWLEVEL_SRC" hints="files"> <set var="QT_LOWLEVEL_SRC" hints="files">
src/qt/menuitem.cpp src/qt/menuitem.cpp
</set> </set>
```
From within of the bakefiles directory, regenerate the autoconf files with: From within of the bakefiles directory, regenerate the autoconf files with:
```
bakefile_gen --formats autoconf bakefile_gen --formats autoconf
```
Generate the 'configure' script in your wxQt root directory with: Generate the 'configure' script in your wxQt root directory with:
```
autoconf autoconf
```
'''IMPORTANT NOTE''': The precompilation step (Qt's moc) is no more needed so the build rule was removed. There is no need to use Q_OBJECT nor Q_SLOTS macros. **IMPORTANT NOTE**: The precompilation step (Qt's moc) is no more needed so the build rule was removed. There is no need to use `Q_OBJECT` nor `Q_SLOTS` macros.
```
// include/wx/qt/menuitem.h // include/wx/qt/menuitem.h
class wxMenuItem : public wxMenuItemBase class wxMenuItem : public wxMenuItemBase
@@ -135,31 +129,26 @@ private:
private: private:
wxMenuItem *m_menuItem; wxMenuItem *m_menuItem;
}; };
```
### Coding guidelines ### Coding guidelines
* If you leave out an implementation for whatever reason, then mark it with the wxMISSING_IMPLEMENTATION() macro from wx/qt/utils.h i.e.: * If you leave out an implementation for whatever reason, then mark it with the wxMISSING_IMPLEMENTATION() macro from wx/qt/utils.h i.e.:
```
void wxSomeClass::SomeMethod() void wxSomeClass::SomeMethod()
{ {
wxMISSING_IMPLEMENTATION( __FUNCTION__ ); wxMISSING_IMPLEMENTATION( __FUNCTION__ );
} }
```
or if only some implementation is missing like evaluating flags: or if only some implementation is missing like evaluating flags:
```
void wxSomeClass::SomeMethod( unsigned methodFlags ) void wxSomeClass::SomeMethod( unsigned methodFlags )
{ {
wxMISSING_IMPLEMENTATION( "methodFlags" ); wxMISSING_IMPLEMENTATION( "methodFlags" );
} }
```
* To avoid name clashes with a 3rd party library like boost, and due precompilation step was removed, don't use the internal moc keywords 'signals' and 'slots' nor 'SIGNAL' / 'SLOT' macros for 'connect'. Instead, use the '''"New Signal Slot Qt syntax"''': * To avoid name clashes with a 3rd party library like boost, and due precompilation step was removed, don't use the internal moc keywords `signals` and `slots` nor `SIGNAL` / `SLOT` macros for `connect`. Instead, use the "New Signal Slot Qt syntax":
```
class wxQtClass : public QObject class wxQtClass : public QObject
{ {
wxQtClass(): QObject() wxQtClass(): QObject()
@@ -169,23 +158,19 @@ class wxQtClass : public QObject
private: // "signal slots": private: // "signal slots":
void objectNameChanged(); void objectNameChanged();
}; };
```
### Naming conventions ### Naming conventions
* Global helper classes and global functions should be prefixed with ''''wxQt'''' i.e.: * Global helper classes and global functions should be prefixed with `wxQt` i.e.:
```
class wxQtButton : public QPushButton class wxQtButton : public QPushButton
{ {
} }
QRect wxQtConvertRect( const wxRect & ); QRect wxQtConvertRect( const wxRect & );
```
* Public wxWidgets Qt classes should not use any prefix or suffix, except for special cases, for example: * Public wxWidgets Qt classes should not use any prefix or suffix, except for special cases, for example:
```
// no prefix/suffix in most clases: // no prefix/suffix in most clases:
class wxButton : public wxButtonBase; class wxButton : public wxButtonBase;
@@ -199,20 +184,16 @@ class wxSpinCtrlQt : public wxSpinCtrlBase; // (not a wxQt helper)
// prefix for consistency with other ports: // prefix for consistency with other ports:
class wxQtDCImpl : public wxDCImpl; // with wxMSWDCImpl, wxGTKDCImpl class wxQtDCImpl : public wxDCImpl; // with wxMSWDCImpl, wxGTKDCImpl
``` * Internal methods in publicly visible classes (like wxWindowQt) should be prefixed with `Qt` i.e.:
* Internal methods in publicly visible classes (like wxWindowQt) should be prefixed with ''''Qt'''' i.e.:
```
class wxWindowQt : public wxWindowBase class wxWindowQt : public wxWindowBase
{ {
public: public:
QWidget *QtGetContainer() const; QWidget *QtGetContainer() const;
}; };
```
* Internal private instance variables (like in wxWindowQt) should be prefixed with ''''m_qt'''' i.e.: * Internal private instance variables (like in wxWindowQt) should be prefixed with `'m_qt` i.e.:
```
class wxWindow : public wxWindowBase class wxWindow : public wxWindowBase
{ {
private: private:
@@ -221,11 +202,9 @@ private:
QPicture *m_qtPicture; QPicture *m_qtPicture;
QPainter *m_qtPainter; QPainter *m_qtPainter;
}; };
```
* Qt derived names should use mixedCase (in helper methods, for example for 'clicked' signal, following the original Qt name), but wx methods should be CamelCase (i.e. 'Emit'): * Qt derived names should use mixedCase (in helper methods, for example for `clicked` signal, following the original Qt name), but wx methods should be CamelCase (i.e. `Emit`):
```
void wxQtPushButton::clicked( bool WXUNUSED(checked) ) void wxQtPushButton::clicked( bool WXUNUSED(checked) )
{ {
wxAnyButton *handler = GetHandler(); wxAnyButton *handler = GetHandler();
@@ -235,5 +214,3 @@ void wxQtPushButton::clicked( bool WXUNUSED(checked) )
EmitEvent( event ); EmitEvent( event );
} }
} }
```

View File

@@ -16,7 +16,7 @@ IMPORTANT NOTE:
example: wxX11 2.8.0, gcc 2.95.4, Redhat 6.2 example: wxX11 2.8.0, gcc 2.95.4, Redhat 6.2
First steps {#x11_first_steps} First steps {#x11_first_steps}
----------- ===========
- Download wxX11-x.y.z.tgz, where x.y.z is the version number. - Download wxX11-x.y.z.tgz, where x.y.z is the version number.
Download documentation in a preferred format, such as Download documentation in a preferred format, such as

View File

@@ -9,9 +9,8 @@
/** /**
Flags for wxColour -> wxString conversion (see wxColour::GetAsString). Flags for wxColour -> wxString conversion (see wxColour::GetAsString).
@{
*/ */
//@{
enum { enum {
wxC2S_NAME = 1, // return colour name, when possible wxC2S_NAME = 1, // return colour name, when possible
wxC2S_CSS_SYNTAX = 2, // return colour in rgb(r,g,b) syntax wxC2S_CSS_SYNTAX = 2, // return colour in rgb(r,g,b) syntax

View File

@@ -18,8 +18,6 @@
void wxAbort(); void wxAbort();
/** /**
@def wxDEBUG_LEVEL
Preprocessor symbol defining the level of debug support available. Preprocessor symbol defining the level of debug support available.
This symbol is defined to 1 by default meaning that asserts are compiled in This symbol is defined to 1 by default meaning that asserts are compiled in
@@ -40,8 +38,6 @@ void wxAbort();
#define wxDEBUG_LEVEL #define wxDEBUG_LEVEL
/** /**
@def __WXDEBUG__
Compatibility macro indicating presence of debug support. Compatibility macro indicating presence of debug support.
This symbol is defined if wxDEBUG_LEVEL is greater than 0 and undefined This symbol is defined if wxDEBUG_LEVEL is greater than 0 and undefined
@@ -275,8 +271,6 @@ typedef void (*wxAssertHandler_t)(const wxString& file,
void wxDisableAsserts(); void wxDisableAsserts();
/** /**
@def wxDISABLE_ASSERTS_IN_RELEASE_BUILD
Use this macro to disable asserts in release build when not using Use this macro to disable asserts in release build when not using
wxIMPLEMENT_APP(). wxIMPLEMENT_APP().

View File

@@ -47,7 +47,7 @@ const char wxDirDialogNameStr[] = "wxDirCtrl";
@style{wxDD_CHANGE_DIR} @style{wxDD_CHANGE_DIR}
Change the current working directory to the directory chosen by the Change the current working directory to the directory chosen by the
user. user.
@note This flag cannot be used with the @c wxDD_MULTIPLE style. This flag cannot be used with the @c wxDD_MULTIPLE style.
@style{wxDD_MULTIPLE} @style{wxDD_MULTIPLE}
Allow the user to select multiple directories. Allow the user to select multiple directories.
This flag is only available since wxWidgets 3.1.4 This flag is only available since wxWidgets 3.1.4

View File

@@ -91,9 +91,6 @@ public:
Initial size. Initial size.
@param name @param name
Control name. Control name.
@return @true if the control was successfully created or @false if
creation failed.
*/ */
wxFileCtrl(wxWindow* parent, wxWindowID id, wxFileCtrl(wxWindow* parent, wxWindowID id,
@@ -107,6 +104,9 @@ public:
/** /**
Create function for two-step construction. See wxFileCtrl() for details. Create function for two-step construction. See wxFileCtrl() for details.
@return @true if the control was successfully created or @false if
creation failed.
*/ */
bool Create(wxWindow* parent, wxWindowID id, bool Create(wxWindow* parent, wxWindowID id,
const wxString& defaultDirectory = wxEmptyString, const wxString& defaultDirectory = wxEmptyString,

View File

@@ -58,7 +58,6 @@
Windows 7 and later and the dock icon under macOS, ignored under Windows 7 and later and the dock icon under macOS, ignored under
the other platforms. the other platforms.
This flag is only available in wxWidgets 3.1.0 and later. This flag is only available in wxWidgets 3.1.0 and later.
@endStyleTable @endStyleTable
@library{wxcore} @library{wxcore}

View File

@@ -350,7 +350,7 @@ public:
@since 3.1.4 @since 3.1.4
*/ */
virtual void MSWSetTabStops(const wxVector<int>& tabStops); virtual bool MSWSetTabStops(const wxVector<int>& tabStops);
// NOTE: Phoenix needs to see the implementation of pure virtuals so it // NOTE: Phoenix needs to see the implementation of pure virtuals so it
// knows that this class is not abstract. // knows that this class is not abstract.

View File

@@ -151,7 +151,7 @@ enum
2.8 was removed in wxWidgets 3.1, meaning for wxWidgets 3.1+ wxOSX uses the generic 2.8 was removed in wxWidgets 3.1, meaning for wxWidgets 3.1+ wxOSX uses the generic
implementation for all modes. implementation for all modes.
@subsection column_order Column Ordering @section column_order Column Ordering
By default, the columns of a list control appear on the screen in order By default, the columns of a list control appear on the screen in order
of their indices, i.e. column 0 appears first, then column 1 next, of their indices, i.e. column 0 appears first, then column 1 next,

View File

@@ -952,7 +952,7 @@ public:
@return @return
@true if the command was handled, @false otherwise. @true if the command was handled, @false otherwise.
@onlyfor{wxMSW} @onlyfor{wxmsw}
@since 3.1.5 @since 3.1.5
*/ */

View File

@@ -192,7 +192,6 @@ public:
*/ */
wxPenInfo& HighQuality(); wxPenInfo& HighQuality();
wxPenInfo& LowQuality();
wxColour GetColour() const; wxColour GetColour() const;
wxBitmap GetStipple() const; wxBitmap GetStipple() const;
wxPenStyle GetStyle() const; wxPenStyle GetStyle() const;

View File

@@ -309,7 +309,7 @@ public:
WebKit on macOS and GTK. This allows the correct viewing of complex pages with WebKit on macOS and GTK. This allows the correct viewing of complex pages with
JavaScript and CSS. JavaScript and CSS.
@section descriptions Backend Descriptions @section backend_descriptions Backend Descriptions
This class supports using multiple backends, corresponding to different This class supports using multiple backends, corresponding to different
implementations of the same functionality. Under macOS and Unix platforms implementations of the same functionality. Under macOS and Unix platforms
@@ -771,8 +771,8 @@ public:
Add a script message handler with the given name. Add a script message handler with the given name.
To use the script message handler from javascript use To use the script message handler from javascript use
@c window.<name>.postMessage(<messageBody>) where <name> corresponds the value @c `window.<name>.postMessage(<messageBody>)` where `<name>` corresponds the value
of the name parameter. The <messageBody> will be available to the application of the name parameter. The `<messageBody>` will be available to the application
via a @c wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED event. via a @c wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED event.
Sample C++ code receiving a script message: Sample C++ code receiving a script message:

View File

@@ -50,8 +50,6 @@ public:
The first of the range of IDs to unreserve. The first of the range of IDs to unreserve.
@param count @param count
The number of sequential IDs to unreserve. The number of sequential IDs to unreserve.
@return The value of the first ID in the sequence, or wxID_NONE.
*/ */
static void UnreserveId(wxWindowID id, int count = 1); static void UnreserveId(wxWindowID id, int count = 1);
}; };