mirror of
https://codeberg.org/dnkl/yambar.git
synced 2025-06-16 00:05:40 +02:00
exposable: add ‘btn’ argument to on_mouse()
This commit is contained in:
parent
8f7ef7c20b
commit
dd724d1bc2
11 changed files with 69 additions and 38 deletions
|
@ -67,13 +67,13 @@ dynlist_expose(const struct exposable *exposable, pixman_image_t *pix, int x, in
|
|||
|
||||
static void
|
||||
on_mouse(struct exposable *exposable, struct bar *bar,
|
||||
enum mouse_event event, int x, int y)
|
||||
enum mouse_event event, enum mouse_button btn, int x, int y)
|
||||
{
|
||||
//const struct particle *p = exposable->particle;
|
||||
const struct private *e = exposable->private;
|
||||
|
||||
if (exposable->on_click != NULL) {
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@ on_mouse(struct exposable *exposable, struct bar *bar,
|
|||
if (x >= px && x < px + e->exposables[i]->width) {
|
||||
if (e->exposables[i]->on_mouse != NULL) {
|
||||
e->exposables[i]->on_mouse(
|
||||
e->exposables[i], bar, event, x - px, y);
|
||||
e->exposables[i], bar, event, btn, x - px, y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ on_mouse(struct exposable *exposable, struct bar *bar,
|
|||
}
|
||||
|
||||
LOG_DBG("on_mouse missed all sub-particles");
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
}
|
||||
|
||||
struct exposable *
|
||||
|
|
|
@ -75,14 +75,14 @@ expose(const struct exposable *exposable, pixman_image_t *pix, int x, int y, int
|
|||
|
||||
static void
|
||||
on_mouse(struct exposable *exposable, struct bar *bar,
|
||||
enum mouse_event event, int x, int y)
|
||||
enum mouse_event event, enum mouse_button btn, int x, int y)
|
||||
{
|
||||
const struct particle *p = exposable->particle;
|
||||
const struct eprivate *e = exposable->private;
|
||||
|
||||
if (exposable->on_click != NULL) {
|
||||
/* We have our own handler */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ on_mouse(struct exposable *exposable, struct bar *bar,
|
|||
if (x >= px && x < px + e->exposables[i]->width) {
|
||||
if (e->exposables[i]->on_mouse != NULL) {
|
||||
e->exposables[i]->on_mouse(
|
||||
e->exposables[i], bar, event, x - px, y);
|
||||
e->exposables[i], bar, event, btn, x - px, y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ on_mouse(struct exposable *exposable, struct bar *bar,
|
|||
}
|
||||
|
||||
/* We're between sub-particles (or in the left/right margin) */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
}
|
||||
|
||||
static struct exposable *
|
||||
|
|
|
@ -61,26 +61,26 @@ expose(const struct exposable *exposable, pixman_image_t *pix, int x, int y, int
|
|||
|
||||
static void
|
||||
on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
||||
int x, int y)
|
||||
enum mouse_button btn, int x, int y)
|
||||
{
|
||||
const struct particle *p = exposable->particle;
|
||||
const struct eprivate *e = exposable->private;
|
||||
|
||||
if (exposable->on_click != NULL) {
|
||||
/* We have our own handler */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
return;
|
||||
}
|
||||
|
||||
int px = p->left_margin;
|
||||
if (x >= px && x < px + e->exposable->width) {
|
||||
if (e->exposable->on_mouse != NULL)
|
||||
e->exposable->on_mouse(e->exposable, bar, event, x - px, y);
|
||||
e->exposable->on_mouse(e->exposable, bar, event, btn, x - px, y);
|
||||
return;
|
||||
}
|
||||
|
||||
/* In the left- or right margin */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
}
|
||||
|
||||
static struct exposable *
|
||||
|
|
|
@ -85,10 +85,10 @@ expose(const struct exposable *exposable, pixman_image_t *pix, int x, int y, int
|
|||
|
||||
static void
|
||||
on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
||||
int x, int y)
|
||||
enum mouse_button btn, int x, int y)
|
||||
{
|
||||
if (exposable->on_click == NULL) {
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
|||
/* Mouse is over the start-marker */
|
||||
struct exposable *start = e->exposables[0];
|
||||
if (start->on_mouse != NULL)
|
||||
start->on_mouse(start, bar, event, x - p->left_margin, y);
|
||||
start->on_mouse(start, bar, event, btn, x - p->left_margin, y);
|
||||
} else {
|
||||
/* Mouse if over left margin */
|
||||
bar->set_cursor(bar, "left_ptr");
|
||||
|
@ -139,7 +139,7 @@ on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
|||
/* Mouse is over the end-marker */
|
||||
struct exposable *end = e->exposables[e->count - 1];
|
||||
if (end->on_mouse != NULL)
|
||||
end->on_mouse(end, bar, event, x - x_offset - clickable_width, y);
|
||||
end->on_mouse(end, bar, event, btn, x - x_offset - clickable_width, y);
|
||||
} else {
|
||||
/* Mouse is over the right margin */
|
||||
bar->set_cursor(bar, "left_ptr");
|
||||
|
@ -165,7 +165,7 @@ on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
|||
}
|
||||
|
||||
/* Call default implementation, which will execute our handler */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
|
||||
if (event == ON_MOUSE_CLICK) {
|
||||
/* Reset handler string */
|
||||
|
|
|
@ -57,26 +57,26 @@ expose(const struct exposable *exposable, pixman_image_t *pix, int x, int y, int
|
|||
|
||||
static void
|
||||
on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event,
|
||||
int x, int y)
|
||||
enum mouse_button btn, int x, int y)
|
||||
{
|
||||
const struct particle *p = exposable->particle;
|
||||
const struct eprivate *e = exposable->private;
|
||||
|
||||
if (exposable->on_click != NULL) {
|
||||
/* We have our own handler */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
return;
|
||||
}
|
||||
|
||||
int px = p->left_margin;
|
||||
if (x >= px && x < px + e->exposable->width) {
|
||||
if (e->exposable->on_mouse != NULL)
|
||||
e->exposable->on_mouse(e->exposable, bar, event, x - px, y);
|
||||
e->exposable->on_mouse(e->exposable, bar, event, btn, x - px, y);
|
||||
return;
|
||||
}
|
||||
|
||||
/* In the left- or right margin */
|
||||
exposable_default_on_mouse(exposable, bar, event, x, y);
|
||||
exposable_default_on_mouse(exposable, bar, event, btn, x, y);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue