Pt_ComboBox

I’ve a little problem using a Pt_ComboBox widget. My code is:

exp_cb_combo_open( PtWidget_t *widget, ApInfo_t *apinfo, PtCallbackInfo_t
*cbinfo )
{
PhEvent_t *event;
PhKeyEvent_t *mykeyevent;
PtArg_t args[1];
unsigned short **items;
unsigned short cur_item;

/* eliminate ‘unreferenced’ warnings */
widget = widget, apinfo = apinfo, cbinfo = cbinfo;

event = cbinfo->event;
mykeyevent = (PhKeyEvent_t*) PhGetData( event );
if ((mykeyevent->key_cap == clavier_key_down)
&& (mykeyevent->key_flags == 0x00A0))
if (!cb_combo_activated)
PtComboBoxListOpen (widget);
else
{
PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, items, 0);
PtGetResources (widget, 1, args);
cur_item = *items[0] + 1;
PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, &cur_item, 0);
PtSetResources (widget, 1, args);
}
return Pt_END;
}


I want to set the item selected, but the PtSetResources seems to do nothing.
Maybe the Pt_ARG_SELECTION_INDEXES cannot be set. I could i do to set the
items selected in the list ?

Thx for your answers.

Hey Sebastien

What happens if you try the following.

Instead of unsigned short **items use unsigned short *items
Instead of PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, items, 0); use
PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, &items, 0);
Instead of cur_item = *items[0] + 1; use cur_item = items[0] + 1;

Virtually the same thing, I know…But just give it a shot to see what
happens. Let me know what the results are.

Thanks,
Rodney

Sebastien Cantos wrote:

I’ve a little problem using a Pt_ComboBox widget. My code is:

exp_cb_combo_open( PtWidget_t *widget, ApInfo_t *apinfo, PtCallbackInfo_t
*cbinfo )
{
PhEvent_t *event;
PhKeyEvent_t *mykeyevent;
PtArg_t args[1];
unsigned short **items;
unsigned short cur_item;

/* eliminate ‘unreferenced’ warnings */
widget = widget, apinfo = apinfo, cbinfo = cbinfo;

event = cbinfo->event;
mykeyevent = (PhKeyEvent_t*) PhGetData( event );
if ((mykeyevent->key_cap == clavier_key_down)
&& (mykeyevent->key_flags == 0x00A0))
if (!cb_combo_activated)
PtComboBoxListOpen (widget);
else
{
PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, items, 0);
PtGetResources (widget, 1, args);
cur_item = *items[0] + 1;
PtSetArg (&args[0], Pt_ARG_SELECTION_INDEXES, &cur_item, 0);
PtSetResources (widget, 1, args);
}
return Pt_END;
}


I want to set the item selected, but the PtSetResources seems to do nothing.
Maybe the Pt_ARG_SELECTION_INDEXES cannot be set. I could i do to set the
items selected in the list ?

Thx for your answers.