#pragma once #include "../Screen.h" #include "../ScrolledSelectionList.h" class LevelSummary; class Button; class Tesselator; class SelectWorldScreen : public Screen { public: class WorldSelectionList; protected: static const int BUTTON_CANCEL_ID = 0; static const int BUTTON_SELECT_ID = 1; static const int BUTTON_DELETE_ID = 2; static const int BUTTON_CREATE_ID = 3; static const int BUTTON_UP_ID = 4; static const int BUTTON_DOWN_ID = 5; static const int BUTTON_RENAME_ID = 6; private: // final DateFormat DATE_FORMAT = new SimpleDateFormat(); // 4J - removed protected: Screen *lastScreen; std::wstring title; private: bool done; int selectedWorld; std::vector *levelList; WorldSelectionList *worldSelectionList; std::wstring worldLang; std::wstring conversionLang; bool isDeleting; Button *deleteButton; Button *selectButton; Button *renameButton; public: SelectWorldScreen(Screen *lastScreen); virtual void init(); private: void loadLevelList(); protected: std::wstring getWorldId(int id); std::wstring getWorldName(int id); public: virtual void postInit(); protected: virtual void buttonClicked(Button *button); public: void worldSelected(int id); void confirmResult(bool result, int id); virtual void render(int xm, int ym, float a); class WorldSelectionList : public ScrolledSelectionList { public: SelectWorldScreen *parent; // 4J - had to add input parameters to ctor, original is a java subclass of the screen and can access its members WorldSelectionList(SelectWorldScreen *sws); protected: virtual int getNumberOfItems(); virtual void selectItem(int item, bool doubleClick); virtual bool isSelectedItem(int item); virtual int getMaxPosition(); virtual void renderBackground(); virtual void renderItem(int i, int x, int y, int h, Tesselator *t); }; };