2 #include <OpenGl_tgl_all.hxx>
9 #include <OpenGl_cmn_varargs.hxx>
10 #include <OpenGl_telem_attri.hxx>
11 #include <OpenGl_telem_filters.hxx>
12 #include <OpenGl_tsm.hxx>
13 #include <OpenGl_telem.hxx>
14 #include <OpenGl_telem_inquire.hxx>
15 #include <OpenGl_Memory.hxx>
17 static TStatus RemoveNamesetDisplay( TSM_ELEM_DATA, Tint, cmn_key* );
18 static TStatus RemoveNamesetAdd( TSM_ELEM_DATA, Tint, cmn_key* );
19 static TStatus RemoveNamesetDelete( TSM_ELEM_DATA, Tint, cmn_key* );
20 static TStatus RemoveNamesetPrint( TSM_ELEM_DATA, Tint, cmn_key* );
21 static TStatus RemoveNamesetInquire( TSM_ELEM_DATA, Tint, cmn_key* );
23 static TStatus (*MtdTbl[])( TSM_ELEM_DATA, Tint, cmn_key* ) =
25 RemoveNamesetDisplay, /* PickTraverse */
35 TelRemoveNamesetInitClass( TelType* el )
37 *el = TelRemoveNameset;
42 RemoveNamesetAdd( TSM_ELEM_DATA d, Tint n, cmn_key *k )
48 data = new TEL_TINT_DATA();
51 data->data = new Tint[num];
55 for( i=0, ptr=(Tint*)(k[0]->data.pdata); i<num; i++ )
57 data->data[i] = ptr[i];
61 ((tsm_elem_data)(d.pdata))->pdata = data;
68 RemoveNamesetDisplay( TSM_ELEM_DATA data, Tint n, cmn_key *k )
70 tel_tint_data d = (tel_tint_data)data.pdata;
71 TglNamesetRemove( d->num, d->data );
77 RemoveNamesetDelete( TSM_ELEM_DATA data, Tint n, cmn_key *k )
88 RemoveNamesetPrint( TSM_ELEM_DATA data, Tint n, cmn_key *k )
93 p = (tel_tint_data)data.pdata;
95 fprintf( stdout, "TelRemoveNameset. Number: %d\n", p->num );
96 for( i = 0; i < p->num; i++ )
98 fprintf( stdout, "\n\t\t v[%d] = %d", i, p->data[i] );
100 fprintf( stdout, "\n" );
106 RemoveNamesetInquire( TSM_ELEM_DATA data, Tint n, cmn_key *k )
111 TStatus status = TSuccess;
113 d = (tel_tint_data)data.pdata;
115 size_reqd = d->num * sizeof( Tint );
117 for( i = 0; i < n; i++ )
121 case INQ_GET_SIZE_ID:
123 k[i]->data.ldata = size_reqd;
127 case INQ_GET_CONTENT_ID:
132 c = (tel_inq_content)k[i]->data.pdata;
133 c->act_size = size_reqd;
136 w->name_set.number = d->num;
137 if( c->size >= size_reqd )
139 w->name_set.integers = (Tint *)(c->buf);
140 memcpy(w->name_set.integers, d->data, d->num*sizeof(Tint));