Remove all trailing spaces

No real changes, just clean up sources by removing trailing spaces from
all the non-generated files.

This should hopefully avoid future commits mixing significant changes
with insignificant whitespace ones.
This commit is contained in:
Vadim Zeitlin
2019-01-30 17:28:08 +01:00
parent ae94f4da9c
commit 8fbca5cb70
320 changed files with 1611 additions and 1611 deletions

View File

@@ -733,10 +733,10 @@ All (GUI):
- Support hexadecimal numbers in wxSpinCtrl.
- Respect window max size in wxBoxSizer (Nathan Ridge).
- Add support for searching in wxWebView for MSW and GTK (Allonii).
- Add generic wxFileSystem support to wxWebView with
- Add generic wxFileSystem support to wxWebView with
wxWebViewFSHandler (Nick Matthews).
- Add possibility to disable context menu in wxWebView.
- Add ability to register custom wxWebView backends using
- Add ability to register custom wxWebView backends using
wxWebView::RegisterFactory and a wxWebViewFactory derived class.
- Add possibility to hide and show again wxRibbonBar pages (wxBen).
- Add wxRibbonBar pages highlighting (wxBen).

View File

@@ -10,7 +10,7 @@
@defgroup group_class_webview WebView
@ingroup group_class
The wxWebView library is a set of classes for viewing complex web documents and
The wxWebView library is a set of classes for viewing complex web documents and
for internet browsing. It is built around a series of backends, and exposes
common functions for them.

View File

@@ -19,7 +19,7 @@ and keep in mind that the wxWidgets function takes as last parameter the
locale which should be internally used for locale-dependent operations.
Last, note that when the @c wxHAS_XLOCALE_SUPPORT symbol is not defined,
then wxWidgets will provide implementations of these functions itself
then wxWidgets will provide implementations of these functions itself
and that they are not granted to be thread-safe (and they will work only with the
C locale; see @ref xlocale_avail).

View File

@@ -29,7 +29,7 @@ identifiers are all in the range between @c wxID_LOWEST and
@c wxID_HIGHEST and, accordingly, the user code should avoid defining its
own constants in this range (e.g. by using wxNewId()).
Refer to @ref page_stockitems "the list of stock items" for the subset of standard IDs
Refer to @ref page_stockitems "the list of stock items" for the subset of standard IDs
which are stock IDs as well.
*/

View File

@@ -103,7 +103,7 @@ without express or implied warranty.
@verbinclude "lgpl.txt"
@page page_copyright_xserver The Open Group and DEC License
@verbinclude "xserver.txt"
*/

View File

@@ -914,7 +914,7 @@ control.
The wxWebView sample demonstarates the various capabilities of the wxWebView
control. It is set up as a simple single window web browser, but with support
for many of the more complex wxWebView features, including browsing through
for many of the more complex wxWebView features, including browsing through
archives.
@sampledir{webview}

View File

@@ -21,7 +21,7 @@ debugging. Both assertions and debug logging are also used by wxWidgets itself
so you may encounter them even if you don't use either of these features
yourself.
@see wxLog, @ref group_funcmacro_log, @ref group_funcmacro_debug
@see wxLog, @ref group_funcmacro_log, @ref group_funcmacro_debug

View File

@@ -86,7 +86,7 @@ use Wx ':docview'; # import constants (optional)
@endcode
@endWxPerlOnly
@see @ref group_class_docview,
@see @ref group_class_docview,

View File

@@ -614,7 +614,7 @@ custom event types.
Finally, you will need to generate and post your custom events.
Generation is as simple as instancing your custom event class and initializing
its internal fields.
For posting events to a certain event handler there are two possibilities:
For posting events to a certain event handler there are two possibilities:
using wxEvtHandler::AddPendingEvent or using wxEvtHandler::QueueEvent.
Basically you will need to use the latter when doing inter-thread communication;
when you use only the main thread you can also safely use the former.

View File

@@ -19,9 +19,9 @@ as well as several standard implementations of it and a family of functions to
use with them.
First of all, no knowledge of wxLog classes is needed to use them. For this,
you should only know about @ref group_funcmacro_log "wxLogXXX() functions".
All of them have the same syntax as @e printf() or @e vprintf() , i.e. they
take the format string as the first argument and respectively a variable number
you should only know about @ref group_funcmacro_log "wxLogXXX() functions".
All of them have the same syntax as @e printf() or @e vprintf() , i.e. they
take the format string as the first argument and respectively a variable number
of arguments or a variable argument list pointer. Here are all of them:
@li wxLogFatalError() which is like wxLogError(), but also terminates the program
@@ -161,8 +161,8 @@ works.
wxWidgets has the notion of a <em>log target</em>: it is just a class deriving
from wxLog. As such, it implements the virtual functions of the base class
which are called when a message is logged. Only one log target is @e active at
any moment, this is the one used by @ref group_funcmacro_log "wxLogXXX() functions".
The normal usage of a log object (i.e. object of a class derived from wxLog) is
any moment, this is the one used by @ref group_funcmacro_log "wxLogXXX() functions".
The normal usage of a log object (i.e. object of a class derived from wxLog) is
to install it as the active target with a call to @e SetActiveTarget() and it
will be used automatically by all subsequent calls to
@ref group_funcmacro_log "wxLogXXX() functions".
@@ -263,7 +263,7 @@ GUI is (already/still) available when your log target as used as wxWidgets
automatically switches to using wxLogStderr if it isn't.
There are several methods which may be overridden in the derived class to
customize log messages handling: wxLog::DoLogRecord(), wxLog::DoLogTextAtLevel()
customize log messages handling: wxLog::DoLogRecord(), wxLog::DoLogTextAtLevel()
and wxLog::DoLogText().
The last method is the simplest one: you should override it if you simply

View File

@@ -733,10 +733,10 @@ accomplish the task:
@code
// Have property editor focus on Enter
propgrid->AddActionTrigger( wxPG_ACTION_EDIT, WXK_RETURN );
// Have Enter work as action trigger even when editor is focused
propgrid->DedicateKey( WXK_RETURN );
// Let Enter also navigate to the next property
propgrid->AddActionTrigger( wxPG_ACTION_NEXT_PROPERTY, WXK_RETURN );

View File

@@ -15,7 +15,7 @@ Sizers, as represented by the wxSizer class and its descendants in the
wxWidgets class hierarchy, have become the method of choice to define the
layout of controls in dialogs in wxWidgets because of their ability to create
visually appealing dialogs independent of the platform, taking into account
the differences in size and style of the individual controls.
the differences in size and style of the individual controls.
The next section describes and shows what can be done with sizers. The
following sections briefly describe how to program with individual sizer
@@ -211,7 +211,7 @@ window will preserve it is original size, @c wxGROW flag (same as @c wxEXPAND) f
the window to grow with the sizer, and @c wxSHAPED flag tells the window to change
it is size proportionally, preserving original aspect ratio. When @c wxGROW flag
is not used, the item can be aligned within available space. @c wxALIGN_LEFT,
@c wxALIGN_TOP, @c wxALIGN_RIGHT, @c wxALIGN_BOTTOM, @c wxALIGN_CENTER_HORIZONTAL
@c wxALIGN_TOP, @c wxALIGN_RIGHT, @c wxALIGN_BOTTOM, @c wxALIGN_CENTER_HORIZONTAL
and @c wxALIGN_CENTER_VERTICAL do what they say. @c wxALIGN_CENTRE (same as
@c wxALIGN_CENTER) is defined as (<tt>wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL</tt>).
Default alignment is <tt>wxALIGN_LEFT | wxALIGN_TOP</tt>.
@@ -267,7 +267,7 @@ MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title )
}
@endcode
Note that the recommended way of specifying flags to wxSizer is via wxSizerFlags.
Note that the recommended way of specifying flags to wxSizer is via wxSizerFlags.
This class greatly eases the burden of passing flags to a wxSizer.
Here's how you'd do the previous example with wxSizerFlags:
@@ -313,18 +313,18 @@ MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title )
@section overview_sizer_types Other Types of Sizers
wxStdDialogButtonSizer is a sizer that creates button layouts in dialogs
which conform to the standard button spacing and ordering defined by
wxStdDialogButtonSizer is a sizer that creates button layouts in dialogs
which conform to the standard button spacing and ordering defined by
the platform or toolkit's user interface guidelines (if such things exist).
As a convenience, wxDialog::CreateButtonSizer() can be used to create this sizer.
wxWrapSizer is a sizer that lays out its items in a single line, like a box
sizer -- as long as there is space available in that direction. Once all available
space in the primary direction has been used, a new line is added and items
are added there.
wxWrapSizer is a sizer that lays out its items in a single line, like a box
sizer -- as long as there is space available in that direction. Once all available
space in the primary direction has been used, a new line is added and items
are added there.
wxGridBagSizer is a rather special kind of sizer which, unlike the other
classes, allows to directly put the elements at the given position in the
sizer.
sizer.
*/

View File

@@ -16,14 +16,14 @@ class CBuilder:
output_dir = os.path.abspath(os.path.join(self.output_dir, "c"))
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for aclass in self.doxyparser.classes:
# This bit doesn't work, because the aclass.name is not the same as
# those listed in common
if aclass.name in excluded_classes:
#print "Skipping %s" % aclass.name
continue
self.make_c_header(output_dir, aclass)
@@ -46,7 +46,7 @@ class CBuilder:
def make_c_methods(self, aclass):
retval = ""
wxc_classname = 'wxC' + aclass.name[2:].capitalize()
for amethod in aclass.constructors:
@@ -59,13 +59,13 @@ class CBuilder:
if amethod.name.startswith('m_'):
# for some reason, public members are listed as methods
continue
args = '(' + wxc_classname + '* obj'
if amethod.argsstring.find('()') != -1:
args += ')'
else:
else:
args += ', ' + amethod.argsstring[1:].strip()
retval += """
// %s
%s %s%s;\n

View File

@@ -15,7 +15,7 @@ excluded_classes = [
"wxArchiveIterator",
"wxArchiveNotifier",
"wxArchiveOutputStream",
"wxArray< T >",
"wxArray< T >",
"wxArrayString",
"wxAutomationObject",
"wxBufferedInputStream",
@@ -160,5 +160,5 @@ def make_enums(aclass):
retval += ", "
retval += "\n"
retval += "};\n\n"
return retval

View File

@@ -38,23 +38,23 @@ class ClassDefinition:
self.includes = []
self.bases = []
self.enums = {}
def __str__(self):
str_repr = """
Class: %s
Bases: %s
Includes: %s
Brief Description:
Brief Description:
%s
Detailed Description:
%s
""" % (self.name, string.join(self.bases, ", "), self.includes, self.brief_description, self.detailed_description)
str_repr += "Methods:\n"
for method in self.methods:
str_repr += str(method)
return str_repr
class MethodDefinition:
@@ -66,20 +66,20 @@ class MethodDefinition:
self.params = []
self.brief_description = ""
self.detailed_description = ""
def __str__(self):
str_repr = """
Method: %s
Return Type: %s
Params: %r
Prototype: %s
Brief Description:
Brief Description:
%s
Detailed Description:
%s
""" % (self.name, self.return_type, self.params, self.definition + self.argsstring, self.brief_description, self.detailed_description)
return str_repr
return str_repr
def getTextValue(node, recursive=False):
text = ""
@@ -89,7 +89,7 @@ def getTextValue(node, recursive=False):
if child.nodeType == child.TEXT_NODE:
# Add a space to ensure we have a space between qualifiers and parameter names
text += child.nodeValue.strip() + " "
return text.strip()
def doxyMLToText(node):
@@ -104,7 +104,7 @@ class DoxyMLParser:
for aclass in self.classes:
if aclass.name == name:
return aclass
return None
def get_enums_and_functions(self, filename, aclass):
@@ -119,17 +119,17 @@ class DoxyMLParser:
def is_derived_from_base(self, aclass, abase):
base = get_first_value(aclass.bases)
while base and base != "":
if base == abase:
return True
parentclass = self.find_class(base)
if parentclass:
base = get_first_value(parentclass.bases)
else:
base = None
return False
def parse(self, filename):
@@ -138,7 +138,7 @@ class DoxyMLParser:
new_class = self.parse_class(node)
self.classes.append(new_class)
self.get_enums_and_functions(filename, new_class)
def parse_class(self, class_node):
new_class = ClassDefinition()
new_class.name = getTextValue(class_node.getElementsByTagName("compoundname")[0])
@@ -156,21 +156,21 @@ class DoxyMLParser:
self.parse_methods(new_class, class_node)
return new_class
def parse_enum(self, new_class, enum, root):
enum_name = ""
enum_values = []
for node in enum.childNodes:
if node.nodeName == "name":
enum_name = getTextValue(node)
elif node.nodeName == "enumvalue":
enum_values.append(getTextValue(node.getElementsByTagName("name")[0]))
new_class.enums[enum_name] = enum_values
def parse_methods(self, new_class, root):
for method in root.getElementsByTagName("memberdef"):
for method in root.getElementsByTagName("memberdef"):
new_method = MethodDefinition()
for node in method.childNodes:
if node.nodeName == "name":
@@ -187,10 +187,10 @@ class DoxyMLParser:
if child.nodeType == child.ELEMENT_NODE:
param[child.nodeName] = getTextValue(child)
new_method.params.append(param)
if self.verbose:
print "Adding %s" % (new_method.name + new_method.argsstring)
if new_method.name == new_class.name:
new_class.constructors.append(new_method)
elif new_method.name == "~" + new_class.name:
@@ -199,30 +199,30 @@ class DoxyMLParser:
new_class.methods.append(new_method)
if __name__ == "__main__":
option_dict = {
option_dict = {
"report" : (False, "Print out the classes and methods found by this script."),
"verbose" : (False, "Provide status updates and other information."),
}
parser = optparse.OptionParser(usage="usage: %prog [options] <doxyml files to parse>\n" + __description__, version="%prog 1.0")
for opt in option_dict:
default = option_dict[opt][0]
action = "store"
if type(default) == types.BooleanType:
action = "store_true"
parser.add_option("--" + opt, default=default, action=action, dest=opt, help=option_dict[opt][1])
options, arguments = parser.parse_args()
if len(arguments) < 1:
parser.print_usage()
sys.exit(1)
doxyparse = DoxyMLParser(verbose = options.verbose)
for arg in arguments:
doxyparse.parse(arg)
doxyparse.parse(arg)
if options.report:
for aclass in doxyparse.classes:

View File

@@ -12,42 +12,42 @@ import swig_tools
from common import *
if __name__ == "__main__":
option_dict = {
option_dict = {
"output_dir" : ("output", "Directory to output bindings to"),
"sip" : (True, "Produce SIP bindings"),
"swig" : (True, "Produce SWIG bindings."),
"c" : (True, "Produce C wrappers."),
}
parser = optparse.OptionParser(usage="usage: %prog <doxyml files to parse>\n" , version="%prog 1.0")
for opt in option_dict:
default = option_dict[opt][0]
action = "store"
if type(default) == types.BooleanType:
action = "store_true"
parser.add_option("--" + opt, default=default, action=action, dest=opt, help=option_dict[opt][1])
options, arguments = parser.parse_args()
if len(arguments) < 1:
parser.print_usage()
sys.exit(1)
doxyparse = doxymlparser.DoxyMLParser()
for arg in arguments:
doxyparse.parse(arg)
if options.sip:
builder = sip_tools.SIPBuilder(doxyparse, options.output_dir)
builder.make_bindings()
if options.swig:
builder = swig_tools.SWIGBuilder(doxyparse, options.output_dir)
builder.make_bindings()
if options.c:
builder = c_tools.CBuilder(doxyparse, options.output_dir)
builder.make_bindings()

View File

@@ -11,12 +11,12 @@ class SIPBuilder:
output_dir = os.path.abspath(os.path.join(self.output_dir, "sip"))
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for aclass in self.doxyparser.classes:
if aclass.name in excluded_classes:
print "Skipping %s" % aclass.name
continue
header_name = aclass.name[2:].lower()
filename = os.path.join(output_dir, "_" + header_name + ".sip")
enums_text = make_enums(aclass)
@@ -24,7 +24,7 @@ class SIPBuilder:
base_class = get_first_value(aclass.bases)
if base_class != "":
base_class = ": %s" % base_class
text = """
%s
class %s %s
@@ -45,12 +45,12 @@ public:
def make_sip_methods(self, aclass):
retval = ""
for amethod in aclass.constructors + aclass.methods:
transfer = ""
# FIXME: we need to come up with a way of filtering the methods out by various criteria
# including parameters and method name, and how to deal with overloads
# including parameters and method name, and how to deal with overloads
if aclass.name in ignored_methods:
should_ignore = False
for method in ignored_methods[aclass.name]:
@@ -66,19 +66,19 @@ public:
print "param type = %s, amethod.param type = %s" % (params[i], amethod.params[i]["type"])
should_ignore = False
break
if should_ignore:
continue
# We need to let SIP know when wx is responsible for deleting the object.
# We do this if the class is derived from wxWindow, since wxTLW manages child windows
# and wxApp deletes all wxTLWs on shutdown
if amethod in aclass.constructors and self.doxyparser.is_derived_from_base(aclass, "wxWindow"):
transfer = "/Transfer/"
if amethod.name.startswith("operator"):
continue
retval += " %s %s%s%s;\n\n" % (amethod.return_type.replace("virtual ", ""), amethod.name, amethod.argsstring, transfer)
return retval

View File

@@ -11,13 +11,13 @@ class SWIGBuilder:
output_dir = os.path.abspath(os.path.join(self.output_dir, "swig"))
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for aclass in self.doxyparser.classes:
header_name = aclass.name[2:].lower()
if aclass.name in excluded_classes:
#print "Skipping %s" % aclass.name
continue
filename = os.path.join(output_dir, "_" + header_name + ".i")
enums_text = make_enums(aclass)
method_text = self.make_swig_methods(aclass)
@@ -37,25 +37,25 @@ public:
afile.write(text)
afile.close()
def make_swig_methods(self, aclass):
retval = ""
retval += """
%%pythonAppend %s "self._setOORInfo(self)"
%%pythonAppend %s() ""
%%typemap(out) %s*; // turn off this typemap
""" % (aclass.name, aclass.name, aclass.name)
for amethod in aclass.constructors:
retval += " %s%s;\n\n" % (amethod.name, amethod.argsstring)
retval += """
// Turn it back on again
%%typemap(out) %s* { $result = wxPyMake_wxObject($1, $owner); }
%%typemap(out) %s* { $result = wxPyMake_wxObject($1, $owner); }
""" % aclass.name
for amethod in aclass.methods:
retval += " %s %s%s;\n\n" % (amethod.return_type, amethod.name, amethod.argsstring)
return retval

View File

@@ -8,7 +8,7 @@ List of classes which should use their native GTK+ equivalents but don't:
- wxTreeCtrl
Ryan Norton has implemented this
- wxListCtrl
Could be reimplemeted in terms of wxDataViewCtrl?

View File

@@ -58,7 +58,7 @@ free library. If the library is modified by someone else and
passed on, we want its recipients to know that what they have is
not the original version, so that any problems introduced by
others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies
distributing free software will individually obtain patent
@@ -148,7 +148,7 @@ constitute a work based on the Library (independent of the use
of the Library in a tool for writing it). Whether that is true
depends on what the Library does and what the program that uses
the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided
that you conspicuously and appropriately publish on each copy an
@@ -160,7 +160,7 @@ along with the Library.
You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.
2. You may modify your copy or copies of the Library or any
portion of it, thus forming a work based on the Library, and
copy and distribute such modifications or work under the terms
@@ -220,7 +220,7 @@ Public License, version 2, instead of to this License. (If a
newer version than version 2 of the ordinary GNU General Public
License has appeared, then you can specify that version instead
if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to
all subsequent copies and derivative works made from that copy.
@@ -278,7 +278,7 @@ distribute the object code for the work under the terms of
Section 6. Any executables containing that work also fall under
Section 6, whether or not they are linked directly with the
Library itself.
6. As an exception to the Sections above, you may also compile
or link a "work that uses the Library" with the Library to
produce a work containing portions of the Library, and
@@ -332,7 +332,7 @@ restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you
cannot use both them and the Library together in an executable
that you distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other
library facilities not covered by this License, and distribute
@@ -376,7 +376,7 @@ modify the Library subject to these terms and conditions. You
may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible
for enforcing compliance by third parties to this License.
11. If, as a consequence of a court judgment or allegation of
patent infringement or for any other reason (not limited to
patent issues), conditions are imposed on you (whether by court

View File

@@ -8,12 +8,12 @@
WXWINDOWS LIBRARY LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
@@ -46,7 +46,7 @@
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.

View File

@@ -5,7 +5,7 @@
Everyone is permitted to copy and distribute verbatim copies
of this licence document, but changing it is not allowed.
WXWINDOWS FREE DOCUMENTATION LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -37,7 +37,7 @@
WARRANTY DISCLAIMER
5. BECAUSE THIS MANUAL OR PIECE OF DOCUMENTATION IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR IT, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
THERE IS NO WARRANTY FOR IT, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
PARTIES PROVIDE THIS MANUAL OR PIECE OF DOCUMENTATION "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT

View File

@@ -170,7 +170,7 @@ class, container classes, as well as classes for threading,
networking, XML parsing, path and configuration management, logging,
debugging etc. These functions and classes have been separated into
their own library both for being able to write non-GUI apps as well
as to make maintainance easier through reduced interdependence.
as to make maintainance easier through reduced interdependence.
</P>
<P ALIGN=JUSTIFY>Many of the changes to wxString and the container
classes are located in wxBase, but on top of that support to wxBase
@@ -186,7 +186,7 @@ change. Rather, this paragraph summarizes the most relevant changes
to the GUI classes of wxWidgets. Given wxWidgets' nature as a GUI
library, these changes are also most likely to be visible to the user
and may thus be the most important changes from a user's perspective
(although not necessarily from a developer's perspective):
(although not necessarily from a developer's perspective):
</P>
<UL>
<LI><P ALIGN=JUSTIFY>wxDataViewCtrl and wxDataViewTreeCtrl: this
@@ -310,7 +310,7 @@ cases, supporting an old version of GTK+ hinders development so we
decided to declare GTK+ 2.6 the minimum toolkit version that is
supported. As an example, this made it possible to always use the
GTK+ file dialog instead of the old generic file dialog which had to
be used when GTK+ didn't have a usable file dialog.
be used when GTK+ didn't have a usable file dialog.
</P>
<P ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">Other parts of wxGTK that
were rewritten or which underwent a major update include, but are not

View File

@@ -73,7 +73,7 @@ maybe stripped down to
"Specialization is for insects."
============================
The Open-Source, Cross-Platform GUI Framework
The Open-Source, Cross-Platform GUI Framework
with Ten Years of Evolution Behind It
I saw this changed to 'native UI' on the website, which is slightly more
@@ -81,17 +81,17 @@ accurate but sounds less 'catchy' imho.
.. and templates.
Hmm. I might buy a mug that had, say, a wxLogo and "wxWidgets" (and
maybe the website URL underneath in smaller type) on one side and
Hmm. I might buy a mug that had, say, a wxLogo and "wxWidgets" (and
maybe the website URL underneath in smaller type) on one side and
"Specialization is for insects ... and templates" on the other.
.. only if it held at leat a full half (imperial) pint, mind. Not
.. only if it held at leat a full half (imperial) pint, mind. Not
one of those wussy 8.5 fl.oz. jobbies.
That'd be a nice ice-breaker when working at a new client's site -
That'd be a nice ice-breaker when working at a new client's site -
people would be bound to stop and ask what it was all about!
.. and how about a nice silk tie (US: necktie) with the logo on ...
.. and how about a nice silk tie (US: necktie) with the logo on ...
Oh, I forgot, we programmers don't wear ties.
============================
@@ -149,7 +149,7 @@ One API to bridge them all and in the compiler bind them.
wxWidgets
How about "and in the linker bind them"? That's where the local libraries
How about "and in the linker bind them"? That's where the local libraries
get bound to the wxWidgets code anyway.
============================
@@ -162,7 +162,7 @@ Hugh Gibson wrote:
> window control in different operating systems to emphasise the
> native look and feel.
Nice idea. But I wonder where you'll find some volunteer willing to
Nice idea. But I wonder where you'll find some volunteer willing to
have his face tattooed with win32 common controls ;-)
============================

View File

@@ -7,7 +7,7 @@ The compilation was tested with
-Compaq C++ 6.2
-DECWindows 1.2-5
-GTK1.2.8 (for wxGTK)
To get everything compiled you'll need to have installed prior to compiling
wxWidgets:
-Bison
@@ -19,7 +19,7 @@ wxWidgets:
#define alloca malloc
before
#endif /* __hpux */
-Flex
get it from http://www.openvms.digital.com/freeware/
@@ -119,7 +119,7 @@ $ ass $disk2:[joukj.public.gtk.gtk.glib],-
-I think in general wxGTK is better maintained, so that version is my
first choice.
-Note that only a few people have used wxWidgets on VMS so many problems are
to be expected.
@@ -147,7 +147,7 @@ $ ass $disk2:[joukj.public.gtk.gtk.glib],-
again.
-image sample: after clicking "about" the colourmap is permanently
changed resulting in strange images
Finally :
I like the idea of Robert Roebling that CD's with classical music should be
send to the authors.
@@ -156,7 +156,7 @@ send to the authors.
>-----------------------------------------------------------------------------<
Jouk Jansen
joukj@hrem.stm.tudelft.nl

View File

@@ -133,7 +133,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an

View File

@@ -9,4 +9,4 @@ for wxWINE is in place and that all that has to be done to get
wxWINE running is to make WINE work as Win32. No joke intended.
Robert Roebling

View File

@@ -2,7 +2,7 @@
* The most simple case
-----------------------
If you compile wxWidgets on Linux for the first time and don't like to read
If you compile wxWidgets on Linux for the first time and don't like to read
install instructions just do (in the base dir):
> ./configure --with-wine
@@ -12,8 +12,8 @@ install instructions just do (in the base dir):
> ldconfig
> exit
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
are not supported out of the box due to the utter stupidity of libtool, so you'll
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
are not supported out of the box due to the utter stupidity of libtool, so you'll
have to do this to get shared library support:
> ./configure --with-wine --disable-unicode --disable-static --enable-shared
@@ -23,12 +23,12 @@ important entries with respect to shared library creation, which are
archive_cmds="\$LD -shared ....
archive_expsym_cmds="\$LD -shared ....
which should be something like
archive_cmds="\$CC -shared ....
archive_expsym_cmds="\$CC -shared ....
Afterwards you can continue with
> make
@@ -47,14 +47,14 @@ If you want to remove wxWidgets on Unix you can do this:
* The expert case
-----------------
If you want to do some more serious cross-platform programming with wxWidgets,
such as for GTK and Motif, you can now build two complete libraries and use
them concurrently. For this end, you have to create a directory for each build
If you want to do some more serious cross-platform programming with wxWidgets,
such as for GTK and Motif, you can now build two complete libraries and use
them concurrently. For this end, you have to create a directory for each build
of wxWidgets - you may also want to create different versions of wxWidgets
and test them concurrently. Most typically, this would be a version configured
with --enable-debug_flag and one without. Note, that only one build can currently
and test them concurrently. Most typically, this would be a version configured
with --enable-debug_flag and one without. Note, that only one build can currently
be installed, so you'd have to use local version of the library for that purpose.
For building three versions (one GTK, one WINE and a debug version of the WINE
For building three versions (one GTK, one WINE and a debug version of the WINE
source) you'd do this:
md buildmotif
@@ -78,18 +78,18 @@ cd ..
* The most simple errors
------------------------
wxWINE doesn't work yet as WINE isn't really up to the task yet.
wxWINE doesn't work yet as WINE isn't really up to the task yet.
You get errors during compilation: The reason is that you probably have a broken
compiler, which includes almost everything that is called gcc. If you use gcc 2.8
you have to disable optimisation as the compiler will give up with an internal
You get errors during compilation: The reason is that you probably have a broken
compiler, which includes almost everything that is called gcc. If you use gcc 2.8
you have to disable optimisation as the compiler will give up with an internal
compiler error.
If there is just any way for you to use egcs, use egcs. We cannot fix gcc.
You get immediate segfault when starting any sample or application: This is either
due to having compiled the library with different flags or options than your program -
typically you might have the __WXDEBUG__ option set for the library but not for your
You get immediate segfault when starting any sample or application: This is either
due to having compiled the library with different flags or options than your program -
typically you might have the __WXDEBUG__ option set for the library but not for your
program - or due to using a broken compiler (and its optimisation) such as GCC 2.8.
* The most simple program
@@ -102,27 +102,27 @@ g++ myfoo.cpp `wx-config --libs --cflags` -o myfoo
* General
-----------------------
The Unix variants of wxWidgets use GNU configure. If you have problems with your
The Unix variants of wxWidgets use GNU configure. If you have problems with your
make use GNU make instead.
If you have general problems with installation, read my homepage at
If you have general problems with installation, read my homepage at
http://wesley.informatik.uni-freiburg.de/~wxxt
for newest information. If you still don't have any success, please send a bug
report to one of our mailing lists (see my homepage) INCLUDING A DESCRIPTION OF
YOUR SYSTEM AND YOUR PROBLEM, SUCH AS YOUR VERSION OF WINE, WXWINE, WHAT DISTRIBUTION
for newest information. If you still don't have any success, please send a bug
report to one of our mailing lists (see my homepage) INCLUDING A DESCRIPTION OF
YOUR SYSTEM AND YOUR PROBLEM, SUCH AS YOUR VERSION OF WINE, WXWINE, WHAT DISTRIBUTION
YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect, but I tried...
* GUI libraries
-----------------------
wxWidgets/WINE requires the WINE library to be installed on your system.
wxWidgets/WINE requires the WINE library to be installed on your system.
You can get the newest version of the WINE from the WINE homepage at:
http://www.winehq.com
* Create your configuration
-----------------------------
@@ -141,16 +141,16 @@ to see all the options please use:
./configure --help
The basic philosophy is that if you want to use different
configurations, like a debug and a release version,
configurations, like a debug and a release version,
or use the same source tree on different systems,
you have only to change the environment variable OSTYPE.
(Sadly this variable is not set by default on some systems
in some shells - on SGI's for example). So you will have to
set it there. This variable HAS to be set before starting
configure, so that it knows which system it tries to
in some shells - on SGI's for example). So you will have to
set it there. This variable HAS to be set before starting
configure, so that it knows which system it tries to
configure for.
Configure will complain if the system variable OSTYPE has
Configure will complain if the system variable OSTYPE has
not been defined. And Make in some circumstances as well...
@@ -167,7 +167,7 @@ in wxWidgets snapshot 6, but not yet all (ODBC not).
You must do this by running configure with either of:
--with-wine Use the WINE library
The following options handle the kind of library you want to build.
--enable-threads Compile with thread support. Threads
@@ -182,25 +182,25 @@ The following options handle the kind of library you want to build.
such as Sun with gcc 2.8.X which
would otherwise produce segvs.
--enable-profile Add profiling info to the object
--enable-profile Add profiling info to the object
files. Currently broken, I think.
--enable-no_rtti Enable compilation without creation of
C++ RTTI information in object files.
This will speed-up compilation and reduce
C++ RTTI information in object files.
This will speed-up compilation and reduce
binary size.
--enable-no_exceptions Enable compilation without creation of
C++ exception information in object files.
This will speed-up compilation and reduce
C++ exception information in object files.
This will speed-up compilation and reduce
binary size. Also fewer crashes during the
actual compilation...
--enable-mem_tracing Add built-in memory tracing.
--enable-mem_tracing Add built-in memory tracing.
--enable-dmalloc Use the dmalloc memory debugger.
Read more at www.letters.com/dmalloc/
--enable-debug_info Add debug info to object files and
executables for use with debuggers
such as gdb (or its many frontends).
@@ -210,7 +210,7 @@ The following options handle the kind of library you want to build.
useful internal debugging tricks (such
as automatically reporting illegal calls)
to work. Note that program and library
must be compiled with the same debug
must be compiled with the same debug
options.
* Feature Options
@@ -221,42 +221,42 @@ in wxWidgets snapshot 6, but not yet all (ODBC not).
When producing an executable that is linked statically with wxGTK
you'll be surprised at its immense size. This can sometimes be
drastically reduced by removing features from wxWidgets that
drastically reduced by removing features from wxWidgets that
are not used in your program. The most relevant such features
are
--without-libpng Disables PNG image format code.
--without-libjpeg Disables JPEG image format code.
{ --without-odbc Disables ODBC code. Not yet. }
--disable-resources Disables the use of *.wxr type
resources.
--disable-threads Disables threads. Will also
disable sockets.
--disable-sockets Disables sockets.
--disable-dnd Disables Drag'n'Drop.
--disable-clipboard Disables Clipboard.
--disable-serial Disables object instance serialisation.
--disable-streams Disables the wxStream classes.
--disable-file Disables the wxFile class.
--disable-textfile Disables the wxTextFile class.
--disable-intl Disables the internationalisation.
--disable-validators Disables validators.
--disable-accel Disables accel.
Apart from disabling certain features you can very often "strip"
the program of its debugging information resulting in a significant
reduction in size.
@@ -267,13 +267,13 @@ reduction in size.
The following must be done in the base directory (e.g. ~/wxGTK
or ~/wxWin or whatever)
Now the makefiles are created (by configure) and you can compile
Now the makefiles are created (by configure) and you can compile
the library by typing:
make
make yourself some coffee, as it will take some time. On an old
386SX possibly two weeks. During compilation, you'll get a few
386SX possibly two weeks. During compilation, you'll get a few
warning messages depending in your compiler.
If you want to be more selective, you can change into a specific
@@ -284,12 +284,12 @@ Then you may install the library and its header files under
have to log in as root (i.e. run "su" and enter the root
password) and type
make install
make install
You can remove any traces of wxWidgets by typing
make uninstall
If you want to save disk space by removing unnecessary
object-files:
@@ -316,13 +316,13 @@ minimal: minimal.o
minimal.o: minimal.cpp
$(CXX) `wx-config --cflags` -c minimal.cpp -o minimal.o
clean:
clean:
rm -f *.o minimal
This is certain to become the standard way unless we decide
to stick to tmake.
2) The other way creates a project within the source code
2) The other way creates a project within the source code
directories of wxWidgets. For this endeavour, you'll need
the usual number of GNU tools, at least
@@ -331,7 +331,7 @@ GNU autoheader version 2.14
GNU autoconf version 2.14
GNU libtool version 1.3
and quite possibly
and quite possibly
GNU make
GNU C++
@@ -344,10 +344,10 @@ go ahead yourself :-)
In the hope that it will be useful,
Robert Roebling <roebling@sun2.ruf.uni-freiburg.de>
Addition notes by Julian Smart, August 2002
===========================================
===========================================
I've fixed some compile errors, and got as far as
compiling wxWINE, but actually linking a sample will take

View File

@@ -9,15 +9,15 @@ install.txt.
When you run into problems, please read the install.txt and
follow those instructions. If you still don't have any success,
please send a bug report to one of our mailing lists (see
my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND
my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND
YOUR PROBLEM, SUCH AS YOUR VERSION OF THE WINE SOURCES, WHAT
DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED.
Please send problems concerning installation, feature requests,
bug reports or comments to the wxWidgets users list. Information
Please send problems concerning installation, feature requests,
bug reports or comments to the wxWidgets users list. Information
on how to subscribe is available from my homepage.
wxWidgets/Wine doesn't come with any guarantee whatsoever. It might
wxWidgets/Wine doesn't come with any guarantee whatsoever. It might
crash your harddisk or destroy your monitor. It doesn't claim to be
suitable for any special or general purpose.

View File

@@ -26,13 +26,13 @@ Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL