1/*
2 * Copyright 2004-2018, Axel D��rfler, axeld@pinc-software.de.
3 * All rights reserved. Distributed under the terms of the MIT license.
4 */
5#ifndef PROBE_VIEW_H
6#define PROBE_VIEW_H
7
8
9#include "DataEditor.h"
10
11#include <View.h>
12#include <String.h>
13#include <Path.h>
14
15
16class BScrollView;
17class BMenuItem;
18class BMenu;
19
20class HeaderView;
21class DataView;
22class EditorLooper;
23
24
25class ProbeView : public BView {
26public:
27								ProbeView(entry_ref* ref,
28									const char* attribute = NULL,
29									const BMessage* settings = NULL);
30	virtual						~ProbeView();
31
32	virtual	void				DetachedFromWindow();
33	virtual	void				AttachedToWindow();
34	virtual	void				AllAttached();
35	virtual	void				WindowActivated(bool active);
36	virtual	void				MessageReceived(BMessage* message);
37
38			void				AddSaveMenuItems(BMenu* menu, int32 index);
39			void				AddPrintMenuItems(BMenu* menu, int32 index);
40			void				AddViewAsMenuItems();
41
42			bool				QuitRequested();
43
44			DataEditor&			Editor() { return fEditor; }
45
46private:
47			void				_UpdateAttributesMenu(BMenu* menu);
48			void				_UpdateSelectionMenuItems(int64 start,
49									int64 end);
50			void				_UpdateBookmarkMenuItems();
51			void				_AddBookmark(off_t position);
52			void				_RemoveTypeEditor();
53			void				_SetTypeEditor(int32 index);
54			void				_CheckClipboard();
55			status_t			_PageSetup();
56			void				_Print();
57			status_t			_Save();
58
59private:
60			DataEditor			fEditor;
61			EditorLooper*		fEditorLooper;
62			HeaderView*			fHeaderView;
63			DataView*			fDataView;
64			BScrollView*		fScrollView;
65			BMenuItem*			fPasteMenuItem;
66			BMenuItem*			fUndoMenuItem;
67			BMenuItem*			fRedoMenuItem;
68			BMenuItem*			fNativeMenuItem;
69			BMenuItem*			fSwappedMenuItem;
70			BMenuItem*			fSaveMenuItem;
71			BMessage*			fPrintSettings;
72			BMenu*				fBookmarkMenu;
73			BView*				fTypeView;
74
75			BMenuItem*			fFindAgainMenuItem;
76			const uint8*		fLastSearch;
77			size_t				fLastSearchSize;
78};
79
80
81#endif	/* PROBE_VIEW_H */
82