diff --git a/src/main/java/shape/tp5/DrawerContext.java b/src/main/java/shape/tp5/DrawerContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e91c1c827bd77b847baa78ab9126e8cf2155cec
--- /dev/null
+++ b/src/main/java/shape/tp5/DrawerContext.java
@@ -0,0 +1,38 @@
+package shape.tp5;
+
+import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.input.MouseEvent;
+
+public class DrawerContext {
+    private DrawerState currentState;
+    private Drawer drawer;
+
+    public DrawerContext(Drawer drawer) {
+        this.drawer = drawer;
+        this.currentState = new NullDrawerState(); // État initial
+    }
+
+    public void setState(DrawerState state) {
+        this.currentState = state;
+    }
+
+    public void mousePressed(MouseEvent event) {
+        currentState.mousePressed(this, event.getX(), event.getY());
+    }
+
+    public void mouseReleased(MouseEvent event) {
+        currentState.mouseReleased(this, event.getX(), event.getY());
+    }
+
+    public void mouseMoved(MouseEvent event) {
+        currentState.mouseMoved(this, event.getX(), event.getY());
+    }
+
+    public void paint(GraphicsContext graphicsContext) {
+        currentState.paint(this, graphicsContext);
+    }
+
+    public Drawer getDrawer() {
+        return drawer;
+    }
+}
\ No newline at end of file