Merged from trunk

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_GTK3@68695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
John Chain
2011-08-14 20:15:57 +00:00
9 changed files with 3638 additions and 3037 deletions
+1
View File
@@ -452,6 +452,7 @@ All (GUI):
- Add wxDataViewEvent::IsEditCancelled() (Allonii).
- Allow marking wxTreeBook nodes to expand initially in XRC (RedTide).
- Added customizable wxDocManager::OnMRUFileNotExist() virtual method.
- Fix stock labels when not using mnemonics for Chinese (cw.ahbong).
OSX:
+3504 -2916
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -62,8 +62,8 @@ wxCommandProcessor::wxCommandProcessor(int maxCommands)
#endif // wxUSE_MENUS
#if wxUSE_ACCEL
m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Z').ToString();
m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Y').ToString();
m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Z').ToString();
m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Y').ToString();
#endif // wxUSE_ACCEL
m_lastSavedCommand =
+78 -89
View File
@@ -118,85 +118,87 @@ wxString wxGetStockLabel(wxWindowID id, long flags)
{
wxString stockLabel;
#define STOCKITEM(stockid, label) \
case stockid: \
stockLabel = label; \
break;
#ifdef __WXMSW__
// special case: the "Cancel" button shouldn't have a mnemonic under MSW
// for consistency with the native dialogs (which don't use any mnemonic
// for it because it is already bound to Esc implicitly)
if ( id == wxID_CANCEL )
flags &= ~wxSTOCK_WITH_MNEMONIC;
#endif // __WXMSW__
#define STOCKITEM(stockid, labelWithMnemonic, labelPlain) \
case stockid: \
if(flags & wxSTOCK_WITH_MNEMONIC) \
stockLabel = labelWithMnemonic; \
else \
stockLabel = labelPlain; \
break
switch (id)
{
STOCKITEM(wxID_ABOUT, _("&About..."))
STOCKITEM(wxID_ADD, _("Add"))
STOCKITEM(wxID_APPLY, _("&Apply"))
STOCKITEM(wxID_BACKWARD, _("&Back"))
STOCKITEM(wxID_BOLD, _("&Bold"))
STOCKITEM(wxID_BOTTOM, _("&Bottom"))
STOCKITEM(wxID_CANCEL, _("&Cancel"))
STOCKITEM(wxID_CDROM, _("&CD-Rom"))
STOCKITEM(wxID_CLEAR, _("&Clear"))
STOCKITEM(wxID_CLOSE, _("&Close"))
STOCKITEM(wxID_CONVERT, _("&Convert"))
STOCKITEM(wxID_COPY, _("&Copy"))
STOCKITEM(wxID_CUT, _("Cu&t"))
STOCKITEM(wxID_DELETE, _("&Delete"))
STOCKITEM(wxID_DOWN, _("&Down"))
STOCKITEM(wxID_EDIT, _("&Edit"))
STOCKITEM(wxID_EXECUTE, _("&Execute"))
STOCKITEM(wxID_EXIT, _("&Quit"))
STOCKITEM(wxID_FILE, _("&File"))
STOCKITEM(wxID_FIND, _("&Find"))
STOCKITEM(wxID_FIRST, _("&First"))
STOCKITEM(wxID_FLOPPY, _("&Floppy"))
STOCKITEM(wxID_FORWARD, _("&Forward"))
STOCKITEM(wxID_HARDDISK, _("&Harddisk"))
STOCKITEM(wxID_HELP, _("&Help"))
STOCKITEM(wxID_HOME, _("&Home"))
STOCKITEM(wxID_INDENT, _("Indent"))
STOCKITEM(wxID_INDEX, _("&Index"))
STOCKITEM(wxID_INFO, _("&Info"))
STOCKITEM(wxID_ITALIC, _("&Italic"))
STOCKITEM(wxID_JUMP_TO, _("&Jump to"))
STOCKITEM(wxID_JUSTIFY_CENTER, _("Centered"))
STOCKITEM(wxID_JUSTIFY_FILL, _("Justified"))
STOCKITEM(wxID_JUSTIFY_LEFT, _("Align Left"))
STOCKITEM(wxID_JUSTIFY_RIGHT, _("Align Right"))
STOCKITEM(wxID_LAST, _("&Last"))
STOCKITEM(wxID_NETWORK, _("&Network"))
STOCKITEM(wxID_NEW, _("&New"))
STOCKITEM(wxID_NO, _("&No"))
STOCKITEM(wxID_OK, _("&OK"))
STOCKITEM(wxID_OPEN, _("&Open..."))
STOCKITEM(wxID_PASTE, _("&Paste"))
STOCKITEM(wxID_PREFERENCES, _("&Preferences"))
STOCKITEM(wxID_PREVIEW, _("Print previe&w"))
STOCKITEM(wxID_PRINT, _("&Print..."))
STOCKITEM(wxID_PROPERTIES, _("&Properties"))
STOCKITEM(wxID_REDO, _("&Redo"))
STOCKITEM(wxID_REFRESH, _("Refresh"))
STOCKITEM(wxID_REMOVE, _("Remove"))
STOCKITEM(wxID_REPLACE, _("Rep&lace"))
STOCKITEM(wxID_REVERT_TO_SAVED, _("Revert to Saved"))
STOCKITEM(wxID_SAVE, _("&Save"))
STOCKITEM(wxID_SAVEAS, _("Save &As..."))
STOCKITEM(wxID_SELECTALL, _("Select &All"))
STOCKITEM(wxID_SELECT_COLOR, _("&Color"))
STOCKITEM(wxID_SELECT_FONT, _("&Font"))
STOCKITEM(wxID_SORT_ASCENDING, _("&Ascending"))
STOCKITEM(wxID_SORT_DESCENDING, _("&Descending"))
STOCKITEM(wxID_SPELL_CHECK, _("&Spell Check"))
STOCKITEM(wxID_STOP, _("&Stop"))
STOCKITEM(wxID_STRIKETHROUGH, _("&Strikethrough"))
STOCKITEM(wxID_TOP, _("&Top"))
STOCKITEM(wxID_UNDELETE, _("Undelete"))
STOCKITEM(wxID_UNDERLINE, _("&Underline"))
STOCKITEM(wxID_UNDO, _("&Undo"))
STOCKITEM(wxID_UNINDENT, _("&Unindent"))
STOCKITEM(wxID_UP, _("&Up"))
STOCKITEM(wxID_YES, _("&Yes"))
STOCKITEM(wxID_ZOOM_100, _("&Actual Size"))
STOCKITEM(wxID_ZOOM_FIT, _("Zoom to &Fit"))
STOCKITEM(wxID_ZOOM_IN, _("Zoom &In"))
STOCKITEM(wxID_ZOOM_OUT, _("Zoom &Out"))
STOCKITEM(wxID_ABOUT, _("&About..."), _("About..."));
STOCKITEM(wxID_ADD, _("Add"), _("Add"));
STOCKITEM(wxID_APPLY, _("&Apply"), _("Apply"));
STOCKITEM(wxID_BACKWARD, _("&Back"), _("Back"));
STOCKITEM(wxID_BOLD, _("&Bold"), _("Bold"));
STOCKITEM(wxID_BOTTOM, _("&Bottom"), _("Bottom"));
STOCKITEM(wxID_CANCEL, _("&Cancel"), _("Cancel"));
STOCKITEM(wxID_CDROM, _("&CD-Rom"), _("CD-Rom"));
STOCKITEM(wxID_CLEAR, _("&Clear"), _("Clear"));
STOCKITEM(wxID_CLOSE, _("&Close"), _("Close"));
STOCKITEM(wxID_CONVERT, _("&Convert"), _("Convert"));
STOCKITEM(wxID_COPY, _("&Copy"), _("Copy"));
STOCKITEM(wxID_CUT, _("Cu&t"), _("Cut"));
STOCKITEM(wxID_DELETE, _("&Delete"), _("Delete"));
STOCKITEM(wxID_DOWN, _("&Down"), _("Down"));
STOCKITEM(wxID_EDIT, _("&Edit"), _("Edit"));
STOCKITEM(wxID_EXECUTE, _("&Execute"), _("Execute"));
STOCKITEM(wxID_EXIT, _("&Quit"), _("Quit"));
STOCKITEM(wxID_FILE, _("&File"), _("File"));
STOCKITEM(wxID_FIND, _("&Find"), _("Find"));
STOCKITEM(wxID_FIRST, _("&First"), _("First"));
STOCKITEM(wxID_FLOPPY, _("&Floppy"), _("Floppy"));
STOCKITEM(wxID_FORWARD, _("&Forward"), _("Forward"));
STOCKITEM(wxID_HARDDISK, _("&Harddisk"), _("Harddisk"));
STOCKITEM(wxID_HELP, _("&Help"), _("Help"));
STOCKITEM(wxID_HOME, _("&Home"), _("Home"));
STOCKITEM(wxID_INDENT, _("Indent"), _("Indent"));
STOCKITEM(wxID_INDEX, _("&Index"), _("Index"));
STOCKITEM(wxID_INFO, _("&Info"), _("Info"));
STOCKITEM(wxID_ITALIC, _("&Italic"), _("Italic"));
STOCKITEM(wxID_JUSTIFY_CENTER, _("Centered"), _("Centered"));
STOCKITEM(wxID_JUSTIFY_FILL, _("Justified"), _("Justified"));
STOCKITEM(wxID_LAST, _("&Last"), _("Last"));
STOCKITEM(wxID_NETWORK, _("&Network"), _("Network"));
STOCKITEM(wxID_NEW, _("&New"), _("New"));
STOCKITEM(wxID_NO, _("&No"), _("No"));
STOCKITEM(wxID_OK, _("&OK"), _("OK"));
STOCKITEM(wxID_OPEN, _("&Open..."), _("Open..."));
STOCKITEM(wxID_PASTE, _("&Paste"), _("Paste"));
STOCKITEM(wxID_PREFERENCES, _("&Preferences"), _("Preferences"));
STOCKITEM(wxID_PREVIEW, _("&Preview..."), _("Preview..."));
STOCKITEM(wxID_PRINT, _("&Print..."), _("Print..."));
STOCKITEM(wxID_PROPERTIES, _("&Properties"), _("Properties"));
STOCKITEM(wxID_REDO, _("&Redo"), _("Redo"));
STOCKITEM(wxID_REFRESH, _("Refresh"), _("Refresh"));
STOCKITEM(wxID_REMOVE, _("Remove"), _("Remove"));
STOCKITEM(wxID_REPLACE, _("Rep&lace"), _("Replace"));
STOCKITEM(wxID_SAVE, _("&Save"), _("Save"));
STOCKITEM(wxID_SAVEAS, _("&Save as"), _("Save as"));
STOCKITEM(wxID_SELECT_COLOR, _("&Color"), _("Color"));
STOCKITEM(wxID_SELECT_FONT, _("&Font"), _("Font"));
STOCKITEM(wxID_SORT_ASCENDING, _("&Ascending"), _("Ascending"));
STOCKITEM(wxID_SORT_DESCENDING, _("&Descending"), _("Descending"));
STOCKITEM(wxID_STOP, _("&Stop"), _("Stop"));
STOCKITEM(wxID_STRIKETHROUGH, _("&Strikethrough"), _("Strikethrough"));
STOCKITEM(wxID_TOP, _("&Top"), _("Top"));
STOCKITEM(wxID_UNDELETE, _("Undelete"), _("Undelete"));
STOCKITEM(wxID_UNDERLINE, _("&Underline"), _("Underline"));
STOCKITEM(wxID_UNDO, _("&Undo"), _("Undo"));
STOCKITEM(wxID_UNINDENT, _("&Unindent"), _("Unindent"));
STOCKITEM(wxID_UP, _("&Up"), _("Up"));
STOCKITEM(wxID_YES, _("&Yes"), _("Yes"));
default:
wxFAIL_MSG( wxT("invalid stock item ID") );
@@ -218,19 +220,6 @@ wxString wxGetStockLabel(wxWindowID id, long flags)
"labels without ellipsis shouldn't use accelerators" );
}
#ifdef __WXMSW__
// special case: the "Cancel" button shouldn't have a mnemonic under MSW
// for consistency with the native dialogs (which don't use any mnemonic
// for it because it is already bound to Esc implicitly)
if ( id == wxID_CANCEL )
flags &= ~wxSTOCK_WITH_MNEMONIC;
#endif // __WXMSW__
if ( !(flags & wxSTOCK_WITH_MNEMONIC) )
{
stockLabel = wxStripMenuCodes(stockLabel);
}
#if wxUSE_ACCEL
if ( !stockLabel.empty() && (flags & wxSTOCK_WITH_ACCELERATOR) )
{
+14 -4
View File
@@ -1230,7 +1230,10 @@ size_t wxMBConvUTF8::ToWChar(wchar_t *buf, size_t n,
size_t len = 0;
while ((srcLen == wxNO_LEN ? *psz : srcLen--) && ((!buf) || (len < n)))
// The length can be either given explicitly or computed implicitly for the
// NUL-terminated strings.
const bool isNulTerminated = srcLen == wxNO_LEN;
while ((isNulTerminated ? *psz : srcLen--) && ((!buf) || (len < n)))
{
const char *opsz = psz;
bool invalid = false;
@@ -1364,10 +1367,17 @@ size_t wxMBConvUTF8::ToWChar(wchar_t *buf, size_t n,
}
}
if (srcLen == wxNO_LEN && buf && (len < n))
*buf = 0;
if ( isNulTerminated )
{
// Add the trailing NUL in this case if we have a large enough buffer.
if ( buf && (len < n) )
*buf = 0;
return len + 1;
// And count it in any case.
len++;
}
return len;
}
static inline bool isoctal(wchar_t wch)
+7 -8
View File
@@ -519,7 +519,7 @@ public:
unsigned int GetRowCount();
wxDataViewItem GetSelection() const;
wxDataViewSelection GetSelections(){ return m_selection; }
const wxDataViewSelection& GetSelections() const { return m_selection; }
void SetSelections( const wxDataViewSelection & sel )
{ m_selection = sel; UpdateDisplay(); }
void Select( const wxArrayInt& aSelections );
@@ -2108,11 +2108,10 @@ bool wxDataViewMainWindow::ItemDeleted(const wxDataViewItem& parent,
wxDataViewSelection newsel(wxDataViewSelectionCmp);
for ( wxDataViewSelection::const_iterator i = m_selection.begin();
i != m_selection.end();
++i )
const size_t numSelections = m_selection.size();
for ( size_t i = 0; i < numSelections; ++i )
{
const int s = *i;
const int s = m_selection[i];
if ( s < itemRow )
newsel.push_back(s);
else if ( s >= itemRow + itemsDeleted )
@@ -4489,12 +4488,12 @@ wxDataViewItem wxDataViewCtrl::GetSelection() const
int wxDataViewCtrl::GetSelections( wxDataViewItemArray & sel ) const
{
sel.Empty();
wxDataViewSelection selection = m_clientArea->GetSelections();
const wxDataViewSelection& selections = m_clientArea->GetSelections();
const size_t len = selection.size();
const size_t len = selections.size();
for ( size_t i = 0; i < len; i++ )
{
wxDataViewItem item = m_clientArea->GetItemByRow(selection[i]);
wxDataViewItem item = m_clientArea->GetItemByRow(selections[i]);
if ( item.IsOk() )
{
sel.Add(item);
+12 -6
View File
@@ -1756,7 +1756,7 @@ DataBrowserTrackingResult wxMacDataViewDataBrowserListViewControl::DataBrowserTr
dataViewCtrlPtr = dynamic_cast<wxDataViewCtrl*>(GetWXPeer());
wxCHECK_MSG(dataViewCtrlPtr != NULL, false,_("Pointer to data view control not set correctly."));
wxCHECK_MSG(dataViewCtrlPtr->GetModel() != NULL,false,_("Pointer to model not set correctly."));
dataViewCustomRendererItem = reinterpret_cast<void*>(itemID);
dataViewCustomRendererItem = wxDataViewItem(reinterpret_cast<void*>(itemID));
wxCHECK_MSG(dataViewCustomRendererItem.IsOk(),kDataBrowserNothingHit,_("Invalid data view item"));
dataViewColumnPtr = GetColumnPtr(propertyID);
wxCHECK_MSG(dataViewColumnPtr != NULL,kDataBrowserNothingHit,_("No column existing."));
@@ -1814,8 +1814,11 @@ Boolean wxMacDataViewDataBrowserListViewControl::DataBrowserAcceptDragProc(DragR
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE,dataViewCtrlPtr->GetId());
dataViewEvent.SetEventObject(dataViewCtrlPtr);
dataViewEvent.SetItem(reinterpret_cast<void*>(itemID)); // this is the item that receives the event
// (can be an invalid item ID, this is especially useful if the dataview does not contain any items)
// this is the item that receives the event (can be an invalid item ID, this is
// especially useful if the dataview does not contain any items)
dataViewEvent.SetItem( wxDataViewItem(reinterpret_cast<void*>(itemID)) );
dataViewEvent.SetModel(dataViewCtrlPtr->GetModel());
dataViewEvent.SetDataObject(dataObjects);
dataViewEvent.SetDataFormat(GetDnDDataFormat(dataObjects));
@@ -1848,7 +1851,7 @@ Boolean wxMacDataViewDataBrowserListViewControl::DataBrowserAddDragItemProc(Drag
dataViewCtrlPtr = dynamic_cast<wxDataViewCtrl*>(GetWXPeer());
wxCHECK_MSG(dataViewCtrlPtr != NULL, false,_("Pointer to data view control not set correctly."));
wxCHECK_MSG(dataViewCtrlPtr->GetModel() != NULL,false,_("Pointer to model not set correctly."));
dataViewItem = reinterpret_cast<void*>(itemID);
dataViewItem = wxDataViewItem(reinterpret_cast<void*>(itemID));
wxCHECK_MSG(dataViewItem.IsOk(),false,_("Invalid data view item"));
// send a begin drag event and proceed with dragging unless the event is vetoed:
@@ -1988,8 +1991,11 @@ Boolean wxMacDataViewDataBrowserListViewControl::DataBrowserReceiveDragProc(Drag
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_DROP,dataViewCtrlPtr->GetId());
dataViewEvent.SetEventObject(dataViewCtrlPtr);
dataViewEvent.SetItem(reinterpret_cast<void*>(itemID)); // this is the item that receives the event
// (can be an invalid item ID, this is especially useful if the dataview does not contain any items)
// this is the item that receives the event (can be an invalid item ID, this is
// especially useful if the dataview does not contain any items)
dataViewEvent.SetItem( wxDataViewItem(reinterpret_cast<void*>(itemID)) );
dataViewEvent.SetModel(dataViewCtrlPtr->GetModel());
dataViewEvent.SetDataObject(dataObjects);
dataViewEvent.SetDataFormat(GetDnDDataFormat(dataObjects));
+19 -11
View File
@@ -53,6 +53,18 @@ void wxBell()
- (void)applicationWillFinishLaunching:(NSNotification *)application {
wxUnusedVar(application);
// we must install our handlers later than setting the app delegate, because otherwise our handlers
// get overwritten in the meantime
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
[appleEventManager setEventHandler:self andSelector:@selector(handleOpenAppEvent:withReplyEvent:)
forEventClass:kCoreEventClass andEventID:kAEOpenApplication];
}
- (void)application:(NSApplication *)sender openFiles:(NSArray *)fileNames
@@ -69,13 +81,6 @@ void wxBell()
wxTheApp->MacOpenFiles(fileList);
}
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
wxUnusedVar(sender);
wxTheApp->MacNewFile() ;
return NO;
}
- (BOOL)application:(NSApplication *)sender printFile:(NSString *)filename
{
wxUnusedVar(sender);
@@ -101,6 +106,13 @@ void wxBell()
wxTheApp->MacOpenURL(cf.AsString()) ;
}
- (void)handleOpenAppEvent:(NSAppleEventDescriptor *)event
withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
wxUnusedVar(replyEvent);
wxTheApp->MacNewFile() ;
}
/*
Allowable return values are:
NSTerminateNow - it is ok to proceed with termination
@@ -239,10 +251,6 @@ bool wxApp::DoInitGui()
wxNSAppController* controller = [[wxNSAppController alloc] init];
[NSApp setDelegate:controller];
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:controller andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
// calling finishLaunching so early before running the loop seems to trigger some 'MenuManager compatibility' which leads
// to the duplication of menus under 10.5 and a warning under 10.6
#if 0
+1 -1
View File
@@ -54,7 +54,7 @@ wxObject *wxButtonXmlHandler::DoCreateResource()
if ( GetParamNode("bitmap") )
{
wxDirection dir;
const wxString dirstr = GetParamValue("direction");
const wxString dirstr = GetParamValue("bitmapposition");
if ( dirstr.empty() || dirstr == "wxLEFT" )
dir = wxLEFT;
else if ( dirstr == "wxRIGHT" )