#include "InfoApplication.h"
const char *XCONTAINER_APP = "application/x-vnd.reh-XContainer";
#define CMD_UPDATE_CONTAINER_ITEM 'updC'
InfoApplication :: InfoApplication()
: IEApplication("application/x-vnd.reh-XShelfInspector")
{
fLaunched = true;
fInfoWindow = new InfoWindow();
}
InfoApplication :: ~InfoApplication()
{
be_roster -> StopWatching(fMsgnr);
}
void InfoApplication :: MessageReceived(BMessage *msg)
{
switch (msg->what)
{
case B_SOME_APP_QUIT:
case B_SOME_APP_ACTIVATED:
case B_SOME_APP_LAUNCHED:
{
if ( (be_roster -> IsRunning(XCONTAINER_APP)) == false )
{
be_roster->Launch(XCONTAINER_APP);
if (fLaunched == true)
{
fInfoWindow -> GetPrefs();
fInfoWindow -> Show();
fLaunched = false;
break;
}
BMessenger messenger;
BMessage msg(CMD_UPDATE_CONTAINER_ITEM);
messenger = BMessenger(fInfoWindow);
messenger.SendMessage(&msg);
}
}
break;
default:
BApplication :: MessageReceived(msg);
break;
}
}
void InfoApplication::ReadyToRun()
{
fMsgnr = BMessenger(this);
be_roster -> StartWatching(fMsgnr);
PostMessage(B_SOME_APP_LAUNCHED);
}
int main()
{
InfoApplication infoApplication;
infoApplication.Run();
return(0);
}