X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..b81abd0d1d0fcde8db54f8c5e736b2b9daaf2ea0:/src/mac/utils.cpp diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp index 940bdc21bc..b312321562 100644 --- a/src/mac/utils.cpp +++ b/src/mac/utils.cpp @@ -18,6 +18,7 @@ #include "wx/setup.h" #include "wx/utils.h" #include "wx/app.h" +#include "wx/mac/uma.h" #include @@ -26,7 +27,13 @@ #include #include -// Get full hostname (eg. DoDo.BSn-Germany.crg.de) +// get full hostname (with domain name if possible) +bool wxGetFullHostName(wxChar *buf, int maxSize) +{ + return wxGetHostName(buf, maxSize); +} + +// Get hostname only (without domain name) bool wxGetHostName(char *buf, int maxSize) { // TODO @@ -196,7 +203,9 @@ bool wxGetResource(const wxString& section, const wxString& entry, int *value, c } #endif // wxUSE_RESOURCES -static int wxBusyCursorCount = 0; +int wxBusyCursorCount = 0; +extern CursHandle gMacCurrentCursor ; +CursHandle gMacStoredActiveCursor = NULL ; // Set the cursor to the busy cursor for all windows void wxBeginBusyCursor(wxCursor *cursor) @@ -204,7 +213,8 @@ void wxBeginBusyCursor(wxCursor *cursor) wxBusyCursorCount ++; if (wxBusyCursorCount == 1) { - // TODO + gMacStoredActiveCursor = gMacCurrentCursor ; + ::SetCursor( *::GetCursor( watchCursor ) ) ; } else { @@ -221,7 +231,14 @@ void wxEndBusyCursor() wxBusyCursorCount --; if (wxBusyCursorCount == 0) { - // TODO + if ( gMacStoredActiveCursor ) + ::SetCursor( *gMacStoredActiveCursor ) ; + else + { + Cursor MacArrow ; + ::SetCursor( GetQDGlobalsArrow( &MacArrow ) ) ; + } + gMacStoredActiveCursor = NULL ; } } @@ -231,6 +248,25 @@ bool wxIsBusy() return (wxBusyCursorCount > 0); } +wxString wxMacFindFolder( short vol, + OSType folderType, + Boolean createFolder) +{ + short vRefNum ; + long dirID ; + wxString strDir ; + + if ( FindFolder( vol, folderType, createFolder, &vRefNum, &dirID) == noErr) + { + FSSpec file ; + if ( FSMakeFSSpec( vRefNum , dirID , "\p" , &file ) == noErr ) + { + strDir = wxMacFSSpec2UnixFilename( &file ) + "/" ; + } + } + return strDir ; +} + char *wxGetUserHome (const wxString& user) { // TODO @@ -247,26 +283,53 @@ bool wxCheckForInterrupt(wxWindow *wnd) void wxGetMousePosition( int* x, int* y ) { - // TODO + Point pt ; + + GetMouse( &pt ) ; + LocalToGlobal( &pt ) ; + *x = pt.h ; + *y = pt.v ; }; // Return TRUE if we have a colour display bool wxColourDisplay() { - // TODO return TRUE; } // Returns depth of screen int wxDisplayDepth() { - // TODO - return 0; + Rect globRect ; + SetRect(&globRect, -32760, -32760, 32760, 32760); + GDHandle theMaxDevice; + + int theDepth = 8; + theMaxDevice = GetMaxDevice(&globRect); + if (theMaxDevice != nil) + theDepth = (**(**theMaxDevice).gdPMap).pixelSize; + + return theDepth ; } // Get size of display void wxDisplaySize(int *width, int *height) { - // TODO + BitMap screenBits; + GetQDGlobalsScreenBits( &screenBits ); + + *width = screenBits.bounds.right - screenBits.bounds.left ; + *height = screenBits.bounds.bottom - screenBits.bounds.top ; + #if TARGET_CARBON + SInt16 mheight ; + GetThemeMenuBarHeight( &mheight ) ; + *height -= mheight ; +#else + *height -= LMGetMBarHeight() ; + #endif } +wxWindow* wxFindWindowAtPoint(const wxPoint& pt) +{ + return wxGenericFindWindowAtPoint(pt); +}