1 #include "menuobjbutton.h"
3 MenuObjButton::MenuObjButton()
7 obj
= 0; // указатель на объект отображаемый на кнопке
12 MenuObjButton::~MenuObjButton()
20 \fn MenuObjButton::display()
22 void MenuObjButton::display()
25 // рисуем "подложку" из родительского класса
26 MenuButtonTrigger::display();
28 // нету объекта и выводить нечего
32 obj
->getDimensionsBoxWithChilds(&l_d
, &r_u
);
34 Vector2D dm
= r_u
- l_d
;
36 // найдём направление на центр DimBox относительно рисуемого объекта
37 Vector2D dm_center
= l_d
+ dm
* 0.5;
39 // коэффициент масштабирования для того чтоб любой объект в кнопку влез
40 Vector2D sz
= size
.getPositive();
42 Scalar scale_x
= sz
.val
.x
/ dm
.val
.x
;
43 Scalar scale_y
= sz
.val
.y
/ dm
.val
.y
;
45 // выберем какой коэффициент использовать в качестве ужимающего
47 if ( scale_x
< scale_y
) scale
= scale_x
; else scale
= scale_y
;
49 scale
*= 0.8; // чтоб от границы кнопки отодвинуть
52 Vector2D butt_center
= pos
+ size
* 0.5;
56 glTranslatef( butt_center
.val
.x
, butt_center
.val
.y
, 0.0f
);
57 glScalef ( scale
, scale
, scale
);
59 glTranslatef( -dm_center
.val
.x
, -dm_center
.val
.y
, 0.0f
);
61 obj
->DisplayWithChilds();