@@ -3632,6 +3632,55 @@ inline float dist(A x1,B y1,C z1,D x2,E y2,F z2){ float dx=(float)x2-(float)x1,d
36323632// int main() { Sketch s; s.run(); return 0; }
36333633// =============================================================================
36343634
3635+ // ── Event objects (mirrors Java Processing's MouseEvent / KeyEvent) ──────────
3636+ struct MouseEvent {
3637+ float x, y; // cursor position at time of event
3638+ int button; // LEFT, CENTER, RIGHT, or -1
3639+ int count; // click count (press/release/click) or wheel steps
3640+ bool shiftDown;
3641+ bool controlDown;
3642+ bool altDown;
3643+ bool metaDown;
3644+ int action; // PRESS, RELEASE, CLICK, MOVE, DRAG, WHEEL
3645+ // action constants
3646+ static constexpr int PRESS = 1 ;
3647+ static constexpr int RELEASE = 2 ;
3648+ static constexpr int CLICK = 3 ;
3649+ static constexpr int MOVE = 4 ;
3650+ static constexpr int DRAG = 5 ;
3651+ static constexpr int WHEEL = 6 ;
3652+ // convenience
3653+ bool isShiftDown () const { return shiftDown; }
3654+ bool isControlDown () const { return controlDown; }
3655+ bool isAltDown () const { return altDown; }
3656+ bool isMetaDown () const { return metaDown; }
3657+ int getButton () const { return button; }
3658+ int getCount () const { return count; }
3659+ float getX () const { return x; }
3660+ float getY () const { return y; }
3661+ int getAction () const { return action; }
3662+ };
3663+
3664+ struct KeyEvent {
3665+ char16_t key; // the character (matches PApplet::key)
3666+ int keyCode; // VK_* code (matches PApplet::keyCode)
3667+ bool shiftDown;
3668+ bool controlDown;
3669+ bool altDown;
3670+ bool metaDown;
3671+ int action; // PRESS, RELEASE, TYPE
3672+ static constexpr int PRESS = 1 ;
3673+ static constexpr int RELEASE = 2 ;
3674+ static constexpr int TYPE = 3 ;
3675+ bool isShiftDown () const { return shiftDown; }
3676+ bool isControlDown () const { return controlDown; }
3677+ bool isAltDown () const { return altDown; }
3678+ bool isMetaDown () const { return metaDown; }
3679+ char16_t getKey () const { return key; }
3680+ int getKeyCode () const { return keyCode; }
3681+ int getAction () const { return action; }
3682+ };
3683+
36353684struct PApplet {
36363685 // ── Public state (directly accessible in sketch code) ───────────────────
36373686 int winWidth = 640 , winHeight = 480 ;
@@ -3714,15 +3763,24 @@ struct PApplet {
37143763 virtual void setup () {}
37153764 virtual void draw () {}
37163765 virtual void settings () {}
3717- virtual void mousePressed () {}
3718- virtual void mouseReleased () {}
3719- virtual void mouseClicked () {}
3720- virtual void mouseMoved () {}
3721- virtual void mouseDragged () {}
3722- virtual void mouseWheel (int delta) {}
3723- virtual void keyPressed () {}
3724- virtual void keyReleased () {}
3725- virtual void keyTyped () {}
3766+ virtual void mousePressed () {}
3767+ virtual void mousePressed (MouseEvent e) {}
3768+ virtual void mouseReleased () {}
3769+ virtual void mouseReleased (MouseEvent e) {}
3770+ virtual void mouseClicked () {}
3771+ virtual void mouseClicked (MouseEvent e) {}
3772+ virtual void mouseMoved () {}
3773+ virtual void mouseMoved (MouseEvent e) {}
3774+ virtual void mouseDragged () {}
3775+ virtual void mouseDragged (MouseEvent e) {}
3776+ virtual void mouseWheel (int delta) {}
3777+ virtual void mouseWheel (MouseEvent e) {}
3778+ virtual void keyPressed () {}
3779+ virtual void keyPressed (KeyEvent e) {}
3780+ virtual void keyReleased () {}
3781+ virtual void keyReleased (KeyEvent e) {}
3782+ virtual void keyTyped () {}
3783+ virtual void keyTyped (KeyEvent e) {}
37263784 virtual void windowMoved () {}
37273785 virtual void windowResized () {}
37283786
0 commit comments