#include "laptop.h" #include "AimPolicies.h" #include "aim.h" #include "WCheck.h" #include "Utilities.h" #include "WordWrap.h" #include "Encrypted File.h" #include "Text.h" #include "GameSettings.h" #include "LocalizedStrings.h" #define NUM_AIM_POLICY_PAGES 11 #define NUM_AIM_POLICY_TOC_BUTTONS 9 #define AIMPOLICYFILE "BINARYDATA\\AimPol.edt" #define AIM_POLICY_LINE_SIZE 80 * 5 * 2 // 80 columns of 5 lines that are wide chars, 800 bytes total #define AIM_POLICY_TITLE_FONT FONT14ARIAL #define AIM_POLICY_TITLE_COLOR AIM_GREEN #define AIM_POLICY_TEXT_FONT FONT10ARIAL #define AIM_POLICY_TEXT_COLOR FONT_MCOLOR_WHITE #define AIM_POLICY_TOC_FONT FONT12ARIAL #define AIM_POLICY_TOC_COLOR FONT_MCOLOR_WHITE #define AIM_POLICY_TOC_TITLE_FONT FONT12ARIAL #define AIM_POLICY_TOC_TITLE_COLOR FONT_MCOLOR_WHITE #define AIM_POLICY_SUBTITLE_FONT FONT12ARIAL #define AIM_POLICY_SUBTITLE_COLOR FONT_MCOLOR_WHITE #define AIM_POLICY_AGREE_TOC_COLOR_ON FONT_MCOLOR_WHITE #define AIM_POLICY_AGREE_TOC_COLOR_OFF FONT_MCOLOR_DKWHITE #define AIM_POLICY_MENU_X LAPTOP_SCREEN_UL_X + 40 #define AIM_POLICY_MENU_Y (SCREEN_HEIGHT - 480)/ 2 + 390 + LAPTOP_SCREEN_WEB_DELTA_Y #define AIM_POLICY_MENU_BUTTON_AMOUNT 4 #define AIM_POLICY_GAP_X 40 + BOTTOM_BUTTON_START_WIDTH #define AIM_POLICY_TITLE_X IMAGE_OFFSET_X + 149 #define AIM_POLICY_TITLE_Y AIM_SYMBOL_Y + AIM_SYMBOL_SIZE_Y + 11 #define AIM_POLICY_TITLE_WIDTH AIM_SYMBOL_WIDTH //tais: nsgi, move title up #define AIM_POLICY_TITLE_Y_NSGI AIM_SYMBOL_Y + 35 #define AIM_POLICY_TITLE_STATEMENT_WIDTH 300 #define AIM_POLICY_TITLE_STATEMENT_X IMAGE_OFFSET_X + (500 - AIM_POLICY_TITLE_STATEMENT_WIDTH) / 2 +5//80 #define AIM_POLICY_TITLE_STATEMENT_Y AIM_SYMBOL_Y + AIM_SYMBOL_SIZE_Y + 75 #define AIM_POLICY_SUBTITLE_NUMBER AIM_POLICY_TITLE_STATEMENT_X - 75 #define AIM_POLICY_SUBTITLE_X AIM_POLICY_SUBTITLE_NUMBER + 20 #define AIM_POLICY_SUBTITLE_Y iScreenHeightOffset + 115 + LAPTOP_SCREEN_WEB_DELTA_Y #define AIM_POLICY_PARAGRAPH_NUMBER AIM_POLICY_SUBTITLE_X - 12 #define AIM_POLICY_PARAGRAPH_X AIM_POLICY_PARAGRAPH_NUMBER + 23 #define AIM_POLICY_PARAGRAPH_Y AIM_POLICY_SUBTITLE_Y + 20 #define AIM_POLICY_PARAGRAPH_WIDTH 380 #define AIM_POLICY_PARAGRAPH_GAP 6 #define AIM_POLICY_SUBPARAGRAPH_NUMBER AIM_POLICY_PARAGRAPH_X #define AIM_POLICY_SUBPARAGRAPH_X AIM_POLICY_SUBPARAGRAPH_NUMBER + 25 #define AIM_POLICY_TOC_X iScreenWidthOffset + 259 #define AIM_POLICY_TOC_Y AIM_POLICY_SUBTITLE_Y #define AIM_POLICY_TOC_GAP_Y 25 #define AIM_POLICY_TOC_TEXT_OFFSET_X 5 #define AIM_POLICY_TOC_TEXT_OFFSET_Y 5 #define AIM_POLICY_AGREEMENT_X IMAGE_OFFSET_X + 150 #define AIM_POLICY_AGREEMENT_Y iScreenHeightOffset + 350 + LAPTOP_SCREEN_WEB_DELTA_Y #define AIM_POLICY_DISAGREEMENT_X AIM_POLICY_AGREEMENT_X + 125 #define AIM_POLICY_DISAGREEMENT_Y AIM_POLICY_AGREEMENT_Y #define AIM_POLICY_TOC_PAGE 1 #define AIM_POLICY_LAST_PAGE 10 #define AIM_POLICY_AGREE_PAGE 0 // These enums represent which paragraph they are located in the AimPol.edt file enum { AIM_STATEMENT_OF_POLICY, AIM_STATEMENT_OF_POLICY_1, AIM_STATEMENT_OF_POLICY_2, DEFINITIONS, DEFINITIONS_1, DEFINITIONS_2, DEFINITIONS_3, DEFINITIONS_4, LENGTH_OF_ENGAGEMENT, LENGTH_OF_ENGAGEMENT_1, LENGTH_OF_ENGAGEMENT_1_1, LENGTH_OF_ENGAGEMENT_1_2, LENGTH_OF_ENGAGEMENT_1_3, LENGTH_OF_ENGAGEMENT_2, LOCATION_0F_ENGAGEMENT, LOCATION_0F_ENGAGEMENT_1, LOCATION_0F_ENGAGEMENT_2, LOCATION_0F_ENGAGEMENT_2_1, LOCATION_0F_ENGAGEMENT_2_2, LOCATION_0F_ENGAGEMENT_2_3, LOCATION_0F_ENGAGEMENT_2_4, LOCATION_0F_ENGAGEMENT_3, CONTRACT_EXTENSIONS, CONTRACT_EXTENSIONS_1, CONTRACT_EXTENSIONS_2, CONTRACT_EXTENSIONS_3, TERMS_OF_PAYMENT, TERMS_OF_PAYMENT_1, TERMS_OF_ENGAGEMENT, TERMS_OF_ENGAGEMENT_1, TERMS_OF_ENGAGEMENT_2A, TERMS_OF_ENGAGEMENT_2B, ENGAGEMENT_TERMINATION, ENGAGEMENT_TERMINATION_1, ENGAGEMENT_TERMINATION_1_1, ENGAGEMENT_TERMINATION_1_2, ENGAGEMENT_TERMINATION_1_3, EQUIPMENT_AND_INVENTORY, EQUIPMENT_AND_INVENTORY_1, EQUIPMENT_AND_INVENTORY_2, POLICY_MEDICAL, POLICY_MEDICAL_1, POLICY_MEDICAL_2, POLICY_MEDICAL_3A, POLICY_MEDICAL_3B, POLICY_MEDICAL_4, NUM_AIM_POLICY_LOCATIONS }AimPolicyTextLocatoins; //Toc menu mouse regions MOUSE_REGION gSelectedPolicyTocMenuRegion[ NUM_AIM_POLICY_TOC_BUTTONS ]; void SelectPolicyTocMenuRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); //Agree/Disagree menu Buttons regions void BtnPoliciesAgreeButtonCallback(GUI_BUTTON *btn,INT32 reason); UINT32 guiPoliciesAgreeButton[ 2 ]; INT32 guiPoliciesButtonImage; //Bottom Menu Buttons void BtnPoliciesMenuButtonCallback(GUI_BUTTON *btn,INT32 reason); UINT32 guiPoliciesMenuButton[ AIM_POLICY_MENU_BUTTON_AMOUNT ]; INT32 guiPoliciesMenuButtonImage; UINT32 guiBottomButton; UINT32 guiBottomButton2; UINT8 gubCurPageNum; BOOLEAN gfInPolicyToc = FALSE; BOOLEAN gfInAgreementPage = FALSE; BOOLEAN gfAimPolicyMenuBarLoaded = FALSE; UINT32 guiContentButton; BOOLEAN gfExitingPolicesAgreeButton; UINT8 gubPoliciesAgreeButtonDown; UINT8 gubAimPolicyMenuButtonDown=255; BOOLEAN gfExitingAimPolicy; BOOLEAN AimPoliciesSubPagesVisitedFlag[NUM_AIM_POLICY_PAGES]; BOOLEAN InitAimPolicyMenuBar(void); BOOLEAN ExitAimPolicyMenuBar(void); BOOLEAN InitAimPolicyTocMenu(void); BOOLEAN ExitAimPolicyTocMenu(void); BOOLEAN DrawAimPolicyMenu(); BOOLEAN DisplayAimPolicyStatement(void); BOOLEAN DisplayAimPolicyTitleText(void); BOOLEAN InitAgreementRegion(void); BOOLEAN ExitAgreementButton(void); void DisableAimPolicyButton(); void ResetAimPolicyButtons(); void ChangingAimPoliciesSubPage( UINT8 ubSubPageNumber ); BOOLEAN DisplayAimPolicyTitle(UINT16 usPosY, UINT8 ubPageNum, FLOAT fNumber); UINT16 DisplayAimPolicyParagraph(UINT16 usPosY, UINT8 ubPageNum, FLOAT fNumber); UINT16 DisplayAimPolicySubParagraph(UINT16 usPosY, UINT8 ubPageNum, FLOAT fNumber); void GameInitAimPolicies() { } void EnterInitAimPolicies() { memset( &AimPoliciesSubPagesVisitedFlag, 0, NUM_AIM_POLICY_PAGES); } BOOLEAN EnterAimPolicies() { VOBJECT_DESC VObjectDesc; InitAimDefaults(); gubCurPageNum = (UINT8) giCurrentSubPage; gfAimPolicyMenuBarLoaded = FALSE; gfExitingAimPolicy = FALSE; gubPoliciesAgreeButtonDown = 255; gubAimPolicyMenuButtonDown = 255; if( gubCurPageNum != 0) InitAimPolicyMenuBar(); gfInPolicyToc = FALSE; // load the Bottom Buttons graphic and add it VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; FilenameForBPP("LAPTOP\\BottomButton.sti", VObjectDesc.ImageFile); CHECKF(AddVideoObject(&VObjectDesc, &guiBottomButton)); VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; FilenameForBPP("LAPTOP\\BottomButton2.sti", VObjectDesc.ImageFile); CHECKF(AddVideoObject(&VObjectDesc, &guiBottomButton2)); // load the Content Buttons graphic and add it VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; FilenameForBPP("LAPTOP\\ContentButton.sti", VObjectDesc.ImageFile); CHECKF(AddVideoObject(&VObjectDesc, &guiContentButton)); RenderAimPolicies(); return(TRUE); } void ExitAimPolicies() { gfExitingAimPolicy = TRUE; DeleteVideoObjectFromIndex(guiBottomButton); DeleteVideoObjectFromIndex(guiBottomButton2); DeleteVideoObjectFromIndex(guiContentButton); if( gfAimPolicyMenuBarLoaded ) ExitAimPolicyMenuBar(); if(gfInPolicyToc) ExitAimPolicyTocMenu(); if( gfInAgreementPage ) ExitAgreementButton(); RemoveAimDefaults(); giCurrentSubPage = gubCurPageNum; } void HandleAimPolicies() { if( (gfAimPolicyMenuBarLoaded != TRUE) && gubCurPageNum != 0) { InitAimPolicyMenuBar(); // RenderAimPolicies(); fPausedReDrawScreenFlag = TRUE; } } void RenderAimPolicies() { UINT16 usNumPixles; DrawAimDefaults(); DisplayAimPolicyTitleText(); if( gfInAgreementPage ) ExitAgreementButton(); switch( gubCurPageNum ) { case 0: DisplayAimPolicyStatement(); InitAgreementRegion(); break; case 1: InitAimPolicyTocMenu(); InitAimPolicyMenuBar(); DisableAimPolicyButton(); DrawAimPolicyMenu(); break; case 2: //Display the Definitions title DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, DEFINITIONS, (FLOAT)1.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, DEFINITIONS_1, (FLOAT)1.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, DEFINITIONS_2, (FLOAT)1.2) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, DEFINITIONS_3, (FLOAT)1.3) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, DEFINITIONS_4, (FLOAT)1.4); break; case 3: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, LENGTH_OF_ENGAGEMENT, (FLOAT)2.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LENGTH_OF_ENGAGEMENT_1, (FLOAT)2.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LENGTH_OF_ENGAGEMENT_1_1, (FLOAT)2.11) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LENGTH_OF_ENGAGEMENT_1_2, (FLOAT)2.12) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LENGTH_OF_ENGAGEMENT_1_3, (FLOAT)2.13) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LENGTH_OF_ENGAGEMENT_2, (FLOAT)2.2) + AIM_POLICY_PARAGRAPH_GAP; break; case 4: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, LOCATION_0F_ENGAGEMENT, (FLOAT)3.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_1, (FLOAT)3.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2, (FLOAT)3.2) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2_1, (FLOAT)3.21) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2_2, (FLOAT)3.22) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2_3, (FLOAT)3.23) + AIM_POLICY_PARAGRAPH_GAP; // usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2_4, (FLOAT)3.24) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_2_4, (FLOAT)3.3) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, LOCATION_0F_ENGAGEMENT_3, (FLOAT)3.4) + AIM_POLICY_PARAGRAPH_GAP; break; case 5: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, CONTRACT_EXTENSIONS, (FLOAT)4.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, CONTRACT_EXTENSIONS_1, (FLOAT)4.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, CONTRACT_EXTENSIONS_2, (FLOAT)4.2) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, CONTRACT_EXTENSIONS_3, (FLOAT)4.3) + AIM_POLICY_PARAGRAPH_GAP; break; case 6: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, TERMS_OF_PAYMENT, (FLOAT)5.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, TERMS_OF_PAYMENT_1, (FLOAT)5.1) + AIM_POLICY_PARAGRAPH_GAP; break; case 7: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, TERMS_OF_ENGAGEMENT, (FLOAT)6.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, TERMS_OF_ENGAGEMENT_1, (FLOAT)6.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, TERMS_OF_ENGAGEMENT_2A, (FLOAT)6.2) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, TERMS_OF_ENGAGEMENT_2B, (FLOAT)0.0) + AIM_POLICY_PARAGRAPH_GAP; break; case 8: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, ENGAGEMENT_TERMINATION, (FLOAT)7.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, ENGAGEMENT_TERMINATION_1, (FLOAT)7.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, ENGAGEMENT_TERMINATION_1_1, (FLOAT)7.11) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, ENGAGEMENT_TERMINATION_1_2, (FLOAT)7.12) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicySubParagraph(usNumPixles, ENGAGEMENT_TERMINATION_1_3, (FLOAT)7.13) + AIM_POLICY_PARAGRAPH_GAP; break; case 9: DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, EQUIPMENT_AND_INVENTORY, (FLOAT)8.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, EQUIPMENT_AND_INVENTORY_1, (FLOAT)8.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, EQUIPMENT_AND_INVENTORY_2, (FLOAT)8.2) + AIM_POLICY_PARAGRAPH_GAP; break; case 10: DisableAimPolicyButton(); DisplayAimPolicyTitle(AIM_POLICY_SUBTITLE_Y, POLICY_MEDICAL, (FLOAT)9.0); usNumPixles = AIM_POLICY_PARAGRAPH_Y; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, POLICY_MEDICAL_1, (FLOAT)9.1) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, POLICY_MEDICAL_2, (FLOAT)9.2) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, POLICY_MEDICAL_3A, (FLOAT)9.3) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, POLICY_MEDICAL_3B, (FLOAT)0.0) + AIM_POLICY_PARAGRAPH_GAP; usNumPixles += DisplayAimPolicyParagraph(usNumPixles, POLICY_MEDICAL_4, (FLOAT)9.4) + AIM_POLICY_PARAGRAPH_GAP; break; } MarkButtonsDirty( ); RenderWWWProgramTitleBar( ); InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); } BOOLEAN InitAimPolicyMenuBar(void) { UINT16 i, usPosX; if(gfAimPolicyMenuBarLoaded) return(TRUE); //Load graphic for buttons guiPoliciesMenuButtonImage = LoadButtonImage("LAPTOP\\BottomButtons2.sti", -1,0,-1,1,-1 ); usPosX = AIM_POLICY_MENU_X; for(i=0; iuiFlags |= BUTTON_CLICKED_ON; InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); gubPoliciesAgreeButtonDown = ubRetValue; } if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { if (btn->uiFlags & BUTTON_CLICKED_ON) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); //Agree fOnPage = FALSE; if(ubRetValue == 1) { gubCurPageNum++; ChangingAimPoliciesSubPage( gubCurPageNum ); } //Disagree else { guiCurrentLaptopMode = LAPTOP_MODE_AIM; } InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); fOnPage = TRUE; gubPoliciesAgreeButtonDown = 255; } } if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gubPoliciesAgreeButtonDown = 255; InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); } } } void BtnPoliciesMenuButtonCallback(GUI_BUTTON *btn,INT32 reason) { UINT8 ubRetValue; static BOOLEAN fOnPage=TRUE; if(fOnPage) { ubRetValue = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if(reason & MSYS_CALLBACK_REASON_LBUTTON_DWN ) { btn->uiFlags |= BUTTON_CLICKED_ON; gubAimPolicyMenuButtonDown = ubRetValue; InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); } if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { if (btn->uiFlags & BUTTON_CLICKED_ON) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gubAimPolicyMenuButtonDown = 255; //If previous Page if( ubRetValue == 0 ) { if( gubCurPageNum > 1) { gubCurPageNum--; ChangingAimPoliciesSubPage( gubCurPageNum ); } } // Home Page else if( ubRetValue == 1 ) { guiCurrentLaptopMode = LAPTOP_MODE_AIM; } //Company policies index else if( ubRetValue == 2 ) { if( gubCurPageNum != 1 ) { gubCurPageNum=1; ChangingAimPoliciesSubPage( gubCurPageNum ); } } //Next Page else if( ubRetValue == 3 ) { if( gubCurPageNum < NUM_AIM_POLICY_PAGES-1 ) { gubCurPageNum++; ChangingAimPoliciesSubPage( gubCurPageNum ); fOnPage = FALSE; if(gfInPolicyToc) { ExitAimPolicyTocMenu(); } fOnPage = TRUE; } } InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); ResetAimPolicyButtons(); DisableAimPolicyButton(); fOnPage = TRUE; } } if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gubAimPolicyMenuButtonDown = 255; DisableAimPolicyButton(); InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); } } } void ResetAimPolicyButtons() { int i=0; for(i=0; iuiFlags &= ~BUTTON_CLICKED_ON; } } void DisableAimPolicyButton() { if( gfExitingAimPolicy == TRUE || gfAimPolicyMenuBarLoaded == FALSE ) return; if( (gubCurPageNum == AIM_POLICY_TOC_PAGE ) ) { ButtonList[ guiPoliciesMenuButton[ 0 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); ButtonList[ guiPoliciesMenuButton[ 2 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); } else if( ( gubCurPageNum == AIM_POLICY_LAST_PAGE ) ) { ButtonList[ guiPoliciesMenuButton[ 3 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); } } void ChangingAimPoliciesSubPage( UINT8 ubSubPageNumber ) { fLoadPendingFlag = TRUE; if( AimPoliciesSubPagesVisitedFlag[ ubSubPageNumber ] == FALSE ) { fConnectingToSubPage = TRUE; fFastLoadFlag = FALSE; AimPoliciesSubPagesVisitedFlag[ ubSubPageNumber ] = TRUE; } else { fConnectingToSubPage = TRUE; fFastLoadFlag = TRUE; } }