0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_label.cxx
1
2 #include <OpenGl_tgl_all.hxx>
3
4 #include <stddef.h>
5 #include <stdio.h>
6
7 #include <OpenGl_cmn_varargs.hxx>
8 #include <OpenGl_telem_attri.hxx>
9 #include <OpenGl_tsm.hxx>
10 #include <OpenGl_telem.hxx>
11 #include <OpenGl_telem_inquire.hxx>
12
13 static  TStatus  LabelAdd( TSM_ELEM_DATA, Tint, cmn_key* );
14 static  TStatus  LabelPrint( TSM_ELEM_DATA, Tint, cmn_key* );
15 static  TStatus  LabelInquire( TSM_ELEM_DATA, Tint, cmn_key* );
16
17 static  TStatus  (*MtdTbl[])( TSM_ELEM_DATA, Tint, cmn_key* ) =
18 {
19   0,             /* PickTraverse */
20   0,             /* Display */
21   LabelAdd,
22   0,             /* Delete */
23   LabelPrint,
24   LabelInquire
25 };
26
27
28 MtblPtr
29 TelLabelInitClass( TelType *el )
30 {
31   *el = TelLabel;
32   return MtdTbl;
33 }
34
35 static  TStatus
36 LabelAdd( TSM_ELEM_DATA d, Tint n, cmn_key *k )
37 {
38   ((tsm_elem_data)(d.pdata))->ldata = k[0]->data.ldata;
39
40   return TSuccess;
41 }
42
43
44 static  TStatus
45 LabelPrint( TSM_ELEM_DATA data, Tint n, cmn_key *k )
46 {
47   fprintf( stdout, "TelLabel. Value = %d\n", data.ldata);
48   fprintf( stdout, "\n" );
49
50   return TSuccess;
51 }
52
53 static TStatus
54 LabelInquire( TSM_ELEM_DATA data, Tint n, cmn_key *k )
55 {
56   Tint i;
57
58   for( i = 0; i < n; i++ )
59   {
60     switch( k[i]->id )
61     {
62     case INQ_GET_SIZE_ID:
63       {
64         k[i]->data.ldata = sizeof( Tint );
65         break;
66       }
67     case INQ_GET_CONTENT_ID:
68       {
69         TEL_INQ_CONTENT *c;
70         Teldata         *w;
71
72         c = (tel_inq_content)k[i]->data.pdata;
73         w = c->data;
74         c->act_size = 0;
75         w->idata = data.ldata;
76         break;
77       }
78     }
79   }
80
81   return TSuccess;
82 }