Does this look familiar? Copied the DiskProbe UI - not functional yet, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6553 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
5d5bcda961
commit
56aa406a66
@ -116,7 +116,7 @@ DiskProbe::DiskProbe()
|
|||||||
: BApplication(kSignature),
|
: BApplication(kSignature),
|
||||||
fOpenWindow(NULL),
|
fOpenWindow(NULL),
|
||||||
fWindowCount(0),
|
fWindowCount(0),
|
||||||
fWindowPosition(50, 50, 500, 500)
|
fWindowPosition(50, 50, 550, 500)
|
||||||
{
|
{
|
||||||
fFilePanel = new BFilePanel();
|
fFilePanel = new BFilePanel();
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ App DiskProbe :
|
|||||||
DiskProbe.cpp
|
DiskProbe.cpp
|
||||||
DataEditor.cpp
|
DataEditor.cpp
|
||||||
ProbeWindow.cpp
|
ProbeWindow.cpp
|
||||||
|
ProbeView.cpp
|
||||||
OpenWindow.cpp
|
OpenWindow.cpp
|
||||||
;
|
;
|
||||||
|
|
||||||
|
453
src/apps/diskprobe/ProbeView.cpp
Normal file
453
src/apps/diskprobe/ProbeView.cpp
Normal file
@ -0,0 +1,453 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||||
|
** Distributed under the terms of the OpenBeOS License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "ProbeView.h"
|
||||||
|
|
||||||
|
#define BEOS_R5_COMPATIBLE
|
||||||
|
// for SetLimits()
|
||||||
|
|
||||||
|
#include <Window.h>
|
||||||
|
#include <TextControl.h>
|
||||||
|
#include <StringView.h>
|
||||||
|
#include <Slider.h>
|
||||||
|
#include <Bitmap.h>
|
||||||
|
#include <Box.h>
|
||||||
|
#include <MenuBar.h>
|
||||||
|
#include <MenuItem.h>
|
||||||
|
#include <String.h>
|
||||||
|
#include <Entry.h>
|
||||||
|
#include <Path.h>
|
||||||
|
#include <NodeInfo.h>
|
||||||
|
#include <Node.h>
|
||||||
|
#include <NodeMonitor.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
|
class IconView : public BView {
|
||||||
|
public:
|
||||||
|
IconView(BRect frame, entry_ref *ref, bool isDevice);
|
||||||
|
virtual ~IconView();
|
||||||
|
|
||||||
|
virtual void AttachedToWindow();
|
||||||
|
virtual void Draw(BRect updateRect);
|
||||||
|
|
||||||
|
void UpdateIcon();
|
||||||
|
|
||||||
|
private:
|
||||||
|
entry_ref fRef;
|
||||||
|
bool fIsDevice;
|
||||||
|
BBitmap *fBitmap;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Slider : public BSlider {
|
||||||
|
public:
|
||||||
|
Slider(BRect rect, const char *name);
|
||||||
|
virtual ~Slider();
|
||||||
|
|
||||||
|
virtual void DrawBar();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class HeaderView : public BView {
|
||||||
|
public:
|
||||||
|
HeaderView(BRect frame, entry_ref *ref, bool isDevice, const char *attribute = NULL);
|
||||||
|
virtual ~HeaderView();
|
||||||
|
|
||||||
|
virtual void AttachedToWindow();
|
||||||
|
virtual void Draw(BRect updateRect);
|
||||||
|
virtual void GetPreferredSize(float *_width, float *_height);
|
||||||
|
|
||||||
|
private:
|
||||||
|
const char *fAttribute;
|
||||||
|
|
||||||
|
BTextControl *fPositionControl;
|
||||||
|
BStringView *fPathView;
|
||||||
|
BStringView *fSizeView;
|
||||||
|
BStringView *fOffsetView;
|
||||||
|
BStringView *fFileOffsetView;
|
||||||
|
BSlider *fPositionSlider;
|
||||||
|
IconView *fIconView;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------
|
||||||
|
|
||||||
|
|
||||||
|
IconView::IconView(BRect rect, entry_ref *ref, bool isDevice)
|
||||||
|
: BView(rect, NULL, B_FOLLOW_NONE, B_WILL_DRAW),
|
||||||
|
fRef(*ref),
|
||||||
|
fIsDevice(isDevice),
|
||||||
|
fBitmap(NULL)
|
||||||
|
{
|
||||||
|
UpdateIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
IconView::~IconView()
|
||||||
|
{
|
||||||
|
delete fBitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
IconView::AttachedToWindow()
|
||||||
|
{
|
||||||
|
if (Parent() != NULL)
|
||||||
|
SetViewColor(Parent()->ViewColor());
|
||||||
|
else
|
||||||
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
IconView::Draw(BRect updateRect)
|
||||||
|
{
|
||||||
|
if (fBitmap == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SetDrawingMode(B_OP_OVER);
|
||||||
|
DrawBitmap(fBitmap, updateRect, updateRect);
|
||||||
|
SetDrawingMode(B_OP_COPY);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
IconView::UpdateIcon()
|
||||||
|
{
|
||||||
|
if (fBitmap == NULL)
|
||||||
|
fBitmap = new BBitmap(BRect(0, 0, 31, 31), B_CMAP8);
|
||||||
|
|
||||||
|
if (fBitmap != NULL) {
|
||||||
|
status_t status = B_ERROR;
|
||||||
|
|
||||||
|
if (fIsDevice) {
|
||||||
|
BPath path(&fRef);
|
||||||
|
status = get_device_icon(path.Path(), fBitmap->Bits(), B_LARGE_ICON);
|
||||||
|
} else
|
||||||
|
status = BNodeInfo::GetTrackerIcon(&fRef, fBitmap);
|
||||||
|
|
||||||
|
if (status != B_OK) {
|
||||||
|
// ToDo: get a standard generic icon here?
|
||||||
|
delete fBitmap;
|
||||||
|
fBitmap = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
Slider::Slider(BRect rect, const char *name)
|
||||||
|
: BSlider(rect, name, NULL, NULL, 0, 0x10000000, B_HORIZONTAL, B_TRIANGLE_THUMB)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Slider::~Slider()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Slider::DrawBar()
|
||||||
|
{
|
||||||
|
BView *view = OffscreenView();
|
||||||
|
|
||||||
|
BRect barFrame = BarFrame();
|
||||||
|
BRect frame = barFrame.InsetByCopy(1, 1);
|
||||||
|
frame.top++;
|
||||||
|
frame.left++;
|
||||||
|
frame.right = ThumbFrame().left + ThumbFrame().Width() / 2;
|
||||||
|
view->SetHighColor(ui_color(B_CONTROL_HIGHLIGHT_COLOR)); //102, 152, 203);
|
||||||
|
// ToDo: the color should probably be retrieved from one of the ui colors
|
||||||
|
view->FillRect(frame);
|
||||||
|
|
||||||
|
frame.left = frame.right;
|
||||||
|
frame.right = barFrame.right - 1;
|
||||||
|
view->SetHighColor(tint_color(ViewColor(), B_DARKEN_1_TINT));
|
||||||
|
view->FillRect(frame);
|
||||||
|
|
||||||
|
rgb_color cornerColor = tint_color(ViewColor(), B_DARKEN_1_TINT);
|
||||||
|
rgb_color darkColor = tint_color(ViewColor(), B_DARKEN_3_TINT);
|
||||||
|
|
||||||
|
view->BeginLineArray(9);
|
||||||
|
|
||||||
|
// the corners
|
||||||
|
view->AddLine(barFrame.LeftTop(), barFrame.LeftTop(), cornerColor);
|
||||||
|
view->AddLine(barFrame.LeftBottom(), barFrame.LeftBottom(), cornerColor);
|
||||||
|
view->AddLine(barFrame.RightTop(), barFrame.RightTop(), cornerColor);
|
||||||
|
|
||||||
|
// the edges
|
||||||
|
view->AddLine(BPoint(barFrame.left, barFrame.top + 1),
|
||||||
|
BPoint(barFrame.left, barFrame.bottom - 1), darkColor);
|
||||||
|
view->AddLine(BPoint(barFrame.right, barFrame.top + 1),
|
||||||
|
BPoint(barFrame.right, barFrame.bottom), ui_color(B_SHINE_COLOR));
|
||||||
|
|
||||||
|
barFrame.left++;
|
||||||
|
barFrame.right--;
|
||||||
|
view->AddLine(barFrame.LeftTop(), barFrame.RightTop(), darkColor);
|
||||||
|
view->AddLine(barFrame.LeftBottom(), barFrame.RightBottom(), ui_color(B_SHINE_COLOR));
|
||||||
|
|
||||||
|
// the inner edges
|
||||||
|
barFrame.top++;
|
||||||
|
view->AddLine(barFrame.LeftTop(), barFrame.RightTop(), ui_color(B_SHADOW_COLOR));
|
||||||
|
view->AddLine(BPoint(barFrame.left, barFrame.top + 1),
|
||||||
|
BPoint(barFrame.left, barFrame.bottom - 1), ui_color(B_SHADOW_COLOR));
|
||||||
|
|
||||||
|
view->EndLineArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
HeaderView::HeaderView(BRect frame, entry_ref *ref, bool isDevice, const char *attribute)
|
||||||
|
: BView(frame, "probeHeader", B_FOLLOW_LEFT_RIGHT, B_WILL_DRAW),
|
||||||
|
fAttribute(attribute)
|
||||||
|
{
|
||||||
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||||
|
|
||||||
|
fIconView = new IconView(BRect(10, 10, 41, 41), ref, isDevice);
|
||||||
|
AddChild(fIconView);
|
||||||
|
|
||||||
|
BFont boldFont = *be_bold_font;
|
||||||
|
boldFont.SetSize(10.0);
|
||||||
|
BFont plainFont = *be_plain_font;
|
||||||
|
plainFont.SetSize(10.0);
|
||||||
|
|
||||||
|
BStringView *stringView = new BStringView(BRect(50, 6, frame.right, 20),
|
||||||
|
B_EMPTY_STRING, attribute != NULL ? "Attribute: " : isDevice ? "Device: " : "File: ");
|
||||||
|
stringView->SetFont(&boldFont);
|
||||||
|
stringView->ResizeToPreferred();
|
||||||
|
AddChild(stringView);
|
||||||
|
|
||||||
|
BPath path(ref);
|
||||||
|
BString string = path.Path();
|
||||||
|
if (attribute != NULL) {
|
||||||
|
string.Prepend(" (");
|
||||||
|
string.Prepend(attribute);
|
||||||
|
string.Append(")");
|
||||||
|
}
|
||||||
|
BRect rect = stringView->Frame();
|
||||||
|
rect.left = rect.right;
|
||||||
|
rect.right = frame.right;
|
||||||
|
fPathView = new BStringView(rect, B_EMPTY_STRING, string.String());
|
||||||
|
fPathView->SetFont(&plainFont);
|
||||||
|
AddChild(fPathView);
|
||||||
|
|
||||||
|
stringView = new BStringView(BRect(50, 27, frame.right, 50), B_EMPTY_STRING, "Block: ");
|
||||||
|
stringView->SetFont(&boldFont);
|
||||||
|
stringView->ResizeToPreferred();
|
||||||
|
AddChild(stringView);
|
||||||
|
|
||||||
|
rect = stringView->Frame();
|
||||||
|
rect.left = rect.right;
|
||||||
|
rect.right += 75;
|
||||||
|
rect.OffsetBy(0, -2);
|
||||||
|
// BTextControl oddities
|
||||||
|
fPositionControl = new BTextControl(rect, B_EMPTY_STRING, NULL, "0x0", NULL);
|
||||||
|
fPositionControl->SetDivider(0.0);
|
||||||
|
fPositionControl->SetFont(&plainFont);
|
||||||
|
fPositionControl->TextView()->SetFontAndColor(&plainFont);
|
||||||
|
fPositionControl->SetAlignment(B_ALIGN_LEFT, B_ALIGN_RIGHT);
|
||||||
|
AddChild(fPositionControl);
|
||||||
|
|
||||||
|
rect.left = rect.right + 4;
|
||||||
|
rect.right = rect.left + 75;
|
||||||
|
rect.OffsetBy(0, 2);
|
||||||
|
fSizeView = new BStringView(rect, B_EMPTY_STRING, "of 0x0");
|
||||||
|
fSizeView->SetFont(&plainFont);
|
||||||
|
AddChild(fSizeView);
|
||||||
|
|
||||||
|
rect.left = rect.right + 4;
|
||||||
|
rect.right = frame.right;
|
||||||
|
stringView = new BStringView(rect, B_EMPTY_STRING, "Offset: ");
|
||||||
|
stringView->SetFont(&boldFont);
|
||||||
|
stringView->ResizeToPreferred();
|
||||||
|
AddChild(stringView);
|
||||||
|
|
||||||
|
rect = stringView->Frame();
|
||||||
|
rect.left = rect.right;
|
||||||
|
rect.right = rect.left + 40;
|
||||||
|
fOffsetView = new BStringView(rect, B_EMPTY_STRING, "0x0");
|
||||||
|
fOffsetView->SetFont(&plainFont);
|
||||||
|
AddChild(fOffsetView);
|
||||||
|
|
||||||
|
rect.left = rect.right + 4;
|
||||||
|
rect.right = frame.right;
|
||||||
|
stringView = new BStringView(rect, B_EMPTY_STRING,
|
||||||
|
attribute != NULL ? "Attribute Offset: " : isDevice ? "Device Offset: " : "File Offset: ");
|
||||||
|
stringView->SetFont(&boldFont);
|
||||||
|
stringView->ResizeToPreferred();
|
||||||
|
AddChild(stringView);
|
||||||
|
|
||||||
|
rect = stringView->Frame();
|
||||||
|
rect.left = rect.right;
|
||||||
|
rect.right = rect.left + 70;
|
||||||
|
fFileOffsetView = new BStringView(rect, B_EMPTY_STRING, "0x0");
|
||||||
|
fFileOffsetView->SetFont(&plainFont);
|
||||||
|
AddChild(fFileOffsetView);
|
||||||
|
|
||||||
|
rect = Bounds();
|
||||||
|
rect.InsetBy(3, 0);
|
||||||
|
rect.top = 48;
|
||||||
|
rect.bottom = 60;
|
||||||
|
fPositionSlider = new Slider(rect, "slider");
|
||||||
|
fPositionSlider->SetBarThickness(8);
|
||||||
|
fPositionSlider->ResizeToPreferred();
|
||||||
|
AddChild(fPositionSlider);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HeaderView::~HeaderView()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::AttachedToWindow()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::Draw(BRect updateRect)
|
||||||
|
{
|
||||||
|
BRect rect = Bounds();
|
||||||
|
rect.bottom -= 2;
|
||||||
|
|
||||||
|
SetHighColor(ui_color(B_SHINE_COLOR));
|
||||||
|
StrokeLine(rect.LeftTop(), rect.LeftBottom());
|
||||||
|
StrokeLine(rect.LeftTop(), rect.RightTop());
|
||||||
|
|
||||||
|
rect.bottom++;
|
||||||
|
SetHighColor(tint_color(ViewColor(), B_DARKEN_1_TINT));
|
||||||
|
StrokeLine(rect.LeftBottom(), rect.RightBottom());
|
||||||
|
|
||||||
|
rect.bottom++;
|
||||||
|
SetHighColor(tint_color(ViewColor(), B_DARKEN_2_TINT));
|
||||||
|
StrokeLine(rect.LeftBottom(), rect.RightBottom());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::GetPreferredSize(float *_width, float *_height)
|
||||||
|
{
|
||||||
|
if (_width)
|
||||||
|
*_width = Bounds().Width();
|
||||||
|
if (_height)
|
||||||
|
*_height = fPositionSlider->Frame().bottom + 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
ProbeView::ProbeView(BRect rect, entry_ref *ref, const char *attribute)
|
||||||
|
: BView(rect, "probeView", B_FOLLOW_ALL, B_WILL_DRAW)
|
||||||
|
{
|
||||||
|
BNode node(ref);
|
||||||
|
|
||||||
|
node_ref nodeRef;
|
||||||
|
if (node.GetNodeRef(&nodeRef) == B_OK)
|
||||||
|
watch_node(&nodeRef, B_WATCH_STAT, this);
|
||||||
|
|
||||||
|
struct stat stat;
|
||||||
|
stat.st_mode = 0;
|
||||||
|
|
||||||
|
BEntry entry(ref);
|
||||||
|
entry.GetStat(&stat);
|
||||||
|
fIsDevice = (stat.st_mode & (S_IFBLK | S_IFCHR)) != 0;
|
||||||
|
|
||||||
|
rect = Bounds();
|
||||||
|
rect.bottom = rect.top + 62;
|
||||||
|
fHeaderView = new HeaderView(rect, ref, fIsDevice);
|
||||||
|
fHeaderView->ResizeToPreferred();
|
||||||
|
AddChild(fHeaderView);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ProbeView::~ProbeView()
|
||||||
|
{
|
||||||
|
stop_watching(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ProbeView::AttachedToWindow()
|
||||||
|
{
|
||||||
|
// Add menu to window
|
||||||
|
|
||||||
|
BMenuBar *bar = Window()->KeyMenuBar();
|
||||||
|
if (bar == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
BMenu *menu = new BMenu("Edit");
|
||||||
|
menu->AddItem(new BMenuItem("Undo", NULL, 'Z', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Redo", NULL, 'Z', B_COMMAND_KEY | B_SHIFT_KEY));
|
||||||
|
menu->AddSeparatorItem();
|
||||||
|
menu->AddItem(new BMenuItem("Copy", NULL, 'C', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Paste", NULL, 'V', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Select All", NULL, 'A', B_COMMAND_KEY));
|
||||||
|
menu->AddSeparatorItem();
|
||||||
|
menu->AddItem(new BMenuItem("Find" B_UTF8_ELLIPSIS, NULL, 'F', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Find Again", NULL, 'G', B_COMMAND_KEY));
|
||||||
|
bar->AddItem(menu);
|
||||||
|
|
||||||
|
menu = new BMenu("Block");
|
||||||
|
menu->AddItem(new BMenuItem("Next", NULL, B_RIGHT_ARROW, B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Previous", NULL, B_LEFT_ARROW, B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem("Back", NULL, 'J', B_COMMAND_KEY));
|
||||||
|
|
||||||
|
BMenu *subMenu = new BMenu("Selection");
|
||||||
|
menu->AddItem(new BMenuItem(subMenu));
|
||||||
|
menu->AddSeparatorItem();
|
||||||
|
|
||||||
|
menu->AddItem(new BMenuItem("Write", NULL, 'J', B_COMMAND_KEY));
|
||||||
|
menu->AddSeparatorItem();
|
||||||
|
|
||||||
|
subMenu = new BMenu("Bookmarks");
|
||||||
|
subMenu->AddItem(new BMenuItem("Add", NULL, 'B', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem(subMenu));
|
||||||
|
bar->AddItem(menu);
|
||||||
|
|
||||||
|
menu = new BMenu("View");
|
||||||
|
subMenu = new BMenu("Base");
|
||||||
|
subMenu->AddItem(new BMenuItem("Decimal", NULL, 'D', B_COMMAND_KEY));
|
||||||
|
subMenu->AddItem(new BMenuItem("Hex", NULL, 'H', B_COMMAND_KEY));
|
||||||
|
menu->AddItem(new BMenuItem(subMenu));
|
||||||
|
|
||||||
|
subMenu = new BMenu("BlockSize");
|
||||||
|
subMenu->AddItem(new BMenuItem("512", NULL));
|
||||||
|
menu->AddItem(new BMenuItem(subMenu));
|
||||||
|
menu->AddSeparatorItem();
|
||||||
|
|
||||||
|
subMenu = new BMenu("Font Size");
|
||||||
|
const int32 fontSizes[] = {9, 10, 12, 14, 18, 24, 36, 48};
|
||||||
|
for (uint32 i = 0; i < sizeof(fontSizes) / sizeof(fontSizes[0]); i++) {
|
||||||
|
char buffer[16];
|
||||||
|
snprintf(buffer, sizeof(buffer), "%ld", fontSizes[i]);
|
||||||
|
subMenu->AddItem(new BMenuItem(buffer, NULL));
|
||||||
|
}
|
||||||
|
subMenu->AddSeparatorItem();
|
||||||
|
subMenu->AddItem(new BMenuItem("Fit", NULL));
|
||||||
|
|
||||||
|
menu->AddItem(new BMenuItem(subMenu));
|
||||||
|
bar->AddItem(menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ProbeView::MessageReceived(BMessage *message)
|
||||||
|
{
|
||||||
|
BView::MessageReceived(message);
|
||||||
|
}
|
||||||
|
|
32
src/apps/diskprobe/ProbeView.h
Normal file
32
src/apps/diskprobe/ProbeView.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||||
|
** Distributed under the terms of the OpenBeOS License.
|
||||||
|
*/
|
||||||
|
#ifndef PROBE_VIEW_H
|
||||||
|
#define PROBE_VIEW_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <View.h>
|
||||||
|
#include <Path.h>
|
||||||
|
|
||||||
|
class BTextControl;
|
||||||
|
class BStringView;
|
||||||
|
class BSlider;
|
||||||
|
|
||||||
|
class HeaderView;
|
||||||
|
|
||||||
|
|
||||||
|
class ProbeView : public BView {
|
||||||
|
public:
|
||||||
|
ProbeView(BRect rect, entry_ref *ref, const char *attribute = NULL);
|
||||||
|
virtual ~ProbeView();
|
||||||
|
|
||||||
|
virtual void AttachedToWindow();
|
||||||
|
virtual void MessageReceived(BMessage *message);
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool fIsDevice;
|
||||||
|
HeaderView *fHeaderView;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* PROBE_WINDOW_H */
|
@ -7,6 +7,7 @@
|
|||||||
#include "ProbeWindow.h"
|
#include "ProbeWindow.h"
|
||||||
#include "OpenWindow.h"
|
#include "OpenWindow.h"
|
||||||
#include "DiskProbe.h"
|
#include "DiskProbe.h"
|
||||||
|
#include "ProbeView.h"
|
||||||
|
|
||||||
#include <Application.h>
|
#include <Application.h>
|
||||||
#include <MenuBar.h>
|
#include <MenuBar.h>
|
||||||
@ -68,6 +69,10 @@ ProbeWindow::ProbeWindow(BRect rect, entry_ref *ref, const char *attribute)
|
|||||||
|
|
||||||
// add our interface widgets
|
// add our interface widgets
|
||||||
|
|
||||||
|
BRect rect = Bounds();
|
||||||
|
rect.top = menuBar->Bounds().Height() + 1;
|
||||||
|
BView *view = new ProbeView(rect, ref, attribute);
|
||||||
|
AddChild(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user