summaryrefslogtreecommitdiff
path: root/apps/plugins/pdbox/PDa/src/g_editor.c
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2009-07-03 22:16:11 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2009-07-03 22:16:11 +0000
commit0d4560cb0305029fa5f0739670286176ab47cb65 (patch)
tree9899f4324664a77e6a5884fdd1541818a28a2172 /apps/plugins/pdbox/PDa/src/g_editor.c
parenteabeb928ddfdbe5fc6379efb87d9522803310649 (diff)
downloadrockbox-0d4560cb0305029fa5f0739670286176ab47cb65.zip
rockbox-0d4560cb0305029fa5f0739670286176ab47cb65.tar.gz
rockbox-0d4560cb0305029fa5f0739670286176ab47cb65.tar.bz2
rockbox-0d4560cb0305029fa5f0739670286176ab47cb65.tar.xz
Accept FS #10244 by Wincent Balin: more pdbox work done for GSoC; also some keyword and line-ending fixes by me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21626 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/pdbox/PDa/src/g_editor.c')
-rw-r--r--apps/plugins/pdbox/PDa/src/g_editor.c144
1 files changed, 126 insertions, 18 deletions
diff --git a/apps/plugins/pdbox/PDa/src/g_editor.c b/apps/plugins/pdbox/PDa/src/g_editor.c
index 1190739..a5cce20 100644
--- a/apps/plugins/pdbox/PDa/src/g_editor.c
+++ b/apps/plugins/pdbox/PDa/src/g_editor.c
@@ -2,6 +2,14 @@
* For information on usage and redistribution, and for a DISCLAIMER OF ALL
* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
+#ifdef ROCKBOX
+#include "plugin.h"
+#include "pdbox.h"
+#include "m_pd.h"
+#include "m_imp.h"
+#include "s_stuff.h"
+#include "g_canvas.h"
+#else /* ROCKBOX */
#include <stdlib.h>
#include <stdio.h>
#include "m_pd.h"
@@ -9,6 +17,7 @@
#include "s_stuff.h"
#include "g_canvas.h"
#include <string.h>
+#endif /* ROCKBOX */
void glist_readfrombinbuf(t_glist *x, t_binbuf *b, char *filename,
int selectem);
@@ -88,8 +97,10 @@ void glist_selectline(t_glist *x, t_outconnect *oc, int index1,
x->gl_editor->e_selectline_index2 = index2;
x->gl_editor->e_selectline_inno = inno;
x->gl_editor->e_selectline_tag = oc;
+#ifndef ROCKBOX
sys_vgui(".x%x.c itemconfigure l%x -fill blue\n",
x, x->gl_editor->e_selectline_tag);
+#endif
}
}
@@ -98,8 +109,10 @@ void glist_deselectline(t_glist *x)
if (x->gl_editor)
{
x->gl_editor->e_selectedline = 0;
+#ifndef ROCKBOX
sys_vgui(".x%x.c itemconfigure l%x -fill black\n",
x, x->gl_editor->e_selectline_tag);
+#endif
}
}
@@ -166,7 +179,7 @@ void glist_deselect(t_glist *x, t_gobj *y)
}
else
{
- for (sel = x->gl_editor->e_selection; sel2 = sel->sel_next;
+ for(sel = x->gl_editor->e_selection; (sel2 = sel->sel_next);
sel = sel2)
{
if (sel2->sel_what == y)
@@ -217,7 +230,7 @@ void glist_selectall(t_glist *x)
x->gl_editor->e_selection = sel;
sel->sel_what = y;
gobj_select(y, x, 1);
- while (y = y->g_next)
+ while((y = y->g_next))
{
t_selection *sel2 = (t_selection *)getbytes(sizeof(*sel2));
sel->sel_next = sel2;
@@ -290,11 +303,13 @@ void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf,
canvas_undo_buf = buf;
canvas_undo_whatnext = UNDO_UNDO;
canvas_undo_name = name;
+#ifndef ROCKBOX
if (x && glist_isvisible(x) && glist_istoplevel(x))
/* enable undo in menu */
sys_vgui("pdtk_undomenu .x%x %s no\n", x, name);
else if (hadone)
sys_vgui("pdtk_undomenu nobody no no\n");
+#endif
}
/* clear undo if it happens to be for the canvas x.
@@ -316,8 +331,10 @@ static void canvas_undo(t_canvas *x)
/* post("undo"); */
(*canvas_undo_fn)(canvas_undo_canvas, canvas_undo_buf, UNDO_UNDO);
/* enable redo in menu */
+#ifndef ROCKBOX
if (glist_isvisible(x) && glist_istoplevel(x))
sys_vgui("pdtk_undomenu .x%x no %s\n", x, canvas_undo_name);
+#endif
canvas_undo_whatnext = UNDO_REDO;
}
}
@@ -333,8 +350,10 @@ static void canvas_redo(t_canvas *x)
/* post("redo"); */
(*canvas_undo_fn)(canvas_undo_canvas, canvas_undo_buf, UNDO_REDO);
/* enable undo in menu */
+#ifndef ROCKBOX
if (glist_isvisible(x) && glist_istoplevel(x))
sys_vgui("pdtk_undomenu .x%x %s no\n", x, canvas_undo_name);
+#endif
canvas_undo_whatnext = UNDO_UNDO;
}
}
@@ -352,6 +371,9 @@ typedef struct _undo_connect
static void *canvas_undo_set_disconnect(t_canvas *x,
int index1, int outno, int index2, int inno)
{
+#ifdef ROCKBOX
+ (void) x;
+#endif
t_undo_connect *buf = (t_undo_connect *)getbytes(sizeof(*buf));
buf->u_index1 = index1;
buf->u_outletno = outno;
@@ -366,14 +388,16 @@ void canvas_disconnect(t_canvas *x,
t_linetraverser t;
t_outconnect *oc;
linetraverser_start(&t, x);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
{
int srcno = canvas_getindex(x, &t.tr_ob->ob_g);
int sinkno = canvas_getindex(x, &t.tr_ob2->ob_g);
if (srcno == index1 && t.tr_outno == outno &&
sinkno == index2 && t.tr_inno == inno)
{
+#ifndef ROCKBOX
sys_vgui(".x%x.c delete l%x\n", x, oc);
+#endif
obj_disconnect(t.tr_ob, t.tr_outno, t.tr_ob2, t.tr_inno);
break;
}
@@ -432,7 +456,9 @@ typedef struct _undo_cut
static void *canvas_undo_set_cut(t_canvas *x, int mode)
{
t_undo_cut *buf;
+#ifndef ROCKBOX
t_gobj *y;
+#endif
t_linetraverser t;
t_outconnect *oc;
int nnotsel= glist_selectionindex(x, 0, 0);
@@ -443,7 +469,7 @@ static void *canvas_undo_set_cut(t_canvas *x, int mode)
/* store connections into/out of the selection */
buf->u_reconnectbuf = binbuf_new();
linetraverser_start(&t, x);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
{
int issel1 = glist_isselected(x, &t.tr_ob->ob_g);
int issel2 = glist_isselected(x, &t.tr_ob2->ob_g);
@@ -488,7 +514,7 @@ static void canvas_undo_cut(t_canvas *x, void *z, int action)
{
t_gobj *y1, *y2;
glist_noselect(x);
- for (y1 = x->gl_list; y2 = y1->g_next; y1 = y2)
+ for(y1 = x->gl_list; (y2 = y1->g_next); y1 = y2)
;
if (y1)
{
@@ -514,7 +540,7 @@ static void canvas_undo_cut(t_canvas *x, void *z, int action)
else if (mode == UCUT_TEXT)
{
t_gobj *y1, *y2;
- for (y1 = x->gl_list; y2 = y1->g_next; y1 = y2)
+ for(y1 = x->gl_list; (y2 = y1->g_next); y1 = y2)
;
if (y1)
glist_delete(x, y1);
@@ -738,7 +764,9 @@ void canvas_setcursor(t_canvas *x, unsigned int cursornum)
}
if (xwas != x || cursorwas != cursornum)
{
+#ifndef ROCKBOX
sys_vgui(".x%x configure -cursor %s\n", x, cursorlist[cursornum]);
+#endif
xwas = x;
cursorwas = cursornum;
}
@@ -784,8 +812,14 @@ static void canvas_rightclick(t_canvas *x, int xpos, int ypos, t_gobj *y)
int canprop, canopen;
canprop = (!y || (y && class_getpropertiesfn(pd_class(&y->g_pd))));
canopen = (y && zgetfn(&y->g_pd, gensym("menu-open")));
+#ifdef ROCKBOX
+ (void) x;
+ (void) xpos;
+ (void) ypos;
+#else /* ROCKBOX */
sys_vgui("pdtk_canvas_popup .x%x %d %d %d %d\n",
x, xpos, ypos, canprop, canopen);
+#endif /* ROCKBOX */
}
/* tell GUI to create a properties dialog on the canvas. We tell
@@ -793,11 +827,15 @@ static void canvas_rightclick(t_canvas *x, int xpos, int ypos, t_gobj *y)
naturally upward, whereas pixels grow downward. */
static void canvas_properties(t_glist *x)
{
+#ifdef ROCKBOX
+ (void) x;
+#else /* ROCKBOX */
char graphbuf[200];
sprintf(graphbuf, "pdtk_canvas_dialog %%s %g %g %g %g \n",
glist_dpixtodx(x, 1), -glist_dpixtody(x, 1),
(float)glist_isgraph(x), (float)x->gl_stretch);
gfxstub_new(&x->gl_pd, x, graphbuf);
+#endif /* ROCKBOX */
}
@@ -885,7 +923,11 @@ static void canvas_donecanvasdialog(t_glist *x, t_floatarg xperpix,
"open," or "help." */
static void canvas_done_popup(t_canvas *x, float which, float xpos, float ypos)
{
+#ifdef ROCKBOX
+ char namebuf[MAXPDSTRING];
+#else
char pathbuf[MAXPDSTRING], namebuf[MAXPDSTRING];
+#endif
t_gobj *y;
for (y = x->gl_list; y; y = y->g_next)
{
@@ -936,9 +978,11 @@ static void canvas_done_popup(t_canvas *x, float which, float xpos, float ypos)
canvas_properties(x);
else if (which == 2)
{
+#ifndef ROCKBOX
strcpy(pathbuf, sys_libdir->s_name);
strcat(pathbuf, "/doc/5.reference/0.INTRO.txt");
sys_vgui("menu_opentext %s\n", pathbuf);
+#endif
}
}
@@ -967,7 +1011,11 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which,
t_gobj *y;
int shiftmod, runmode, altmod, rightclick;
int x1, y1, x2, y2, clickreturned = 0;
-
+
+#ifdef ROCKBOX
+ (void) which;
+#endif
+
if (!x->gl_editor)
{
bug("editor");
@@ -1027,7 +1075,7 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which,
return;
}
/* if not a runmode left click, fall here. */
- if (y = canvas_findhitbox(x, xpos, ypos, &x1, &y1, &x2, &y2))
+ if((y = canvas_findhitbox(x, xpos, ypos, &x1, &y1, &x2, &y2)))
{
t_object *ob = pd_checkobject(&y->g_pd);
/* check you're in the rectangle */
@@ -1071,14 +1119,18 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which,
{
if (doit)
{
+#ifndef ROCKBOX
int issignal = obj_issignaloutlet(ob, closest);
+#endif
x->gl_editor->e_onmotion = MA_CONNECT;
x->gl_editor->e_xwas = xpos;
x->gl_editor->e_ywas = ypos;
+#ifndef ROCKBOX
sys_vgui(
".x%x.c create line %d %d %d %d -width %d -tags x\n",
x, xpos, ypos, xpos, ypos,
(issignal ? 2 : 1));
+#endif
}
else canvas_setcursor(x, CURSOR_EDITMODE_CONNECT);
}
@@ -1134,7 +1186,7 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which,
float fx = xpos, fy = ypos;
t_glist *glist2 = glist_getcanvas(x);
linetraverser_start(&t, glist2);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
{
float lx1 = t.tr_lx1, ly1 = t.tr_ly1,
lx2 = t.tr_lx2, ly2 = t.tr_ly2;
@@ -1158,8 +1210,10 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which,
if (doit)
{
if (!shiftmod) glist_noselect(x);
+#ifndef ROCKBOX
sys_vgui(".x%x.c create rectangle %d %d %d %d -tags x\n",
x, xpos, ypos, xpos, ypos);
+#endif
x->gl_editor->e_xwas = xpos;
x->gl_editor->e_ywas = ypos;
x->gl_editor->e_onmotion = MA_REGION;
@@ -1178,7 +1232,7 @@ int canvas_isconnected (t_canvas *x, t_text *ob1, int n1,
t_linetraverser t;
t_outconnect *oc;
linetraverser_start(&t, x);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
if (t.tr_ob == ob1 && t.tr_outno == n1 &&
t.tr_ob2 == ob2 && t.tr_inno == n2)
return (1);
@@ -1193,10 +1247,15 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit)
t_gobj *y2;
int xwas = x->gl_editor->e_xwas,
ywas = x->gl_editor->e_ywas;
+#ifdef ROCKBOX
+ (void) which;
+#endif /* ROCKBOX */
+#ifndef ROCKBOX
if (doit) sys_vgui(".x%x.c delete x\n", x);
else sys_vgui(".x%x.c coords x %d %d %d %d\n",
x, x->gl_editor->e_xwas,
x->gl_editor->e_ywas, xpos, ypos);
+#endif /* ROCKBOX */
if ((y1 = canvas_findhitbox(x, xwas, ywas, &x11, &y11, &x12, &y12))
&& (y2 = canvas_findhitbox(x, xpos, ypos, &x21, &y21, &x22, &y22)))
@@ -1258,10 +1317,12 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit)
((x22-x21-IOWIDTH) * closest2)/(ninlet2-1) : 0)
+ IOMIDDLE;
ly2 = y21;
+#ifndef ROCKBOX
sys_vgui(".x%x.c create line %d %d %d %d -width %d -tags l%x\n",
glist_getcanvas(x),
lx1, ly1, lx2, ly2,
(obj_issignaloutlet(ob1, closest1) ? 2 : 1), oc);
+#endif /* ROCKBOX */
canvas_setundo(x, canvas_undo_connect,
canvas_undo_set_connect(x,
canvas_getindex(x, &ob1->ob_g), closest1,
@@ -1300,12 +1361,16 @@ static void canvas_doregion(t_canvas *x, int xpos, int ypos, int doit)
loy = x->gl_editor->e_ywas, hiy = ypos;
else hiy = x->gl_editor->e_ywas, loy = ypos;
canvas_selectinrect(x, lox, loy, hix, hiy);
+#ifndef ROCKBOX
sys_vgui(".x%x.c delete x\n", x);
+#endif
x->gl_editor->e_onmotion = 0;
}
+#ifndef ROCKBOX
else sys_vgui(".x%x.c coords x %d %d %d %d\n",
x, x->gl_editor->e_xwas,
x->gl_editor->e_ywas, xpos, ypos);
+#endif
}
void canvas_mouseup(t_canvas *x,
@@ -1395,7 +1460,11 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av)
t_symbol *gotkeysym;
int down, shift;
-
+
+#ifdef ROCKBOX
+ (void) s;
+#endif
+
if (ac < 3)
return;
if (!x->gl_editor)
@@ -1411,7 +1480,11 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av)
else if (av[1].a_type == A_FLOAT)
{
char buf[3];
+#ifdef ROCKBOX
+ snprintf(buf, sizeof(buf)-1, "%c", (int)(av[1].a_w.w_float));
+#else /* ROCKBOX */
sprintf(buf, "%c", (int)(av[1].a_w.w_float));
+#endif /* ROCKBOX */
gotkeysym = gensym(buf);
}
else gotkeysym = gensym("?");
@@ -1559,8 +1632,13 @@ void canvas_startmotion(t_canvas *x)
void canvas_print(t_canvas *x, t_symbol *s)
{
+#ifdef ROCKBOX
+ (void) x;
+ (void) s;
+#else /* ROCKBOX */
if (*s->s_name) sys_vgui(".x%x.c postscript -file %s\n", x, s->s_name);
else sys_vgui(".x%x.c postscript -file x.ps\n", x);
+#endif /* ROCKBOX */
}
void canvas_menuclose(t_canvas *x, t_floatarg force)
@@ -1569,18 +1647,24 @@ void canvas_menuclose(t_canvas *x, t_floatarg force)
canvas_vis(x, 0);
else if ((force != 0) || (!x->gl_dirty))
pd_free(&x->gl_pd);
+#ifndef ROCKBOX
else sys_vgui("pdtk_check {This window has been modified. Close anyway?}\
{.x%x menuclose 1;\n}\n", x);
+#endif
}
/* put up a dialog which may call canvas_font back to do the work */
static void canvas_menufont(t_canvas *x)
{
+#ifdef ROCKBOX
+ (void) x;
+#else /* ROCKBOX */
char buf[80];
t_canvas *x2 = canvas_getrootfor(x);
gfxstub_deleteforkey(x2);
sprintf(buf, "pdtk_canvas_dofont %%s %d\n", x2->gl_font);
gfxstub_new(&x2->gl_pd, &x2->gl_pd, buf);
+#endif /* ROCKBOX */
}
static int canvas_find_index1, canvas_find_index2;
@@ -1598,13 +1682,13 @@ static int canvas_dofind(t_canvas *x, int *myindex1p)
y = y->g_next, myindex2++)
{
t_object *ob = 0;
- if (ob = pd_checkobject(&y->g_pd))
+ if((ob = pd_checkobject(&y->g_pd)))
{
if (binbuf_match(ob->ob_binbuf, canvas_findbuf))
{
if (myindex1 > canvas_find_index1 ||
- myindex1 == canvas_find_index1 &&
- myindex2 > canvas_find_index2)
+ (myindex1 == canvas_find_index1 &&
+ myindex2 > canvas_find_index2))
{
canvas_find_index1 = myindex1;
canvas_find_index2 = myindex2;
@@ -1633,6 +1717,9 @@ static int canvas_dofind(t_canvas *x, int *myindex1p)
static void canvas_find(t_canvas *x, t_symbol *s, int ac, t_atom *av)
{
int myindex1 = 0, i;
+#ifdef ROCKBOX
+ (void) s;
+#endif
for (i = 0; i < ac; i++)
{
if (av[i].a_type == A_SYMBOL)
@@ -1660,6 +1747,9 @@ static void canvas_find(t_canvas *x, t_symbol *s, int ac, t_atom *av)
static void canvas_find_again(t_canvas *x)
{
int myindex1 = 0;
+#ifdef ROCKBOX
+ (void) x;
+#endif
if (!canvas_findbuf || !canvas_whichfind)
return;
if (!canvas_dofind(canvas_whichfind, &myindex1))
@@ -1756,7 +1846,7 @@ void canvas_stowconnections(t_canvas *x)
/* add connections to binbuf */
binbuf_clear(x->gl_editor->e_connectbuf);
linetraverser_start(&t, x);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
{
int s1 = glist_isselected(x, &t.tr_ob->ob_g);
int s2 = glist_isselected(x, &t.tr_ob2->ob_g);
@@ -1787,7 +1877,7 @@ static t_binbuf *canvas_docopy(t_canvas *x)
gobj_save(y, b);
}
linetraverser_start(&t, x);
- while (oc = linetraverser_next(&t))
+ while((oc = linetraverser_next(&t)))
{
if (glist_isselected(x, &t.tr_ob->ob_g)
&& glist_isselected(x, &t.tr_ob2->ob_g))
@@ -1912,7 +2002,11 @@ static void glist_donewloadbangs(t_glist *x)
static void canvas_dopaste(t_canvas *x, t_binbuf *b)
{
+#ifdef ROCKBOX
+ t_gobj *g2;
+#else /* ROCKBOX */
t_gobj *newgobj, *last, *g2;
+#endif /* ROCKBOX */
int dspstate = canvas_suspend_dsp(), nbox, count;
canvas_editmode(x, 1.);
@@ -1987,9 +2081,11 @@ void canvas_connect(t_canvas *x, t_floatarg fwhoout, t_floatarg foutno,
if (!(oc = obj_connect(objsrc, outno, objsink, inno))) goto bad;
if (glist_isvisible(x))
{
+#ifndef ROCKBOX
sys_vgui(".x%x.c create line %d %d %d %d -width %d -tags l%x\n",
glist_getcanvas(x), 0, 0, 0, 0,
(obj_issignaloutlet(objsrc, outno) ? 2 : 1),oc);
+#endif
canvas_fixlinesfor(x, objsrc);
}
return;
@@ -2008,7 +2104,11 @@ bad:
/* LATER might have to speed this up */
static void canvas_tidy(t_canvas *x)
{
+#ifdef ROCKBOX
+ t_gobj *y, *y2;
+#else /* ROCKBOX */
t_gobj *y, *y2, *y3;
+#endif /* ROCKBOX */
int ax1, ay1, ax2, ay2, bx1, by1, bx2, by2;
int histogram[NHIST], *ip, i, besthist, bestdist;
/* if nobody is selected, this means do it to all boxes;
@@ -2114,15 +2214,19 @@ static void canvas_texteditor(t_canvas *x)
t_rtext *foo;
char *buf;
int bufsize;
- if (foo = x->gl_editor->e_textedfor)
+ if((foo = x->gl_editor->e_textedfor))
rtext_gettext(foo, &buf, &bufsize);
else buf = "", bufsize = 0;
+#ifndef ROCKBOX
sys_vgui("pdtk_pd_texteditor {%.*s}\n", bufsize, buf);
-
+#endif
}
void glob_key(void *dummy, t_symbol *s, int ac, t_atom *av)
{
+#ifdef ROCKBOX
+ (void) dummy;
+#endif
/* canvas_editing can be zero; canvas_key checks for that */
canvas_key(canvas_editing, s, ac, av);
}
@@ -2141,8 +2245,10 @@ void canvas_editmode(t_canvas *x, t_floatarg fyesplease)
if (glist_isvisible(x) && glist_istoplevel(x))
canvas_setcursor(x, CURSOR_RUNMODE_NOTHING);
}
+#ifndef ROCKBOX
sys_vgui("pdtk_canvas_editval .x%x %d\n",
glist_getcanvas(x), x->gl_edit);
+#endif
}
/* called by canvas_font below */
@@ -2188,7 +2294,9 @@ static void canvas_font(t_canvas *x, t_floatarg font, t_floatarg resize,
if (whichresize != 3) realresx = realresize;
if (whichresize != 2) realresy = realresize;
canvas_dofont(x2, font, realresx, realresy);
+#ifndef ROCKBOX
sys_defaultfont = font;
+#endif
}
static t_glist *canvas_last_glist;