refactor menu callbacks and row/column adding

This commit is contained in:
Stephen Birarda 2013-04-10 16:07:46 -07:00
parent 88c2e9510d
commit b152d43f77
7 changed files with 16 additions and 19 deletions

View file

@ -111,7 +111,6 @@ void Menu::render(int screenWidth, int screenHeight) {
int mono = 0; int mono = 0;
glColor3f(0.9, 0.9, 0.9); glColor3f(0.9, 0.9, 0.9);
int width = screenWidth; int width = screenWidth;
int height = screenHeight;
glBegin(GL_QUADS); { glBegin(GL_QUADS); {
glVertex2f(0, MENU_Y_OFFSET); glVertex2f(0, MENU_Y_OFFSET);
glVertex2f(width, MENU_Y_OFFSET); glVertex2f(width, MENU_Y_OFFSET);
@ -135,7 +134,7 @@ void Menu::render(int screenWidth, int screenHeight) {
} }
MenuColumn* Menu::addColumn(char *columnName) { MenuColumn* Menu::addColumn(const char *columnName) {
MenuColumn* pColumn; MenuColumn* pColumn;
pColumn = new MenuColumn(columnName); pColumn = new MenuColumn(columnName);
columns.push_back(*pColumn); columns.push_back(*pColumn);

View file

@ -15,7 +15,7 @@ public:
bool mouseOver(int x, int y); bool mouseOver(int x, int y);
void render(int screenwidth, int screenheight); void render(int screenwidth, int screenheight);
void renderColumn(int i); void renderColumn(int i);
MenuColumn* addColumn(char *columnName); MenuColumn* addColumn(const char *columnName);
private: private:
std::vector<MenuColumn> columns; std::vector<MenuColumn> columns;
int currentColumn; int currentColumn;

View file

@ -101,7 +101,7 @@ int MenuColumn::getLeftPosition() {
return leftPosition; return leftPosition;
} }
int MenuColumn::addRow(char * rowName, PFNRowCallback callback) { int MenuColumn::addRow(const char * rowName, MenuRowCallback callback) {
MenuRow* row; MenuRow* row;
row = new MenuRow(rowName, callback); row = new MenuRow(rowName, callback);
rows.push_back(*row); rows.push_back(*row);

View file

@ -16,8 +16,8 @@ public:
int getWidth(); int getWidth();
int getLeftPosition(); int getLeftPosition();
void render(int yOffset, int menuHeight, int lineHeight); void render(int yOffset, int menuHeight, int lineHeight);
void MenuColumn::renderMouseOver(int yOffset); void renderMouseOver(int yOffset);
int addRow(char * rowName, PFNRowCallback callback); int addRow(const char * rowName, MenuRowCallback callback);
private: private:
char columnName[MAX_COLUMN_NAME]; char columnName[MAX_COLUMN_NAME];
int columnWidth; int columnWidth;

View file

@ -12,7 +12,7 @@
MenuRow::MenuRow() { MenuRow::MenuRow() {
} }
MenuRow::MenuRow(char * columnName, PFNRowCallback callback) { MenuRow::MenuRow(const char * columnName, MenuRowCallback callback) {
int length = std::min(MAX_COLUMN_NAME - 5,(int) strlen(columnName)); int length = std::min(MAX_COLUMN_NAME - 5,(int) strlen(columnName));
strncpy(this->rowName, columnName, length); strncpy(this->rowName, columnName, length);
memcpy(this->rowName + length, " \0", 5); memcpy(this->rowName + length, " \0", 5);

View file

@ -5,14 +5,12 @@ const int MAX_COLUMN_NAME = 50;
const int SPACE_BETWEEN_COLUMNS = 20; const int SPACE_BETWEEN_COLUMNS = 20;
const int SPACE_BEFORE_ROW_NAME = 10; const int SPACE_BEFORE_ROW_NAME = 10;
#define MenuCallBack CALLBACK typedef int(*MenuRowCallback)(int);
typedef int(MenuCallBack * PFNRowCallback)(int);
class MenuRow { class MenuRow {
public: public:
MenuRow(); MenuRow();
MenuRow(char * rowName, PFNRowCallback); MenuRow(const char * rowName, MenuRowCallback callback);
~MenuRow(); ~MenuRow();
void call(); void call();
char * getName(); char * getName();
@ -21,7 +19,7 @@ public:
private: private:
char rowName[MAX_COLUMN_NAME]; char rowName[MAX_COLUMN_NAME];
int rowWidth; int rowWidth;
PFNRowCallback callback; MenuRowCallback callback;
}; };
#endif /* defined(__hifi__MenuRow__) */ #endif /* defined(__hifi__MenuRow__) */

View file

@ -855,7 +855,7 @@ void display(void)
frameCount++; frameCount++;
} }
int MenuCallBack setValue(int state, int *value) { int setValue(int state, int *value) {
if (state == -2) { if (state == -2) {
*value = !(*value); *value = !(*value);
} else if (state == -1) { } else if (state == -1) {
@ -866,15 +866,15 @@ int MenuCallBack setValue(int state, int *value) {
return *value; return *value;
} }
int MenuCallBack setHead(int state) { int setHead(int state) {
return setValue(state, &displayHead); return setValue(state, &displayHead);
} }
int MenuCallBack setField(int state) { int setField(int state) {
return setValue(state, &displayField); return setValue(state, &displayField);
} }
int MenuCallBack setNoise(int state) { int setNoise(int state) {
int iRet = setValue(state, &noiseOn); int iRet = setValue(state, &noiseOn);
if (noiseOn) { if (noiseOn) {
myAvatar.setNoise(noise); myAvatar.setNoise(noise);
@ -884,15 +884,15 @@ int MenuCallBack setNoise(int state) {
return iRet; return iRet;
} }
int MenuCallBack setStats(int state) { int setStats(int state) {
return setValue(state, &statsOn); return setValue(state, &statsOn);
} }
int MenuCallBack setMenu(int state) { int setMenu(int state) {
return setValue(state, &::menuOn); return setValue(state, &::menuOn);
} }
int MenuCallBack setMirror(int state) { int setMirror(int state) {
return setValue(state, &headMirror); return setValue(state, &headMirror);
} }