Changeset 516


Ignore:
Timestamp:
05/25/09 02:40:34 (11 years ago)
Author:
Nicholas Riley
Message:

Restore Dock bouncing using Notification Manager; should be more reliable now.

Location:
trunk/Cocoa/Pester/Source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/classes.nib

    r513 r516  
    1919                </dict>
    2020                <dict>
     21                        <key>CLASS</key>
     22                        <string>NSDisclosureButtonCell</string>
     23                        <key>LANGUAGE</key>
     24                        <string>ObjC</string>
     25                        <key>SUPERCLASS</key>
     26                        <string>NSButtonCell</string>
     27                </dict>
     28                <dict>
    2129                        <key>ACTIONS</key>
    2230                        <dict>
     
    5967                                <string>NSTextField</string>
    6068                                <key>bounceDockIcon</key>
    61                                 <string>NSButton</string>
     69                                <string>NSButtonCell</string>
    6270                                <key>cancelButton</key>
    6371                                <string>NSButton</string>
     
    119127                </dict>
    120128                <dict>
    121                         <key>CLASS</key>
    122                         <string>NSDisclosureButtonCell</string>
    123                         <key>LANGUAGE</key>
    124                         <string>ObjC</string>
    125                         <key>SUPERCLASS</key>
    126                         <string>NSButtonCell</string>
    127                 </dict>
    128                 <dict>
    129129                        <key>ACTIONS</key>
    130130                        <dict>
     
    182182                <dict>
    183183                        <key>CLASS</key>
     184                        <string>NJRUnfocusableMovieView</string>
     185                        <key>LANGUAGE</key>
     186                        <string>ObjC</string>
     187                        <key>SUPERCLASS</key>
     188                        <string>NSMovieView</string>
     189                </dict>
     190                <dict>
     191                        <key>CLASS</key>
     192                        <string>NSObject</string>
     193                        <key>LANGUAGE</key>
     194                        <string>ObjC</string>
     195                </dict>
     196                <dict>
     197                        <key>CLASS</key>
    184198                        <string>FirstResponder</string>
    185199                        <key>LANGUAGE</key>
     
    187201                        <key>SUPERCLASS</key>
    188202                        <string>NSObject</string>
    189                 </dict>
    190                 <dict>
    191                         <key>CLASS</key>
    192                         <string>NJRUnfocusableMovieView</string>
    193                         <key>LANGUAGE</key>
    194                         <string>ObjC</string>
    195                         <key>SUPERCLASS</key>
    196                         <string>NSMovieView</string>
    197                 </dict>
    198                 <dict>
    199                         <key>CLASS</key>
    200                         <string>NSObject</string>
    201                         <key>LANGUAGE</key>
    202                         <string>ObjC</string>
    203203                </dict>
    204204                <dict>
     
    235235                        <key>SUPERCLASS</key>
    236236                        <string>NSObject</string>
     237                </dict>
     238                <dict>
     239                        <key>CLASS</key>
     240                        <string>NSWindow</string>
     241                        <key>LANGUAGE</key>
     242                        <string>ObjC</string>
     243                        <key>SUPERCLASS</key>
     244                        <string>NSResponder</string>
    237245                </dict>
    238246                <dict>
  • trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/info.nib

    r513 r516  
    88        <string>../Pester.xcodeproj</string>
    99        <key>IBOldestOS</key>
    10         <integer>5</integer>
     10        <integer>4</integer>
    1111        <key>IBOpenObjects</key>
    1212        <array>
    13                 <integer>2</integer>
     13                <integer>525</integer>
    1414        </array>
    1515        <key>IBSystem Version</key>
  • trunk/Cocoa/Pester/Source/PSDockBounceAlert.m

    r53 r516  
    99#import <AppKit/AppKit.h>
    1010#import "PSDockBounceAlert.h"
     11#import "PSAlarmAlertController.h"
     12
     13#include <Carbon/Carbon.h>
    1114
    1215static PSDockBounceAlert *PSDockBounceAlertShared;
     16static NMRec nmr;
    1317
    1418@implementation PSDockBounceAlert
     
    1620+ (PSAlert *)alert;
    1721{
    18     if (PSDockBounceAlertShared == nil)
     22    if (PSDockBounceAlertShared == nil) {
    1923        PSDockBounceAlertShared = [[PSDockBounceAlert alloc] init];
     24       
     25        [[NSNotificationCenter defaultCenter] addObserver: PSDockBounceAlertShared selector: @selector(_stopBouncing) name: PSAlarmAlertStopNotification object: nil];
     26       
     27        bzero(&nmr, sizeof(nmr));
     28        nmr.nmMark = 1;
     29        nmr.qType = nmType;
     30    }
     31   
    2032    return PSDockBounceAlertShared;
    2133}
    2234
    23 + (void)stopBouncing;
     35- (void)_stopBouncing;
    2436{
    25     [NSApp cancelUserAttentionRequest: NSInformationalRequest];
     37    if ((void *)nmr.nmRefCon != self)
     38        return;
     39   
     40    nmr.nmRefCon = 0;
     41    NMRemove(&nmr);
    2642}
    2743
    2844- (void)triggerForAlarm:(PSAlarm *)alarm;
    2945{
    30     [NSApp requestUserAttention: NSInformationalRequest];
    31     [[self class] performSelector: @selector(stopBouncing) withObject: nil afterDelay: 1 inModes: [NSArray arrayWithObject: NSDefaultRunLoopMode]];
     46    if (nmr.nmRefCon == 0) {
     47        nmr.nmRefCon = (long)self;
     48        NMInstall(&nmr);
     49    }
     50
    3251    [self completedForAlarm: alarm];
    3352}
     
    3554- (NSAttributedString *)actionDescription;
    3655{
    37     return [@"Bounce dock icon" small];
     56    return [@"Bounce Dock icon" small];
    3857}
    3958
Note: See TracChangeset for help on using the changeset viewer.