1/*
2 * Copyright (c) 2005-2010, Haiku, Inc.
3 * Distributed under the terms of the MIT license.
4 *
5 * Author:
6 *		DarkWyrm <darkwyrm@gmail.com>
7 */
8#include "InternalEditors.h"
9#include "ResourceData.h"
10
11#include <Message.h>
12#include <Messenger.h>
13#include <String.h>
14
15#include <stdlib.h>
16
17DoubleEditor::DoubleEditor(const BRect &frame, ResourceData *data,
18							BHandler *owner)
19  :	Editor(frame, data, owner)
20{
21	if (data->GetName())
22		SetTitle(data->GetName());
23
24	fView = new StringEditView(Bounds());
25	AddChild(fView);
26
27	fView->SetID(data->GetIDString());
28	fView->SetName(data->GetName());
29	fView->SetValue(data->GetData());
30}
31
32
33void
34DoubleEditor::MessageReceived(BMessage *msg)
35{
36	if (msg->what == M_UPDATE_RESOURCE) {
37		// We have to have an ID, so if the squirrely developer didn't give us
38		// one, don't do anything
39		if (fView->GetID()) {
40			int32 newid = atol(fView->GetID());
41			GetData()->SetID(newid);
42		}
43
44		GetData()->SetName(fView->GetName());
45		GetData()->SetData(fView->GetValue(), strlen(fView->GetValue()));
46
47		BMessage updatemsg(M_UPDATE_RESOURCE);
48		updatemsg.AddPointer("item", GetData());
49		BMessenger msgr(GetOwner());
50		msgr.SendMessage(&updatemsg);
51		PostMessage(B_QUIT_REQUESTED);
52
53	} else {
54		Editor::MessageReceived(msg);
55	}
56}
57
58