Difference between revisions of "Mac OS X Porting - Proxy Icon implementation"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 28: Line 28:
 
Declared In
 
Declared In
 
MacWindows.h
 
MacWindows.h
 +
 +
 +
 +
Sample code from http://developer.apple.com/samplecode/MovieVideoChart/listing3.html :
 +
 +
 +
<pre>
 +
 +
static OSStatus setWindowTitleAndProxyFromFSRef( WindowRef window, FSRef *fileRef )
 +
{
 +
    OSStatus err = noErr;
 +
  HFSUniStr255 name;
 +
  CFStringRef fileName = NULL;
 +
 
 +
  err = FSGetCatalogInfo( fileRef, 0, NULL, &name, NULL, NULL );
 +
    require_noerr( err, CantGetInfo );
 +
 
 +
  fileName = CFStringCreateWithCharacters( kCFAllocatorDefault, name.unicode, name.length );
 +
  SetWindowTitleWithCFString( window, fileName );
 +
  HIWindowSetProxyFSRef( window, fileRef );
 +
  SetWindowModified( window, false );
 +
 +
CantGetInfo:
 +
  if( fileName )
 +
    CFRelease( fileName );
 +
  return err;
 +
}
 +
</pre>
 +
 
Links (to be improved):   
 
Links (to be improved):   
  

Revision as of 11:49, 30 August 2008

Started


The probable right function to use is (copied from XCode documentation) :

HIWindowGetProxyFSRef Obtains the FSRef used to determine the proxy icon for a window.

OSStatus HIWindowGetProxyFSRef (
  WindowRef inWindow,
  FSRef * outRef
);

Parameters inWindow The window whose proxy FSRef is to be obtained.

outRef On exit, the FSRef for the window’s proxy icon.

Return Value A result code. See “Window Manager Result Codes”.

Discussion If the specified window’s proxy icon has been specified using HIWindowSetProxyFSRef or SetWindowProxyAlias, HIWindowGetProxyFSRef returns noErr and a valid FSRef for the window’s proxy icon. If the window has no proxy icon, or if the icon was specified by calling SetWindowProxyCreatorAndType or SetWindowProxyIcon, this function returns an error.

Availability Available in Mac OS X v10.4 and later. Declared In MacWindows.h


Sample code from http://developer.apple.com/samplecode/MovieVideoChart/listing3.html :



static OSStatus setWindowTitleAndProxyFromFSRef( WindowRef window, FSRef *fileRef )
{
    OSStatus err = noErr;
  HFSUniStr255 name;
  CFStringRef fileName = NULL;
  
  err = FSGetCatalogInfo( fileRef, 0, NULL, &name, NULL, NULL );
    require_noerr( err, CantGetInfo );
  
  fileName = CFStringCreateWithCharacters( kCFAllocatorDefault, name.unicode, name.length );
  SetWindowTitleWithCFString( window, fileName );
  HIWindowSetProxyFSRef( window, fileRef );
  SetWindowModified( window, false );

CantGetInfo:
  if( fileName )
    CFRelease( fileName );
  return err;
}

Links (to be improved):

Sample code (Carbon, can be obsolete)

Proxy Icon search on Apple lists


Ericb 13:03, 30 August 2008 (CEST) 

Personal tools