This is a facade for wxDataViewCtrl allowing to easily work with multi-column
trees, possibly with an optional checkbox in the first column. Its API is very
similar to wxTreeListCtrl and it provides a simple migration path from the
latter.
Add the class itself, documentation for it and minimal unit tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Buttons had a border of wxBORDER_NONE resulting in wxButton::DoDraw not drawing the button's border. Fixed by adding wxAnyButton::GetDefaultBorder() for wxUniv which returns wxBORDER_STATIC. Regression since r67931.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxItemId<> template which can be used to identify items in different
{tree,list}-like controls, including wxDataViewCtrl (where it replaces, in
backwards compatible way, wxDataViewItem), wxTreeCtrl (where it replaces
wxTreeItemId) and the upcoming wxTreeListCtrl.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid defining SetImageList() in several different places in wx API as not
only this resulted in (trivial) code duplication but this method also had
different semantics before: it didn't take ownership of the pointer passed to
it in wxTreeCtrl, wxListCtrl and wxBookCtrl and derived classes but did take
its ownership in wxDataViewTreeCtrl and wxRichTextFormattingDialog.
Harmonize this for all the classes now: SetImageList() never takes ownership
while AssignImageList() (which is now available in all classes having
SetImageList()) always does.
Also add convenience wxWithImages::GetImage() helper to avoid (more) code
duplication in wxDataViewTreeCtrl code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Introduce wxAnyButton class, a common base class for wxButton and
wxToggleButton, allowing to reuse the same implementation for them.
This also allows to implement support for bitmaps in wxToggleButton for all
platforms and make wxBitmapToggleButton a trivial subclass of it everywhere,
similarly to wxBitmapButton and wxButton.
Closes#13198.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Move src/msw/hyperlink.cpp and include/wx/msw/hyperlink.h to
ADVANCED_MSW_NATIVE_SRC/HDR from ADVANCED_MSW_SRC/HDR respectively to ensure
that these files are not used in wxUniv build that uses its own, generic,
versions.
This should fix wxUniv/MSW build as the native files didn't even compile with
wxUniv.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Sort RICHTEXT_{SRC,HDR} contents in alphabetical order, just as it's done for
all the other files list and to make it easier to check if a file already
occurs in these lists or not.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxTextCompleter class which allows to return the possible completions
dynamically and wxTextCompleter::AutoComplete() overload using it. So far this
is only implemented for wxMSW.
Also fix calling wxTextEntry::AutoComplete(wxArrayString) multiple times under
MSW, this didn't correctly update the list of shown completions before.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also move src/msw/panel.cpp to the list of normal wxMSW sources from the list
of low-level ones as it's not needed by wxUniv.
Closes#13103.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This method provides a simple way to set a background bitmap without defining
an EVT_ERASE_BACKGROUND handler and, more importantly, one that works
correctly in wxMSW for a window with children as it paints the background of
transparent children too.
Add a test of this method to the erase sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
So far we have only wxMSW-specific implementation (and also a trivial
wxUniv-specific one) but it's still tidier to have all platform-specific code
in separate files, especially as we're going to have more of it for wxMSW
soon.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxMarkupText is a private class that implements generic handling of markup
strings, i.e. can measure them and render them onto a wxDC.
This class will be used for markup support in wxMSW wxButton.
Also add wxMarkupParserAttrOutput which will be useful for other wxMarkupText
implementations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This code is not used anywhere yet, this commit only adds the parser for the
markup and the related classes as well as the corresponding unit test.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Move wxUIActionSimulator implementation files to low level sources to ensure
that they are included in wxUniv builds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Update configure and bakefile.m4 for the new version too.
Also add the missing makefiles and projects for the XTI sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add validators for integer and floating point numbers.
Add an example of their use to the validate sample as well as a new unit test
and documentation for them.
Use the new classes instead of wxTextValidator in wxGrid code.
Closes#12166.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxNumberFormatter formats and parses numbers with thousands separators.
Add the class itself as well as documentation and the unit test for it.
See #12166.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This eliminates a linking dependency that would drag in the printing
code for any program that used wxColourDialog or wxFontDialog (which
is currently all of them, due to more link dependencies...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxCompositeWindow<> is a convenient base class for composite windows, i.e.
windows consisting of several other wxWindows. Currently it just automatically
forwards various attributes setters calls to all of the composite window parts
but it could become more useful in the future.
Similarly, for now it is only used in wxDatePickerCtrlGeneric but it could
(and should) be used for other composite controls later and we probably should
even make this class public to allow its use in the client code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The icons are embedded as PNG images directly in the source code to avoid the
need for installing them. This does make the library larger though so provide
a wxUSE_ARTPROVIDER_TANGO option to turn the new code and associated bloat off.
Also turn it off by default under wxGTK as the native art provider is used
there anyhow.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxMSW wxCommandLinkButton implementation shouldn't be used in wxUniv so move
src/msw/commandlinkbutton.cpp and include/wx/msw/commandlinkbutton.h to
ADVANCED_MSW_NATIVE_{SRC,HDR} from ADVANCED_MSW_{SRC,HDR} in files.bkl and
rebake the makefiles.
This fixes wxUniv/MSW compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add simple wxVersionInfo class holding the version information.
Also add GetLibraryVersionInfo() static method to wx{JPEG,PNG,TIFF}Handler,
wxStyledTextCtrl and wxXmlDocument classes and wxGetZlibVersionInfo() and
wxGetLibraryVersionInfo() global functions using it.
Closes#12690.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Finally it's unnecessary to define WXUSINGDLL when building wxScintilla
library as it doesn't use the main DLL, it is simply used as part of it.
This reverts r66222 and finally closes#12626.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxScintilla code uses wxVector<> which brings in wxDEBUG_LEVEL-dependent code
so we must use the wxDEBUG_LEVEL value consistent with the rest of the library
when building it.
Simply pass wxDEBUG_LEVEL definition on the compiler command line if it's
different from the default.
Closes#12626.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We need WXUSINGDLL even in monolithic build because Scintilla references wx
debugging functions (wxOnAssert(), wxTheAssertHandler &c) which still must be
seen as being exported from the (monolithic) DLL in this case.
See #12626.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wx/persist headers to the list of files used by "make dist" and remove the
message catalogs which shouldn't be part of the source distribution.
See #12567.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Added floating images and image property dialog to wxRichTextCtrl, by Mingquan
Yang as part of GSOC 2010. Also changed image block creation to use a memory
stream instead of creating a temporary file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This file was empty and unused any more so simply remove it and all references
to it in the makefiles.
This avoids warnings about empty object files in static builds of the library.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If available, the task dialog is now used for the wxProgressDialog under
Windows. This provides a much more native looking dialog which doesn't look
out of place under modern Windows versions, unlike the generic implementation.
The internals of the code had to be significantly changed as the task dialog
can only be shown modally so, to emulate wxProgressDialog modeless nature, a
separate thread is used for the progress dialog management.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is a generalization of wxMessageDialog based on the native task dialog
under recent (Vista and later) Windows versions and implemented generically
for the other ports for now.
It provides the possibility to use additional controls in the message boxes
(checkbox useful for the "Don't ask me again" kind of dialogs and collapsible
detailed explanations field) and better look and feel under Windows.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use the "syslink" native control to implement wxHyperlinkCtrl under (recent
enough, i.e. XP or later) versions of Windows.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
A command link button wraps a native MSW control under recent Windows versions
and is implemented generically as a simple bitmap button elsewhere.
In the future, GTK implementation should allow using a different font for the
button label and its note.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
In monolithic builds wxscintilla is linked directly into the one and only wx
DLL and doesn't need to import anything from it, WXUSINGDLL is only needed in
multilib case when wxscintilla is part of wxCore DLL and does need to import
symbols (e.g. wxQsort() used by wxVector) from wxBase one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
WXUSINGDLL shouldn't be defined in static build configurations, this results
in warnings and might explain errors in MinGW build.
Closes#11966.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Collect all preprocessor options needed for Scintilla compilation in
wxscintilla_cppflags template and use for both Scintilla compilation itself
and for the wx libraries using it.
The order of flags in the makefiles has changed but they are still the same
except for Borland makefile which now includes Borland-specific warning
suppression option everywhere it's needed and not just in multilib targets.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use "wxWindows licence" and not "wxWidgets licence" (the latter doesn't
exist) and consistently spell "licence" using British spelling.
See #12165.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Parse "style" attributes of the HTML tags and honour those of them that can be
mapped to the HTML 3 attributes.
Also add a handler for <span> tag.
Closes#10631.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It seems that autoconf_inc.m4 hadn't been regenerated by a previous change as
rerunning bakefile_gen resulted in a lot of changes in it, do it now without
any other changes to ensure that the next commit only contains the changes due
to its modification of files.bkl.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
GTK+ provides GtkRecentManager for this purpose since 2.10. Use it in
wxFileHistory if available. Integration is simple, we just add a file to
GtkRecentManager in addition to normal wxFileHistory handling.
A well-behaved GNOME application would use GtkRecentManager as the
primary store for recent files, so that it reflects when the user works
with supported files in another editor(s) too. But for now, this is much
better than no support at all.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix a typo in r62849: tooltip.cpp was used instead of toolbar.cpp resulting in
linking errors for the duplicate symbols in the former and undefined symbols
in the latter.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
To make the code more manageable, intl.h now contains wxLocale and
translation.h all translations-related stuff (wxTranslations, _() etc.).
Code generated by genlang.py was moved into its own files (language.h,
languageinfo.cpp).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Only keep common code in the base class and extract all menu/listbox-specific
stuff into derived classes.
This makes the code cleaner and more maintainable but introduces some problems
in wxCheckListBox appearance which will be fixed by the next patch.
Closes#10635.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We don't use crptknm$port.cpp naming convention even for MSW any more and
there is really no reason to continue to do it for just this one file in
wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit adds no changes in functionality but paves way for the upcoming
improvements of wxDataViewCustomRenderer.
First, introduce wxDataViewCustomRendererBase class in order to allow
implementing behaviour common to custom renderers in all ports in this class
instead of triplicating it.
This required splitting monolithic dataview.h in more parts, now we have
wx/dvrenderer.h which defines wxDataViewRendererBase and the new
wxDataViewCustomRendererBase and includes wx/port/dvrenderer.h which define
wxDataViewRenderer and wx/port/dvrenderers.h which defines all the other
renderer classes.
Also bring renderers hierarchy in the generic version closer to other ports:
all standard renderer classes now inherit from wxDataViewRenderer and not
wxDataViewCustomRenderer in for consistency with the other ports.
wxDataViewRenderer itself still does derive from wxDataViewCustomRendererBase,
unlike elsewhere, but this is unavoidable considering that all generic
renderers are custom ones.
Finally do some cleanup in OS X part of the code: correct indentation,
spacing, comment style.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Currently wxEventLoopSource can't be created directly and can only be used to
monitor file descriptors so reduce the API to just wxEventLoop::AddSourceForFD()
and remove AddSource(), RemoveSource() and RemoveAllSources() which couldn't
be implemented for all ports. This makes the code much simpler without any
loss of functionality.
Make wxEventLoopSource responsible for removing itself from the event loop
when it is deleted. This allows to remove IsOk() and Invalidate() methods
making the code simpler and gets rid of various sets/maps which were used
before.
This also allows to support event loop sources in Carbon as well: wxOSX/Carbon
now compiles and works with wxUSE_FSWATCHER==1.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Merges everything from the branch with only some minor changes, mostly renamed
wxUSE_FSWATCHER_{INOTIFY,KQUEUE} to wxHAS_{INOTIFY,KQUEUE}.
Add wxFileSystemWatcher and related classes.
Also introduces wxEventLoopSource.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
They should fix the problem with monolithic build of wx (see #11231).
Notice that trivial changes to VC9 project files are not being committed so
the makefiles are currently not quite consistent but it shouldn't matter as
they will be all regenerated soon when bakefile 0.2.7 is really released.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Straightforward implementation of wxInfoBar using GtkInfoBar widget available
in GTK+ 2.18.
Some side effects of this change:
- Rename wxInfoBar version in wx/generic/infobar.h to wxInfoBarGeneric and
define wxInfoBar in wx/infobar.h.
- Also change default value of flags argument to ShowMessage() to
wxICON_INFORMATION from wxICON_NONE as the default colour for wxICON_NONE
messages is surprisingly ugly in GTK native version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
0.2.5 versions of some makefiles were checked in, regenerate them using 0.2.6.
Also regenerate configure after autoconf_inc.m4 was updated.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This fixes linking problems under Unix introduced by recent changes which
fixed previous problems which were due to files not being linked in at all.
In order to provide a clean separation between base, net and core libraries we
now use the same wxSocketManager (wxSocketFDBasedManager), defined in net
library for both console and GUI Unix applications and just use different FD
IO manager for them: the latter can be defined in base and core libraries as
it doesn't involve wxSocketImpl at all, only its base wxFDIOHandler class.
At more detailed level, these changes required:
1. Adding the new wxFDIOManager class.
2. Refactoring the old (and now removed) wxSocketFDIOManager to use the same
code as wxSocketFDIOManager. This involved:
a) Adding handler and direction parameter to RemoveInput().
b) Storing the mask of registered events in wxFDIOHandler itself.
c) Defining wxFDIOManagerUnix which works with wxFDIODispatcher.
3. Changing the traits classes in Unix ports to define GetFDIOManager()
instead of GetSocketManager().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The low level files are those which are used by wxUniversal and so shouldn't
contain native controls implementations -- moved them from OSX_LOWLEVEL_SRC to
OSX_CARBON_COCOA_SRC.
Also removed the now unnecessary check for __WXUNIVERSAL__ in src/osx/accel.cpp.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
number of columns in it, it turns out that getting column information from
the associated control is much easier than copying it into the control.
- Provide wxHeaderCtrlSimple derived class which can be used easily if
callback approach of wxHeaderCtrl is not needed.
- Because of wxHeaderCtrl virtualization, port-specific implementations of
wxHeaderColumn are not needed any more and were removed.
- Use wxHeaderCtrl in the generic wxDataViewCtrl: this means that column
events are broken right now in it as they haven't been implemented by
wxHeaderCtrl yet, this will be fixed a.s.a.p.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
as GSocket) which is a base class with various wxSocketImplXXX implementations
provided by different wxSocketManagers.
Share more code between ports (still not finished).
Refactor some code inside wxSocketImpl itself to be less redundant and fixed a
couple of minor bugs in the process.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
classes for wxMDI{Parent,Child}Frame and wxMDIClientWindow.
Also use generic MDI implementation for wxMotif as it seems to be more
functional and definitely is more maintained (we probably should use the
generic version for wxGTK too).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1. Move platform-specific code for both GetSizeHint() and GetBitmap()
into platform-specific files.
2. Introduced GetNativeSizeHint() to make native sizes better accessible,
without having to understand weird GetSizeHint() semantics.
3. Fixed GetNativeSizeHint() to return sensible values in non-GTK ports;
it returns wxDefaultSize if it can't make a good guess instead of
returning arbitrary value.
4. Use 16x16 icons on MSW instead of 16x15: it works and is more
'natural' size.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775