Skip navigation.
 
mlRe: Using assembly in objective-c
FROM : Andrew Farmer
DATE : Tue Jan 22 00:00:19 2008

On 21 Jan 08, at 12:46, Twisted Theory Software wrote:
> On 21 Jan, 2008, at 2:38 PM, Kyle Sluder wrote:

>> On 1/21/08, Twisted Theory Software <<email_removed>
>> > wrote:

>>> What I want is a replacement for the menu-bar clock, that displays
>>> time how I want it, and drops down a nice-looking, adjustable 
>>> calendar
>>> when clicked.  I don't like the way other programs look, or if I do
>>> they aren't free (which, by the way, all use NSMenuExtra
>>> implementations).  Having a clock that moves depending on the other
>>> NSStatusItems that happen to be visible at the time is annoying: UI
>>> elements that I glance at all the time should not be moving around.
>>> It would be best if the time were right next to spotlight, or better
>>> yet, drop the spotlight icon entirely and have the clock in its
>>> place.  This cannot be accomplished with NSStatusItem.

>>
>> SystemUIServer takes care of all those things, and I don't think it
>> will be very happy for long if you start replacing them.  I've 
>> noticed
>> that the first sign that one of our client machines will not 
>> survive a
>> logout is if the clock and spotlight icon are missing from the
>> menubar; at that point, the system must be forcibly shut down at
>> logout, or else it will sit  at the spinning flower petal indicator.
>> Just a sign of the interdependency between the window server and the
>> menu extras.

>
> You can turn the clock off in the Date and Time preference pane (the 
> one provided by Apple).  I have never had a problem when this is 
> off.  By 'replace' I mean "turn off and run another program that 
> does something similar".
>
> But, we're getting side-tracked.  Can I somehow run that assembly 
> from objective-c?


For the sake of brevity, I'll give a general answer. [Insert a bunch 
of dire warnings about using private frameworks here.] A C(*) function 
called xyzzy() will generate a symbol named _xyzzy. It can be called 
by simply declaring and calling a function called xyzzy(); no wrapper 
(or assembly!) is necessary.

*: C++ throws a monkey wrench into the works with function 
"mangling" (to disambiguate overloaded functions). In most cases, 
however, C++ library functions will either be called from other C++, 
or will have pure-C wrappers.

Related mailsAuthorDate
mlUsing assembly in objective-c Twisted Theory Sof… Jan 21, 19:58
mlRe: Using assembly in objective-c glenn andreas Jan 21, 20:36
mlRe: Using assembly in objective-c Twisted Theory Sof… Jan 21, 20:58
mlRe: Using assembly in objective-c Kyle Sluder Jan 21, 21:38
mlRe: Using assembly in objective-c Twisted Theory Sof… Jan 21, 21:46
mlRe: Using assembly in objective-c Andrew Farmer Jan 22, 00:00
mlRe: Using assembly in objective-c Twisted Theory Sof… Jan 22, 01:26
mlRe: Using assembly in objective-c Andrew Farmer Jan 22, 01:35
ml[OT] Re: Using assembly in objective-c Alastair Houghton Jan 22, 14:18