Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Wynn
purr-data
Commits
ee23ddc6
Commit
ee23ddc6
authored
Dec 16, 2008
by
Miller Puckette
Browse files
test7
parent
ef94718e
Changes
8
Hide whitespace changes
Inline
Side-by-side
src/g_canvas.c
View file @
ee23ddc6
...
...
@@ -51,7 +51,6 @@ void canvas_reflecttitle(t_canvas *x);
static
void
canvas_addtolist
(
t_canvas
*
x
);
static
void
canvas_takeofflist
(
t_canvas
*
x
);
static
void
canvas_pop
(
t_canvas
*
x
,
t_floatarg
fvis
);
void
canvas_create_editor
(
t_glist
*
x
,
int
createit
);
/* --------- functions to handle the canvas environment ----------- */
...
...
@@ -513,8 +512,6 @@ t_glist *glist_addglist(t_glist *g, t_symbol *sym,
if
(
!
menu
)
pd_pushsym
(
&
x
->
gl_pd
);
glist_add
(
g
,
&
x
->
gl_gobj
);
if
(
glist_isvisible
(
g
))
canvas_create_editor
(
x
,
1
);
return
(
x
);
}
...
...
@@ -613,7 +610,8 @@ void canvas_dirty(t_canvas *x, t_int n)
if
((
unsigned
)
n
!=
x2
->
gl_dirty
)
{
x2
->
gl_dirty
=
n
;
canvas_reflecttitle
(
x2
);
if
(
glist_isvisible
(
x2
))
canvas_reflecttitle
(
x2
);
}
}
...
...
@@ -663,15 +661,8 @@ void canvas_map(t_canvas *x, t_floatarg f)
{
if
(
glist_isvisible
(
x
))
{
/* just clear out the whole canvas
...
*/
/* just clear out the whole canvas */
sys_vgui
(
".x%lx.c delete all
\n
"
,
x
);
#if 0
/* alternatively, we could have erased them one by one...
for (y = x->gl_list; y; y = y->g_next)
gobj_vis(y, x, 0);
... but we should go through and erase the lines as well
if we do it that way. */
#endif
x
->
gl_mapped
=
0
;
}
}
...
...
@@ -702,7 +693,7 @@ void glist_menu_open(t_glist *x)
gobj_vis
(
&
x
->
gl_gobj
,
gl2
,
0
);
/* get rid of our editor (and subeditors) */
if
(
x
->
gl_editor
)
canvas_
create
_editor
(
x
,
0
);
canvas_
destroy
_editor
(
x
);
x
->
gl_havewindow
=
1
;
/* redraw ourself in parent window (blanked out this time) */
gobj_vis
(
&
x
->
gl_gobj
,
gl2
,
1
);
...
...
src/g_canvas.h
View file @
ee23ddc6
...
...
@@ -401,7 +401,8 @@ EXTERN void glist_redraw(t_glist *x);
EXTERN
void
glist_drawiofor
(
t_glist
*
glist
,
t_object
*
ob
,
int
firsttime
,
char
*
tag
,
int
x1
,
int
y1
,
int
x2
,
int
y2
);
EXTERN
void
glist_eraseiofor
(
t_glist
*
glist
,
t_object
*
ob
,
char
*
tag
);
EXTERN
void
canvas_create_editor
(
t_glist
*
x
,
int
createit
);
EXTERN
void
canvas_create_editor
(
t_glist
*
x
);
EXTERN
void
canvas_destroy_editor
(
t_glist
*
x
);
void
canvas_deletelinesforio
(
t_canvas
*
x
,
t_text
*
text
,
t_inlet
*
inp
,
t_outlet
*
outp
);
extern
int
glist_amreloadingabstractions
;
/* stop GUI changes while reloading */
...
...
src/g_editor.c
View file @
ee23ddc6
...
...
@@ -862,39 +862,31 @@ static void editor_free(t_editor *x, t_glist *y)
/* recursively create or destroy all editors of a glist and its
sub-glists, as long as they aren't toplevels. */
void
canvas_create_editor
(
t_glist
*
x
,
int
createit
)
void
canvas_create_editor
(
t_glist
*
x
)
{
t_gobj
*
y
;
t_object
*
ob
;
if
(
createit
)
if
(
!
x
->
gl_editor
)
{
if
(
x
->
gl_editor
)
bug
(
"canvas_create_editor"
);
else
{
x
->
gl_editor
=
editor_new
(
x
);
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
if
(
ob
=
pd_checkobject
(
&
y
->
g_pd
))
rtext_new
(
x
,
ob
);
}
x
->
gl_editor
=
editor_new
(
x
);
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
if
(
ob
=
pd_checkobject
(
&
y
->
g_pd
))
rtext_new
(
x
,
ob
);
}
else
}
void
canvas_destroy_editor
(
t_glist
*
x
)
{
t_gobj
*
y
;
t_object
*
ob
;
if
(
x
->
gl_editor
)
{
if
(
!
x
->
gl_editor
)
bug
(
"canvas_create_editor"
);
else
{
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
if
(
ob
=
pd_checkobject
(
&
y
->
g_pd
))
rtext_free
(
glist_findrtext
(
x
,
ob
));
editor_free
(
x
->
gl_editor
,
x
);
x
->
gl_editor
=
0
;
}
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
if
(
ob
=
pd_checkobject
(
&
y
->
g_pd
))
rtext_free
(
glist_findrtext
(
x
,
ob
));
editor_free
(
x
->
gl_editor
,
x
);
x
->
gl_editor
=
0
;
}
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
if
(
pd_class
(
&
y
->
g_pd
)
==
canvas_class
&&
((
t_canvas
*
)
y
)
->
gl_isgraph
&&
!
((
t_canvas
*
)
y
)
->
gl_havewindow
)
canvas_create_editor
((
t_canvas
*
)
y
,
createit
);
}
void
canvas_reflecttitle
(
t_canvas
*
x
);
...
...
@@ -907,6 +899,8 @@ void canvas_vis(t_canvas *x, t_floatarg f)
{
char
buf
[
30
];
int
flag
=
(
f
!=
0
);
if
(
x
!=
glist_getcanvas
(
x
))
bug
(
"canvas_vis"
);
if
(
flag
)
{
/* post("havewindow %d, isgraph %d, isvisible %d editor %d",
...
...
@@ -926,7 +920,7 @@ void canvas_vis(t_canvas *x, t_floatarg f)
}
else
{
canvas_create_editor
(
x
,
1
);
canvas_create_editor
(
x
);
sys_vgui
(
"pdtk_canvas_new .x%lx %d %d +%d+%d %d
\n
"
,
x
,
(
int
)(
x
->
gl_screenx2
-
x
->
gl_screenx1
),
(
int
)(
x
->
gl_screeny2
-
x
->
gl_screeny1
),
...
...
@@ -949,14 +943,14 @@ void canvas_vis(t_canvas *x, t_floatarg f)
subpatches fall here too but don'd need the editor freed, so
we check if it exists. */
if
(
x
->
gl_editor
)
canvas_
create
_editor
(
x
,
0
);
canvas_
destroy
_editor
(
x
);
return
;
}
sys_vgui
(
"pdtk_canvas_getscroll .x%lx.c
\n
"
,
x
);
glist_noselect
(
x
);
if
(
glist_isvisible
(
x
))
canvas_map
(
x
,
0
);
canvas_
create
_editor
(
x
,
0
);
canvas_
destroy
_editor
(
x
);
sys_vgui
(
"destroy .x%lx
\n
"
,
x
);
for
(
i
=
1
,
x2
=
x
;
x2
;
x2
=
x2
->
gl_next
,
i
++
)
;
...
...
@@ -966,8 +960,6 @@ void canvas_vis(t_canvas *x, t_floatarg f)
if
(
glist_isgraph
(
x
)
&&
x
->
gl_owner
)
{
t_glist
*
gl2
=
x
->
gl_owner
;
if
(
!
x
->
gl_owner
->
gl_isdeleting
)
canvas_create_editor
(
x
,
1
);
if
(
glist_isvisible
(
gl2
))
gobj_vis
(
&
x
->
gl_gobj
,
gl2
,
0
);
x
->
gl_havewindow
=
0
;
...
...
@@ -987,7 +979,7 @@ void canvas_setgraph(t_glist *x, int flag, int nogoprect)
{
int
hadeditor
=
(
x
->
gl_editor
!=
0
);
if
(
hadeditor
)
canvas_
create
_editor
(
x
,
0
);
canvas_
destroy
_editor
(
x
);
if
(
x
->
gl_owner
&&
!
x
->
gl_loading
&&
glist_isvisible
(
x
->
gl_owner
))
gobj_vis
(
&
x
->
gl_gobj
,
x
->
gl_owner
,
0
);
x
->
gl_isgraph
=
0
;
...
...
@@ -996,8 +988,6 @@ void canvas_setgraph(t_glist *x, int flag, int nogoprect)
gobj_vis
(
&
x
->
gl_gobj
,
x
->
gl_owner
,
1
);
canvas_fixlinesfor
(
x
->
gl_owner
,
&
x
->
gl_obj
);
}
if
(
hadeditor
)
canvas_create_editor
(
x
,
1
);
}
else
if
(
flag
)
{
...
...
@@ -1023,8 +1013,6 @@ void canvas_setgraph(t_glist *x, int flag, int nogoprect)
}
if
(
glist_isvisible
(
x
)
&&
x
->
gl_goprect
)
glist_redraw
(
x
);
if
(
x
->
gl_loading
&&
x
->
gl_owner
&&
glist_isvisible
(
x
->
gl_owner
))
canvas_create_editor
(
x
,
1
);
if
(
x
->
gl_owner
&&
!
x
->
gl_loading
&&
glist_isvisible
(
x
->
gl_owner
))
{
gobj_vis
(
&
x
->
gl_gobj
,
x
->
gl_owner
,
1
);
...
...
src/g_rtext.c
View file @
ee23ddc6
...
...
@@ -342,8 +342,11 @@ void rtext_retext(t_rtext *x)
/* find the rtext that goes with a text item */
t_rtext
*
glist_findrtext
(
t_glist
*
gl
,
t_text
*
who
)
{
t_rtext
*
x
=
gl
->
gl_editor
->
e_rtext
;
while
(
x
&&
x
->
x_text
!=
who
)
x
=
x
->
x_next
;
t_rtext
*
x
;
if
(
!
gl
->
gl_editor
)
canvas_create_editor
(
gl
);
for
(
x
=
gl
->
gl_editor
->
e_rtext
;
x
&&
x
->
x_text
!=
who
;
x
=
x
->
x_next
)
;
if
(
!
x
)
bug
(
"glist_findrtext"
);
return
(
x
);
}
...
...
src/m_glob.c
View file @
ee23ddc6
...
...
@@ -128,3 +128,16 @@ void glob_init(void)
class_addanything
(
glob_pdobject
,
max_default
);
pd_bind
(
&
glob_pdobject
,
gensym
(
"pd"
));
}
/* function to return version number at run time. Any of the
calling pointers may be zero in case you don't need all of them. */
void
sys_getversion
(
int
*
major
,
int
*
minor
,
int
*
bugfix
)
{
if
(
major
)
*
major
=
PD_MAJOR_VERSION
;
if
(
minor
)
*
minor
=
PD_MINOR_VERSION
;
if
(
bugfix
)
*
bugfix
=
PD_BUGFIX_VERSION
;
}
src/m_pd.h
View file @
ee23ddc6
...
...
@@ -11,7 +11,7 @@ extern "C" {
#define PD_MAJOR_VERSION 0
#define PD_MINOR_VERSION 42
#define PD_BUGFIX_VERSION 0
#define PD_TEST_VERSION "test
6
"
#define PD_TEST_VERSION "test
7
"
/* old name for "MSW" flag -- we have to take it for the sake of many old
"nmakefiles" for externs, which will define NT and not MSW */
...
...
@@ -642,6 +642,9 @@ defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */
#define PD_BIGORSMALL(f) 0
#endif
/* get version number at run time */
EXTERN
void
sys_getversion
(
int
*
major
,
int
*
minor
,
int
*
bugfix
);
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
}
#endif
...
...
src/s_loader.c
View file @
ee23ddc6
...
...
@@ -203,8 +203,6 @@ gotone:
return
(
1
);
}
/* callback type definition */
typedef
int
(
*
loader_t
)(
t_canvas
*
canvas
,
char
*
classname
);
/* linked list of loaders */
typedef
struct
loader_queue
{
...
...
src/s_stuff.h
View file @
ee23ddc6
...
...
@@ -52,7 +52,10 @@ extern t_symbol *sys_libdir; /* library directory for auxilliary files */
extern
t_symbol
*
sys_guidir
;
/* directory holding pd_gui, u_pdsend, etc */
/* s_loader.c */
int
sys_load_lib
(
t_canvas
*
canvas
,
char
*
filename
);
typedef
int
(
*
loader_t
)(
t_canvas
*
canvas
,
char
*
classname
);
/* callback type */
EXTERN
int
sys_load_lib
(
t_canvas
*
canvas
,
char
*
filename
);
EXTERN
void
sys_register_loader
(
loader_t
loader
);
/* s_audio.c */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment