package net.mograsim.logic.ui;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import net.haspamelodica.swt.helper.zoomablecanvas.ZoomableCanvas;
import net.mograsim.logic.ui.model.ViewModel;
import net.mograsim.logic.ui.model.components.GUIComponent;
+import net.mograsim.preferences.Preferences;
/**
* Simulation visualizer canvas.
this.model = model;
LogicUIRenderer renderer = new LogicUIRenderer(model);
- addZoomedRenderer(gc -> renderer.render(gc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom)));
+ addZoomedRenderer(gc ->
+ {
+ Color background = Preferences.current().getColor("net.mograsim.logic.ui.color.background");
+ if (background != null)
+ setBackground(background);// this.setBackground, not gc.setBackground to have the background fill the canvas
+ renderer.render(gc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom));
+ });
model.addRedrawListener(this::redrawThreadsafe);
addListener(SWT.MouseDown, this::mouseDown);