Commit Graph

28473 Commits

Author SHA1 Message Date
Vadim Zeitlin
fda43a0e01 Fix compilation of wxSpinCtrlGenericBase when PCH are not used.
This fixes PCH-less compilation broken by r65043.

Closes #12259 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-22 13:42:38 +00:00
Vadim Zeitlin
9bce7b7b13 Update wxSpinCtrlDouble::m_digits in its SetDigits().
We need to update the internally stored information about the number of digits
we use and not just update the control appearance accordingly.

Also don't do anything at all when the number of digits didn't really change.

Closes #12260.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-22 12:16:19 +00:00
Vadim Zeitlin
ab9893576c Add wxItemContainer::DetachClientObject() and use it in wxRearrangeList.
Add a method to detach the item from an item control without deleting it and
use it in wxRearrangeList to correctly swap object client data without
deleting the pointers in the process.

Closes #12201.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-22 12:09:15 +00:00
Vadim Zeitlin
f203de0cc4 Replace 2.9.1 version with 2.9.2.
Also update the inc_release script to take src/wxWindows.xcodeproj into
account.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-22 12:09:04 +00:00
Vadim Zeitlin
ef787038ec Correct printf parameter mismatch in wxWndProc.
LPARAM is a 64 bit type in Win64 and doesn't match the size expected by "%l"
printf format specifier. Instead of showing it as a 32 bit number in 32 bit
build and 64 bit in 64 bits, just truncate it to the lower 32 bits in any case
for now, this should be enough for the diagnostic messages.

Closes #12242.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 13:39:20 +00:00
Vadim Zeitlin
6cd205f5a8 Update AUI frame capture when it changes.
Set the updated label in wxAuiManager::Update() to ensure the labels stored
two places are always in sync.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 11:55:54 +00:00
Vadim Zeitlin
4b6d82c739 Ensure that validators work even in presence of pushed event handlers.
Call pre-processing hooks for each of the handlers in the chain and not only
the first one. This ensures that a validator (which is invoked during the
pre-processing stage) of a window is used even if a window has an event
handler pushed on top of it.

Closes #12177.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 11:53:08 +00:00
Vadim Zeitlin
2933f70a8b Don't reuse the same event object for multiple events in wxGTK.
The old code simply called SetEventType() to change the type of the event and
called HandleWindowEvent() again with it. This was incorrect as the event was
modified after being processed the first time, notably its WasProcessed() flag
was set and so wxApp::FilterEvent() wasn't called when it was being processed
the second time. In practice this meant that FilterEvent() was never called
for wxEVT_CHAR events -- for which it's nevertheless very useful to have as it
allows to implement application-wide keyboard processing.

Also refactor the code to avoid duplication, exactly the same event sending
code was used in gtk_window_key_press_callback() and gtk_wxwindow_commit_cb().
Extract it now in a private SendCharHookAndCharEvents() function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 11:53:04 +00:00
Stefan Csomor
396f0e3dd4 organizing code, adding offset correction for update region when non native control borders are used, fixes #12229
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 06:16:26 +00:00
Vadim Zeitlin
b0f73b6701 Really set svn:eol-style property.
The last commit used incorrect property name, remove the erroneous property
and set the correct svn:eol-style one.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-17 14:55:45 +00:00
Stefan Csomor
e8f25fcf5d removing early init, fixes #12231
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-17 06:08:13 +00:00
Robert Roebling
1662942c27 Don't pass NULL to wxDir, rather hop over when trying to find dir with translation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-16 10:31:38 +00:00
Vadim Zeitlin
705c4d13d9 Don't use wxRendererNative::DrawFocusRect() under Mac.
This function doesn't do the right thing there, it draws the focus border as
it's drawn around controls such as buttons. This border overflows the item
rectangle and results in garbage remaining on screen when selection changes.

See #12229.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-14 14:52:28 +00:00
Vadim Zeitlin
c2eb89388e Use correct format specifiers in wxOSX/Carbon font caching code.
The specifiers used didn't match the actual argument types resulting in the
asserts from the new wxPrintf() code. Correct them to match the real types.

Closes #12186.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-14 14:52:23 +00:00
Vadim Zeitlin
9b35f81e41 Suppress warnings about double to int truncation in wxHTML code.
Actually it's not totally clear if truncation or rounding was intended here
but when in doubt preserve the old code semantics.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-14 11:20:36 +00:00
Vadim Zeitlin
63ced01b22 Generate key events in generic wxDataViewCtrl implementation.
Forward wxEVT_CHAR events from wxDataViewMainWindow to the parent window so
that they could be processed at wxDataViewCtrl level.

Call DisableKeyboardScrolling() to ensure that cursor movement keys are not
always eaten by the parent window but can be used for the navigation in the
control if they're not processed by user.

Add a test keyboard handler to the dataview sample to check that handling keys
in wxDataViewCtrl does work.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-14 11:12:03 +00:00
Jaakko Salli
33e478497f wxArrayStringProperty::m_delimiter default value was missing. Also cleaned up relevant string formatting.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 15:54:45 +00:00
Vadim Zeitlin
330b318983 Compilation fix for wxUSE_FONTENUM==0 case.
Fix another error in minimal wxGTK buildbot build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 14:13:07 +00:00
Vadim Zeitlin
233f573883 Fix file paths in the header comments.
Consistently use only "wx/foo.h" instead of "include/wx/foo.h" ("include" is
always implicit anyhow).

Also use "src/osx" instead of "src/mac" for the files in this directory.

See #12165.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:58 +00:00
Vadim Zeitlin
526954c596 Globally use "wxWindows licence" consistently.
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
2010-07-13 13:29:13 +00:00
Vadim Zeitlin
a8a3ccb853 Remove hard TABs from 3rd party files in src directory.
This is necessary to be able to commit upcoming changes to them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:27:19 +00:00
Vadim Zeitlin
4a07d70634 Send right and double click events in wxGrid when using native header.
Previously only simple left click event was sent in this case, now also
generate right and double click ones.

Closes #12156.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 12:38:00 +00:00
Vadim Zeitlin
f4ad6505da Fix wxMotif compilation with g++ 4.4.
wxMenu::CreateMenu() parameter called "index" was mistakenly wrapped in
WXUNUSED() making it invisible inside the function body and the (BSD string
function) index() was used instead. This somehow compiled before but not with
g++ 4.4. In any case, the code was wrong even when it did compile.

Remove WXUNUSED() from the parameter and also rename it to avoid clashes with
(semi-)standard function which can also be defined as macro on some systems.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 11:33:09 +00:00
Vadim Zeitlin
c82f9bcf7f Revert the wxDataObjectComposite checks added by r58549.
The checks for data format duplication in wxDataObjectComposite::Add() added
by this revision were broken and didn't actually check anything. It also
doesn't seem clear why do we need them at all so simply remove them. See #10437
for more details.

This also closes #12113 as a side effect because the messages are not present
any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 11:33:03 +00:00
Vadim Zeitlin
e5805c0fde Only compile wxStd{Input,Output}Stream if wxUSE_STREAMS==1.
This fixes compilation of minimal wxWidgets build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:51 +00:00
Vadim Zeitlin
4193a1a4a4 Don't use dangling pointers in wxWindowMSW::HandleMenuChar().
We used a pointer into the result of wx_str() for a temporary string which was
clearly wrong. Store the string we're manipulating to ensure that this doesn't
happen.

This in particular fixes keyboard navigation in the menus with owner-drawn
items.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:28 +00:00
Vadim Zeitlin
fd76c6a77d Remove scroll units duplication in wxGrid to fix setting them.
For some unknown reason wxGrid decided to store its scroll units in its own
m_scrollLine[XY] variables instead of just using the base wxScrollWindow class
m_[xy]ScrollPixelsPerLine ones. And, of course, the two could get out of sync
because wxGrid didn't update the base class version correctly.

Just don't duplicate these values at all and use the base class fields. This
makes the code simpler and also fixes changing the size of the scroll units.

Closes #12221.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:23 +00:00
Vadim Zeitlin
ad178a657e Make Home and End keys work as expected in wxGrid.
Go to the first/last cell of the current row when they're pressed instead of
starting the editor.

Closes #12222.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:18 +00:00
Vadim Zeitlin
b526f9d64d Fix text updated event generation in wxGTK wxComboBox.
The changes (cosmetic renaming, no less) in r64436 broke unit tests checking
for wxComboBox event generation because the extra text updated events were not
suppressed correctly any longer because wrong {Enable,Disable}Events() were
called instead of the correct GTK{Enable,Disable}Events().

Fix and slightly improve the code by disabling the events in overridden
EnableTextChangedEvents() itself and reuse its code from GTK-specific event
enabling functions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:14 +00:00
Vadim Zeitlin
969641a391 Fix wxToggleButtonXmlHandler compilation with wxUniv.
Remove nonsensical code involving operator ?: with wxString and wxBitmap
operands. No idea what was the intention behind it but it failed to even
compile in wxX11 build so the new version (which does compile) can't be worse.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:09 +00:00
Jaakko Salli
c6aabd1ca9 Fix non-PCH builds (closes #12217)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 20:00:44 +00:00
Jaakko Salli
525b29124a Added 'Delimiter' attribute for wxArrayStringProperty. Moved static ArrayStringToString() to wxArrayStringProperty.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 17:04:23 +00:00
Jaakko Salli
895e26a04b Have the new incarnation of wxPGArrayEditorDialog support the old-style 'custom button' event as something that happens when the wxEditableListBox's 'New Item' button is pressed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 16:06:03 +00:00
Vadim Zeitlin
ac63bc407e Set the string to search for in wxSearchCtrl events.
It's more convenient to have the string to search for directly in the event
object than to retrieve it from wxSearchCtrl itself as it had to be done
before.

Closes #4665.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:44:18 +00:00
Vadim Zeitlin
68abd97d19 Don't use uninitialized variables in wxGrid::AutoSize().
The code in wxGrid::AutoSizeColOrRow() was using uninitialized col/row
variable if the grid had no rows/columns, resulting in assertion failures when
trying to automatically size the columns of an empty grid.

Do initialize them now and also remove duplicate assignments to the variables
which never change inside the loop.

Closes #12206.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:44:12 +00:00
Vadim Zeitlin
3dea8ba7ac Account for largest item in wxGenericListCtrl::GetBestSize().
Don't just return a hard-coded value but at least return something big
enough to show the largest item in the control in non-report mode.

This fixes the appearance of wxListbook which simply truncated its items
before if they didn't fit in 80 pixels horizontally.

Also switch to implementing DoGetBestClientSize() instead of DoGetBestSize()
as this method doesn't account for the control borders (it does account for
the scrollbars however).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:44:08 +00:00
Vadim Zeitlin
e61fedabe7 Ensure that wxGenericListCtrl always has wx[HV]SCROLL styles.
Although these styles are unconditionally added when creating the window they
could be reset by calling SetWindowStyleFlag() later and this in fact happened
when changing control mode from wxListbook.

As it doesn't make sense to have wxListCtrl without these styles, also add
them unconditionally in overridden SetWindowStyleFlag() as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:57 +00:00
Vadim Zeitlin
7e843c0e2b Don't set negative size when using constraints for layout.
Passing negative size to GTK+ results in error messages and in the future
wxWindow::SetSize() itself might assert if passed negative size so just avoid
setting it in the first place even if there is not enough space for
everything.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:53 +00:00
Vadim Zeitlin
b35549525f Implement wxWindow::DoGetBorderSize() for all ports.
Implement DoGetBorderSize() properly for wxGTK and use the difference between
the full window size and the client size for all the ports not implementing
this method. The latter is incorrect in the presence of the scrollbars but is
the best we can do in general.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:49 +00:00
Vadim Zeitlin
d67fc8b735 Fix item selection/focus drawing in generic wxListCtrl.
Item focus rectangle was not drawn at all under wxGTK as the code doing it was
disabled with a comment saying that it was drawn elsewhere -- but this wasn't
the case.

So remove #ifdefs for wxGTK/Mac from generic wxListCtrl code and do use
wxRendererNative methods for all platforms. This fixes the appearance of the
control under GTK and if it introduces any problems under Mac, they should be
fixed in its wxRendererNative implementation and not by adding #ifdefs here.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:43 +00:00
Vadim Zeitlin
c70ad28733 Don't use tree style to draw focus in DrawItemSelectionRect() in wxGTK.
Using gtk_paint_focus() with a tree widget style did a clearly wrong thing
with Clearlooks theme: instead of drawing a focus rectangle it drew a
background with a shadow overflowing the specified rectangle. This resulted in
junk being left when the selection was changing in wx{List,Tree}Ctrl.

Just use the widgets own style instead as this seems to work just fine. After
this change the code for focus drawing in DrawItemSelectionRect() became
identical to the code of DrawFocusRect() so just call the latter from the
former instead of duplicating its code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:39 +00:00
Vadim Zeitlin
d6a658ff0c Allow user code to override key events in generic wxListCtrl.
The changes of r58323 ("Restore keyboard navi") fixed the handling of cursor
keys in the generic wxListCtrl implementation but at the price of not sending
keyboard events for the cursor keys to wxListCtrl itself any more. This made
it impossible to override their handling in user code, something that used to
work in previous wx versions and still works in wxMSW.

Revert the changes of this revision now and fix the original code by simply
disabling the handling of the cursor keys in wxScrollHelperBase using a newly
added DisableKeyboardScrolling() method. This ensures that the keyboard events
for cursor keys are not used to scroll the window when they are forwarded to
wxListCtrl from wxListMainWindow.

The fix is conceptually ugly as it would be better to avoid the need for such
ad hoc functions as DisableKeyboardScrolling() but it is very simple and there
just doesn't seem to be any sane way to do it otherwise with wxScrollHelperBase.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:35 +00:00
Vadim Zeitlin
6794ca461c Fix setting wxStaticText alignment under wxGTK.
The alignment was ignored unless a wxST_ELLIPSIZE_XXX style was already used.
Apparently calling gtk_label_set_ellipsize(PANGO_ELLIPSIZE_NONE) resets the
alignment, so set the alignment after setting the ellipsization style, not
before.

Another possible solution would be to avoid calling gtk_label_set_ellipsize()
completely if no ellipsization styles are given but maybe the original code
didn't do this for some (unknown and undocumented) reason so keep it this way.

Closes #10716.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:28 +00:00
Vadim Zeitlin
5778dedc92 Swap client data pointers in wxRearrangeList too.
If the list box uses client data, we need to swap the data pointers too when
exchanging items in it.

Closes #12201.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:23 +00:00
Vadim Zeitlin
ecc4f568a9 Correct the size of bitmap returned by wxRegion::ConvertToBitmap().
The bitmap was 1 pixel smaller than needed due to the unwarranted use of
wxRect::GetRight() and GetBottom() instead of GetWidth() and GetHeight().

Closes #12213.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:18 +00:00
Jaakko Salli
f18b71b07e Do not run focus detection when handling events from editor control (mostly because they may be showing a dialog)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-10 15:40:33 +00:00
Jaakko Salli
2906967c4a wxArrayEditorDialog now uses wxEditableListBox. It has also been renamed to wxPGArrayEditorDialog.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-10 15:30:35 +00:00
Julian Smart
5d38a50465 Fix undefined symbols
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-09 17:26:27 +00:00
Jaakko Salli
72e8179f26 Include scopeguard.h for wxON_BLOCK_EXIT_SET()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-09 15:17:21 +00:00
Julian Smart
6494f8d142 iPhone SDK 2.2 compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-08 17:35:45 +00:00