SOL9 2.0 Sample: PopupView

SOL9 2.0 Samples

1 Screenshot


2 Source code

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

    }
}


Last modified: 11 Nov 2009

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