58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
/*
|
|
* Copyright (c) 2005-2010, Haiku, Inc.
|
|
* Distributed under the terms of the MIT license.
|
|
*
|
|
* Author:
|
|
* DarkWyrm <darkwyrm@gmail.com>
|
|
*/
|
|
#include "InternalEditors.h"
|
|
#include "ResourceData.h"
|
|
|
|
#include <Message.h>
|
|
#include <Messenger.h>
|
|
#include <String.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
DoubleEditor::DoubleEditor(const BRect &frame, ResourceData *data,
|
|
BHandler *owner)
|
|
: Editor(frame, data, owner)
|
|
{
|
|
if (data->GetName())
|
|
SetTitle(data->GetName());
|
|
|
|
fView = new StringEditView(Bounds());
|
|
AddChild(fView);
|
|
|
|
fView->SetID(data->GetIDString());
|
|
fView->SetName(data->GetName());
|
|
fView->SetValue(data->GetData());
|
|
}
|
|
|
|
|
|
void
|
|
DoubleEditor::MessageReceived(BMessage *msg)
|
|
{
|
|
if (msg->what == M_UPDATE_RESOURCE) {
|
|
// We have to have an ID, so if the squirrely developer didn't give us
|
|
// one, don't do anything
|
|
if (fView->GetID()) {
|
|
int32 newid = atol(fView->GetID());
|
|
GetData()->SetID(newid);
|
|
}
|
|
|
|
GetData()->SetName(fView->GetName());
|
|
GetData()->SetData(fView->GetValue(), strlen(fView->GetValue()));
|
|
|
|
BMessage updatemsg(M_UPDATE_RESOURCE);
|
|
updatemsg.AddPointer("item", GetData());
|
|
BMessenger msgr(GetOwner());
|
|
msgr.SendMessage(&updatemsg);
|
|
PostMessage(B_QUIT_REQUESTED);
|
|
|
|
} else {
|
|
Editor::MessageReceived(msg);
|
|
}
|
|
}
|
|
|