Skip to content
Snippets Groups Projects
Commit d5753821 authored by Ivica Ico Bukvic's avatar Ivica Ico Bukvic
Browse files

fixed hacky offset in the original object that made it draw with a unique...

fixed hacky offset in the original object that made it draw with a unique offset, rendering autopatching and tidy implementation cumbersome without ugly hacks. will break backwards appearance (it will appear with a few pixels offset)
parent 36f59faa
No related branches found
No related tags found
No related merge requests found
...@@ -41,14 +41,31 @@ static int is_last_float = 0; ...@@ -41,14 +41,31 @@ static int is_last_float = 0;
static void vslider_draw_update(t_gobj *client, t_glist *glist) static void vslider_draw_update(t_gobj *client, t_glist *glist)
{ {
t_vslider *x = (t_vslider *)client; t_vslider *x = (t_vslider *)client;
t_canvas *canvas=glist_getcanvas(glist);
if (glist_isvisible(glist)) if (glist_isvisible(glist))
{ {
int r = text_ypix(&x->x_gui.x_obj, glist) + x->x_gui.x_h - (x->x_val + 50)/100; int r = text_ypix(&x->x_gui.x_obj, glist) + 2 + x->x_gui.x_h - (x->x_val + 50)/100;
int xpos=text_xpix(&x->x_gui.x_obj, glist); int xpos=text_xpix(&x->x_gui.x_obj, glist);
sys_vgui(".x%lx.c coords %lxKNOB %d %d %d %d\n", sys_vgui(".x%lx.c coords %lxKNOB %d %d %d %d\n",
glist_getcanvas(glist), x, xpos+2, r, canvas, x, xpos+2, r,
xpos + x->x_gui.x_w-1, r); xpos + x->x_gui.x_w-1, r);
if(x->x_val == x->x_center)
{
if(!x->x_thick)
{
sys_vgui(".x%lx.c itemconfigure %lxKNOB -width 7\n", canvas, x);
x->x_thick = 1;
}
}
else
{
if(x->x_thick)
{
sys_vgui(".x%lx.c itemconfigure %lxKNOB -width 3\n", canvas, x);
x->x_thick = 0;
}
}
} }
} }
...@@ -56,7 +73,7 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist) ...@@ -56,7 +73,7 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist)
{ {
int xpos=text_xpix(&x->x_gui.x_obj, glist); int xpos=text_xpix(&x->x_gui.x_obj, glist);
int ypos=text_ypix(&x->x_gui.x_obj, glist); int ypos=text_ypix(&x->x_gui.x_obj, glist);
int r = ypos + x->x_gui.x_h - (x->x_val + 50)/100; int r = ypos + 2 + x->x_gui.x_h - (x->x_val + 50)/100;
t_canvas *canvas=glist_getcanvas(glist); t_canvas *canvas=glist_getcanvas(glist);
t_scalehandle *sh = (t_scalehandle *)x->x_gui.x_handle; t_scalehandle *sh = (t_scalehandle *)x->x_gui.x_handle;
...@@ -80,8 +97,8 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist) ...@@ -80,8 +97,8 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist)
else nlet_tag = "bogus"; else nlet_tag = "bogus";
sys_vgui(".x%lx.c create rectangle %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxVSLDR text}\n", sys_vgui(".x%lx.c create rectangle %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxVSLDR text}\n",
canvas, xpos, ypos-2, canvas, xpos, ypos,
xpos + x->x_gui.x_w, ypos + x->x_gui.x_h+3, xpos + x->x_gui.x_w, ypos + x->x_gui.x_h+5,
x->x_gui.x_bcol, x, x); x->x_gui.x_bcol, x, x);
sys_vgui(".x%lx.c create line %d %d %d %d -width 3 -fill #%6.6x -tags {%lxKNOB %lxVSLDR text}\n", sys_vgui(".x%lx.c create line %d %d %d %d -width 3 -fill #%6.6x -tags {%lxKNOB %lxVSLDR text}\n",
canvas, xpos+2, r, canvas, xpos+2, r,
...@@ -95,14 +112,14 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist) ...@@ -95,14 +112,14 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist)
if(!x->x_gui.x_fsf.x_snd_able) if(!x->x_gui.x_fsf.x_snd_able)
sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags {%so%d %lxVSLDR outlet}\n", sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags {%so%d %lxVSLDR outlet}\n",
canvas, canvas,
xpos, ypos + x->x_gui.x_h+2, xpos, ypos + x->x_gui.x_h+4,
xpos+7, ypos + x->x_gui.x_h+3, xpos+7, ypos + x->x_gui.x_h+5,
nlet_tag, 0, x); nlet_tag, 0, x);
if(!x->x_gui.x_fsf.x_rcv_able) if(!x->x_gui.x_fsf.x_rcv_able)
sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags {%si%d %lxVSLDR inlet}\n", sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags {%si%d %lxVSLDR inlet}\n",
canvas, canvas,
xpos, ypos-2, xpos, ypos,
xpos+7, ypos-1, xpos+7, ypos+1,
nlet_tag, 0, x); nlet_tag, 0, x);
//} //}
} }
...@@ -111,7 +128,7 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist) ...@@ -111,7 +128,7 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist)
{ {
int xpos=text_xpix(&x->x_gui.x_obj, glist); int xpos=text_xpix(&x->x_gui.x_obj, glist);
int ypos=text_ypix(&x->x_gui.x_obj, glist); int ypos=text_ypix(&x->x_gui.x_obj, glist);
int r = ypos + x->x_gui.x_h - (x->x_val + 50)/100; int r = ypos + 2 + x->x_gui.x_h - (x->x_val + 50)/100;
t_canvas *canvas=glist_getcanvas(glist); t_canvas *canvas=glist_getcanvas(glist);
if (glist_isvisible(canvas)) { if (glist_isvisible(canvas)) {
...@@ -131,8 +148,8 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist) ...@@ -131,8 +148,8 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist)
sys_vgui(".x%lx.c coords %lxBASE %d %d %d %d\n", sys_vgui(".x%lx.c coords %lxBASE %d %d %d %d\n",
canvas, x, canvas, x,
xpos, ypos-2, xpos, ypos,
xpos + x->x_gui.x_w, ypos + x->x_gui.x_h+3); xpos + x->x_gui.x_w, ypos + x->x_gui.x_h+5);
sys_vgui(".x%lx.c coords %lxKNOB %d %d %d %d\n", sys_vgui(".x%lx.c coords %lxKNOB %d %d %d %d\n",
canvas, x, xpos+2, r, canvas, x, xpos+2, r,
xpos + x->x_gui.x_w-1, r); xpos + x->x_gui.x_w-1, r);
...@@ -141,13 +158,13 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist) ...@@ -141,13 +158,13 @@ static void vslider_draw_move(t_vslider *x, t_glist *glist)
if(!x->x_gui.x_fsf.x_snd_able) if(!x->x_gui.x_fsf.x_snd_able)
sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n", sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n",
canvas, nlet_tag, 0, canvas, nlet_tag, 0,
xpos, ypos + x->x_gui.x_h+2, xpos, ypos + x->x_gui.x_h+4,
xpos+7, ypos + x->x_gui.x_h+3); xpos+7, ypos + x->x_gui.x_h+5);
if(!x->x_gui.x_fsf.x_rcv_able) if(!x->x_gui.x_fsf.x_rcv_able)
sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n", sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n",
canvas, nlet_tag, 0, canvas, nlet_tag, 0,
xpos, ypos-2, xpos, ypos,
xpos+7, ypos-1); xpos+7, ypos+1);
/* redraw scale handle rectangle if selected */ /* redraw scale handle rectangle if selected */
if (x->x_gui.x_fsf.x_selected) { if (x->x_gui.x_fsf.x_selected) {
vslider_draw_select(x, x->x_gui.x_glist); vslider_draw_select(x, x->x_gui.x_glist);
...@@ -229,16 +246,16 @@ static void vslider_draw_io(t_vslider* x,t_glist* glist, int old_snd_rcv_flags) ...@@ -229,16 +246,16 @@ static void vslider_draw_io(t_vslider* x,t_glist* glist, int old_snd_rcv_flags)
if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able)
sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %so%d\n", sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %so%d\n",
canvas, canvas,
xpos, ypos + x->x_gui.x_h+2, xpos, ypos + x->x_gui.x_h+4,
xpos+7, ypos + x->x_gui.x_h+3, xpos+7, ypos + x->x_gui.x_h+5,
nlet_tag, 0); nlet_tag, 0);
if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able)
sys_vgui(".x%lx.c delete %so%d\n", canvas, nlet_tag, 0); sys_vgui(".x%lx.c delete %so%d\n", canvas, nlet_tag, 0);
if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able)
sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %si%d\n", sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %si%d\n",
canvas, canvas,
xpos, ypos-2, xpos, ypos,
xpos+7, ypos-1, xpos+7, ypos+1,
nlet_tag, 0); nlet_tag, 0);
if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able) if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able)
sys_vgui(".x%lx.c delete %si%d\n", canvas, nlet_tag, 0); sys_vgui(".x%lx.c delete %si%d\n", canvas, nlet_tag, 0);
...@@ -269,7 +286,7 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist) ...@@ -269,7 +286,7 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist)
sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT);
sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxVSLDR}\n", sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxVSLDR}\n",
canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1, canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1,
x->x_gui.x_obj.te_ypix + 3 + x->x_gui.x_h - SCALEHANDLE_HEIGHT - 1, x->x_gui.x_obj.te_ypix + 5 + x->x_gui.x_h - SCALEHANDLE_HEIGHT - 1,
SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT,
sh->h_pathname, x, x); sh->h_pathname, x, x);
sys_vgui("bind %s <Button> {pd [concat %s _click 1 %%x %%y \\;]}\n", sys_vgui("bind %s <Button> {pd [concat %s _click 1 %%x %%y \\;]}\n",
...@@ -387,9 +404,9 @@ static void vslider__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, ...@@ -387,9 +404,9 @@ static void vslider__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx,
sys_vgui("lower %s\n", sh->h_pathname); sys_vgui("lower %s\n", sh->h_pathname);
sys_vgui(".x%x.c create rectangle %d %d %d %d\ sys_vgui(".x%x.c create rectangle %d %d %d %d\
-outline $select_color -width 1 -tags %s\n", -outline $select_color -width 1 -tags %s\n",
x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix - 2, x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix,
x->x_gui.x_obj.te_xpix + x->x_gui.x_w, x->x_gui.x_obj.te_xpix + x->x_gui.x_w,
x->x_gui.x_obj.te_ypix + 3 + x->x_gui.x_h, sh->h_outlinetag); x->x_gui.x_obj.te_ypix + 5 + x->x_gui.x_h, sh->h_outlinetag);
} }
sh->h_dragx = 0; sh->h_dragx = 0;
...@@ -464,7 +481,7 @@ static void vslider__motionhook(t_scalehandle *sh, ...@@ -464,7 +481,7 @@ static void vslider__motionhook(t_scalehandle *sh,
if (glist_isvisible(x->x_gui.x_glist)) { if (glist_isvisible(x->x_gui.x_glist)) {
sys_vgui(".x%x.c coords %s %d %d %d %d\n", sys_vgui(".x%x.c coords %s %d %d %d %d\n",
x->x_gui.x_glist, sh->h_outlinetag, x->x_gui.x_obj.te_xpix, x->x_gui.x_glist, sh->h_outlinetag, x->x_gui.x_obj.te_xpix,
x->x_gui.x_obj.te_ypix - 2, newx, newy + 3); x->x_gui.x_obj.te_ypix, newx, newy + 5);
} }
sh->h_dragx = dx; sh->h_dragx = dx;
sh->h_dragy = dy; sh->h_dragy = dy;
...@@ -541,9 +558,9 @@ static void vslider_getrect(t_gobj *z, t_glist *glist, ...@@ -541,9 +558,9 @@ static void vslider_getrect(t_gobj *z, t_glist *glist,
t_vslider* x = (t_vslider*)z; t_vslider* x = (t_vslider*)z;
*xp1 = text_xpix(&x->x_gui.x_obj, glist); *xp1 = text_xpix(&x->x_gui.x_obj, glist);
*yp1 = text_ypix(&x->x_gui.x_obj, glist) - 2; *yp1 = text_ypix(&x->x_gui.x_obj, glist);
*xp2 = *xp1 + x->x_gui.x_w; *xp2 = *xp1 + x->x_gui.x_w;
*yp2 = *yp1 + x->x_gui.x_h + 5; *yp2 = *yp1 + x->x_gui.x_h + 7;
} }
static void vslider_save(t_gobj *z, t_binbuf *b) static void vslider_save(t_gobj *z, t_binbuf *b)
...@@ -571,6 +588,7 @@ void vslider_check_height(t_vslider *x, int h) ...@@ -571,6 +588,7 @@ void vslider_check_height(t_vslider *x, int h)
if(h < IEM_SL_MINSIZE) if(h < IEM_SL_MINSIZE)
h = IEM_SL_MINSIZE; h = IEM_SL_MINSIZE;
x->x_gui.x_h = h; x->x_gui.x_h = h;
x->x_center = (x->x_gui.x_h-1)*50;
if(x->x_val > (x->x_gui.x_h*100 - 100)) if(x->x_val > (x->x_gui.x_h*100 - 100))
{ {
x->x_pos = x->x_gui.x_h*100 - 100; x->x_pos = x->x_gui.x_h*100 - 100;
...@@ -936,6 +954,7 @@ static void *vslider_new(t_symbol *s, int argc, t_atom *argv) ...@@ -936,6 +954,7 @@ static void *vslider_new(t_symbol *s, int argc, t_atom *argv)
vslider_check_height(x, h); vslider_check_height(x, h);
vslider_check_minmax(x, min, max); vslider_check_minmax(x, min, max);
iemgui_all_colfromload(&x->x_gui, bflcol); iemgui_all_colfromload(&x->x_gui, bflcol);
x->x_thick = 0;
iemgui_verify_snd_ne_rcv(&x->x_gui); iemgui_verify_snd_ne_rcv(&x->x_gui);
outlet_new(&x->x_gui.x_obj, &s_float); outlet_new(&x->x_gui.x_obj, &s_float);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment