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