càd #oc_display au lieu de #display déjà utilisé par Ruby...
maintenant, la visualisation des boutons montre qu'ils ne sont pas|plus "autorisés".
MAIS, à ma grande surprise, ils mémorisent quand même les clicks souris, si bien que l'action correspondante est prise en compte après que l'action en cours soit terminée...
je voudrais vraiment inhiber les boutons quand une action longue est en cours.
[Session started at 2006-02-22 13:13:18 +0100.] 2006-02-22 13:13:24.417 BookmarksMerge[22686] *** -[NSDecimalNumber _cgsEventTime]: selector not recognized [self = 0x4bb0af0] /Library/Frameworks/RubyCocoa.framework/Versions/A/Resources/ruby/osx/ob jc/oc_wrapper.rb:17:in `NSApplicationMain': NSApplicationMain - NSInvalidArgumentException - *** -[NSDecimalNumber _cgsEventTime]: selector not recognized [self = 0x4bb0af0] (OSX::OCException) from /Users/yvon/work/RubyCocoa/BookmarksMerge/build/Development/BookmarksMer ge.app/Contents/Resources/rb_main.rb:46
BookmarksMerge has exited with status 1.
Jonathan Paisley dit que ça ne peut pas marcher...
mais je viens de me rendre compte qu'il y a une erreur d'argument (le second) : OSX::NSKeyUpMask est un mask donc un entier, la spec précise :
Removes all events matching mask and generated before lastEvent from the event queue. - (void)discardEventsMatchingMask:(unsigned int)mask beforeEvent:(NSEvent *)lastEvent
donc comment choisir l'event correspondant à KeyUp ?
j'ai essayé OSX::NSEvent(mouseUp) pas bon...
comment en Obj-C on récupère mouseUp ?
tjs Jonathan Paisley m'a conseillé d'utiliser, plutôt :
Instead look at "- (NSEvent *)nextEventMatchingMask:(unsigned int)mask untilDate:(NSDate *)expiration inMode:(NSString *)mode dequeue:(BOOL)flag" and call it repeatedly with dequeue:YES and try different values for untilDate: NSDate.date, NSDate.distantFuture or NSData.distantPast. Stop calling it when it returns no events.
là c'est RTFM...
par contre kimura wataru me donne une autre idée :
def loadDroite(sender) disableAllButtons ####### inhibe les boutons Thread.new { loadXmlDroite("firefox.xml", "Barre personnelle") @xmlDroite="firefox.xml" @labelDroite.setStringValue "Firefox" enableAllButtons ####### dés-inhibe les boutons } end
mais me prévient que le Thread ruby peuvent crasher...
voila où j'en suis... -- une bévue
Luc Heinrich <luc@honk-honk.com> wrote:
C'est vraiment très très vague tout ça (et pas en français en plus :>).
j'ai trouvé un remède (grâce à la liste RubyCocoa Jonathan Paisley) en
RubyCocoa il faut faire :
càd #oc_display au lieu de #display déjà utilisé par Ruby...
maintenant, la visualisation des boutons montre qu'ils ne sont pas|plus
"autorisés".
MAIS, à ma grande surprise, ils mémorisent quand même les clicks souris,
si bien que l'action correspondante est prise en compte après que
l'action en cours soit terminée...
je voudrais vraiment inhiber les boutons quand une action longue est en
cours.
[Session started at 2006-02-22 13:13:18 +0100.]
2006-02-22 13:13:24.417 BookmarksMerge[22686] *** -[NSDecimalNumber
_cgsEventTime]: selector not recognized [self = 0x4bb0af0]
/Library/Frameworks/RubyCocoa.framework/Versions/A/Resources/ruby/osx/ob
jc/oc_wrapper.rb:17:in `NSApplicationMain': NSApplicationMain -
NSInvalidArgumentException - *** -[NSDecimalNumber _cgsEventTime]:
selector not recognized [self = 0x4bb0af0] (OSX::OCException)
from
/Users/yvon/work/RubyCocoa/BookmarksMerge/build/Development/BookmarksMer
ge.app/Contents/Resources/rb_main.rb:46
BookmarksMerge has exited with status 1.
Jonathan Paisley dit que ça ne peut pas marcher...
mais je viens de me rendre compte qu'il y a une erreur d'argument (le
second) :
OSX::NSKeyUpMask est un mask donc un entier, la spec précise :
Removes all events matching mask and generated before lastEvent from the
event queue.
- (void)discardEventsMatchingMask:(unsigned int)mask
beforeEvent:(NSEvent *)lastEvent
donc comment choisir l'event correspondant à KeyUp ?
j'ai essayé OSX::NSEvent(mouseUp) pas bon...
comment en Obj-C on récupère mouseUp ?
tjs Jonathan Paisley m'a conseillé d'utiliser, plutôt :
Instead look at "- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
untilDate:(NSDate *)expiration inMode:(NSString *)mode
dequeue:(BOOL)flag" and call it repeatedly with dequeue:YES and try
different values for untilDate: NSDate.date, NSDate.distantFuture or
NSData.distantPast. Stop calling it when it returns no events.
là c'est RTFM...
par contre kimura wataru me donne une autre idée :
def loadDroite(sender)
disableAllButtons ####### inhibe les boutons
Thread.new {
loadXmlDroite("firefox.xml", "Barre personnelle")
@xmlDroite="firefox.xml"
@labelDroite.setStringValue "Firefox"
enableAllButtons ####### dés-inhibe les boutons
}
end
mais me prévient que le Thread ruby peuvent crasher...
càd #oc_display au lieu de #display déjà utilisé par Ruby...
maintenant, la visualisation des boutons montre qu'ils ne sont pas|plus "autorisés".
MAIS, à ma grande surprise, ils mémorisent quand même les clicks souris, si bien que l'action correspondante est prise en compte après que l'action en cours soit terminée...
je voudrais vraiment inhiber les boutons quand une action longue est en cours.
[Session started at 2006-02-22 13:13:18 +0100.] 2006-02-22 13:13:24.417 BookmarksMerge[22686] *** -[NSDecimalNumber _cgsEventTime]: selector not recognized [self = 0x4bb0af0] /Library/Frameworks/RubyCocoa.framework/Versions/A/Resources/ruby/osx/ob jc/oc_wrapper.rb:17:in `NSApplicationMain': NSApplicationMain - NSInvalidArgumentException - *** -[NSDecimalNumber _cgsEventTime]: selector not recognized [self = 0x4bb0af0] (OSX::OCException) from /Users/yvon/work/RubyCocoa/BookmarksMerge/build/Development/BookmarksMer ge.app/Contents/Resources/rb_main.rb:46
BookmarksMerge has exited with status 1.
Jonathan Paisley dit que ça ne peut pas marcher...
mais je viens de me rendre compte qu'il y a une erreur d'argument (le second) : OSX::NSKeyUpMask est un mask donc un entier, la spec précise :
Removes all events matching mask and generated before lastEvent from the event queue. - (void)discardEventsMatchingMask:(unsigned int)mask beforeEvent:(NSEvent *)lastEvent
donc comment choisir l'event correspondant à KeyUp ?
j'ai essayé OSX::NSEvent(mouseUp) pas bon...
comment en Obj-C on récupère mouseUp ?
tjs Jonathan Paisley m'a conseillé d'utiliser, plutôt :
Instead look at "- (NSEvent *)nextEventMatchingMask:(unsigned int)mask untilDate:(NSDate *)expiration inMode:(NSString *)mode dequeue:(BOOL)flag" and call it repeatedly with dequeue:YES and try different values for untilDate: NSDate.date, NSDate.distantFuture or NSData.distantPast. Stop calling it when it returns no events.
là c'est RTFM...
par contre kimura wataru me donne une autre idée :
def loadDroite(sender) disableAllButtons ####### inhibe les boutons Thread.new { loadXmlDroite("firefox.xml", "Barre personnelle") @xmlDroite="firefox.xml" @labelDroite.setStringValue "Firefox" enableAllButtons ####### dés-inhibe les boutons } end
mais me prévient que le Thread ruby peuvent crasher...