Marmalade compiles single code for multiple platforms. So you can't find Android Activities or iOS UIViewController in Marmalade code.
If you still wish to have access to Activity on Android e.g. implement SSO login with Facebook on Android
then you should use EDK extension that provide direct access to Android and iOS
If you just develop game then you have to programs view system your self.
First time it took few hours to programs
Here are class declarations from my apps.
I am not happy with them but it is real code that works for me.
class CButton;
class CScreen{
public:
enum{
HIT_TOUCH,
HIT_MOVE,
HIT_RELEASE,
HIT_BOOM,
HIT_BOOMMOVE
};
CIwArray<CButton*> buttons;
CButton * touchButton;
int touchId, touchUniqueId;
CScreen();
virtual ~CScreen();
virtual void init(){}
virtual void terminate(){}
virtual void dispatch(int event);
virtual void touch(int id, int uniqueId, int x, int y);
virtual void release(int id, int uniqueId, int x, int y);
virtual void swipe(int id, int x, int y);
virtual void hit(int id, int power, int type, int x, int y, int old_x, int old_y);
virtual void hitFlash(int x1, int y1, int x2, int y2);
virtual void render();
};
class CButton{
public:
int eventId;
bool bvisible;
uint32 color;
CButton();
virtual ~CButton();
virtual bool testhit(int x, int y) = 0;
//virtual bool touch(int id, int unique, int x, int y);
//virtual bool release(int id, int unique, int x, int y);
virtual void render() = 0;
};
class CScreenGame: public CScreen{
public:
enum{
EVENT_BACK,
EVENT_PAUSE,
EVENT_UNPAUSE,
EVENT_HI
};
bool btouch;
int touchX, touchY;
class CGame * game;
char debugText[4096];
CButton * window;
CButton * buttonBack;
CButton * buttonPause;
CButton * buttonUnpause;
CButton * buttonNext;
CScreenGame();
~CScreenGame();
virtual void init();
virtual void terminate();
virtual void dispatch(int event);
virtual void touch(int id, int uniqueId, int x, int y);
virtual void swipe(int id, int x, int y);
virtual void hit(int id, int power, int type, int x, int y, int old_x, int old_y);
virtual void hitFlash(int x1, int y1, int x2, int y2);
void hit3D(int id, int power, int type, int x, int y, int old_x, int old_y);
virtual void render();
void transform(int x, int y, CIwVec3 & dir);
};
class CScreenMain: public CScreen{
public:
enum{
EVENT_GAME,
EVENT_CREDITS,
EVENT_EXIT,
EVENT_GIFT,
EVENT_WEBSITE,
EVENT_MORE_GAMES,
EVENT_INTERESTIAL
};
CScreenMain();
virtual void dispatch(int event);
virtual void render();
};
class CScreenCredits: public CScreen{
public:
enum{
EVENT_BACK
};
CScreenCredits();
virtual void dispatch(int event);
virtual void render();
};