Beginnings of the application type window - doesn't do anything yet, but at
least it looks more or less okay (long description border isn't right yet) and is font sensitive. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16632 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
14fb2b690b
commit
507514408c
407
src/preferences/filetypes/ApplicationTypeWindow.cpp
Normal file
407
src/preferences/filetypes/ApplicationTypeWindow.cpp
Normal file
@ -0,0 +1,407 @@
|
||||
/*
|
||||
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#include "ApplicationTypeWindow.h"
|
||||
#include "FileTypes.h"
|
||||
#include "IconView.h"
|
||||
#include "PreferredAppMenu.h"
|
||||
#include "StringView.h"
|
||||
#include "TypeListWindow.h"
|
||||
|
||||
#include <Application.h>
|
||||
#include <Bitmap.h>
|
||||
#include <Box.h>
|
||||
#include <Button.h>
|
||||
#include <CheckBox.h>
|
||||
#include <File.h>
|
||||
#include <ListView.h>
|
||||
#include <MenuBar.h>
|
||||
#include <MenuField.h>
|
||||
#include <MenuItem.h>
|
||||
#include <Mime.h>
|
||||
#include <NodeInfo.h>
|
||||
#include <PopUpMenu.h>
|
||||
#include <RadioButton.h>
|
||||
#include <ScrollView.h>
|
||||
#include <TextControl.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
const uint32 kMsgAddType = 'adtp';
|
||||
const uint32 kMsgRemoveType = 'rmtp';
|
||||
|
||||
|
||||
ApplicationTypeWindow::ApplicationTypeWindow(BPoint position, const BEntry& entry)
|
||||
: BWindow(BRect(0.0f, 0.0f, 250.0f, 340.0f).OffsetBySelf(position),
|
||||
"Application Type", B_TITLED_WINDOW,
|
||||
B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS)
|
||||
{
|
||||
// add the menu
|
||||
|
||||
BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), NULL);
|
||||
AddChild(menuBar);
|
||||
|
||||
BMenu* menu = new BMenu("File");
|
||||
menu->AddItem(new BMenuItem("Save", NULL, 'S', B_COMMAND_KEY));
|
||||
menu->AddItem(new BMenuItem("Save Into Resource File" B_UTF8_ELLIPSIS,
|
||||
NULL));
|
||||
|
||||
menu->AddSeparatorItem();
|
||||
menu->AddItem(new BMenuItem("Close", new BMessage(B_QUIT_REQUESTED),
|
||||
'W', B_COMMAND_KEY));
|
||||
menuBar->AddItem(menu);
|
||||
|
||||
// Top view and signature
|
||||
|
||||
BRect rect = Bounds();
|
||||
rect.top = menuBar->Bounds().Height() + 1.0f;
|
||||
BView* topView = new BView(rect, NULL, B_FOLLOW_ALL, B_WILL_DRAW);
|
||||
topView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||
AddChild(topView);
|
||||
|
||||
rect = topView->Bounds().InsetByCopy(8.0f, 8.0f);
|
||||
fSignatureControl = new BTextControl(rect, "signature", "Signature:", NULL,
|
||||
NULL, B_FOLLOW_LEFT_RIGHT);
|
||||
fSignatureControl->SetDivider(fSignatureControl->StringWidth(
|
||||
fSignatureControl->Label()) + 4.0f);
|
||||
float width, height;
|
||||
fSignatureControl->GetPreferredSize(&width, &height);
|
||||
fSignatureControl->ResizeTo(rect.Width(), height);
|
||||
topView->AddChild(fSignatureControl);
|
||||
|
||||
// filter out invalid characters that can't be part of a MIME type name
|
||||
BTextView* textView = fSignatureControl->TextView();
|
||||
const char* disallowedCharacters = "/<>@,;:\"()[]?=";
|
||||
for (int32 i = 0; disallowedCharacters[i]; i++) {
|
||||
textView->DisallowChar(disallowedCharacters[i]);
|
||||
}
|
||||
|
||||
// "Application Flags" group
|
||||
|
||||
BFont font(be_bold_font);
|
||||
font_height fontHeight;
|
||||
font.GetHeight(&fontHeight);
|
||||
|
||||
width = font.StringWidth("Icon") + 16.0f;
|
||||
if (width < B_LARGE_ICON + 16.0f)
|
||||
width = B_LARGE_ICON + 16.0f;
|
||||
|
||||
rect.top = fSignatureControl->Frame().bottom + 4.0f;
|
||||
rect.bottom = rect.top + 100.0f;
|
||||
rect.right -= width + 8.0f;
|
||||
BBox* box = new BBox(rect, NULL, B_FOLLOW_LEFT_RIGHT);
|
||||
topView->AddChild(box);
|
||||
|
||||
fFlagsCheckBox = new BCheckBox(rect, "flags", "Application Flags",
|
||||
NULL); //new BMessage(kMsgFlagChanged));
|
||||
fFlagsCheckBox->SetValue(B_CONTROL_ON);
|
||||
fFlagsCheckBox->ResizeToPreferred();
|
||||
box->SetLabel(fFlagsCheckBox);
|
||||
|
||||
rect.top = fFlagsCheckBox->Bounds().Height() + 4.0f;
|
||||
fSingleLaunchButton = new BRadioButton(rect, "single", "Single Launch", NULL);
|
||||
fSingleLaunchButton->ResizeToPreferred();
|
||||
box->AddChild(fSingleLaunchButton);
|
||||
|
||||
rect.OffsetBy(0.0f, fSingleLaunchButton->Bounds().Height() + 0.0f);
|
||||
fMultipleLaunchButton = new BRadioButton(rect, "multiple", "Multiple Launch", NULL);
|
||||
fMultipleLaunchButton->ResizeToPreferred();
|
||||
box->AddChild(fMultipleLaunchButton);
|
||||
|
||||
rect.OffsetBy(0.0f, fSingleLaunchButton->Bounds().Height() + 0.0f);
|
||||
fExclusiveLaunchButton = new BRadioButton(rect, "exclusive", "Exclusive Launch", NULL);
|
||||
fExclusiveLaunchButton->ResizeToPreferred();
|
||||
box->AddChild(fExclusiveLaunchButton);
|
||||
|
||||
rect.top = fSingleLaunchButton->Frame().top;
|
||||
rect.left = fExclusiveLaunchButton->Frame().right + 4.0f;
|
||||
fArgsOnlyCheckBox = new BCheckBox(rect, "args only", "Args Only", NULL);
|
||||
fArgsOnlyCheckBox->ResizeToPreferred();
|
||||
box->AddChild(fArgsOnlyCheckBox);
|
||||
|
||||
rect.top += fArgsOnlyCheckBox->Bounds().Height();
|
||||
fBackgroundAppCheckBox = new BCheckBox(rect, "background", "Background App", NULL);
|
||||
fBackgroundAppCheckBox->ResizeToPreferred();
|
||||
box->AddChild(fBackgroundAppCheckBox);
|
||||
|
||||
box->ResizeTo(box->Bounds().Width(), fExclusiveLaunchButton->Frame().bottom + 8.0f);
|
||||
|
||||
// "Icon" group
|
||||
|
||||
rect = box->Frame();
|
||||
#ifdef __HAIKU__
|
||||
rect.top += box->TopBorderOffset();
|
||||
#endif
|
||||
rect.left = rect.right + 8.0f;
|
||||
rect.right += width + 8.0f;
|
||||
float iconBoxWidth = rect.Width();
|
||||
box = new BBox(rect, NULL, B_FOLLOW_RIGHT | B_FOLLOW_TOP);
|
||||
box->SetLabel("Icon");
|
||||
#ifdef __HAIKU__
|
||||
box->MoveBy(0.0f, -box->TopBorderOffset());
|
||||
box->ResizeBy(0.0f, box->TopBorderOffset());
|
||||
#endif
|
||||
topView->AddChild(box);
|
||||
|
||||
rect = BRect(8.0f, 0.0f, 7.0f + B_LARGE_ICON, B_LARGE_ICON - 1.0f);
|
||||
#ifdef __HAIKU__
|
||||
rect.OffsetBy(0.0f, (box->Bounds().Height() + box->TopBorderOffset()
|
||||
- rect.Height()) / 2.0f);
|
||||
#else
|
||||
rect.OffsetBy(0.0f, (box->Bounds().Height() - rect.Height()) / 2.0f);
|
||||
#endif
|
||||
if (rect.top < fontHeight.ascent + fontHeight.descent + 4.0f)
|
||||
rect.top = fontHeight.ascent + fontHeight.descent + 4.0f;
|
||||
fIconView = new IconView(rect, "icon");
|
||||
box->AddChild(fIconView);
|
||||
|
||||
// "Supported Types" group
|
||||
|
||||
rect.top = box->Frame().bottom + 8.0f;
|
||||
rect.bottom = rect.top + box->Bounds().Height();
|
||||
rect.left = 8.0f;
|
||||
rect.right = Bounds().Width() - 8.0f;
|
||||
box = new BBox(rect, NULL, B_FOLLOW_LEFT_RIGHT);
|
||||
box->SetLabel("Supported Types");
|
||||
topView->AddChild(box);
|
||||
|
||||
rect = box->Bounds().InsetByCopy(8.0f, 6.0f);
|
||||
rect.top += ceilf(fontHeight.ascent);
|
||||
fAddTypeButton = new BButton(rect, "add type", "Add" B_UTF8_ELLIPSIS,
|
||||
new BMessage(kMsgAddType), B_FOLLOW_RIGHT);
|
||||
fAddTypeButton->ResizeToPreferred();
|
||||
fAddTypeButton->MoveBy(rect.right - fAddTypeButton->Bounds().Width()
|
||||
- B_LARGE_ICON - 16.0f, 0.0f);
|
||||
box->AddChild(fAddTypeButton);
|
||||
|
||||
rect = fAddTypeButton->Frame();
|
||||
rect.OffsetBy(0, rect.Height() + 4.0f);
|
||||
fRemoveTypeButton = new BButton(rect, "remove type", "Remove",
|
||||
new BMessage(kMsgRemoveType), B_FOLLOW_RIGHT);
|
||||
box->AddChild(fRemoveTypeButton);
|
||||
|
||||
rect.right = rect.left - 10.0f - B_V_SCROLL_BAR_WIDTH;
|
||||
rect.left = 10.0f;
|
||||
rect.top = 8.0f + ceilf(fontHeight.ascent);
|
||||
rect.bottom -= 2.0f;
|
||||
// take scrollview border into account
|
||||
fTypeListView = new BListView(rect, "type listview",
|
||||
B_SINGLE_SELECTION_LIST, B_FOLLOW_LEFT_RIGHT);
|
||||
// fTypeListView->SetSelectionMessage(new BMessage(kMsgExtensionSelected));
|
||||
// fTypeListView->SetInvocationMessage(new BMessage(kMsgExtensionInvoked));
|
||||
|
||||
BScrollView* scrollView = new BScrollView("type scrollview", fTypeListView,
|
||||
B_FOLLOW_LEFT_RIGHT, B_FRAME_EVENTS | B_WILL_DRAW, false, true);
|
||||
box->AddChild(scrollView);
|
||||
|
||||
box->ResizeTo(box->Bounds().Width(), fRemoveTypeButton->Frame().bottom + 8.0f);
|
||||
|
||||
rect.left = fRemoveTypeButton->Frame().right + 8.0f;
|
||||
#ifdef __HAIKU__
|
||||
rect.top = (box->Bounds().Height() + box->TopBorderOffset() - B_LARGE_ICON) / 2.0f;
|
||||
#else
|
||||
rect.top = (box->Bounds().Height() - B_LARGE_ICON) / 2.0f;
|
||||
#endif
|
||||
rect.right = rect.left + B_LARGE_ICON - 1.0f;
|
||||
rect.bottom = rect.top + B_LARGE_ICON - 1.0f;
|
||||
fTypeIconView = new IconView(rect, "type icon", B_FOLLOW_RIGHT | B_FOLLOW_TOP);
|
||||
box->AddChild(fTypeIconView);
|
||||
|
||||
// "Version Info" group
|
||||
|
||||
rect.top = box->Frame().bottom + 8.0f;
|
||||
rect.bottom = rect.top + box->Bounds().Height();
|
||||
rect.left = 8.0f;
|
||||
rect.right = Bounds().Width() - 8.0f;
|
||||
box = new BBox(rect, NULL, B_FOLLOW_LEFT_RIGHT);
|
||||
// the resizing mode will later be set to B_FOLLOW_ALL
|
||||
box->SetLabel("Version Info");
|
||||
topView->AddChild(box);
|
||||
|
||||
BMenuField* menuField;
|
||||
BPopUpMenu *popUpMenu;
|
||||
BMenuItem* item;
|
||||
#if 0
|
||||
popUpMenu = new BPopUpMenu("version info", true, true);
|
||||
item = new BMenuItem("Version Info", NULL);
|
||||
item->SetMarked(true);
|
||||
popUpMenu->AddItem(item);
|
||||
item = new BMenuItem("System Version Info", NULL);
|
||||
popUpMenu->AddItem(item);
|
||||
|
||||
menuField = new BMenuField(BRect(0, 0, 100, 15),
|
||||
"version kind", NULL, popUpMenu, true);
|
||||
menuField->ResizeToPreferred();
|
||||
box->SetLabel(menuField);
|
||||
#endif
|
||||
|
||||
rect.top = 4.0f + ceilf(fontHeight.ascent + fontHeight.descent);
|
||||
fMajorVersionControl = new BTextControl(rect, "major", "Version:", NULL,
|
||||
NULL);
|
||||
fMajorVersionControl->SetDivider(fMajorVersionControl->StringWidth(
|
||||
fMajorVersionControl->Label()) + 4.0f);
|
||||
fMajorVersionControl->GetPreferredSize(&width, &height);
|
||||
width = 12.0f + fMajorVersionControl->StringWidth("99");
|
||||
fMajorVersionControl->ResizeTo(fMajorVersionControl->Divider() + width, height);
|
||||
box->AddChild(fMajorVersionControl);
|
||||
|
||||
rect.left = fMajorVersionControl->Frame().right;
|
||||
fMiddleVersionControl = new BTextControl(rect, "middle", ".", NULL,
|
||||
NULL);
|
||||
fMiddleVersionControl->SetDivider(fMiddleVersionControl->StringWidth(
|
||||
fMiddleVersionControl->Label()) + 4.0f);
|
||||
fMiddleVersionControl->ResizeTo(fMiddleVersionControl->Divider() + width, height);
|
||||
box->AddChild(fMiddleVersionControl);
|
||||
|
||||
rect.left = fMiddleVersionControl->Frame().right;
|
||||
fMinorVersionControl = new BTextControl(rect, "middle", ".", NULL,
|
||||
NULL);
|
||||
fMinorVersionControl->SetDivider(fMinorVersionControl->StringWidth(
|
||||
fMinorVersionControl->Label()) + 4.0f);
|
||||
fMinorVersionControl->ResizeTo(fMinorVersionControl->Divider() + width, height);
|
||||
box->AddChild(fMinorVersionControl);
|
||||
|
||||
popUpMenu = new BPopUpMenu("variety", true, true);
|
||||
popUpMenu->AddItem(new BMenuItem("Development", NULL));
|
||||
popUpMenu->AddItem(new BMenuItem("Alpha", NULL));
|
||||
popUpMenu->AddItem(new BMenuItem("Beta", NULL));
|
||||
popUpMenu->AddItem(new BMenuItem("Gamma", NULL));
|
||||
popUpMenu->AddItem(item = new BMenuItem("Golden Master", NULL));
|
||||
item->SetMarked(true);
|
||||
popUpMenu->AddItem(new BMenuItem("Final", NULL));
|
||||
|
||||
rect.top--;
|
||||
// BMenuField oddity
|
||||
rect.left = fMinorVersionControl->Frame().right + 6.0f;
|
||||
menuField = new BMenuField(rect,
|
||||
"variety", NULL, popUpMenu, true);
|
||||
menuField->ResizeToPreferred();
|
||||
box->AddChild(menuField);
|
||||
|
||||
rect.top++;
|
||||
rect.left = menuField->Frame().right;
|
||||
rect.right = rect.left + 30.0f;
|
||||
fInternalVersionControl = new BTextControl(rect, "internal", "/", NULL,
|
||||
NULL);
|
||||
fInternalVersionControl->SetDivider(fInternalVersionControl->StringWidth(
|
||||
fInternalVersionControl->Label()) + 4.0f);
|
||||
fInternalVersionControl->ResizeTo(fInternalVersionControl->Divider() + width, height);
|
||||
box->AddChild(fInternalVersionControl);
|
||||
|
||||
rect = box->Bounds().InsetByCopy(8.0f, 0.0f);
|
||||
rect.top = fInternalVersionControl->Frame().bottom + 8.0f;
|
||||
fShortDescriptionControl = new BTextControl(rect, "short desc", "Short Description:",
|
||||
NULL, NULL, B_FOLLOW_LEFT_RIGHT);
|
||||
float labelWidth = fShortDescriptionControl->StringWidth(
|
||||
fShortDescriptionControl->Label()) + 4.0f;
|
||||
fShortDescriptionControl->SetDivider(labelWidth);
|
||||
fShortDescriptionControl->GetPreferredSize(&width, &height);
|
||||
fShortDescriptionControl->ResizeTo(rect.Width(), height);
|
||||
box->AddChild(fShortDescriptionControl);
|
||||
|
||||
rect.OffsetBy(0.0f, fShortDescriptionControl->Bounds().Height() + 5.0f);
|
||||
rect.right = rect.left + labelWidth;
|
||||
StringView* label = new StringView(rect, NULL, "Long Description:", NULL);
|
||||
label->SetDivider(labelWidth);
|
||||
box->AddChild(label);
|
||||
|
||||
rect.left = rect.right + 3.0f;
|
||||
rect.top += 1.0f;
|
||||
rect.right = box->Bounds().Width() - 8.0f;
|
||||
rect.bottom = rect.top + fShortDescriptionControl->Bounds().Height() * 3.0f - 1.0f;
|
||||
fLongDescriptionView = new BTextView(rect, "long desc",
|
||||
rect.OffsetToCopy(B_ORIGIN), B_FOLLOW_ALL, B_WILL_DRAW | B_FRAME_EVENTS);
|
||||
|
||||
scrollView = new BScrollView("desc scrollview", fLongDescriptionView,
|
||||
B_FOLLOW_ALL, B_FRAME_EVENTS | B_WILL_DRAW, false, false);
|
||||
box->ResizeTo(box->Bounds().Width(), scrollView->Frame().bottom + 8.0f);
|
||||
box->AddChild(scrollView);
|
||||
|
||||
// Adjust window size and limits
|
||||
|
||||
width = fInternalVersionControl->Frame().right + 16.0f;
|
||||
float minWidth = fBackgroundAppCheckBox->Frame().right + iconBoxWidth + 32.0f;
|
||||
if (width > minWidth)
|
||||
minWidth = width;
|
||||
|
||||
ResizeTo(Bounds().Width() > minWidth ? Bounds().Width() : minWidth,
|
||||
box->Frame().bottom + topView->Frame().top + 8.0f);
|
||||
SetSizeLimits(minWidth, 32767.0f, Bounds().Height(), 32767.0f);
|
||||
box->SetResizingMode(B_FOLLOW_ALL);
|
||||
|
||||
fSignatureControl->MakeFocus(true);
|
||||
|
||||
BMimeType::StartWatching(this);
|
||||
_SetTo(entry);
|
||||
}
|
||||
|
||||
|
||||
ApplicationTypeWindow::~ApplicationTypeWindow()
|
||||
{
|
||||
BMimeType::StopWatching(this);
|
||||
}
|
||||
|
||||
|
||||
BString
|
||||
ApplicationTypeWindow::_Title(const BEntry& entry)
|
||||
{
|
||||
char name[B_FILE_NAME_LENGTH];
|
||||
if (entry.GetName(name) != B_OK)
|
||||
strcpy(name, "\"-\"");
|
||||
|
||||
BString title(name);
|
||||
title.Append(" Application Type");
|
||||
return title;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ApplicationTypeWindow::_SetTo(const BEntry& entry)
|
||||
{
|
||||
SetTitle(_Title(entry).String());
|
||||
fEntry = entry;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ApplicationTypeWindow::MessageReceived(BMessage* message)
|
||||
{
|
||||
switch (message->what) {
|
||||
case B_SIMPLE_DATA:
|
||||
{
|
||||
entry_ref ref;
|
||||
if (message->FindRef("refs", &ref) != B_OK)
|
||||
break;
|
||||
|
||||
// TODO: add to supported types
|
||||
break;
|
||||
}
|
||||
|
||||
case B_META_MIME_CHANGED:
|
||||
const char* type;
|
||||
int32 which;
|
||||
if (message->FindString("be:type", &type) != B_OK
|
||||
|| message->FindInt32("be:which", &which) != B_OK)
|
||||
break;
|
||||
|
||||
// TODO: update supported types names
|
||||
// if (which == B_MIME_TYPE_DELETED)
|
||||
break;
|
||||
|
||||
default:
|
||||
BWindow::MessageReceived(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
ApplicationTypeWindow::QuitRequested()
|
||||
{
|
||||
be_app->PostMessage(kMsgTypeWindowClosed);
|
||||
return true;
|
||||
}
|
||||
|
63
src/preferences/filetypes/ApplicationTypeWindow.h
Normal file
63
src/preferences/filetypes/ApplicationTypeWindow.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef APPLICATION_TYPE_WINDOW_H
|
||||
#define APPLICATION_TYPE_WINDOW_H
|
||||
|
||||
|
||||
#include <Mime.h>
|
||||
#include <String.h>
|
||||
#include <Window.h>
|
||||
|
||||
class BButton;
|
||||
class BCheckBox;
|
||||
class BListView;
|
||||
class BMenuField;
|
||||
class BRadioButton;
|
||||
class BTextControl;
|
||||
class BTextView;
|
||||
|
||||
class IconView;
|
||||
class MimeTypeListView;
|
||||
|
||||
|
||||
class ApplicationTypeWindow : public BWindow {
|
||||
public:
|
||||
ApplicationTypeWindow(BPoint position, const BEntry& entry);
|
||||
virtual ~ApplicationTypeWindow();
|
||||
|
||||
virtual void MessageReceived(BMessage* message);
|
||||
virtual bool QuitRequested();
|
||||
|
||||
private:
|
||||
BString _Title(const BEntry& entry);
|
||||
void _SetTo(const BEntry& entry);
|
||||
|
||||
private:
|
||||
BEntry fEntry;
|
||||
|
||||
BTextControl* fSignatureControl;
|
||||
IconView* fIconView;
|
||||
|
||||
BCheckBox* fFlagsCheckBox;
|
||||
BRadioButton* fSingleLaunchButton;
|
||||
BRadioButton* fMultipleLaunchButton;
|
||||
BRadioButton* fExclusiveLaunchButton;
|
||||
BCheckBox* fArgsOnlyCheckBox;
|
||||
BCheckBox* fBackgroundAppCheckBox;
|
||||
|
||||
BListView* fTypeListView;
|
||||
BButton* fAddTypeButton;
|
||||
BButton* fRemoveTypeButton;
|
||||
IconView* fTypeIconView;
|
||||
|
||||
BTextControl* fMajorVersionControl;
|
||||
BTextControl* fMiddleVersionControl;
|
||||
BTextControl* fMinorVersionControl;
|
||||
BTextControl* fInternalVersionControl;
|
||||
BTextControl* fShortDescriptionControl;
|
||||
BTextView* fLongDescriptionView;
|
||||
};
|
||||
|
||||
#endif // APPLICATION_TYPE_WINDOW_H
|
@ -5,9 +5,10 @@
|
||||
|
||||
|
||||
#include "ApplicationTypesWindow.h"
|
||||
#include "ApplicationTypeWindow.h"
|
||||
#include "FileTypes.h"
|
||||
#include "FileTypeWindow.h"
|
||||
#include "FileTypesWindow.h"
|
||||
#include "FileTypeWindow.h"
|
||||
|
||||
#include <AppFileInfo.h>
|
||||
#include <Application.h>
|
||||
@ -129,7 +130,14 @@ FileTypes::RefsReceived(BMessage *message)
|
||||
// remove application from list
|
||||
message->RemoveData("refs", --index);
|
||||
|
||||
printf("found app: %s\n", ref.name);
|
||||
// There are some refs left that want to be handled by the type window
|
||||
BPoint point(100.0f + 20.0f * fTypeWindowCount, 110.0f + 20.0f * fTypeWindowCount);
|
||||
|
||||
BWindow* window = new ApplicationTypeWindow(point, entry);
|
||||
window->Show();
|
||||
|
||||
fTypeWindowCount++;
|
||||
fWindowCount++;
|
||||
}
|
||||
|
||||
if (message->FindRef("refs", &ref) != B_OK)
|
||||
|
@ -15,8 +15,8 @@
|
||||
#include <Resources.h>
|
||||
|
||||
|
||||
IconView::IconView(BRect rect, const char* name)
|
||||
: BView(rect, name, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW),
|
||||
IconView::IconView(BRect rect, const char* name, uint32 resizeMode)
|
||||
: BView(rect, name, resizeMode, B_WILL_DRAW),
|
||||
fIcon(NULL),
|
||||
fHeapIcon(NULL)
|
||||
{
|
||||
|
@ -11,7 +11,8 @@
|
||||
|
||||
class IconView : public BView {
|
||||
public:
|
||||
IconView(BRect rect, const char* name);
|
||||
IconView(BRect rect, const char* name,
|
||||
uint32 resizeMode = B_FOLLOW_LEFT | B_FOLLOW_TOP);
|
||||
virtual ~IconView();
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
|
@ -15,9 +15,12 @@ Preference FileTypes :
|
||||
NewFileTypeWindow.cpp
|
||||
AttributeWindow.cpp
|
||||
ExtensionWindow.cpp
|
||||
|
||||
ApplicationTypeWindow.cpp
|
||||
FileTypeWindow.cpp
|
||||
TypeListWindow.cpp
|
||||
IconView.cpp
|
||||
|
||||
PreferredAppMenu.cpp
|
||||
StringView.cpp
|
||||
: be tracker
|
||||
|
Loading…
Reference in New Issue
Block a user