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#ifndef INTERNALEDITORS_H
9#define INTERNALEDITORS_H
10
11#include <Button.h>
12#include <TextControl.h>
13#include <StringView.h>
14#include <View.h>
15
16#include "Editor.h"
17
18class StringEditView : public BView
19{
20public:
21					StringEditView(const BRect &frame);
22					~StringEditView(void);
23
24	void			AttachedToWindow(void);
25
26	const char *	GetID(void) const { return fIDBox->Text(); }
27	void			SetID(const char *idstring) { fIDBox->SetText(idstring); }
28
29	const char *	GetName(void) const { return fNameBox->Text(); }
30	void			SetName(const char *name) { fNameBox->SetText(name); }
31
32	const char *	GetValue(void) const { return fValueView->Text(); }
33	void			SetValue(const char *value) { fValueView->SetText(value); }
34
35	void			EnableID(const bool &value) { fIDBox->SetEnabled(value); }
36	bool			IsIDEnabled(void) const { return fIDBox->IsEnabled(); }
37
38	float			GetPreferredWidth(void) const;
39	float			GetPreferredHeight(void) const;
40
41private:
42	BTextControl	*fIDBox,
43					*fNameBox;
44	BTextView		*fValueView;
45
46	BButton			*fCancel,
47					*fOK;
48};
49
50class DoubleEditor : public Editor
51{
52public:
53			DoubleEditor(const BRect &frame, ResourceData *data,
54						BHandler *owner);
55	void	MessageReceived(BMessage *msg);
56
57private:
58	StringEditView	*fView;
59};
60
61class StringEditor : public Editor
62{
63public:
64			StringEditor(const BRect &frame, ResourceData *data,
65						BHandler *owner);
66	void	MessageReceived(BMessage *msg);
67
68private:
69	StringEditView	*fView;
70};
71
72class BitmapView;
73
74class ImageEditor : public Editor
75{
76public:
77			ImageEditor(const BRect &frame, ResourceData *data,
78						BHandler *owner);
79			~ImageEditor(void);
80	void	MessageReceived(BMessage *msg);
81	void	FrameResized(float w, float h);
82
83private:
84	BTextControl	*fIDBox;
85	BTextControl	*fNameBox;
86
87	BButton			*fOK,
88					*fCancel;
89
90	BBitmap			*fImage;
91	BitmapView		*fImageView;
92};
93
94#endif
95