Nicer favorite preset icon rendering in the top bar

This commit is contained in:
Quincy Morgan
2019-02-27 11:28:24 -05:00
parent 8f4f929401
commit 0a0e4890ca
2 changed files with 18 additions and 4 deletions

View File

@@ -165,6 +165,7 @@ export function uiModes(context) {
.call(uiPresetIcon()
.geometry(d.geometry)
.preset(d.preset)
.sizeClass('small')
)
} else {
d3_select(this)

View File

@@ -4,7 +4,11 @@ import { svgIcon, svgTagClasses } from '../svg';
import { utilFunctor } from '../util';
export function uiPresetIcon() {
var preset, geometry;
var preset, geometry, sizeClass = 'medium';
function isSmall() {
return sizeClass === 'small';
}
function presetIcon(selection) {
@@ -39,7 +43,8 @@ export function uiPresetIcon() {
}
function renderSquareFill(fillEnter) {
var w = 60, h = 60, l = 40, c1 = (w-l)/2, c2 = c1 + l;
var d = isSmall() ? 40 : 60;
var w = d, h = d, l = d*2/3, c1 = (w-l)/2, c2 = c1 + l;
fillEnter = fillEnter
.append('svg')
.attr('class', 'preset-icon-fill preset-icon-fill-area')
@@ -59,8 +64,9 @@ export function uiPresetIcon() {
}
function renderLine(lineEnter) {
var d = isSmall() ? 40 : 60;
// draw the line parametrically
var w = 60, h = 60, y = 43, l = 36, r = 2.5;
var w = d, h = d, y = Math.round(d*0.72), l = Math.round(d*0.6), r = 2.5;
var x1 = (w - l)/2, x2 = x1 + l;
lineEnter = lineEnter
@@ -166,7 +172,7 @@ export function uiPresetIcon() {
var areaFrame = container.selectAll('.preset-icon-frame')
.data((geom === 'area') ? [0] : []);
.data((geom === 'area' && !isSmall()) ? [0] : []);
areaFrame.exit()
.remove();
@@ -214,5 +220,12 @@ export function uiPresetIcon() {
return presetIcon;
};
presetIcon.sizeClass = function(val) {
if (!arguments.length) return sizeClass;
sizeClass = val;
return presetIcon;
};
return presetIcon;
}