1 #include "Cursors.h"
2 #include "Laptop.h"
3 #include "AIMLinks.h"
4 #include "AIM.h"
5 #include "VObject.h"
6 #include "WordWrap.h"
7 #include "Text.h"
8 #include "Multi_Language_Graphic_Utils.h"
9 #include "Button_System.h"
10 #include "Video.h"
11 #include "VSurface.h"
12 #include "Font_Control.h"
13
14
15 #define AIM_LINK_TITLE_FONT FONT14ARIAL
16 #define AIM_LINK_TITLE_COLOR AIM_GREEN
17
18 #define AIM_LINK_NUM_LINKS 3
19
20 #define AIM_LINK_LINK_OFFSET_X 94
21 #define AIM_LINK_LINK_OFFSET_Y 94//90
22
23 #define AIM_LINK_LINK_WIDTH 420
24 #define AIM_LINK_LINK_HEIGHT 70
25
26 #define AIM_LINK_BOBBY_LINK_X LAPTOP_SCREEN_UL_X + 40
27 #define AIM_LINK_BOBBY_LINK_Y LAPTOP_SCREEN_WEB_UL_Y + 91
28
29 #define AIM_LINK_FUNERAL_LINK_X AIM_LINK_BOBBY_LINK_X
30 #define AIM_LINK_FUNERAL_LINK_Y AIM_LINK_BOBBY_LINK_Y + AIM_LINK_LINK_OFFSET_Y
31
32 #define AIM_LINK_INSURANCE_LINK_X AIM_LINK_BOBBY_LINK_X
33 #define AIM_LINK_INSURANCE_LINK_Y AIM_LINK_FUNERAL_LINK_Y + AIM_LINK_LINK_OFFSET_Y
34
35 #define AIM_LINK_TITLE_X IMAGE_OFFSET_X + 149
36 #define AIM_LINK_TITLE_Y AIM_SYMBOL_Y + AIM_SYMBOL_SIZE_Y + 10
37 #define AIM_LINK_TITLE_WIDTH AIM_SYMBOL_WIDTH
38
39
40 static SGPVObject* guiBobbyLink;
41 static SGPVObject* guiFuneralLink;
42 static SGPVObject* guiInsuranceLink;
43 static UINT8 const gubLinkPages[] = { BOBBYR_BOOKMARK, FUNERAL_BOOKMARK, INSURANCE_BOOKMARK };
44
45 //Clicking on guys Face
46 static MOUSE_REGION gSelectedLinkRegion[AIM_LINK_NUM_LINKS];
47
48
49 static void SelectLinkRegionCallBack(MOUSE_REGION* pRegion, INT32 iReason);
50
51
EnterAimLinks()52 void EnterAimLinks()
53 {
54 InitAimDefaults();
55 InitAimMenuBar();
56
57 // Load the Bobby link graphic.
58 guiBobbyLink = AddVideoObjectFromFile(GetMLGFilename(MLG_BOBBYRAYLINK));
59 // Load the Funeral graphic.
60 guiFuneralLink = AddVideoObjectFromFile(GetMLGFilename(MLG_MORTUARYLINK));
61 // Load the Insurance graphic.
62 guiInsuranceLink = AddVideoObjectFromFile(GetMLGFilename(MLG_INSURANCELINK));
63
64 UINT16 const x = STD_SCREEN_X + AIM_LINK_LINK_OFFSET_X;
65 UINT16 y = AIM_LINK_BOBBY_LINK_Y;
66 UINT8 const* page = gubLinkPages;
67 FOR_EACHX(MOUSE_REGION, i, gSelectedLinkRegion, y += AIM_LINK_LINK_OFFSET_Y)
68 {
69 MOUSE_REGION& r = *i;
70 MSYS_DefineRegion(&r, x, y, x + AIM_LINK_LINK_WIDTH, y + AIM_LINK_LINK_HEIGHT, MSYS_PRIORITY_HIGH, CURSOR_WWW, MSYS_NO_CALLBACK, SelectLinkRegionCallBack);
71 MSYS_SetRegionUserData(&r, 0, *page++);
72 }
73
74 RenderAimLinks();
75 }
76
77
ExitAimLinks()78 void ExitAimLinks()
79 {
80 RemoveAimDefaults();
81
82 DeleteVideoObject(guiBobbyLink);
83 DeleteVideoObject(guiFuneralLink);
84 DeleteVideoObject(guiInsuranceLink);
85
86 FOR_EACH(MOUSE_REGION, i, gSelectedLinkRegion) MSYS_RemoveRegion(&*i);
87
88 ExitAimMenuBar();
89 }
90
91
RenderAimLinks()92 void RenderAimLinks()
93 {
94 DrawAimDefaults();
95 DisableAimButton();
96
97 BltVideoObject(FRAME_BUFFER, guiBobbyLink, 0, AIM_LINK_BOBBY_LINK_X, AIM_LINK_BOBBY_LINK_Y);
98 BltVideoObject(FRAME_BUFFER, guiFuneralLink, 0, AIM_LINK_FUNERAL_LINK_X, AIM_LINK_FUNERAL_LINK_Y);
99 BltVideoObject(FRAME_BUFFER, guiInsuranceLink, 0, AIM_LINK_INSURANCE_LINK_X, AIM_LINK_INSURANCE_LINK_Y);
100
101 //Draw Link Title
102 DrawTextToScreen(AimLinkText, AIM_LINK_TITLE_X, AIM_LINK_TITLE_Y, AIM_LINK_TITLE_WIDTH, AIM_LINK_TITLE_FONT, AIM_LINK_TITLE_COLOR, FONT_MCOLOR_BLACK, CENTER_JUSTIFIED);
103
104 MarkButtonsDirty( );
105 RenderWWWProgramTitleBar( );
106 InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y);
107 }
108
109
SelectLinkRegionCallBack(MOUSE_REGION * pRegion,INT32 iReason)110 static void SelectLinkRegionCallBack(MOUSE_REGION* pRegion, INT32 iReason)
111 {
112 if (iReason & MSYS_CALLBACK_REASON_LBUTTON_UP)
113 {
114 UINT32 gNextLaptopPage;
115
116 gNextLaptopPage = MSYS_GetRegionUserData( pRegion, 0 );
117
118 GoToWebPage( gNextLaptopPage );
119 }
120 }
121