Skip to content

Commit b3eff90

Browse files
committed
FLbox and FLsetText agai accept an integer first argument
1 parent 85f7bbb commit b3eff90

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

InOut/widgets.cpp

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3222,9 +3222,9 @@ extern "C" {
32223222
return OK;
32233223
}
32243224

3225-
static int fl_box_(CSOUND *csound, FL_BOX *p)
3225+
static int fl_box_(CSOUND *csound, FL_BOX *p, char *text)
32263226
{
3227-
char *text = p->itext->data;
3227+
//char *text = p->itext->data;
32283228
Fl_Box *o = new Fl_Box((int)*p->ix, (int)*p->iy,
32293229
(int)*p->iwidth, (int)*p->iheight, text);
32303230
widget_attributes(csound, o);
@@ -3290,6 +3290,19 @@ extern "C" {
32903290
return OK;
32913291
}
32923292

3293+
static int fl_box_s(CSOUND *csound, FL_BOX *p)
3294+
{
3295+
return fl_box_(csound, p, p->itext->data);
3296+
}
3297+
static int fl_box_i(CSOUND *csound, FL_BOX *p)
3298+
{
3299+
int i = (int)*((MYFLT*)p->itext);
3300+
char* text;
3301+
if (i<0 || i>csound->GetStrsmax(csound)) text = "???";
3302+
else if ((text=csound->GetStrsets(csound,i))==NULL) text = "???";
3303+
return fl_box_(csound, p, text);
3304+
}
3305+
32933306
static int fl_setText(CSOUND *csound, FL_SET_TEXT *p)
32943307
{
32953308
WIDGET_GLOBALS *widgetGlobals =
@@ -3301,6 +3314,20 @@ extern "C" {
33013314
return OK;
33023315
}
33033316

3317+
static int fl_setTexti(CSOUND *csound, FL_SET_TEXTi *p)
3318+
{
3319+
WIDGET_GLOBALS *widgetGlobals =
3320+
(WIDGET_GLOBALS *)csound->QueryGlobalVariable(csound, "WIDGET_GLOBALS");
3321+
int i = (int)(*p->ndx);
3322+
char *text ;
3323+
ADDR_SET_VALUE v = widgetGlobals->AddrSetValue[(int) *p->ihandle];
3324+
Fl_Widget *o = (Fl_Widget *) v.WidgAddress;
3325+
if (i<0 || i>csound->GetStrsmax(csound)) text = "???";
3326+
else if ((text=csound->GetStrsets(csound,i))==NULL) text = "???";
3327+
o->label(text);
3328+
return OK;
3329+
}
3330+
33043331
static int fl_setSize(CSOUND *csound, FL_SET_SIZE *p)
33053332
{
33063333
WIDGET_GLOBALS *widgetGlobals =
@@ -5956,8 +5983,10 @@ const OENTRY widgetOpcodes_[] = {
59565983
(SUBR) fl_setFont, (SUBR) NULL, (SUBR) NULL },
59575984
{ (char*)"FLsetTextType", S(FL_SET_FONT), 0, 1, (char*)"", (char*)"ii",
59585985
(SUBR) fl_setTextType, (SUBR) NULL, (SUBR) NULL },
5959-
{ (char*)"FLsetText", S(FL_SET_TEXT), 0, 1, (char*)"", (char*)"Ti",
5986+
{ (char*)"FLsetText", S(FL_SET_TEXT), 0, 1, (char*)"", (char*)"Si",
59605987
(SUBR) fl_setText, (SUBR) NULL, (SUBR) NULL },
5988+
{ (char*)"FLsetText", S(FL_SET_TEXTi), 0, 1, (char*)"", (char*)"ii",
5989+
(SUBR) fl_setTexti, (SUBR) NULL, (SUBR) NULL },
59615990
{ (char*)"FLsetSize", S(FL_SET_SIZE), 0, 1, (char*)"", (char*)"iii",
59625991
(SUBR) fl_setSize, (SUBR) NULL, (SUBR) NULL },
59635992
{ (char*)"FLsetPosition", S(FL_SET_POSITION), 0, 1, (char*)"", (char*)"iii",
@@ -5971,7 +6000,9 @@ const OENTRY widgetOpcodes_[] = {
59716000
{ (char*)"FLsetAlign", S(FL_TALIGN), 0, 1, (char*)"", (char*)"ii",
59726001
(SUBR) fl_align, (SUBR) NULL, (SUBR) NULL },
59736002
{ (char*)"FLbox", S(FL_BOX), 0, 1, (char*)"i", (char*)"Siiiiiii",
5974-
(SUBR) fl_box_, (SUBR) NULL, (SUBR) NULL },
6003+
(SUBR) fl_box_s, (SUBR) NULL, (SUBR) NULL },
6004+
{ (char*)"FLbox", S(FL_BOX), 0, 1, (char*)"i", (char*)"iiiiiiii",
6005+
(SUBR) fl_box_i, (SUBR) NULL, (SUBR) NULL },
59756006
{ (char*)"FLvalue", S(FLVALUE), 0, 1, (char*)"i", (char*)"Sjjjj",
59766007
(SUBR) fl_value, (SUBR) NULL, (SUBR) NULL },
59776008
{ (char*)"FLpanel", S(FLPANEL), 0, 1, (char*)"", (char*)"Sjjjoooo",

InOut/widgets.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,16 @@ typedef struct {
166166

167167
typedef struct {
168168
OPDS h;
169-
STRINGDAT *itext;
170-
MYFLT *ihandle;
169+
STRINGDAT *itext;
170+
MYFLT *ihandle;
171171
} FL_SET_TEXT;
172172

173+
typedef struct {
174+
OPDS h;
175+
MYFLT *ndx;
176+
MYFLT *ihandle;
177+
} FL_SET_TEXTi;
178+
173179
typedef struct {
174180
OPDS h;
175181
MYFLT *itype, *ihandle;

0 commit comments

Comments
 (0)