One possible approach:
let shapes = [s1, s2, s3];
let pg;
let sel;
let selection = 0;
let _x = 0;
let _y = 80;
let _w = 400;
let _h = 320;
function setup() {
createCanvas(400, 400);
pg = createGraphics(50,50);
background(209);
textAlign(CENTER);
sel = createSelect();
sel.position(80, 10);
sel.option('Shapes...');
sel.option('circle');
sel.option('square');
sel.option('ellipse');
sel.changed(selectShape);
}
function draw() {
}
function mousePressed() {
if(mouseX >= _x && mouseX <= _x + _w && mouseY >= _y && mouseY <= _y + _h){
shapes[selection]();
}
}
function selectShape(){
let item = sel.value();
switch(item){
case 'circle': previewCircle(); selection = 0; break;
case 'square': previewSquare(); selection = 1; break;
case 'ellipse': previewEllipse(); selection = 2; break;
}
}
function previewCircle(){
pg.background(255);
pg.circle(25,25,25);
image(pg,0,0);
}
function previewSquare(){
pg.background(255);
pg.square(5,5,25);
image(pg,0,0);
}
function previewEllipse(){
pg.background(255);
pg.ellipse(25,25,25,50);
image(pg,0,0);
}
function s1() {
fill(255, 0, 0);
circle(mouseX, mouseY, 75);
}
function s2() {
fill(0, 255, 0);
square(mouseX, mouseY, 50);
}
function s3() {
fill(0, 0, 255);
ellipse(mouseX, mouseY, 50, 200);
}