1 #include "Directories.h"
2 #include "Laptop.h"
3 #include "Florist.h"
4 #include "Florist_Order_Form.h"
5 #include "Florist_Gallery.h"
6 #include "VObject.h"
7 #include "WordWrap.h"
8 #include "Cursors.h"
9 #include "Florist_Cards.h"
10 #include "Text.h"
11 #include "Multi_Language_Graphic_Utils.h"
12 #include "Button_System.h"
13 #include "Video.h"
14 #include "VSurface.h"
15 #include "Font_Control.h"
16 
17 
18 #define FLORIST_SENTENCE_FONT				FONT12ARIAL
19 #define FLORIST_SENTENCE_COLOR				FONT_MCOLOR_WHITE
20 
21 #define FLORIST_TITLE_FONT				FONT14ARIAL
22 #define FLORIST_TITLE_COLOR				FONT_MCOLOR_WHITE
23 
24 #define FLORIST_BACKGROUND_WIDTH			125
25 #define FLORIST_BACKGROUND_HEIGHT			100
26 
27 #define FLORIST_BIG_TITLE_X				LAPTOP_SCREEN_UL_X + 113
28 #define FLORIST_BIG_TITLE_Y				LAPTOP_SCREEN_WEB_UL_Y + 0
29 
30 #define FLORIST_SMALL_TITLE_X				LAPTOP_SCREEN_UL_X + 195
31 #define FLORIST_SMALL_TITLE_Y				LAPTOP_SCREEN_WEB_UL_Y + 0
32 #define FLORIST_SMALL_TITLE_WIDTH			100
33 #define FLORIST_SMALL_TITLE_HEIGHT			49
34 
35 
36 #define FLORIST_FIRST_BULLET_X				LAPTOP_SCREEN_UL_X + 5
37 #define FLORIST_FIRST_BULLET_Y				LAPTOP_SCREEN_WEB_UL_Y + 135
38 
39 #define FLORIST_BULLET_OFFSET_Y				54
40 
41 #define FLORIST_NUMBER_OF_BULLETS			4
42 
43 #define FLORIST_GALLERY_BUTTON_X			LAPTOP_SCREEN_UL_X + 210
44 #define FLORIST_GALLERY_BUTTON_Y			LAPTOP_SCREEN_WEB_UL_Y + 360
45 
46 #define FLORIST_FIRST_SENTENCE_COLUMN_TEXT_X		LAPTOP_SCREEN_UL_X + 53
47 #define FLORIST_FIRST_SENTENCE_COLUMN_TEXT_WIDTH	136
48 
49 #define FLORIST_SECOND_SENTENCE_COLUMN_TEXT_X		LAPTOP_SCREEN_UL_X + 200
50 #define FLORIST_SECOND_SENTENCE_COLUMN_TEXT_WIDTH	300
51 
52 #define FLORIST_COMPANY_INFO_TEXT_X			LAPTOP_SCREEN_UL_X + 117
53 #define FLORIST_COMPANY_INFO_TEXT_WIDTH			290
54 
55 #define FLORIST_COMPANY_INFO_LINE_1_Y			LAPTOP_SCREEN_WEB_UL_Y + 79
56 #define FLORIST_COMPANY_INFO_LINE_2_Y			LAPTOP_SCREEN_WEB_UL_Y + 94
57 #define FLORIST_COMPANY_INFO_LINE_3_Y			LAPTOP_SCREEN_WEB_UL_Y + 107
58 #define FLORIST_COMPANY_INFO_LINE_4_Y			LAPTOP_SCREEN_WEB_UL_Y + 119
59 
60 static SGPVObject* guiFloristBackground;
61 static SGPVObject* guiHandBullet;
62 static SGPVObject* guiLargeTitleSymbol;
63 static SGPVObject* guiSmallTitleSymbol;
64 
65 
66 static BOOLEAN gfHomePageActive = FALSE; // Specifies whether or not the home page or the sub pages are active
67 
68 //Buttons
69 
70 //Graphic for button
71 static BUTTON_PICS* guiGalleryButtonImage;
72 static void BtnGalleryButtonCallback(GUI_BUTTON *btn, INT32 reason);
73 static GUIButtonRef guiGalleryButton;
74 
75 
76 //link to the flower home page by clicking on the flower title
77 static MOUSE_REGION gSelectedFloristTitleHomeLinkRegion;
78 
79 
EnterFlorist()80 void EnterFlorist()
81 {
82 	SetBookMark( FLORIST_BOOKMARK );
83 
84 	InitFloristDefaults();
85 
86 	// load the handbullet graphic and add it
87 	guiHandBullet = AddVideoObjectFromFile(LAPTOPDIR "/handbullet.sti");
88 
89 	guiGalleryButtonImage	= LoadButtonImage(LAPTOPDIR "/floristbuttons.sti", 0, 1);
90 
91 	guiGalleryButton = CreateIconAndTextButton( guiGalleryButtonImage,
92 							sFloristText[FLORIST_GALLERY], FLORIST_BUTTON_TEXT_FONT,
93 							FLORIST_BUTTON_TEXT_UP_COLOR, FLORIST_BUTTON_TEXT_SHADOW_COLOR,
94 							FLORIST_BUTTON_TEXT_DOWN_COLOR, FLORIST_BUTTON_TEXT_SHADOW_COLOR,
95 							FLORIST_GALLERY_BUTTON_X, FLORIST_GALLERY_BUTTON_Y, MSYS_PRIORITY_HIGH,
96 							BtnGalleryButtonCallback);
97 	guiGalleryButton->SetCursor(CURSOR_WWW);
98 
99 	//reset the currently selected card
100 	gbCurrentlySelectedCard = -1;
101 
102 	//Initialize the Florsit Order Page (reset some variables)
103 	InitFloristOrderForm();
104 
105 	//Initialize the flower index for the gallery page
106 	gubCurFlowerIndex = 0;
107 
108 
109 	RenderFlorist();
110 	fReDrawScreenFlag = TRUE;
111 
112 	//set some variables for the order form
113 	InitFloristOrderFormVariables();
114 }
115 
116 
ExitFlorist()117 void ExitFlorist()
118 {
119 	DeleteVideoObject(guiHandBullet);
120 	RemoveFloristDefaults();
121 	UnloadButtonImage(guiGalleryButtonImage);
122 	RemoveButton(guiGalleryButton);
123 }
124 
125 
RenderFlorist()126 void RenderFlorist()
127 {
128 	UINT16 i, usPosY;
129 	UINT8 ubTextCounter;
130 
131 	DisplayFloristDefaults();
132 
133 	//compnay info
134 	DisplayWrappedString(FLORIST_COMPANY_INFO_TEXT_X, FLORIST_COMPANY_INFO_LINE_1_Y, FLORIST_COMPANY_INFO_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[FLORIST_DROP_ANYWHERE],  FONT_MCOLOR_BLACK, CENTER_JUSTIFIED);
135 	DisplayWrappedString(FLORIST_COMPANY_INFO_TEXT_X, FLORIST_COMPANY_INFO_LINE_2_Y, FLORIST_COMPANY_INFO_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[FLORIST_PHONE_NUMBER],   FONT_MCOLOR_BLACK, CENTER_JUSTIFIED);
136 	DisplayWrappedString(FLORIST_COMPANY_INFO_TEXT_X, FLORIST_COMPANY_INFO_LINE_3_Y, FLORIST_COMPANY_INFO_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[FLORIST_STREET_ADDRESS], FONT_MCOLOR_BLACK, CENTER_JUSTIFIED);
137 	DisplayWrappedString(FLORIST_COMPANY_INFO_TEXT_X, FLORIST_COMPANY_INFO_LINE_4_Y, FLORIST_COMPANY_INFO_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[FLORIST_WWW_ADDRESS],    FONT_MCOLOR_BLACK, CENTER_JUSTIFIED);
138 
139 
140 	usPosY = FLORIST_FIRST_BULLET_Y;
141 	ubTextCounter = FLORIST_ADVERTISEMENT_1;
142 	for( i=0; i<FLORIST_NUMBER_OF_BULLETS; i++)
143 	{
144 		BltVideoObject(FRAME_BUFFER, guiHandBullet, 0, FLORIST_FIRST_BULLET_X, usPosY);
145 
146 		DisplayWrappedString(FLORIST_FIRST_SENTENCE_COLUMN_TEXT_X, usPosY + 20, FLORIST_FIRST_SENTENCE_COLUMN_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[ubTextCounter], FONT_MCOLOR_BLACK, LEFT_JUSTIFIED);
147 		ubTextCounter++;
148 
149 		DisplayWrappedString(FLORIST_SECOND_SENTENCE_COLUMN_TEXT_X, usPosY + 15, FLORIST_SECOND_SENTENCE_COLUMN_TEXT_WIDTH, 2, FLORIST_SENTENCE_FONT, FLORIST_SENTENCE_COLOR, sFloristText[ubTextCounter], FONT_MCOLOR_BLACK, LEFT_JUSTIFIED);
150 		ubTextCounter++;
151 
152 		usPosY += FLORIST_BULLET_OFFSET_Y;
153 	}
154 
155 	MarkButtonsDirty( );
156 	RenderWWWProgramTitleBar( );
157 	InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_UL_Y);
158 }
159 
160 
161 static void SelectFloristTitleHomeLinkRegionCallBack(MOUSE_REGION* pRegion, INT32 iReason);
162 
163 
InitFloristDefaults()164 void InitFloristDefaults()
165 {
166 	// load the Florist background graphic and add it
167 	guiFloristBackground = AddVideoObjectFromFile(LAPTOPDIR "/leafback.sti");
168 
169 	//if its the first page
170 	if( guiCurrentLaptopMode == LAPTOP_MODE_FLORIST )
171 	{
172 		// load the small title graphic and add it
173 		const char* const ImageFile = GetMLGFilename(MLG_LARGEFLORISTSYMBOL);
174 		guiLargeTitleSymbol = AddVideoObjectFromFile(ImageFile);
175 	}
176 	else
177 	{
178 		// load the leaf back graphic and add it
179 		const char* const ImageFile = GetMLGFilename(MLG_SMALLFLORISTSYMBOL);
180 		guiSmallTitleSymbol = AddVideoObjectFromFile(ImageFile);
181 
182 		//flower title homepage link
183 		MSYS_DefineRegion(&gSelectedFloristTitleHomeLinkRegion, FLORIST_SMALL_TITLE_X, FLORIST_SMALL_TITLE_Y,
184 					(UINT16)(FLORIST_SMALL_TITLE_X + FLORIST_SMALL_TITLE_WIDTH),
185 					(UINT16)(FLORIST_SMALL_TITLE_Y + FLORIST_SMALL_TITLE_HEIGHT),
186 					MSYS_PRIORITY_HIGH, CURSOR_WWW, MSYS_NO_CALLBACK,
187 					SelectFloristTitleHomeLinkRegionCallBack );
188 	}
189 }
190 
191 
DisplayFloristDefaults()192 void DisplayFloristDefaults()
193 {
194 	WebPageTileBackground(4, 4, FLORIST_BACKGROUND_WIDTH, FLORIST_BACKGROUND_HEIGHT, guiFloristBackground);
195 
196 	//if its the first page
197 	if( guiCurrentLaptopMode == LAPTOP_MODE_FLORIST )
198 	{
199 		gfHomePageActive = TRUE;
200 		BltVideoObject(FRAME_BUFFER, guiLargeTitleSymbol, 0, FLORIST_BIG_TITLE_X, FLORIST_BIG_TITLE_Y);
201 	}
202 	else
203 	{
204 		gfHomePageActive = FALSE;
205 		BltVideoObject(FRAME_BUFFER, guiSmallTitleSymbol, 0, FLORIST_SMALL_TITLE_X, FLORIST_SMALL_TITLE_Y);
206 	}
207 }
208 
RemoveFloristDefaults()209 void RemoveFloristDefaults()
210 {
211 	DeleteVideoObject(guiFloristBackground);
212 
213 	//if its the first page
214 	if( gfHomePageActive )
215 	{
216 		//delete the big title
217 		DeleteVideoObject(guiLargeTitleSymbol);
218 	}
219 	else
220 	{
221 		//delete the little title
222 		DeleteVideoObject(guiSmallTitleSymbol);
223 		MSYS_RemoveRegion(&gSelectedFloristTitleHomeLinkRegion);
224 	}
225 }
226 
227 
BtnGalleryButtonCallback(GUI_BUTTON * btn,INT32 reason)228 static void BtnGalleryButtonCallback(GUI_BUTTON *btn, INT32 reason)
229 {
230 	if (reason & MSYS_CALLBACK_REASON_LBUTTON_UP)
231 	{
232 		guiCurrentLaptopMode = LAPTOP_MODE_FLORIST_FLOWER_GALLERY;
233 	}
234 }
235 
236 
SelectFloristTitleHomeLinkRegionCallBack(MOUSE_REGION * pRegion,INT32 iReason)237 static void SelectFloristTitleHomeLinkRegionCallBack(MOUSE_REGION* pRegion, INT32 iReason)
238 {
239 	if (iReason & MSYS_CALLBACK_REASON_LBUTTON_UP)
240 	{
241 		guiCurrentLaptopMode = LAPTOP_MODE_FLORIST;
242 	}
243 }
244