uiButton work. No event ties yet.

This commit is contained in:
Pietro Gagliardi 2015-11-19 17:11:35 -05:00
parent 6719275576
commit 278c973ae5
3 changed files with 23 additions and 8 deletions

View File

@ -127,6 +127,8 @@ static uiBox *finishNewBox(orientation o)
b->layout = new BGroupLayout(o, 0); b->layout = new BGroupLayout(o, 0);
b->view = new BView(NULL, B_SUPPORTS_LAYOUT, b->layout); b->view = new BView(NULL, B_SUPPORTS_LAYOUT, b->layout);
// TODO is this really necessary? is it correct?
b->view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
b->vertical = o == B_VERTICAL; b->vertical = o == B_VERTICAL;

View File

@ -3,29 +3,38 @@
struct uiButton { struct uiButton {
uiHaikuControl c; uiHaikuControl c;
BStringView *dummy; BButton *button;
void (*onClicked)(uiButton *, void *);
void *onClickedData;
}; };
uiHaikuDefineControl( uiHaikuDefineControl(
uiButton, // type name uiButton, // type name
uiButtonType, // type function uiButtonType, // type function
dummy // handle button // handle
) )
#define mButtonClicked 0x4E754E75
static void defaultOnClicked(uiButton *b, void *data)
{
// do nothing
}
char *uiButtonText(uiButton *b) char *uiButtonText(uiButton *b)
{ {
// TODO return uiHaikuStrdupText(b->button->Label());
return NULL;
} }
void uiButtonSetText(uiButton *b, const char *text) void uiButtonSetText(uiButton *b, const char *text)
{ {
// TODO b->button->SetLabel(text);
} }
void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *b, void *data), void *data) void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *b, void *data), void *data)
{ {
// TODO b->onClicked = f;
b->onClickedData = data;
} }
uiButton *uiNewButton(const char *text) uiButton *uiNewButton(const char *text)
@ -34,8 +43,10 @@ uiButton *uiNewButton(const char *text)
b = (uiButton *) uiNewControl(uiButtonType()); b = (uiButton *) uiNewControl(uiButtonType());
b->dummy = new BStringView(BRect(0, 0, 1, 1), NULL, b->button = new BButton(text, new BMessage(mButtonClicked));
"TODO uiButton not implemented");
// TODO hook up events
uiButtonOnClicked(b, defaultOnClicked, NULL);
uiHaikuFinishNewControl(b, uiButton); uiHaikuFinishNewControl(b, uiButton);

View File

@ -49,6 +49,8 @@ void uiTabInsertAt(uiTab *t, const char *name, uintmax_t before, uiControl *c)
p.view = new BView(BRect(0, 0, 1, 1), NULL, p.view = new BView(BRect(0, 0, 1, 1), NULL,
B_FOLLOW_ALL_SIDES, 0); B_FOLLOW_ALL_SIDES, 0);
// TODO needed?
p.view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
p.tab = new BTab(p.view); p.tab = new BTab(p.view);
p.child = newSingleChild(c, uiControl(t), attach, p.view); p.child = newSingleChild(c, uiControl(t), attach, p.view);