/*
* 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);
}
};
}
|