libui/haiku/entry.cpp

66 lines
1.1 KiB
C++

// 18 november 2015
#include "uipriv_haiku.hpp"
struct uiEntry {
uiHaikuControl c;
BTextControl *tc;
void (*onChanged)(uiEntry *, void *);
void *onChangedData;
};
uiHaikuDefineControl(
uiEntry, // type name
uiEntryType, // type function
tc // handle
)
#define mEntryChanged 0x60FE60FE
static void defaultOnChanged(uiEntry *e, void *data)
{
// do nothing
}
char *uiEntryText(uiEntry *e)
{
return uiHaikuStrdupText(e->tc->Text());
}
void uiEntrySetText(uiEntry *e, const char *text)
{
// TODO does this send a message?
e->tc->SetText(text);
}
void uiEntryOnChanged(uiEntry *e, void (*f)(uiEntry *e, void *data), void *data)
{
e->onChanged = f;
e->onChangedData = data;
}
int uiEntryReadOnly(uiEntry *e)
{
// TODO
return 0;
}
void uiEntrySetReadOnly(uiEntry *e, int readonly)
{
// TODO
}
uiEntry *uiNewEntry(void)
{
uiEntry *e;
e = (uiEntry *) uiNewControl(uiEntryType());
e->tc = new BTextControl(NULL, "", new BMessage(mEntryChanged));
uiEntryOnChanged(e, defaultOnChanged, NULL);
uiHaikuFinishNewControl(e, uiEntry);
return e;
}