SOL9 2.0 Sample: DialogView

SOL9 2.0 Samples

1 Screenshot


2 Source code

/*
 * 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 (...) {

    }
}

Last modified: 11 Nov 2009

Copyright (c) 2009 Antillia.com ALL RIGHTS RESERVED.