1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| typedef struct pObjet {
int Type ;
int x ;
int y ;
int width ;
int height ;
} Objet ;
#define RECT 0
#define ELLIP 1
....
Objet MesObjs[2] ;
Widget Image ; /* Par exemple, n'importe quel objet de style graphique */
MesObjs[0].Type = RECT ;
MesObjs[1].Type = ELLIP ;
for ( i = 0 ; i < 2 ; i++ )
{
MesObjs[i].x = 100 + i*100 ;
MesObjs[i].y = 100 ;
MesObjs[i].width = 80 ;
MesObjs[i].height = 50 ;
}
...
Get_Mouse ( Image, &posx, &posy ),
Select_Objet (MesObjs, posx, posy );
..
void Select_Objet ( Objets *LesObjets, int x, int y ) /* x, y position souris */
{
Objet CetObj ;
Get_Select (LesObjets, x, y, &CetObjet);
Draw_Enhanced ( &CetObjet );
}
void Draw_Enhanced ( Objet *ObjetATracer )
{
switch ( ObjetATracer->Type )
{
case ELLIP ;
XDrawArc () ... ; /* avec X11, ou GTKDraw.. si ça existe */
break ;
case RECT :
XDrawRect ()... ; /* avec X11, ou GTKDraw.. si ça existe */
break ;
}
} |
Partager