diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-06-20 12:51:53 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-06-20 12:51:53 +0000 |
commit | 69a7cb473ceae109b61fae9aa04ee0c29afba5d9 (patch) | |
tree | 04bd3292cc6c2317842d7a46ae3ab11e9956ed99 /src/gui_mac.c | |
parent | ed20346f0b81d1d89c22c9616abe8e47b4c17f08 (diff) |
updated for version 7.0002v7.0002
Diffstat (limited to 'src/gui_mac.c')
-rw-r--r-- | src/gui_mac.c | 907 |
1 files changed, 478 insertions, 429 deletions
diff --git a/src/gui_mac.c b/src/gui_mac.c index 2b74c63281..e6a8433493 100644 --- a/src/gui_mac.c +++ b/src/gui_mac.c @@ -74,6 +74,9 @@ static OSType _ftype = 'TEXT'; # endif #endif +/* Vim's Scrap flavor. */ +#define VIMSCRAPFLAVOR 'VIM!' + /* CARBON version only tested with Project Builder under MacOS X */ #undef USE_CARBONIZED #if (defined(__APPLE_CC__) || defined(__MRC__)) && defined(TARGET_API_MAC_CARBON) @@ -326,7 +329,7 @@ static struct */ #ifdef USE_AEVENT -OSErr HandleUnusedParms (const AppleEvent *theAEvent); +OSErr HandleUnusedParms(const AppleEvent *theAEvent); #endif /* @@ -511,7 +514,7 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error) if (*error) { #ifdef USE_SIOUX - printf ("fname_from_AEDesc: AECountItems error: %d\n", error); + printf("fname_from_AEDesc: AECountItems error: %d\n", error); #endif return(fnames); } @@ -535,13 +538,13 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error) /* Caller is able to clean up */ /* TODO: Should be clean up or not? For safety. */ #ifdef USE_SIOUX - printf ("aevt_odoc: AEGetNthPtr error: %d\n", newError); + printf("aevt_odoc: AEGetNthPtr error: %d\n", newError); #endif return(fnames); } /* Convert the FSSpec to a pathname */ - fnames[fileCount - 1] = FullPathFromFSSpec_save (fileToOpen); + fnames[fileCount - 1] = FullPathFromFSSpec_save(fileToOpen); } return (fnames); @@ -574,7 +577,7 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error) * When the editor receives this event, determine whether the specified * file is open. If it is, return the modification date/time for that file * in the appropriate location specified in the structure. If the file is - * not opened, put the value fnfErr (file not found) in that location. + * not opened, put the value fnfErr(file not found) in that location. * */ @@ -591,7 +594,8 @@ struct WindowSearch /* for handling class 'KAHL', event 'SRCH', keyDirectObject # pragma options align=reset #endif -pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_KAHL_SRCH_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; buf_T *buf; @@ -604,16 +608,16 @@ pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theRe if (error) { #ifdef USE_SIOUX - printf ("KAHL_SRCH: AEGetParamPtr error: %d\n", error); + printf("KAHL_SRCH: AEGetParamPtr error: %d\n", error); #endif return(error); } - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { #ifdef USE_SIOUX - printf ("KAHL_SRCH: HandleUnusedParms error: %d\n", error); + printf("KAHL_SRCH: HandleUnusedParms error: %d\n", error); #endif return(error); } @@ -634,10 +638,10 @@ pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theRe *SearchData.theDate = buf->b_mtime; #ifdef USE_SIOUX - printf ("KAHL_SRCH: file \"%#s\" {%d}", SearchData.theFile.name,SearchData.theFile.parID); + printf("KAHL_SRCH: file \"%#s\" {%d}", SearchData.theFile.name,SearchData.theFile.parID); if (foundFile == false) - printf (" NOT"); - printf (" found. [date %lx, %lx]\n", *SearchData.theDate, buf->b_mtime_read); + printf(" NOT"); + printf(" found. [date %lx, %lx]\n", *SearchData.theDate, buf->b_mtime_read); #endif return error; @@ -684,7 +688,8 @@ struct ModificationInfo /* for replying to class 'KAHL', event 'MOD ', keyDirect # pragma options align=reset #endif -pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_KAHL_MOD_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; AEDescList replyList; @@ -694,11 +699,11 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep theFile.saved = 0; - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { #ifdef USE_SIOUX - printf ("KAHL_MOD: HandleUnusedParms error: %d\n", error); + printf("KAHL_MOD: HandleUnusedParms error: %d\n", error); #endif return(error); } @@ -712,7 +717,7 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep if (error) { #ifdef USE_SIOUX - printf ("KAHL_MOD: AECreateList error: %d\n", error); + printf("KAHL_MOD: AECreateList error: %d\n", error); #endif return(error); } @@ -720,12 +725,12 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep #if 0 error = AECountItems(&replyList, &numFiles); #ifdef USE_SIOUX - printf ("KAHL_MOD ReplyList: %x %x\n", replyList.descriptorType, replyList.dataHandle); - printf ("KAHL_MOD ItemInList: %d\n", numFiles); + printf("KAHL_MOD ReplyList: %x %x\n", replyList.descriptorType, replyList.dataHandle); + printf("KAHL_MOD ItemInList: %d\n", numFiles); #endif - /* AEPutKeyDesc (&replyList, keyAEPnject, &aDesc) - * AEPutKeyPtr (&replyList, keyAEPosition, typeChar, (Ptr)&theType, + /* AEPutKeyDesc(&replyList, keyAEPnject, &aDesc) + * AEPutKeyPtr(&replyList, keyAEPosition, typeChar, (Ptr)&theType, * sizeof(DescType)) */ @@ -739,37 +744,37 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep /* Add this file to the list */ theFile.theFile = buf->b_FSSpec; theFile.theDate = buf->b_mtime; -/* theFile.theDate = time (NULL) & (time_t) 0xFFFFFFF0; */ - error = AEPutPtr (&replyList, numFiles, typeChar, (Ptr) &theFile, sizeof(theFile)); +/* theFile.theDate = time(NULL) & (time_t) 0xFFFFFFF0; */ + error = AEPutPtr(&replyList, numFiles, typeChar, (Ptr) &theFile, sizeof(theFile)); #ifdef USE_SIOUX if (numFiles == 0) - printf ("KAHL_MOD: "); + printf("KAHL_MOD: "); else - printf (", "); - printf ("\"%#s\" {%d} [date %lx, %lx]", theFile.theFile.name, theFile.theFile.parID, theFile.theDate, buf->b_mtime_read); + printf(", "); + printf("\"%#s\" {%d} [date %lx, %lx]", theFile.theFile.name, theFile.theFile.parID, theFile.theDate, buf->b_mtime_read); if (error) - printf (" (%d)", error); + printf(" (%d)", error); numFiles++; #endif }; #ifdef USE_SIOUX - printf ("\n"); + printf("\n"); #endif #if 0 error = AECountItems(&replyList, &numFiles); #ifdef USE_SIOUX - printf ("KAHL_MOD ItemInList: %d\n", numFiles); + printf("KAHL_MOD ItemInList: %d\n", numFiles); #endif #endif /* We can add data only if something to reply */ - error = AEPutParamDesc (theReply, keyDirectObject, &replyList); + error = AEPutParamDesc(theReply, keyDirectObject, &replyList); #ifdef USE_SIOUX if (error) - printf ("KAHL_MOD: AEPutParamDesc error: %d\n", error); + printf("KAHL_MOD: AEPutParamDesc error: %d\n", error); #endif if (replyList.dataHandle) @@ -819,7 +824,8 @@ struct CW_GetText /* for handling class 'KAHL', event 'GTTX', keyDirectObject ty # pragma options align=reset #endif -pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_KAHL_GTTX_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; buf_T *buf; @@ -839,7 +845,7 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe if (error) { #ifdef USE_SIOUX - printf ("KAHL_GTTX: AEGetParamPtr error: %d\n", error); + printf("KAHL_GTTX: AEGetParamPtr error: %d\n", error); #endif return(error); } @@ -854,7 +860,7 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe if (foundFile) { - BufferSize = 0; /* GetHandleSize (GetTextData.theText); */ + BufferSize = 0; /* GetHandleSize(GetTextData.theText); */ for (lineno = 0; lineno <= buf->b_ml.ml_line_count; lineno++) { /* Must use the right buffer */ @@ -863,48 +869,48 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe lineStart = BufferSize; BufferSize += linesize; /* Resize handle to linesize+1 to include the linefeed */ - SetHandleSize (GetTextData.theText, BufferSize); - if (GetHandleSize (GetTextData.theText) != BufferSize) + SetHandleSize(GetTextData.theText, BufferSize); + if (GetHandleSize(GetTextData.theText) != BufferSize) { #ifdef USE_SIOUX - printf ("KAHL_GTTX: SetHandleSize increase: %d, size %d\n", + printf("KAHL_GTTX: SetHandleSize increase: %d, size %d\n", linesize, BufferSize); #endif break; /* Simple handling for now */ } else { - HLock (GetTextData.theText); + HLock(GetTextData.theText); fullbuffer = (char_u *) *GetTextData.theText; - STRCPY ((char_u *) (fullbuffer + lineStart), line); + STRCPY((char_u *)(fullbuffer + lineStart), line); fullbuffer[BufferSize-1] = '\r'; - HUnlock (GetTextData.theText); + HUnlock(GetTextData.theText); } } if (fullbuffer != NULL) { - HLock (GetTextData.theText); + HLock(GetTextData.theText); fullbuffer[BufferSize-1] = 0; - HUnlock (GetTextData.theText); + HUnlock(GetTextData.theText); } if (foundFile == false) *GetTextData.theDate = fnfErr; else -/* *GetTextData.theDate = time (NULL) & (time_t) 0xFFFFFFF0;*/ +/* *GetTextData.theDate = time(NULL) & (time_t) 0xFFFFFFF0;*/ *GetTextData.theDate = buf->b_mtime; } #ifdef USE_SIOUX - printf ("KAHL_GTTX: file \"%#s\" {%d} [date %lx, %lx]", GetTextData.theFile.name, GetTextData.theFile.parID, *GetTextData.theDate, buf->b_mtime_read); + printf("KAHL_GTTX: file \"%#s\" {%d} [date %lx, %lx]", GetTextData.theFile.name, GetTextData.theFile.parID, *GetTextData.theDate, buf->b_mtime_read); if (foundFile == false) - printf (" NOT"); - printf (" found. (BufferSize = %d)\n", BufferSize); + printf(" NOT"); + printf(" found. (BufferSize = %d)\n", BufferSize); #endif - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { #ifdef USE_SIOUX - printf ("KAHL_GTTX: HandleUnusedParms error: %d\n", error); + printf("KAHL_GTTX: HandleUnusedParms error: %d\n", error); #endif return(error); } @@ -917,48 +923,45 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe */ /* Taken from MoreAppleEvents:ProcessHelpers*/ -pascal OSErr FindProcessBySignature( const OSType targetType, +pascal OSErr FindProcessBySignature(const OSType targetType, const OSType targetCreator, - ProcessSerialNumberPtr psnPtr ) + ProcessSerialNumberPtr psnPtr) { OSErr anErr = noErr; Boolean lookingForProcess = true; ProcessInfoRec infoRec; - infoRec.processInfoLength = sizeof( ProcessInfoRec ); + infoRec.processInfoLength = sizeof(ProcessInfoRec); infoRec.processName = nil; infoRec.processAppSpec = nil; psnPtr->lowLongOfPSN = kNoProcess; psnPtr->highLongOfPSN = kNoProcess; - while ( lookingForProcess ) + while (lookingForProcess) { - anErr = GetNextProcess( psnPtr ); - if ( anErr != noErr ) - { + anErr = GetNextProcess(psnPtr); + if (anErr != noErr) lookingForProcess = false; - } else { - anErr = GetProcessInformation( psnPtr, &infoRec ); - if ( ( anErr == noErr ) - && ( infoRec.processType == targetType ) - && ( infoRec.processSignature == targetCreator ) ) - { + anErr = GetProcessInformation(psnPtr, &infoRec); + if ((anErr == noErr) + && (infoRec.processType == targetType) + && (infoRec.processSignature == targetCreator)) lookingForProcess = false; - } } } return anErr; }//end FindProcessBySignature -void Send_KAHL_MOD_AE (buf_T *buf) + void +Send_KAHL_MOD_AE(buf_T *buf) { - OSErr anErr = noErr; - AEDesc targetAppDesc = { typeNull, nil }; + OSErr anErr = noErr; + AEDesc targetAppDesc = { typeNull, nil }; ProcessSerialNumber psn = { kNoProcess, kNoProcess }; AppleEvent theReply = { typeNull, nil }; AESendMode sendMode; @@ -967,48 +970,48 @@ void Send_KAHL_MOD_AE (buf_T *buf) ModificationInfo ModData; - anErr = FindProcessBySignature( 'APPL', 'CWIE', &psn ); + anErr = FindProcessBySignature('APPL', 'CWIE', &psn); #ifdef USE_SIOUX - printf ("CodeWarrior is"); + printf("CodeWarrior is"); if (anErr != noErr) - printf (" NOT"); - printf (" running\n"); + printf(" NOT"); + printf(" running\n"); #endif - if ( anErr == noErr ) + if (anErr == noErr) { - anErr = AECreateDesc (typeProcessSerialNumber, &psn, - sizeof( ProcessSerialNumber ), &targetAppDesc); + anErr = AECreateDesc(typeProcessSerialNumber, &psn, + sizeof(ProcessSerialNumber), &targetAppDesc); - if ( anErr == noErr ) + if (anErr == noErr) { anErr = AECreateAppleEvent( 'KAHL', 'MOD ', &targetAppDesc, kAutoGenerateReturnID, kAnyTransactionID, &theEvent); } - AEDisposeDesc( &targetAppDesc ); + AEDisposeDesc(&targetAppDesc); /* Add the parms */ ModData.theFile = buf->b_FSSpec; ModData.theDate = buf->b_mtime; if (anErr == noErr) - anErr =AEPutParamPtr (&theEvent, keyDirectObject, typeChar, &ModData, sizeof(ModData)); + anErr = AEPutParamPtr(&theEvent, keyDirectObject, typeChar, &ModData, sizeof(ModData)); - if ( idleProcUPP == nil ) + if (idleProcUPP == nil) sendMode = kAENoReply; else sendMode = kAEWaitReply; - if ( anErr == noErr ) - anErr = AESend( &theEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, idleProcUPP, nil ); - if ( anErr == noErr && sendMode == kAEWaitReply ) + if (anErr == noErr) + anErr = AESend(&theEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, idleProcUPP, nil); + if (anErr == noErr && sendMode == kAEWaitReply) { #ifdef USE_SIOUX - printf ("KAHL_MOD: Send error: %d\n", anErr); + printf("KAHL_MOD: Send error: %d\n", anErr); #endif -/* anErr = AEHGetHandlerError( &theReply );*/ +/* anErr = AEHGetHandlerError(&theReply);*/ } - (void) AEDisposeDesc( &theReply ); + (void) AEDisposeDesc(&theReply); } } #endif /* FEAT_CW_EDITOR */ @@ -1024,7 +1027,8 @@ void Send_KAHL_MOD_AE (buf_T *buf) * Handle the Unused parms of an AppleEvent */ -OSErr HandleUnusedParms (const AppleEvent *theAEvent) + OSErr +HandleUnusedParms(const AppleEvent *theAEvent) { OSErr error; long actualSize; @@ -1086,7 +1090,8 @@ struct SelectionRange /* for handling kCoreClassEvent:kOpenDocuments:keyAEPositi endRange are all negative, there is no selection range specified. */ -pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +HandleODocAE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { /* * TODO: Clean up the code with convert the AppleEvent into @@ -1107,7 +1112,7 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo long lnum; #ifdef USE_SIOUX - printf ("aevt_odoc:\n"); + printf("aevt_odoc:\n"); #endif /* the direct object parameter is the list of aliases to files (one or more) */ @@ -1115,7 +1120,7 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo if (error) { #ifdef USE_SIOUX - printf ("aevt_odoc: AEGetParamDesc error: %d\n", error); + printf("aevt_odoc: AEGetParamDesc error: %d\n", error); #endif return(error); } @@ -1129,13 +1134,13 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo if (error) { #ifdef USE_SIOUX - printf ("aevt_odoc: AEGetParamPtr error: %d\n", error); + printf("aevt_odoc: AEGetParamPtr error: %d\n", error); #endif return(error); } #ifdef USE_SIOUX - printf ("aevt_odoc: lineNum: %d, startRange %d, endRange %d, [date %lx]\n", + printf("aevt_odoc: lineNum: %d, startRange %d, endRange %d, [date %lx]\n", thePosition.lineNum, thePosition.startRange, thePosition.endRange, thePosition.theDate); #endif @@ -1216,11 +1221,11 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo finished: AEDisposeDesc(&theList); /* dispose what we allocated */ - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { #ifdef USE_SIOUX - printf ("aevt_odoc: HandleUnusedParms error: %d\n", error); + printf("aevt_odoc: HandleUnusedParms error: %d\n", error); #endif return(error); } @@ -1231,15 +1236,16 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo * */ -pascal OSErr Handle_aevt_oapp_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_aevt_oapp_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; #ifdef USE_SIOUX - printf ("aevt_oapp:\n"); + printf("aevt_oapp:\n"); #endif - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { return(error); @@ -1252,15 +1258,16 @@ pascal OSErr Handle_aevt_oapp_AE (const AppleEvent *theAEvent, AppleEvent *theRe * */ -pascal OSErr Handle_aevt_quit_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_aevt_quit_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; #ifdef USE_SIOUX - printf ("aevt_quit\n"); + printf("aevt_quit\n"); #endif - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { return(error); @@ -1276,15 +1283,16 @@ pascal OSErr Handle_aevt_quit_AE (const AppleEvent *theAEvent, AppleEvent *theRe * */ -pascal OSErr Handle_aevt_pdoc_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_aevt_pdoc_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; #ifdef USE_SIOUX - printf ("aevt_pdoc:\n"); + printf("aevt_pdoc:\n"); #endif - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { return(error); @@ -1298,15 +1306,16 @@ pascal OSErr Handle_aevt_pdoc_AE (const AppleEvent *theAEvent, AppleEvent *theRe * * (Just get rid of all the parms) */ -pascal OSErr Handle_unknown_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) + pascal OSErr +Handle_unknown_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon) { OSErr error = noErr; #ifdef USE_SIOUX - printf ("Unknown Event: %x\n", theAEvent->descriptorType); + printf("Unknown Event: %x\n", theAEvent->descriptorType); #endif - error = HandleUnusedParms (theAEvent); + error = HandleUnusedParms(theAEvent); if (error) { return(error); @@ -1324,7 +1333,8 @@ pascal OSErr Handle_unknown_AE (const AppleEvent *theAEvent, AppleEvent *theRepl /* * Install the various AppleEvent Handlers */ -OSErr InstallAEHandlers (void) + OSErr +InstallAEHandlers(void) { OSErr error; @@ -1438,7 +1448,7 @@ OSErr InstallAEHandlers (void) * Returns the index inside the menu wher */ short /* Shoulde we return MenuItemIndex? */ -gui_mac_get_menu_item_index (pMenu) +gui_mac_get_menu_item_index(pMenu) vimmenu_T *pMenu; { short index; @@ -1475,7 +1485,7 @@ gui_mac_get_menu_item_index (pMenu) } static vimmenu_T * -gui_mac_get_vim_menu (menuID, itemIndex, pMenu) +gui_mac_get_vim_menu(menuID, itemIndex, pMenu) short menuID; short itemIndex; vimmenu_T *pMenu; @@ -1529,7 +1539,7 @@ gui_mac_get_vim_menu (menuID, itemIndex, pMenu) */ pascal void -gui_mac_drag_thumb (ControlHandle theControl, short partCode) +gui_mac_drag_thumb(ControlHandle theControl, short partCode) { scrollbar_T *sb; int value, dragging; @@ -1538,13 +1548,13 @@ gui_mac_drag_thumb (ControlHandle theControl, short partCode) theControlToUse = dragged_sb; - sb = gui_find_scrollbar((long) GetControlReference (theControlToUse)); + sb = gui_find_scrollbar((long) GetControlReference(theControlToUse)); if (sb == NULL) return; /* Need to find value by diff between Old Poss New Pos */ - value = GetControl32BitValue (theControlToUse); + value = GetControl32BitValue(theControlToUse); dragging = (partCode != 0); /* When "allow_scrollbar" is FALSE still need to remember the new @@ -1556,7 +1566,7 @@ gui_mac_drag_thumb (ControlHandle theControl, short partCode) pascal void -gui_mac_scroll_action (ControlHandle theControl, short partCode) +gui_mac_scroll_action(ControlHandle theControl, short partCode) { /* TODO: have live support */ scrollbar_T *sb, *sb_info; @@ -1566,7 +1576,7 @@ gui_mac_scroll_action (ControlHandle theControl, short partCode) int dragging = FALSE; int dont_scroll_save = dont_scroll; - sb = gui_find_scrollbar((long) GetControlReference (theControl)); + sb = gui_find_scrollbar((long)GetControlReference(theControl)); if (sb == NULL) return; @@ -1648,7 +1658,7 @@ gui_mac_scroll_action (ControlHandle theControl, short partCode) * TODO: Add support for potential TOOLBAR */ void -gui_mac_doInContentClick (theEvent, whichWindow) +gui_mac_doInContentClick(theEvent, whichWindow) EventRecord *theEvent; WindowPtr whichWindow; { @@ -1660,10 +1670,10 @@ gui_mac_doInContentClick (theEvent, whichWindow) short dblClick; thePoint = theEvent->where; - GlobalToLocal (&thePoint); - SelectWindow (whichWindow); + GlobalToLocal(&thePoint); + SelectWindow(whichWindow); - thePortion = FindControl (thePoint, whichWindow, &theControl); + thePortion = FindControl(thePoint, whichWindow, &theControl); if (theControl != NUL) { @@ -1685,7 +1695,7 @@ gui_mac_doInContentClick (theEvent, whichWindow) #endif /* pass 0 as the part to tell gui_mac_drag_thumb, that the mouse * button has been released */ - gui_mac_drag_thumb (theControl, 0); /* Should it be thePortion ? (Dany) */ + gui_mac_drag_thumb(theControl, 0); /* Should it be thePortion ? (Dany) */ dragged_sb = NULL; } } @@ -1731,7 +1741,7 @@ gui_mac_doInContentClick (theEvent, whichWindow) #endif #endif { - SetRect (&dragRect, FILL_X(X_2_COL(thePoint.h)), + SetRect(&dragRect, FILL_X(X_2_COL(thePoint.h)), FILL_Y(Y_2_ROW(thePoint.v)), FILL_X(X_2_COL(thePoint.h)+1), FILL_Y(Y_2_ROW(thePoint.v)+1)); @@ -1746,7 +1756,7 @@ gui_mac_doInContentClick (theEvent, whichWindow) * Handle the click in the titlebar (to move the window) */ void -gui_mac_doInDragClick (where, whichWindow) +gui_mac_doInDragClick(where, whichWindow) Point where; WindowPtr whichWindow; { @@ -1755,11 +1765,11 @@ gui_mac_doInDragClick (where, whichWindow) /* TODO: may try to prevent move outside screen? */ #ifdef USE_CARBONIZED - movingLimitsPtr = GetRegionBounds ( GetGrayRgn(), &movingLimits ); + movingLimitsPtr = GetRegionBounds(GetGrayRgn(), &movingLimits); #else movingLimitsPtr = &(*GetGrayRgn())->rgnBBox; #endif - DragWindow (whichWindow, where, movingLimitsPtr); + DragWindow(whichWindow, where, movingLimitsPtr); } /* @@ -1779,7 +1789,7 @@ gui_mac_doInGrowClick(where, whichWindow) #ifdef USE_CARBONIZED Rect NewContentRect; - resizeLimitsPtr = GetRegionBounds ( GetGrayRgn(), &resizeLimits ); + resizeLimitsPtr = GetRegionBounds(GetGrayRgn(), &resizeLimits); #else resizeLimits = qd.screenBits.bounds; #endif @@ -1919,17 +1929,17 @@ gui_mac_doUpdateEvent(event) whichWindow = (WindowPtr) event->message; /* Save Current Port */ - GetPort (&savePort); + GetPort(&savePort); /* Select the Window's Port */ #ifdef USE_CARBONIZED - SetPortWindowPort (whichWindow); + SetPortWindowPort(whichWindow); #else - SetPort (whichWindow); + SetPort(whichWindow); #endif /* Let's update the window */ - BeginUpdate (whichWindow); + BeginUpdate(whichWindow); /* Redraw the biggest rectangle covering the area * to be updated. */ @@ -1945,9 +1955,9 @@ gui_mac_doUpdateEvent(event) updateRgn = whichWindow->visRgn; #endif /* Use the HLock useless in Carbon? Is it harmful?*/ - HLock ((Handle) updateRgn); + HLock((Handle) updateRgn); #ifdef USE_CARBONIZED - updateRectPtr = GetRegionBounds ( updateRgn, &updateRect ); + updateRectPtr = GetRegionBounds(updateRgn, &updateRect); # if 0 /* Code from original Carbon Port (using GetWindowRegion. * I believe the UpdateRgn is already in local (Dany) @@ -1966,33 +1976,33 @@ gui_mac_doUpdateEvent(event) gui_mch_set_bg_color(gui.back_pixel); if (updateRectPtr->left < FILL_X(0)) { - SetRect (&rc, 0, 0, FILL_X(0), FILL_Y(Rows)); - EraseRect (&rc); + SetRect(&rc, 0, 0, FILL_X(0), FILL_Y(Rows)); + EraseRect(&rc); } if (updateRectPtr->top < FILL_Y(0)) { - SetRect (&rc, 0, 0, FILL_X(Columns), FILL_Y(0)); - EraseRect (&rc); + SetRect(&rc, 0, 0, FILL_X(Columns), FILL_Y(0)); + EraseRect(&rc); } if (updateRectPtr->right > FILL_X(Columns)) { - SetRect (&rc, FILL_X(Columns), 0, + SetRect(&rc, FILL_X(Columns), 0, FILL_X(Columns) + gui.border_offset, FILL_Y(Rows)); - EraseRect (&rc); + EraseRect(&rc); } if (updateRectPtr->bottom > FILL_Y(Rows)) { - SetRect (&rc, 0, FILL_Y(Rows), FILL_X(Columns) + gui.border_offset, + SetRect(&rc, 0, FILL_Y(Rows), FILL_X(Columns) + gui.border_offset, FILL_Y(Rows) + gui.border_offset); - EraseRect (&rc); + EraseRect(&rc); } - HUnlock ((Handle) updateRgn); + HUnlock((Handle) updateRgn); #ifdef USE_CARBONIZED - DisposeRgn (updateRgn); + DisposeRgn(updateRgn); #endif /* Update scrollbars */ - DrawControls (whichWindow); + DrawControls(whichWindow); /* Update the GrowBox */ /* Taken from FAQ 33-27 */ @@ -2004,15 +2014,15 @@ gui_mac_doUpdateEvent(event) growRect.top = growRect.bottom - 15; growRect.left = growRect.right - 15; #endif - GetClip (saveRgn); - ClipRect (&growRect); - DrawGrowIcon (whichWindow); - SetClip (saveRgn); - DisposeRgn (saveRgn); - EndUpdate (whichWindow); + GetClip(saveRgn); + ClipRect(&growRect); + DrawGrowIcon(whichWindow); + SetClip(saveRgn); + DisposeRgn(saveRgn); + EndUpdate(whichWindow); /* Restore original Port */ - SetPort (savePort); + SetPort(savePort); } /* @@ -2040,8 +2050,8 @@ gui_mac_doActivateEvent(event) #if 0 /* Removed by Dany as per above June 2001 */ a_bool = false; - SetPreserveGlyph (a_bool); - SetOutlinePreferred (a_bool); + SetPreserveGlyph(a_bool); + SetOutlinePreferred(a_bool); #endif } } @@ -2099,8 +2109,20 @@ gui_mac_doKeyEvent(EventRecord *theEvent) /* Intercept CTRL-C */ if (theEvent->modifiers & controlKey) + { if (key_char == Ctrl_C && ctrl_c_interrupts) got_int = TRUE; + else if ((theEvent->modifiers & ~(controlKey|shiftKey)) == 0 + && (key_char == '2' || key_char == '6')) + { + /* CTRL-^ and CTRL-@ don't work in the normal way. */ + if (key_char == '2') + key_char = Ctrl_AT; + else + key_char = Ctrl_HAT; + theEvent->modifiers = 0; + } + } /* Intercept CMD-. */ if (theEvent->modifiers & cmdKey) @@ -2143,8 +2165,8 @@ gui_mac_doKeyEvent(EventRecord *theEvent) key_char = special_keys[i].vim_code0; else # endif - key_char = TO_SPECIAL( special_keys[i].vim_code0, - special_keys[i].vim_code1 ); + key_char = TO_SPECIAL(special_keys[i].vim_code0, + special_keys[i].vim_code1); key_char = simplify_key(key_char,&modifiers); break; } @@ -2162,36 +2184,38 @@ gui_mac_doKeyEvent(EventRecord *theEvent) { #if 1 /* Clear modifiers when only one modifier is set */ - if( (modifiers == MOD_MASK_SHIFT) || - (modifiers == MOD_MASK_CTRL) || - (modifiers == MOD_MASK_ALT)) + if ((modifiers == MOD_MASK_SHIFT) + || (modifiers == MOD_MASK_CTRL) + || (modifiers == MOD_MASK_ALT)) modifiers = 0; #else - if( modifiers & MOD_MASK_CTRL) + if (modifiers & MOD_MASK_CTRL) modifiers = modifiers & ~MOD_MASK_CTRL; - if( modifiers & MOD_MASK_ALT) + if (modifiers & MOD_MASK_ALT) modifiers = modifiers & ~MOD_MASK_ALT; - if( modifiers & MOD_MASK_SHIFT) + if (modifiers & MOD_MASK_SHIFT) modifiers = modifiers & ~MOD_MASK_SHIFT; #endif } - if( modifiers ) + if (modifiers) { - string[ len++ ] = CSI; - string[ len++ ] = KS_MODIFIER; - string[ len++ ] = modifiers; + string[len++] = CSI; + string[len++] = KS_MODIFIER; + string[len++] = modifiers; } - if( IS_SPECIAL( key_char ) ) + if (IS_SPECIAL(key_char)) { - string[ len++ ] = CSI; - string[ len++ ] = K_SECOND( key_char ); - string[ len++ ] = K_THIRD( key_char ); + string[len++] = CSI; + string[len++] = K_SECOND(key_char); + string[len++] = K_THIRD(key_char); } else { #ifdef FEAT_MBYTE - if (input_conv.vc_type != CONV_NONE) + /* Convert characters when needed (e.g., from MacRoman to latin1). + * This doesn't work for the NUL byte. */ + if (input_conv.vc_type != CONV_NONE && key_char > 0) { char_u from[2], *to; int l; @@ -2236,13 +2260,13 @@ gui_mac_doKeyEvent(EventRecord *theEvent) * Handle MouseClick */ void -gui_mac_doMouseDownEvent (theEvent) +gui_mac_doMouseDownEvent(theEvent) EventRecord *theEvent; { short thePart; WindowPtr whichWindow; - thePart = FindWindow (theEvent->where, &whichWindow); + thePart = FindWindow(theEvent->where, &whichWindow); switch (thePart) { @@ -2251,19 +2275,19 @@ gui_mac_doMouseDownEvent (theEvent) break; case (inMenuBar): - gui_mac_handle_menu(MenuSelect (theEvent->where)); + gui_mac_handle_menu(MenuSelect(theEvent->where)); break; case (inContent): - gui_mac_doInContentClick (theEvent, whichWindow); + gui_mac_doInContentClick(theEvent, whichWindow); break; case (inDrag): - gui_mac_doInDragClick (theEvent->where, whichWindow); + gui_mac_doInDragClick(theEvent->where, whichWindow); break; case (inGrow): - gui_mac_doInGrowClick (theEvent->where, whichWindow); + gui_mac_doInGrowClick(theEvent->where, whichWindow); break; case (inGoAway): @@ -2285,18 +2309,18 @@ gui_mac_doMouseDownEvent (theEvent) * [this event is a moving in and out of a region] */ void -gui_mac_doMouseMovedEvent (event) +gui_mac_doMouseMovedEvent(event) EventRecord *event; { Point thePoint; int_u vimModifiers; thePoint = event->where; - GlobalToLocal (&thePoint); + GlobalToLocal(&thePoint); vimModifiers = EventModifiers2VimMouseModifiers(event->modifiers); if (!Button()) - gui_mouse_moved (thePoint.h, thePoint.v); + gui_mouse_moved(thePoint.h, thePoint.v); else #ifdef USE_CTRLCLICKMENU if (!clickIsPopup) @@ -2305,7 +2329,7 @@ gui_mac_doMouseMovedEvent (event) thePoint.v, FALSE, vimModifiers); /* Reset the region from which we move in and out */ - SetRect (&dragRect, FILL_X(X_2_COL(thePoint.h)), + SetRect(&dragRect, FILL_X(X_2_COL(thePoint.h)), FILL_Y(Y_2_ROW(thePoint.v)), FILL_X(X_2_COL(thePoint.h)+1), FILL_Y(Y_2_ROW(thePoint.v)+1)); @@ -2319,7 +2343,7 @@ gui_mac_doMouseMovedEvent (event) * Handle the mouse release */ void -gui_mac_doMouseUpEvent (theEvent) +gui_mac_doMouseUpEvent(theEvent) EventRecord *theEvent; { Point thePoint; @@ -2331,7 +2355,7 @@ gui_mac_doMouseUpEvent (theEvent) dragRectEnbl = FALSE; dragRectControl = kCreateEmpty; thePoint = theEvent->where; - GlobalToLocal (&thePoint); + GlobalToLocal(&thePoint); vimModifiers = EventModifiers2VimMouseModifiers(theEvent->modifiers); #ifdef USE_CTRLCLICKMENU @@ -2341,8 +2365,7 @@ gui_mac_doMouseUpEvent (theEvent) clickIsPopup = FALSE; } #endif - gui_send_mouse_event - (MOUSE_RELEASE, thePoint.h, thePoint.v, FALSE, vimModifiers); + gui_send_mouse_event(MOUSE_RELEASE, thePoint.h, thePoint.v, FALSE, vimModifiers); } #ifdef USE_MOUSEWHEEL @@ -2431,7 +2454,7 @@ gui_mac_handle_contextual_menu(event) /* Handle the menu CntxMenuID, CntxMenuItem */ /* The submenu can be handle directly by gui_mac_handle_menu */ /* But what about the current menu, is the meny changed by ContextualMenuSelect */ - gui_mac_handle_menu ((CntxMenuID << 16) + CntxMenuItem); + gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem); } else if (CntxMenuID == kCMShowHelpSelected) { @@ -2464,9 +2487,9 @@ gui_mac_handle_menu(menuChoice) { #ifndef USE_CARBONIZED /* Desk Accessory doesn't exist in Carbon */ - appleMenu = GetMenuHandle (menu); - GetMenuItemText (appleMenu, item, itemName); - (void) OpenDeskAcc (itemName); + appleMenu = GetMenuHandle(menu); + GetMenuItemText(appleMenu, item, itemName); + (void) OpenDeskAcc(itemName); #endif } } @@ -2477,7 +2500,7 @@ gui_mac_handle_menu(menuChoice) if (theVimMenu) gui_menu_cb(theVimMenu); } - HiliteMenu (0); + HiliteMenu(0); } /* @@ -2485,7 +2508,7 @@ gui_mac_handle_menu(menuChoice) */ void -gui_mac_handle_event (event) +gui_mac_handle_event(event) EventRecord *event; { OSErr error; @@ -2509,7 +2532,7 @@ gui_mac_handle_event (event) { case (keyDown): case (autoKey): - gui_mac_doKeyEvent (event); + gui_mac_doKeyEvent(event); break; case (keyUp): @@ -2525,7 +2548,7 @@ gui_mac_handle_event (event) break; case (updateEvt): - gui_mac_doUpdateEvent (event); + gui_mac_doUpdateEvent(event); break; case (diskEvt): @@ -2533,17 +2556,17 @@ gui_mac_handle_event (event) break; case (activateEvt): - gui_mac_doActivateEvent (event); + gui_mac_doActivateEvent(event); break; case (osEvt): switch ((event->message >> 24) & 0xFF) { case (0xFA): /* mouseMovedMessage */ - gui_mac_doMous |