Once you've got the library compiled, get a command-line prompt (If you haveĪny questions, though, please let me know offline.) Should be able to figure out by reading the source code. ![]() It plays several interesting tricks, which you Here's an example of an interpose library that I used recently to helpįigure out bug 740923. Hook any Objective-C method (using method swizzling), and also anyĬ/C method that's linked from an external library. Way is to use what I call an interpose library, which will let you You may end up having to write a test app with fullscreen capability.īut that may be a lot of work, and you can learn a lot by observingĪpps that already have them (like Safari and (I think) Chrome). I agree with Markus that this is going to be hard. Details > I'm now looking for a hook to sync ourselves with the menu bar I think the way to get updateContentViewWithEffectiveReveal called in a way that Firefox can detect is: Create mock implementations for NSToolbar, NSToolbarFullScreenContentView (if needed), NSToolbarFullScreenWindowManager and any other things that Cocoa requires and make them play in such a way that Cocoa understands us, e.g. You'll see undocumented methods in the resulting text file. >$ /Volumes/class-dump-3.4/class-dump /System/Library/Frameworks/amework > ~/Desktop/AppKit108.txt Printf("progress: %f\n", you'll see the right values printed during the animation.ĭo you have an AppKit class dump? If not, download class-dump and do (void)updateContentViewWithEffectiveReveal:(double)arg1 auxMinHeight:(double)arg2 auxMaxHeight:(double)arg3 You can create a basic app with an NSToolbar an full screen capability in XCode and then add the following code for example to NSToolbarFullScreenWindowManager NSToolbarFullScreenWindowManager(CoolOverride) > frame #18: 0x00007fff8d31bcd3 HIToolbox`BlockUntilNextEventMatchingListInMode 62 > frame #17: 0x00007fff8d31be67 HIToolbox`ReceiveNextEventCommon 393 > frame #16: 0x00007fff8d325f8f HIToolbox`AcquireEventFromQueue 561 > frame #15: 0x00007fff8d2f46e0 HIToolbox`_NotifyEventLoopObservers 155 > frame #14: 0x00007fff8d326407 HIToolbox`HIApplication::EventObserver(unsigned int, OpaqueEventRef*, void*) 193 > frame #13: 0x00007fff8d328e0f HIToolbox`HIApplication::HandleActivated(OpaqueEventRef*, unsigned char, OpaqueWindowPtr*) 177 > frame #11: 0x00007fff8d2fdf76 HIToolbox`MenuBarInstance::Show(MenuBarAnimationStyle, unsigned char, unsigned char, unsigned char) 388 > frame #7: 0x00007fff8d31a646 HIToolbox`FlushWindowObject(WindowData*, void**, unsigned char) 957 ![]() ![]() > frame #6: 0x00007fff8d31acae HIToolbox`MenuBarInstance::SetServerBounds() 388 > frame #5: 0x00007fff8d30a1bd HIToolbox`SendEventToEventTarget 40 > frame #4: 0x00007fff8d2f43d9 HIToolbox`SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) 410 > frame #3: 0x00007fff8d2f4f0a HIToolbox`DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) 1206 > frame #2: 0x00007fff864bf2f7 AppKit`NSToolbarFullScreenWindowEventHandler 199 In normal Cocoa apps with a proper NSToolbar, this method is called on every animation step: > I'm now looking for a hook to sync ourselves with the menu bar animations, (In reply to André Reinald from comment #11)
0 Comments
Leave a Reply. |