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.
Julian Smart [Thu, 8 Aug 2002 10:04:13 +0000 (10:04 +0000)]
Applied patch [ 584057 ] Fixes calculation bug in wxThread::Sleep
There's a problem in src/mac/thread.cpp function
wxThread::Sleep when CLOCKS_PER_SEC is not
1000. The amount-to-sleep code doesn't take into
account this value. Due to this when I did Sleep(1000) it
was sleeping a fraction of a second because on my Mac
CLOCKS_PER_SEC is 60. This patch fixes it.
Julian Smart [Thu, 8 Aug 2002 10:00:50 +0000 (10:00 +0000)]
Applied patch [ 588140 ] User Scaling of Rotated Text on wxGTK
The effect of wxDC::SetUserScale() on
wxDC::DrawRotatedText() is to scale the text **twice**.
The code is in src/gtk/dcclient.cpp
The first scaling operation occurs when choosing the
GTK font size (as happens for wxDC::DrawText()). The
rotated text is scaled a second time when blitting the
rotated text bitmap to the DC, in the functions
XLOG2DEV(x + dstX) and YLOG2DEV(y + dstY).
The supplied patch moves the rotated bitmap co-ords
(dstX, dstY) outside of the LOG2DEV functions.
Julian Smart [Thu, 8 Aug 2002 09:44:32 +0000 (09:44 +0000)]
Applied patch [ 587723 ] Update to cw.rsp file
I've updated the file so it captures all the files that are
unique to the wxMSW + CW combination.
Even though not all of the samples have CW project
files, all the samples are listed in the rsp. That way if
more samples get project files prior to release 2.3.x or
2.4, there will be no need to modify this file.
I did, however, remove all of the util sub-directories from
cw.rsp because none of the util sub-directories have any
CW project files (and I don't foresee adding any ;)
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.
Julian Smart [Thu, 8 Aug 2002 09:24:38 +0000 (09:24 +0000)]
Applied patch [ 590031 ] Slider: Events must be enabled earlier
The current wxSlider - implementation gives a gtk-warning
about not being able to find an event handler. This is
because the first call of GtkEnableEvents has to happen a
few lines earlier. The patch fixes this.
Julian Smart [Thu, 8 Aug 2002 09:15:03 +0000 (09:15 +0000)]
Applied patch [ 590247 ] Fix bad calculation of listctrl update.
In wxGenericListCtrl when removing single items a call to
RefreshAfter would cause bad things to happen in GTK/X11.
It would under certain circumstances put Xlib into an
exponential memory and cpu usage mode. Causing
eventual core dump but not before using all memory and
swap.
The problem is that RefreshAfter is passing a negative
height rectangle refresh to GTK/X11. This stems from a mixture
of using scrolled and unscrolled values to calculate the
update region.
This patch fixes the problem... by transforming to scrolled
values earlier. And also adds one optimization to not
update when the item is below the visible area.
Julian Smart [Thu, 8 Aug 2002 09:10:04 +0000 (09:10 +0000)]
Applied patch [ 592363 ] Owner Draw Round 2 fixes
This patch fixes the following items in the owner draw
code:
* When an item is disabled, yet highlighted, the code
will now retrieve the user's system settings for
greyed-out text and use that color. Previously, the
code had continued to print the disabled text with an
embossed effect, which looked bad when the item was
highlighted.
* Menu formatting, such as hot-key underlining
(example, "&Open"), has been fixed.
* Measurements and alignments with
accelerators/hot-keys has been fixed.
Stefan Csomor [Fri, 2 Aug 2002 15:46:45 +0000 (15:46 +0000)]
corrected scrolling problems for controls, switched to separate wxSpinCtrl implementation, both wxComboBox and wxSpinCtrl now have proper parenting for their members
Mattia Barbon [Fri, 2 Aug 2002 08:16:15 +0000 (08:16 +0000)]
Patch [ 584078 ] Misc samples fixes from Dimitri Schoolwerth
Addresses:
printf-format warinigs
indentation/style
unused variable warnings
used wxID_ABOUT for about menu entry
removed references to "minimal sample" in other samples
some other misc warinigs
Mattia Barbon [Thu, 1 Aug 2002 19:58:32 +0000 (19:58 +0000)]
This is a quick hack: if there is no global wxMessageOutput instance, and
there is a wxApp instance, call wxTheApp->DoInit() to initialize the
global wxMessageOutput instance. The correct solution is to ensure that
wxApp::DoInit is always called.
Mattia Barbon [Thu, 1 Aug 2002 19:12:24 +0000 (19:12 +0000)]
Patch [ 584078 ] Misc samples fixes from Dimitri Schoolwerth
Addresses:
printf-format warinigs
indentation/style
unused variable warnings
used wxID_ABOUT for about menu entry
removed references to "minimal sample" in other samples
some other misc warinigs
Refactored wxListBox code so that it correctly implements
wxControlWithItems, and removed some duplicated code.
Implemented wxCheckListBox using the same technique
as wxGTK.
Under MSW and GTK the foreground and background colour for a blit from a monochrome bitmap
are the text for/background colours. Until now motif used the pen and background brush colours.
Now Motif behaviour matches MSW and GTK one.
Ron Lee [Mon, 29 Jul 2002 04:13:25 +0000 (04:13 +0000)]
The world should not end if a server has no peer. Let's return FALSE instead.
GAddress_copy should copy truthfully, not mangle the result if things are
going badly. An earlier incarnation of the above.
Disable events before closing the socket, though just disabling them at all
will do. This was the cause of the nasty 'crash on fail to bind' behaviour
that people have been seeing.