From 3278485ea96aa8fd828d1eafd39485447e20becd Mon Sep 17 00:00:00 2001 From: Wilrik de Loose Date: Wed, 16 Apr 2008 12:56:49 +0000 Subject: Merged + additional updates on buttons --- menu_demo/Debug/BuildLog.htm | Bin 6120 -> 7070 bytes menu_demo/Debug/main.obj | Bin 14367 -> 14532 bytes menu_demo/Debug/menu.obj | Bin 11397 -> 9649 bytes menu_demo/Debug/menu_demo.exe | Bin 45056 -> 45056 bytes menu_demo/Debug/menu_demo.ilk | Bin 388580 -> 400024 bytes menu_demo/Debug/menu_demo.pdb | Bin 371712 -> 404480 bytes menu_demo/Debug/mt.dep | 2 +- menu_demo/Debug/vc80.idb | Bin 216064 -> 175104 bytes menu_demo/Debug/vc80.pdb | Bin 69632 -> 69632 bytes menu_demo/bitmap.c | 4 ++-- menu_demo/button.c | 35 ++++++++++++++++++++++++++++++++--- menu_demo/button.h | 8 +++++++- menu_demo/main.c | 6 ++---- menu_demo/menu.c | 18 ++++-------------- menu_demo/menu.h | 1 - menu_demo/menu_demo.ncb | Bin 4516864 -> 7891968 bytes menu_demo/menu_demo.suo | Bin 13312 -> 18944 bytes menu_demo/menu_demo.vcproj | 5 +---- 18 files changed, 49 insertions(+), 30 deletions(-) diff --git a/menu_demo/Debug/BuildLog.htm b/menu_demo/Debug/BuildLog.htm index 6c29a62..e5d1756 100644 Binary files a/menu_demo/Debug/BuildLog.htm and b/menu_demo/Debug/BuildLog.htm differ diff --git a/menu_demo/Debug/main.obj b/menu_demo/Debug/main.obj index 8b5dfa7..b8813b1 100644 Binary files a/menu_demo/Debug/main.obj and b/menu_demo/Debug/main.obj differ diff --git a/menu_demo/Debug/menu.obj b/menu_demo/Debug/menu.obj index b5e253b..b0bb6ee 100644 Binary files a/menu_demo/Debug/menu.obj and b/menu_demo/Debug/menu.obj differ diff --git a/menu_demo/Debug/menu_demo.exe b/menu_demo/Debug/menu_demo.exe index 7b5b0a6..3d91c13 100644 Binary files a/menu_demo/Debug/menu_demo.exe and b/menu_demo/Debug/menu_demo.exe differ diff --git a/menu_demo/Debug/menu_demo.ilk b/menu_demo/Debug/menu_demo.ilk index bcdc1a3..fda71da 100644 Binary files a/menu_demo/Debug/menu_demo.ilk and b/menu_demo/Debug/menu_demo.ilk differ diff --git a/menu_demo/Debug/menu_demo.pdb b/menu_demo/Debug/menu_demo.pdb index 8b0c954..4c058b0 100644 Binary files a/menu_demo/Debug/menu_demo.pdb and b/menu_demo/Debug/menu_demo.pdb differ diff --git a/menu_demo/Debug/mt.dep b/menu_demo/Debug/mt.dep index d5684fe..2d6fb52 100644 --- a/menu_demo/Debug/mt.dep +++ b/menu_demo/Debug/mt.dep @@ -1 +1 @@ -Manifest resource last updated at 14:10:25,98 on 16-04-2008 +Manifest resource last updated at 14:55:54,38 on 16-04-2008 diff --git a/menu_demo/Debug/vc80.idb b/menu_demo/Debug/vc80.idb index 291fda5..e2fe268 100644 Binary files a/menu_demo/Debug/vc80.idb and b/menu_demo/Debug/vc80.idb differ diff --git a/menu_demo/Debug/vc80.pdb b/menu_demo/Debug/vc80.pdb index 16d2fff..a302d5d 100644 Binary files a/menu_demo/Debug/vc80.pdb and b/menu_demo/Debug/vc80.pdb differ diff --git a/menu_demo/bitmap.c b/menu_demo/bitmap.c index 9a59d12..a13943b 100644 --- a/menu_demo/bitmap.c +++ b/menu_demo/bitmap.c @@ -1,6 +1,6 @@ #include -#include -#include +#include +#include #include #include "bitmap.h" diff --git a/menu_demo/button.c b/menu_demo/button.c index 499570b..2e98286 100644 --- a/menu_demo/button.c +++ b/menu_demo/button.c @@ -5,10 +5,39 @@ #include +#include "button.h" #include "bitmap.h" +#define BUTTON_CLICK_HEIGHT 50 + enum ButtonType { - MENU_MAIN, - MENU_START, - MENU_OPTIONS + BUTTON_CLICK, + BUTTON_RADIO, + BUTTON_LABEL }; + +void ButtonRender(struct ButtonStruct *f_sButton) +{ + char l_pcTitle[BUTTON_MAX_TITLE]; + + double l_dWidth = f_sButton->m_dWidth; + double l_dXPos = f_sButton->m_dXPos; + double l_dYPos = f_sButton->m_dYPos; + int l_iType = f_sButton->m_iType; + + memset(&l_pcTitle, 0, sizeof(l_pcTitle)); + memcpy(&l_pcTitle, f_sButton->m_pcTitle, sizeof(f_sButton->m_pcTitle)); + + switch (l_iType) + { + case BUTTON_CLICK: + glBegin(GL_QUADS); + glVertex3d(l_dXPos, l_dYPos, 0); + glVertex3d(l_dXPos + l_dWidth, l_dYPos, 0); + glVertex3d(l_dXPos + l_dWidth, l_dYPos - BUTTON_CLICK_HEIGHT, 0); + glVertex3d(l_dXPos, l_dYPos - BUTTON_CLICK_HEIGHT, 0); + glEnd(); + break; + } + +} // ButtonRender diff --git a/menu_demo/button.h b/menu_demo/button.h index a59d062..81bb418 100644 --- a/menu_demo/button.h +++ b/menu_demo/button.h @@ -1,10 +1,16 @@ #ifndef _CBUTTON_H #define _CBUTTON_H +#define BUTTON_MAX_TITLE 256 + struct ButtonStruct { double m_dXPos; double m_dYPos; - int m_iType; + double m_dWidth; + char m_pcTitle[BUTTON_MAX_TITLE]; + int m_iType; }; +void ButtonRender(struct ButtonStruct *f_sButton); + #endif diff --git a/menu_demo/main.c b/menu_demo/main.c index 0592c57..ad9c49f 100644 --- a/menu_demo/main.c +++ b/menu_demo/main.c @@ -4,16 +4,16 @@ #endif #include +#include #include #include #include "menu.h" -#define SCREEN_WIDTH 640 +#define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 - void init_gl(void) { double l_dHalfWidth = SCREEN_WIDTH / 2; @@ -78,5 +78,3 @@ int main(int argc, char **argv) return 0; } - - diff --git a/menu_demo/menu.c b/menu_demo/menu.c index d1db8f8..99a72a9 100644 --- a/menu_demo/menu.c +++ b/menu_demo/menu.c @@ -7,6 +7,8 @@ #include "button.h" +#define MENU_MAX_BUTTONS 16 + enum MenuState { MENU_MAIN, MENU_START, @@ -14,10 +16,10 @@ enum MenuState { }; struct MenuStruct { - struct ButtonStruct button[10]; + struct ButtonStruct m_sButtons[MENU_MAX_BUTTONS]; }; -int g_iState; // which menu are we in +int g_iState; // which menu state are we in struct MenuStruct g_sMenuMain; // definition of the main menu struct MenuStruct g_sMenuStart; // definition of the start menu @@ -25,12 +27,6 @@ struct MenuStruct g_sMenuOptions; // definition of the options menu void MenuMainRender(void) { - glBegin(GL_QUADS); - glVertex3d( 10, 10, 0); - glVertex3d( 10, -10, 0); - glVertex3d(-10, -10, 0); - glVertex3d(-10, 10, 0); - glEnd(); } // MenuMainRender @@ -51,12 +47,6 @@ void MenuInit(void) } // InitMenu -int MenuGetState(void) -{ - return g_iState; - -} // GetMenuState - void MenuRender(void) { glColor3d(1, 1, 1); diff --git a/menu_demo/menu.h b/menu_demo/menu.h index 562d9d0..f072608 100644 --- a/menu_demo/menu.h +++ b/menu_demo/menu.h @@ -2,7 +2,6 @@ #define _CMENU_H void MenuInit(void); -int MenuGetState(void); void MenuRender(void); #endif diff --git a/menu_demo/menu_demo.ncb b/menu_demo/menu_demo.ncb index 279f5e6..6da698a 100644 Binary files a/menu_demo/menu_demo.ncb and b/menu_demo/menu_demo.ncb differ diff --git a/menu_demo/menu_demo.suo b/menu_demo/menu_demo.suo index 096e6b4..fb0a0f2 100644 Binary files a/menu_demo/menu_demo.suo and b/menu_demo/menu_demo.suo differ diff --git a/menu_demo/menu_demo.vcproj b/menu_demo/menu_demo.vcproj index afb55b7..b23e302 100644 --- a/menu_demo/menu_demo.vcproj +++ b/menu_demo/menu_demo.vcproj @@ -40,6 +40,7 @@ - - -- cgit v0.12