validate cocoa menu items with handles-gesture?
parent
76b1f9ce03
commit
85acbf4abc
|
@ -1,11 +1,12 @@
|
||||||
! Copyright (C) 2006, 2008 Slava Pestov
|
! Copyright (C) 2006, 2008 Slava Pestov
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors alien alien.c-types arrays assocs cocoa kernel math
|
USING: accessors alien alien.c-types alien.strings arrays assocs
|
||||||
cocoa.messages cocoa.subclassing cocoa.classes cocoa.views
|
cocoa kernel math cocoa.messages cocoa.subclassing cocoa.classes
|
||||||
cocoa.application cocoa.pasteboard cocoa.types cocoa.windows sequences
|
cocoa.views cocoa.application cocoa.pasteboard cocoa.types
|
||||||
ui ui.private ui.gadgets ui.gadgets.private ui.gadgets.worlds
|
cocoa.windows sequences io.encodings.ascii ui ui.private ui.gadgets
|
||||||
ui.gestures core-foundation.strings core-graphics core-graphics.types
|
ui.gadgets.private ui.gadgets.worlds ui.gestures
|
||||||
threads combinators math.rectangles ;
|
core-foundation.strings core-graphics core-graphics.types threads
|
||||||
|
combinators math.rectangles ;
|
||||||
IN: ui.backend.cocoa.views
|
IN: ui.backend.cocoa.views
|
||||||
|
|
||||||
: send-mouse-moved ( view event -- )
|
: send-mouse-moved ( view event -- )
|
||||||
|
@ -121,6 +122,25 @@ CONSTANT: key-codes
|
||||||
[ drop dim>> first2 ]
|
[ drop dim>> first2 ]
|
||||||
2bi <CGRect> ;
|
2bi <CGRect> ;
|
||||||
|
|
||||||
|
CONSTANT: selector>action H{
|
||||||
|
{ "undo:" undo-action }
|
||||||
|
{ "redo:" redo-action }
|
||||||
|
{ "cut:" cut-action }
|
||||||
|
{ "copy:" copy-action }
|
||||||
|
{ "paste:" paste-action }
|
||||||
|
{ "delete:" delete-action }
|
||||||
|
{ "selectAll:" select-all-action }
|
||||||
|
{ "newDocument:" new-action }
|
||||||
|
{ "openDocument:" open-action }
|
||||||
|
{ "saveDocument:" save-action }
|
||||||
|
{ "saveDocumentAs:" save-as-action }
|
||||||
|
{ "revertDocumentToSaved:" revert-action }
|
||||||
|
}
|
||||||
|
|
||||||
|
: validate-action ( world selector -- ? validated? )
|
||||||
|
selector>action at
|
||||||
|
[ swap world-focus parents-handle-gesture? t ] [ drop f f ] if* ;
|
||||||
|
|
||||||
CLASS: {
|
CLASS: {
|
||||||
{ +superclass+ "NSOpenGLView" }
|
{ +superclass+ "NSOpenGLView" }
|
||||||
{ +name+ "FactorView" }
|
{ +name+ "FactorView" }
|
||||||
|
@ -197,6 +217,14 @@ CLASS: {
|
||||||
[ nip send-key-up-event ]
|
[ nip send-key-up-event ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ "validateUserInterfaceItem:" "char" { "id" "SEL" "id" }
|
||||||
|
[
|
||||||
|
nip -> action
|
||||||
|
2dup [ window ] [ ascii alien>string ] bi* validate-action
|
||||||
|
[ [ 2drop ] dip >c-bool ] [ SUPER-> validateUserInterfaceItem: ] if
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
{ "undo:" "id" { "id" "SEL" "id" }
|
{ "undo:" "id" { "id" "SEL" "id" }
|
||||||
[ nip undo-action send-action$ ]
|
[ nip undo-action send-action$ ]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue