ref: 6dac36c4e56535f09dc8b4e7218059e335bf9e9f
parent: 2dc7bd15eb2a52b6c5a7bb32eb4cdbe60fa180be
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sat Mar 14 22:00:50 EDT 2020
switch buttons, move menu options, add "exit" menu option
--- a/picker.c
+++ b/picker.c
@@ -109,10 +109,7 @@
},
};
-static char *menu2i[nelem(spaces)+3] = {
- "snarf",
- "snarf all",
-};
+static char *menu2i[nelem(spaces)+4];
static Menu menu2 = { .item = menu2i };
static Color *colors;
@@ -396,7 +393,10 @@
}
for (i = 0; i < nelem(spaces); i++)
- menu2i[i+2] = spaces[i].name;
+ menu2i[i] = spaces[i].name;
+ menu2i[i++] = "snarf";
+ menu2i[i++] = "snarf all";
+ menu2i[i] = "exit";
if (initdraw(nil, nil, "picker") < 0)
sysfatal("initdraw: %r");
@@ -466,9 +466,11 @@
goto next;
}
}
- } else if (m.buttons == 2 && (i = menuhit(2, mctl, &menu2, nil)) >= 0) {
- if (i >= 2) {
- space = &spaces[i-2];
+ } else if (m.buttons == 4 && (i = menuhit(3, mctl, &menu2, nil)) >= 0) {
+ if (i == nelem(spaces)+2)
+ goto end;
+ if (i < nelem(spaces)) {
+ space = &spaces[i];
space->fromrgb(c->rgba, c->v);
for (i = 0; i < 3; i++)
c->v[i] = MAX(0.0, MIN(space->max[i], c->v[i]));
@@ -477,7 +479,7 @@
int f;
if ((f = open("/dev/snarf", OWRITE)) >= 0) {
- if (i == 0) {
+ if (i == nelem(spaces)) {
write(f, hex, strlen(hex));
} else {
for (i = 0; i < ncolors; i++) {
@@ -488,7 +490,7 @@
}
close(f);
}
- } else if (m.buttons == 4) {
+ } else if (m.buttons == 2) {
strcpy(buf, hex);
if (enter(nchan < 4 ? "rgb:" : "rgba:", buf, sizeof(buf), mctl, kctl, nil) > 0) {
u = c->u;
--- a/picker.man
+++ b/picker.man
@@ -32,8 +32,8 @@
.I RGBA
mode.
.PP
-Different color spaces are provided and accessible through middle
-button menu, or as command line arguments:
+Different color spaces are accessible through right button menu, or as
+command line arguments:
.TP
.B -s
HSLuv.
@@ -45,7 +45,7 @@
RGB.
.PP
Switching between palette can be done by either a mouse click, or
-left/right arrows on the keyboard. With the right button click you
+left/right arrows on the keyboard. With the middle button click you
can enter color as
.I RGB(A)
manually.