22 #ifndef NANCY_UI_CELLPHONEPOPUP_H 23 #define NANCY_UI_CELLPHONEPOPUP_H 25 #include "engines/nancy/commontypes.h" 26 #include "engines/nancy/enginedata.h" 27 #include "engines/nancy/renderobject.h" 44 void registerGraphics()
override;
45 void updateGraphics()
override;
50 void toggle() {
if (_isVisible) close();
else open(); }
55 bool isInCall()
const {
return _screenState == kConnected; }
59 void setNoSignal(
bool noSignal);
62 void setBatteryLow(
bool low);
71 void addSearchLink(int16 mode,
const SearchLink &link);
91 enum ScreenState :
int {
95 kWaitOutgoingRing = 3,
116 void drawScreenContent();
117 void drawStatusIcons(
bool includeSignal =
true);
118 void drawWebDirLabels();
119 void drawDialLabel();
124 void drawTypeMessage();
125 void drawConnectedLabel();
126 void drawConnectingSprite();
127 void drawDialedNumber();
128 void drawHelpButton(uint state);
129 void drawCloseButton(
bool hovered);
130 void drawStatusLabels();
131 void drawDirectoryList();
132 void drawDirectoryArrows();
135 void drawWelcomeScreen();
142 void showMessageScreen(
const Common::Rect &tileSrc, ScreenState returnState);
145 void drawPictureView();
156 void enterCameraFraming();
157 void exitCameraFraming();
158 void drawCameraFraming();
165 void drawBackButton(uint subButtonIndex);
168 void drawHubButton(uint subButtonIndex);
171 void drawPressedDialKey();
179 void drawContentView();
183 void renderContentPage(
int surfaceWidth);
188 uint contentScrollStep()
const;
192 void openBrowserHome();
202 bool isZoomedChromeState()
const {
203 return _screenState == kWebList ||
204 _screenState == kEmailList ||
205 _screenState == kContentView;
211 bool isHelpContentView()
const {
212 return _screenState == kContentView && _uiclData &&
213 _contentHeading == &_uiclData->helpHeading;
218 bool isSubScreenState()
const {
219 return _screenState == kDirectory ||
220 _screenState == kOnlineHub ||
221 isZoomedChromeState();
225 void enterScreenState(ScreenState newState);
231 bool isDialKeyActive(uint slot)
const;
235 bool isCallBackButtonActive()
const {
236 return (_screenState == kPlaceCall || _screenState == kWaitOutgoingRing ||
237 _screenState == kLookupContact || _screenState == kWaitPickup) &&
238 !_hasPendingCallScene && _uiclData &&
239 !_uiclData->subButtons[0].destRect.
isEmpty();
243 void appendDigit(byte slotIndex);
252 bool callSoundIsStillPlaying()
const;
253 void triggerContactCallSceneChange(uint contactIndex);
254 int findContactByDialBuffer()
const;
256 uint maxDirectoryRows()
const;
260 int rowPitch()
const;
261 int rowTopScreen()
const;
262 bool isLinkListMode()
const {
return _screenState == kWebList || _screenState == kEmailList; }
263 bool isOnlineMode()
const {
return _screenState == kOnlineHub || isLinkListMode(); }
268 uint listTitleRows()
const {
return 0; }
273 void startCallToContact(uint contactIndex);
275 int contactIndexForVisibleRow(uint visibleRow)
const;
276 uint deduplicatedContactCount()
const;
278 uint currentListEntryCount()
const;
288 Common::Rect backButtonHitRect(uint subButtonIndex)
const;
291 int currentBackButtonIndex()
const;
293 uint contentViewBottomButton()
const;
295 bool isBrowserArticle()
const;
297 void moveDirectorySelection(
int delta);
301 const UICL *_uiclData;
311 bool _closeButtonHovered =
false;
312 bool _scrollUpHovered =
false;
313 bool _scrollDownHovered =
false;
316 bool _helpButtonHovered =
false;
317 bool _backButtonHovered =
false;
319 ScreenState _screenState = kWelcome;
328 int _resolvedContact = -1;
330 int _hoveredSlot = -1;
333 int _pressedSlot = -1;
337 int _hoveredHubButton = -1;
341 bool _autoDialPending =
false;
344 uint _directoryScroll = 0;
345 uint _directorySelection = 0;
348 int _pictureIndex = 0;
351 bool _inCameraFraming =
false;
354 static const int kFramingWidth = 220;
355 static const int kFramingHeight = 176;
358 static const uint kMaxPictures = 50;
362 bool _sendingPicture =
false;
366 ScreenState _messageReturnState = kWelcome;
369 ScreenState _contentReturnState = kOnlineHub;
374 uint _contentScroll = 0;
379 int _openingEmailRow = -1;
380 uint32 _openingEmailTime = 0;
394 uint16 _contentCacheTextHeight = 0;
398 bool _noSignal =
false;
399 bool _batteryLow =
false;
404 bool _hasPendingCallScene =
false;
409 bool _callWasIncoming =
false;
412 bool _hasReturnScene =
false;
418 #endif // NANCY_UI_CELLPHONEPOPUP_H Definition: managed_surface.h:51
Definition: commontypes.h:165
Definition: enginedata.h:588
Definition: soundequalizerpuzzle.h:27
Definition: renderobject.h:36
Definition: commontypes.h:225
Definition: puzzledata.h:267
bool isEmpty() const
Definition: rect.h:385
Definition: enginedata.h:615
Definition: commontypes.h:282
Definition: actionmanager.h:32