SOL9 2.0 Class: Static

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * Static.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
// 1999.08.13 getPreferredSize.
// 2000.02.18
#pragma once

#include <sol\Primitive.h>


namespace SOL {

class Static :public Primitive {
public:
    Static():Primitive() { }

public:
    Static(View* parent, HWND hwnd)
        :Primitive(parent, hwnd) { }

public:
    Static(View* parent, const TCHAR* name, Args& args)
    :Primitive(parent, name, 
            args.set(XmNpredefined, TRUE)
                .set(XmNuseDefaultFont, _T("true"))
                .set(XmNclassName, _T("Static")))
    {
        ulong val;
        if (args.get(XmNwidth, &val)  == FALSE ||
            args.get(XmNheight, &val) == FALSE) {
            const TCHAR*   label = name;
            if (args.get(XmNlabelString, &val)) {
                label = (TCHAR*)val;
            }
            resize(label);
        }
    }

public:
    virtual Boolean create(View* parent, const TCHAR* name, Args& args)
    {
        Boolean rc = Primitive::create(parent, name, 
            args.set(XmNpredefined, TRUE)
                .set(XmNuseDefaultFont, _T("true"))
            .set(XmNclassName, _T("Static")));

        ulong val;
        if (args.get(XmNwidth, &val)  == FALSE ||
            args.get(XmNheight, &val) == FALSE) {
            const TCHAR*   label = name;
            if (args.get(XmNlabelString, &val)) {
                label = (TCHAR*)val;
            }
            resize(label);
        }
        return rc;
    }

public:
// 1999.08.13
    void getPreferredSize(Dimension& d)
    {
        TCHAR label[256];
        label[0] = Zero;
        getText(label, sizeof(label));
        resize(label);
        int w, h;
        getSize(w, h);
        d.set(w, h);
    }

    void    disable() { }

    HICON    getIcon() {
            return (HICON)send(STM_GETICON, 0, 0L);
    }

    BOOL    hasCallback() { return FALSE; }

    HICON    setIcon(HICON hicon) {
            return (HICON)send(STM_SETICON, (WPARAM)hicon, 0L);
    }

};

}




Last modified: 1 Feb 2012

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