From: Kevin W. <kw...@co...> - 2009-10-07 11:57:52
|
On 10/7/09 5:48 AM, Youness Alaoui wrote: > Hi all, > > Today I took on the task of writing an extension for Mac to allow Tcl/Tk > applications to have a status icon in the status bar (the right part of > the menu bar). It was quite interesting, I used some code from gtk's > implementation, and it seems to work fine now! > If anyone is interested, you can find it in amsn's latest SVN : > http://amsn.svn.sourceforge.net/viewvc/amsn/trunk/amsn/utils/macosx/statusicon/ > The API is quite simple : > - ::statusicon::create callback > creates a status icon (invisible) and will use the callback specified > for notifying Tcl of click actions. > Returns an identifier for the status icon, > - ::statusicon::setImage statusicon imagePath > Sets the image to show in the status bar, takes a statusicon identifier > (returned by ::statusicon::create) and the path to an image (not an > actual Tk image, but the relative/absolute path to an image file). PNG > files seem to work file, whatever works with NSImage should work here. > - ::statusicon::setTooltip statusicon tooltip > Sets the tooltip on the statusicon > - ::statusicon::setVisible statusicon visible > Takes a boolean and shows/hides the status icon > - ::statusicon::destroy statusicon > Destroy a previously created statusicon > > The clicks are being reported to Tcl through the callback specified in > the call to ::statusicon::create and it's format is : > proc callback { action } { > if {$msg == "ACTION" } { > # Single click > } elseif {$msg == "DOUBLE_ACTION" } { > # double click > } > } > > I hope this is useful to somebody else! > > Take care, > KaKaRoTo Hi KaKaRoTo, Wow! This is really cool. I did an svn update of aMSN and took a look at it--very nice. Something like this was on my "I need to learn more Objective-C so I can write a Tk extension that does this" list--I had been wanting to add this functionality to my applications. Thank you so much for doing this! I will be doing some heavy lifting on some other Tk/Objective-C project in the near future, so I'll post some news to the list when it's done. Am I correct that the license is LGPL? I noticed that in the source code. Also, I may modify the package a bit to allow one to build it separately from aMSN--looks like that's the only way to do it right now, yes? Thanks again, Kevin -- Kevin Walzer Code by Kevin http://www.codebykevin.com |