aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2009-09-02 20:56:35 +0000
committermescalinum <mescalinum@users.sourceforge.net>2009-09-02 20:56:35 +0000
commitb10346c77cb5de040a23da4d94f3fae29f01f459 (patch)
tree6084c95bb7e5df33ab86b303dcf2ce00a3ef0a10
parent6fe5b4fd5d6f702fc864b8a48828379b06b43c66 (diff)
tidy up
svn path=/trunk/externals/tclpd/; revision=12192
-rw-r--r--tcl_widgetbehavior.cxx102
1 files changed, 50 insertions, 52 deletions
diff --git a/tcl_widgetbehavior.cxx b/tcl_widgetbehavior.cxx
index 4715ba0..55634d5 100644
--- a/tcl_widgetbehavior.cxx
+++ b/tcl_widgetbehavior.cxx
@@ -1,6 +1,56 @@
#include "tcl_extras.h"
#include <string.h>
+int tclpd_guiclass_click(t_gobj* z, t_glist* glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) {
+ Tcl_Obj* av[9], *o = NULL;
+ int i = 0;
+ t_tcl* x = (t_tcl*)z;
+ av[0] = x->self;
+ av[1] = Tcl_NewStringObj("widgetbehavior", -1);
+ Tcl_IncrRefCount(av[1]);
+ av[2] = Tcl_NewStringObj("click", -1);
+ Tcl_IncrRefCount(av[2]);
+ av[3] = Tcl_NewIntObj(xpix);
+ Tcl_IncrRefCount(av[3]);
+ av[4] = Tcl_NewIntObj(ypix);
+ Tcl_IncrRefCount(av[4]);
+ av[5] = Tcl_NewIntObj(shift);
+ Tcl_IncrRefCount(av[5]);
+ av[6] = Tcl_NewIntObj(alt);
+ Tcl_IncrRefCount(av[6]);
+ av[7] = Tcl_NewIntObj(dbl);
+ Tcl_IncrRefCount(av[7]);
+ av[8] = Tcl_NewIntObj(doit);
+ Tcl_IncrRefCount(av[8]);
+ int result = Tcl_EvalObjv(tcl_for_pd, 9, av, 0);
+ if(result != TCL_OK) {
+ tclpd_interp_error(result);
+ goto error;
+ }
+ o = Tcl_GetObjResult(tcl_for_pd);
+ Tcl_IncrRefCount(o);
+ if(strlen(Tcl_GetStringFromObj(o, NULL)) > 0) {
+ result = Tcl_GetIntFromObj(tcl_for_pd, o, &i);
+ if(result != TCL_OK) {
+ tclpd_interp_error(result);
+ goto error;
+ }
+ }
+ goto cleanup;
+error:
+cleanup:
+ if(o) Tcl_DecrRefCount(o);
+ Tcl_DecrRefCount(av[1]);
+ Tcl_DecrRefCount(av[2]);
+ Tcl_DecrRefCount(av[3]);
+ Tcl_DecrRefCount(av[4]);
+ Tcl_DecrRefCount(av[5]);
+ Tcl_DecrRefCount(av[6]);
+ Tcl_DecrRefCount(av[7]);
+ Tcl_DecrRefCount(av[8]);
+ return i;
+}
+
void tclpd_guiclass_getrect(t_gobj* z, t_glist* owner, int* xp1, int* yp1, int* xp2, int* yp2) {
Tcl_Obj* av[5], *o, *theList = NULL;
int tmp[4], i, length;
@@ -197,55 +247,3 @@ cleanup:
Tcl_DecrRefCount(av[5]);
Tcl_DecrRefCount(av[6]);
}
-
-int tclpd_guiclass_click(t_gobj* z, t_glist* glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) {
- Tcl_Obj* av[9], *o = NULL;
- int i = 0;
- t_tcl* x = (t_tcl*)z;
- av[0] = x->self;
- av[1] = Tcl_NewStringObj("widgetbehavior", -1);
- Tcl_IncrRefCount(av[1]);
- av[2] = Tcl_NewStringObj("click", -1);
- Tcl_IncrRefCount(av[2]);
- av[3] = Tcl_NewIntObj(xpix);
- Tcl_IncrRefCount(av[3]);
- av[4] = Tcl_NewIntObj(ypix);
- Tcl_IncrRefCount(av[4]);
- av[5] = Tcl_NewIntObj(shift);
- Tcl_IncrRefCount(av[5]);
- av[6] = Tcl_NewIntObj(alt);
- Tcl_IncrRefCount(av[6]);
- av[7] = Tcl_NewIntObj(dbl);
- Tcl_IncrRefCount(av[7]);
- av[8] = Tcl_NewIntObj(doit);
- Tcl_IncrRefCount(av[8]);
- fprintf(stderr, "C: puttan madonna");
- int result = Tcl_EvalObjv(tcl_for_pd, 9, av, 0);
- fprintf(stderr, "C: cristo pinocchio");
- if(result != TCL_OK) {
- tclpd_interp_error(result);
- goto error;
- }
- o = Tcl_GetObjResult(tcl_for_pd);
- Tcl_IncrRefCount(o);
- if(strlen(Tcl_GetStringFromObj(o, NULL)) > 0) {
- result = Tcl_GetIntFromObj(tcl_for_pd, o, &i);
- if(result != TCL_OK) {
- tclpd_interp_error(result);
- goto error;
- }
- }
- goto cleanup;
-error:
-cleanup:
- if(o) Tcl_DecrRefCount(o);
- Tcl_DecrRefCount(av[1]);
- Tcl_DecrRefCount(av[2]);
- Tcl_DecrRefCount(av[3]);
- Tcl_DecrRefCount(av[4]);
- Tcl_DecrRefCount(av[5]);
- Tcl_DecrRefCount(av[6]);
- Tcl_DecrRefCount(av[7]);
- Tcl_DecrRefCount(av[8]);
- return i;
-}