From b71e257899abcb9a8bee4e7d967bb653c03890d4 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 19 Jan 2005 04:59:59 +0000 Subject: - strip .pd from abstraction filenames - open debug patcher on alt-click svn path=/trunk/; revision=2525 --- externals/grill/dynext/src/main.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'externals/grill/dynext/src/main.cpp') diff --git a/externals/grill/dynext/src/main.cpp b/externals/grill/dynext/src/main.cpp index a9aee6b7..07b3b5e4 100644 --- a/externals/grill/dynext/src/main.cpp +++ b/externals/grill/dynext/src/main.cpp @@ -2,7 +2,7 @@ dyn~ - dynamical object management for PD -Copyright (c)2003-2004 Thomas Grill (xovo@gmx.net) +Copyright (c)2003-2005 Thomas Grill (gr@grrrr.org) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. @@ -13,8 +13,8 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include -#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 406) -#error You need at least flext version 0.4.6 +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 500) +#error You need at least flext version 0.5.0 #endif #define DYN_VERSION "0.1.1pre" @@ -55,6 +55,8 @@ public: protected: + virtual void m_click() { m_vis(true); } + static const t_symbol *k_obj,*k_msg,*k_text; class obj { @@ -196,7 +198,7 @@ const t_symbol *dyn::sym_dsp = NULL; void dyn::setup(t_classid c) { post(""); - post("dyn~ %s - dynamic object management, (C)2003-04 Thomas Grill",DYN_VERSION); + post("dyn~ %s - dynamic object management, (C)2003-2005 Thomas Grill",DYN_VERSION); post(""); sym_dynsin = MakeSymbol("dyn_in~"); @@ -455,6 +457,21 @@ t_gobj *dyn::New(const t_symbol *kind,int _argc_,const t_atom *_argv_,bool add) else if(!canv || !(glist = FindCanvas(canv))) err = "Canvas could not be found"; else { + // convert abstraction filenames + if(kind == k_obj && argc >= 3 && IsSymbol(argv[2])) { + const char *c = GetString(argv[2]); + int l = strlen(c); + // check end of string for .pd file extension + if(l >= 4 && !memcmp(c+l-3,".pd",4)) { + // found -> get rid of it + char tmp[64],*t = tmp; + if(l > sizeof tmp-1) t = new char[l+1]; + memcpy(tmp,c,l-3); tmp[l-3] = 0; + SetString(argv[2],tmp); + if(tmp != t) delete[] t; + } + } + // set selected canvas as current canvas_setcurrent(glist); -- cgit v1.2.1