By Benjamin I. Williams (biwillia76)
The attached patch completely fixes the flicker problem when
creating combo boxes. It also will make it elementary to
remove flicker during the creation of other controls
(although all the other controls are flicker free, AFAIK).
It does this by adding an optional 'visible' parameter to
the internal MSWCreateControl method, whereby the caller can
create a control invisibly by default, perform some
complicated sizing calculations, and then finally show the
control before the Create finished.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Proposed fixes for the wxWindows joystick code under
MSW.
Some of these would be valid for other platforms, too.
Events for buttons are named wrong, docs say different.
Docs say EVT_JOY_BUTTON_DOWN and
EVT_JOY_BUTTON_UP,
but the code says EVT_JOY_DOWN and EVT_JOY_UP. I
suggest
changing the code to match the docs.
wxJoystick::GetNumberJoysticks() should be a static
member
function. Having to create a joystick object to see if there
are joysticks is silly.
Docs for GetNumberJoysticks() must be changed; it returns
the
number of potentially connected joysticks, not the number of
actually connected. Alternatively, GetNumberJoysticks() and
others must be rewritten to conform with documentation,
including
remapping of wxWindows sequential joystick ID's to match
MSW non-sequential joystick ID's.
dwSize is not set when joyGetPosEx() is called. SEVERE
ERROR.
Error return value from functions should not be a legal
return,
for instance, wxJoystick::GetPOVCTSPosition() returns 0
for error,
but this is a legal return value.
GetButtonState() supports only four (out of 32) buttons.
Also, should return as bitmap (LSB = button 1). (Win32
does this,
although not documented as such).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
By Hans Van Leemputten (hansvl)
- This patch implements a generic notebook based mdi,
due to that wxMDIChildFrame could not derive from
wxFrame some things in the samples and in the docmdi
classes needed to be adjusted... basically this comes
down to not do (wxFrame *) but instead do
(wxMDIChildFrame *), or store a pointer to the frame in a
wxWindow* instead of a wxFrame variable...
- The main reason wxMDIChildFrame cannot derive from
wxFrame is that it would take to much platform specific
functions to be overwritten (= lot of ifdef's). This then
couldn't be called generic anymore, so that's why we
need to derive from wxPanel...
- Tested on/with:
1. wxMSW (I disabled the MSW MDI implementation to
be able to test it), tested it with the MDI sample,
docvwmdi sample and docview sample and also tested it
with wxWorkshop. (test = compile and run)
2. wxX11, tested with the same set wxWin samples as
the wxMSW test. I also compiled wxWorkshop with it,
but could not run wxWorkshop due to some issue not
related to the MDI implementation.
- How to apply:
* Apply the patch
* move mdig.cpp into wxWindows/src/generic/
* move mdig.h into wxWindows/include/wx/generic/
- Some extra things that still need to be done:
* File lists, project files should be updated to include
mdig.cpp (the patch only change this on wxX11)
* The configuration script should be updated.
* Maybe wxUSE_GENERIC_MDI_ARCHITECTURE also
should be added so it is only included when wanted...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxClipboard fixes for GTK2 and UTF8.
wxFileConfig now uses wxConvLocal to convert text
and doesn't crash anymore..
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
By Robert O'Connor (robertoconnor)
This patch is a draft which successfully allows a wxArtProvider to serve out icons to bitmaps for XRC files.
The syntax to use a wxArtProvider bitmap is:
<bitmap stock_id="wxART_INFORMATION" stock_client="wxART_TOOLBAR">somefallbackicon.png</bitmap>
The bitmap is optional, and will only be used as a fallback image, if the wxArtProvider returned a wxNullBitmap for some reason.
The client attribute, if not specified, currently will be wxART_OTHER. Perhaps there should be a guessing heuristic of it being in a menu node to call wxART_MENU.
Usage of XRC resouces and wxArtProvider together can be seen in an updated /contrib/samples/xrc demo, which is a separate patch.
Search the wx-dev mailing lists for "wxArtProvider" and "XRC" for the full discussions on this feature's API design.
Applied patch [ 594932 ] Extended XRC XML resources sample
By Robert O'Connor (robertoconnor)
This is a more comprehensive introduction to how to get up and running using XRC in your new wxWindows project.
It describes both the basics (for new users) and advanced features. It consists of a demo of dialogs and frames loaded from XRC. Each dialog has a textctrl at the top of the dialog, which walks the new user through that feature.
There are 8 demos:
The 4 basic ones:
-A non-derived dialog, as typically used for an about dialog.
-A derived dialog that loads its resources from an XRC (a frequently-asked question on the mailing lists), and responds to some simple events, including the disable-another-control-via-EVT_UPDATE_UI that is another FAQ, and powerful and simple-to-use feature.
-A XRC reference "Controls" dialog, using a notebook. Each tab has a single control. All XRC handled widgets can be seen at a glance, and how to use them under XRC.
-An uncentered dialog, to demonstrate the easy use of <centered>1</centered> to automatically place a Dialog centered on its parent..
The 4 advanced ones:
-Embedding a custom class into an XRC dialog, by using the "unknown" class.
-Using wxArtProvider to use stock icons from within your your XRC resources.
-Using the platform attribute to selectively show a part of XRC based on the current OS.
-Runtime variable expansion (demo only. Not implemented at this time).
Also:
-The main frame is now demonstrated as being loaded as an XRC.
- The toolbar has longhelp tag demonstrated, and are hooked up to the same events as the menu to show how XRCID() works on the same tool and menuitem XRCID.
-Some custom icons for the demonstration were created, and put into the toolbar and menubar. A custom icon also for the demonstration.
-The example code has been put in 1 class per file (both .cpp and a matching .xrc), to make it much less confusing for a newcomer to figure out what class is what, expecially with all the wx macros for declaration and implementation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Unicode with their GNU libc 2.2 funtions. This
saves us some unicode<->ansi conversion and we
no longer need the experimental printf() code
in string.cpp. I had to implement wxSprintf()
using wxSnprintf() as the former doesn't exist
in Unicode GNU libc 2.2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
being just a define so that the signature is
using wxChar under Unicode under Unix just as
it does under Unicode under Mac. This required
some modification in various places, but should
make debugging a little easier, among others.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows changing the padding of the icons and text
in the tab of a wxNotebook for wxGTK.
Since the container in the tab is only a horizontal
container only the width component is used. Negative
values are acceptable so no checks were made.
It now defaults to a padding of 0 on the sides and 1 in
between the icon and label, looks good for a few
"themes" I tried.
Note: Unfortunately there is no function to set the
padding on the left or right side of a widget.
gtk_box_set_child_packing sets padding on BOTH sides of
a widget so you'd get double the spacing between an
icon and the label. To get around this, the icon (if
there was one) is removed and added back. That way the
icon will provide the padding on the left and the label
will provide the padding between and to the right. It
looks nice for all sizes. The
gtk_container_set_border_width unforuntately only adds
borders to ALL sides equally.
A simple check is to add m_notebook->SetPadding in one
in the spinctrl callback in the controls sample. (set
appropriate range too -10,20). Note that the tab sizes
change to fit the width of the panel, if appropriate,
and so the spacing between the icon and label changes
accordingly. This isn't a bug, but it does look weird
as you scan up and down the spacing (which nobody would
normally do).
I also changed all wxGtkNotebookPage variables to
nb_page so that "int page" would be used to mean the
page number. Just cosmetic for consistency with the
rest of the functions that were already like that.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This fixes the problem in include/wx/wxchar.h with
including <wchar.h> for CW reported by Andreas
Simanowski.
The current version does not work with CW Win32 builds.
The fix suggested by Andreas is incorrect, because it
will break the wxMAC CW builds.
The purpose of conditionals starting at line 77 is to
correctly handle the various compilers. The fundamental
problem with the existing code is that it begins by
conditioning on __WIN32__. This is wrong, and makes
it hard to handle compilers that work on more than one
OS (such as CW).
Instead the conditionals should be done purely on
compilers. Each compiler can then set things
appropriately. If a particular compiler works on more
than one OS but has different needs on each OS, then
this can be handled within the code for that compiler.
The attached patch removes the top level conditional on
__WIN32__ and restructures the remainder as a series
of conditionals on individual compilers.
Igor Mikolic-Torreira
igormt@alumni.caltech.edu
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
from Marcin Wojdyr (wojdyr)
Applied with some modifications (remove buttons from the chain on
destruction, or the program will segfault).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxControlWithItems, and removed some duplicated code.
Implemented wxCheckListBox using the same technique
as wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
are the text for/background colours. Until now motif used the pen and background brush colours.
Now Motif behaviour matches MSW and GTK one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Made wxCheckBox inherit from wxChekBoxBase.
Corrected virtual function hiding in wxListBox.
Made wxRadioBox inherit from wxRadioBoxBase.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Renamed generic wxSpinCtrl::DoGetBestClientSize to DoGetBestSize
( the "Client" appears to be a relic of the past ).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
now calling wxWindow::SetSize should call wxWindow::DoMoveWindow.
As a result composite controls should work with Motif, too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
changed one parameter in the definition of wxBitmap from long to int.
(just as it is in wxGTK). This solves a compilation problem on OpenVMS.
Modified Files:
wxWindows/include/wx/motif/bitmap.h
wxWindows/src/motif/bitmap.cpp
----------------------------------------------------------------------
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Added wxApp::DoInit to initialize the global wxMessageOutput instance.
Changed wxCommandLineParser to use wxMessageOutput.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775