/*
* PopupView.cpp
* Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000 sample
// 2000.02.18
#include <sol\ApplicationView.h>
#include <sol\BorderLayout.h>
#include <sol\PushButton.h>
#include <sol\PopupView.h>
#include <sol\Static.h>
namespace SOL {
class PopupMessage :public PopupView {
private:
Static message;
PushButton ok;
BorderLayout layout;
public:
PopupMessage(): PopupView() { }
public:
virtual Boolean create(View* parent, const TCHAR* title, Args& args)
{
Boolean rc = PopupView::create(parent, title, args);
setLayout(&layout);
Args ar;
message.create(this, NULL, ar);
add(message, BorderLayout::CENTER);
ar.reset();
ok.create(this, _T("Popdown"), ar);
add(ok, BorderLayout::SOUTH);
// Call resize method to layout imediately.
resize();
//<font color="green"> Register callback to ok button to pop down this window.</font>
ok.addCallback(XmNactivateCallback, this,
(Callback)&PopupMessage::popdown, null);
return rc;
}
public:
void setMessage(const TCHAR* text) {
message.setText(text);
}
};
//
class MainView :public ApplicationView {
private:
PushButton popupb;
PopupMessage message;
public:
//<font color="green"> Constructor</font>
MainView(Application& applet, const TCHAR* name, Args& args)
:ApplicationView(applet, name, args)
{
Args ar;
//<font color="green"> Create an instance of ToolBar.</font>
popupb.create(this, _T("Popup a PopupMessage"), ar);
add(popupb);
ar.reset();
ar.set(XmNwidth, 300);
ar.set(XmNheight, 100);
ar.set(XmNstyle, (ulong)WS_THICKFRAME|WS_MINIMIZEBOX|WS_SYSMENU);
message.create(this, _T("PopupMessage"), ar);
message.setMessage(_T("This is a PopupView"));
//<font color="green"> Register popup callback of PopupMessage class to the popupb.</font>
popupb.addCallback(XmNactivateCallback, &message,
(Callback)&PopupView::popup, NULL);
}
};
}
//
void Main(int argc, TCHAR** argv)
{
const TCHAR* appClass = _T("Sample");
try {
Application applet(appClass, argc, argv);
Args args;
args.set(XmNwidth, 300);
args.set(XmNheight, 200);
MainView view(applet, appClass, args);
view.realize();
applet.run();
} catch (...) {
}
}
|