stylized the butons
parent
3d7fc1d641
commit
6f3d78dab0
|
@ -30,6 +30,58 @@ bool regionhit (int x, int y, int w, int h) {
|
|||
return true;
|
||||
}
|
||||
|
||||
void DrawBlock (int x, int y, int w, int h) {
|
||||
const int d = 16;
|
||||
const float shading_dark = 0.5;
|
||||
const float shading_light = 1.3;
|
||||
|
||||
assert (h > d);
|
||||
assert (w > d);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
// lower part
|
||||
glVertex3f (x, y, 0.);
|
||||
glVertex3f (x, y + d, 0.);
|
||||
glVertex3f (x + w, y + d, 0.);
|
||||
glVertex3f (x + w - d, y, 0.);
|
||||
|
||||
// middle part
|
||||
glVertex3f (x, y + d, 0.);
|
||||
glVertex3f (x, y + d + h - 2 * d, 0.);
|
||||
glVertex3f (x + w, y + d + h - 2 * d, 0.);
|
||||
glVertex3f (x + w, y + d, 0.);
|
||||
|
||||
// bottom part
|
||||
glVertex3f (x, y + h - d, 0.);
|
||||
glVertex3f (x + d, y + h, 0.);
|
||||
glVertex3f (x + w, y + h, 0.);
|
||||
glVertex3f (x + w, y + h - d, 0.);
|
||||
|
||||
glEnd();
|
||||
|
||||
// "Shading"
|
||||
float color[4];
|
||||
glGetFloatv (GL_CURRENT_COLOR, color);
|
||||
|
||||
glLineWidth(3);
|
||||
glColor3f (color[0] * shading_dark, color[1] * shading_dark, color[2] * shading_dark);
|
||||
|
||||
glBegin(GL_LINE_STRIP);
|
||||
glVertex3f (x,y + 2, 0.);
|
||||
glVertex3f (x,y + h -d, 0.);
|
||||
glVertex3f (x + d, y + h, 0.);
|
||||
glVertex3f (x + w - 2, y + h, 0.);
|
||||
glEnd();
|
||||
|
||||
glColor3f (color[0] * shading_light, color[1] * shading_light, color[2] * shading_light);
|
||||
glBegin(GL_LINE_STRIP);
|
||||
glVertex3f (x + w - d, y, 0.);
|
||||
glVertex3f (x + w, y + d, 0.);
|
||||
glEnd();
|
||||
|
||||
glColor4fv (color);
|
||||
}
|
||||
|
||||
/** \brief Draws a label with a given caption at the position (vertically centered)
|
||||
*
|
||||
* This function draws the label at the horizontal x position and centers the
|
||||
|
@ -85,20 +137,20 @@ bool Button (int id, const char* caption, int x, int y, int w, int h) {
|
|||
|
||||
// Render
|
||||
glColor3f (0.2, 0.2, 0.2);
|
||||
DrawRect2D (x + 4, y + 4, w, h);
|
||||
// DrawBlock (x + 4, y + 4, w, h);
|
||||
|
||||
if (controller->uistate.hotitem == id
|
||||
|| controller->uistate.kbditem == id) {
|
||||
if (controller->uistate.activeitem == id) {
|
||||
glColor3f (0.8, 0.8, 0.8);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
} else {
|
||||
glColor3f (0.7, 0.7, 0.7);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
}
|
||||
} else {
|
||||
glColor3f (0.4, 0.4, 0.4);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
}
|
||||
|
||||
// Caption
|
||||
|
@ -166,7 +218,7 @@ bool LineEdit (int id, int x, int y, std::string &text_value, const int &maxleng
|
|||
assert (controller);
|
||||
|
||||
int w = maxlength * 16;
|
||||
int h = 16;
|
||||
int h = 20;
|
||||
|
||||
// LogMessage ("id = %d hotitem = %d activeitem = %d kbditem = %d key = %s", id, controller->uistate.hotitem, controller->uistate.activeitem, controller->uistate.kbditem, convert_keycode (controller->uistate.last_keysym));
|
||||
|
||||
|
@ -188,20 +240,20 @@ bool LineEdit (int id, int x, int y, std::string &text_value, const int &maxleng
|
|||
|
||||
// Render
|
||||
glColor3f (0.2, 0.2, 0.2);
|
||||
DrawRect2D (x + 4, y + 4, w, h);
|
||||
DrawBlock (x + 4, y + 4, w, h);
|
||||
|
||||
// If we have keyboard focus, we highlight the widget
|
||||
if ( controller->uistate.kbditem == id) {
|
||||
if (controller->uistate.activeitem == id) {
|
||||
glColor3f (0.8, 0.8, 0.8);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
} else {
|
||||
glColor3f (0.7, 0.7, 0.7);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
}
|
||||
} else {
|
||||
glColor3f (0.4, 0.4, 0.4);
|
||||
DrawRect2D (x, y, w, h);
|
||||
DrawBlock (x, y, w, h);
|
||||
}
|
||||
|
||||
// Rendering of the current value
|
||||
|
|
Loading…
Reference in New Issue