/*
* DialogView.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\ScrolledText.h>
#include <sol\PushButton.h>
#include <sol\DialogView.h>
namespace SOL {
class MessageDialog :public DialogView {
private:
BorderLayout* layout;
Text message;
PushButton ok;
public:
MessageDialog(): DialogView() { layout = NULL; }
public:
virtual Boolean create(View* parent, const TCHAR* title, Args& args)
{
Boolean rc = DialogView::create(parent, title, args);
layout = new BorderLayout();
setLayout(layout);
Args ar;
ar.set(XmNstyle, (ulong)ES_MULTILINE);
message.create(this, _T(""), ar);
add(&message, BorderLayout::CENTER);
ar.reset();
ok.create(this, _T("Popdown"), ar);
add(&ok, BorderLayout::SOUTH);
resize();
//<font color="green">Register callback to ok button to pop down this window.</font>
ok.addCallback(XmNactivateCallback, this,
(Callback)&MessageDialog::popdown, null);
return rc;
}
void setMessage(const TCHAR* text) {
message.setText(text);
}
};
class MainView :public ApplicationView {
private:
PushButton popupb;
MessageDialog messageDlg;
public:
//<font color="green"> Constructor</font>
MainView(Application& applet, const TCHAR* name, Args& args)
:ApplicationView(applet, name, args)
{
Args ar;
popupb.create(this, _T("Popup a MessageDialog"), ar);
add(&popupb);
ar.reset();
ar.set(XmNx, 100);
ar.set(XmNy, 100);
ar.set(XmNwidth, 300);
ar.set(XmNheight, 200);
messageDlg.create(this, _T("MessageDialog"), ar);
messageDlg.setMessage(_T("Hello.\r\nThis is a DialogView"));
//<font color="green"> Register popup callback of PopupView class to the popupb.</font>
popupb.addCallback(XmNactivateCallback, &messageDlg,
(Callback)&PopupView::popupAsItIs, 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 (...) {
}
}
|