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