22 #ifndef STARK_SERVICES_USER_INTERFACE_H 23 #define STARK_SERVICES_USER_INTERFACE_H 25 #include "engines/stark/stark.h" 26 #include "engines/stark/ui/screen.h" 28 #include "engines/stark/services/gamemessage.h" 30 #include "engines/engine.h" 32 #include "common/keyboard.h" 33 #include "common/rect.h" 34 #include "common/str-array.h" 35 #include "common/stack.h" 38 class SeekableReadStream;
53 class DiaryIndexScreen;
56 class SettingsMenuScreen;
60 class DiaryPagesScreen;
66 kThumbnailWidth = 160,
67 kThumbnailHeight = 92,
68 kThumbnailSize = kThumbnailWidth * kThumbnailHeight * 4
88 void handleRightClick();
89 void handleDoubleClick();
91 void notifyShouldExit() { _exitGame =
true; }
92 void inventoryOpen(
bool open);
93 bool shouldExit() {
return _exitGame; }
109 void changeScreen(Screen::Name screenName);
112 void backPrevScreen();
115 void doQueuedScreenChange();
121 void restoreScreenHistory();
124 bool isInGameScreen()
const;
127 bool isInSaveLoadMenuScreen()
const;
130 bool isInDiaryIndexScreen()
const;
133 bool isInventoryOpen()
const;
136 bool isInteractive()
const;
139 void setInteractive(
bool interactive);
142 void notifyInventoryItemEnabled(uint16 itemIndex);
145 void notifyDiaryEntryEnabled();
148 int16 getSelectedInventoryItem()
const;
149 void selectInventoryItem(int16 itemIndex);
152 void clearLocationDependentState();
158 void markInteractionDenied();
161 bool wasInteractionDenied()
const;
164 void onScreenChanged();
167 void saveGameScreenThumbnail();
170 void freeGameScreenThumbnail();
182 void confirm(
const Common::String &message, T *instance,
void (T::*confirmCallBack)());
184 void confirm(GameMessage::TextKey key, T *instance,
void (T::*confirmCallBack)());
189 void toggleScreen(Screen::Name screenName);
193 void performToggleSubtitle();
200 Screen *getScreenByName(Screen::Name screenName)
const;
202 void cycleInventory(
bool forward);
223 bool _quitToMainMenu;
227 bool _interactionAttemptDenied;
229 bool _shouldToggleSubtitle;
232 bool _shouldGoBackToPreviousScreen;
239 void UserInterface::confirm(GameMessage::TextKey key, T *instance,
void (T::*confirmCallBack)()) {
244 void UserInterface::confirm(
const Common::String &message, T *instance,
void (T::*confirmCallBack)()) {
250 #endif // STARK_SERVICES_USER_INTERFACE_H
Definition: fmvscreen.h:46
void requestQuitToMainMenu()
Definition: userinterface.h:118
Definition: mainmenu.h:32
Definition: diarypages.h:32
uint32 CustomEventType
Definition: events.h:193
Definition: diaryindex.h:32
Definition: atari-cursor.h:38
Definition: algorithm.h:29
Definition: formatinfo.h:28
Definition: dialogbox.h:49
Definition: dialogmenu.h:36
Definition: keyboard.h:294
Definition: userinterface.h:74
bool hasToggleSubtitleRequest()
Definition: userinterface.h:192
Definition: gamescreen.h:42