Started new FileTypes preferences application, so that you can at least see

it's supposed to do nothing at the moment :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16302 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2006-02-08 20:10:47 +00:00
parent 00e0ed9f74
commit f1486a980f
14 changed files with 408 additions and 295 deletions

View File

@ -0,0 +1,216 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include "FileTypes.h"
#include "FileTypesWindow.h"
#include <Application.h>
//#include <Screen.h>
//#include <Autolock.h>
#include <Alert.h>
#include <TextView.h>
#include <FilePanel.h>
#include <FindDirectory.h>
#include <Directory.h>
#include <Entry.h>
#include <Path.h>
#include <stdio.h>
#include <string.h>
const char *kSignature = "application/x-vnd.Haiku-FileTypes";
class FileTypes : public BApplication {
public:
FileTypes();
virtual ~FileTypes();
virtual void ReadyToRun();
virtual void RefsReceived(BMessage* message);
virtual void ArgvReceived(int32 argc, char** argv);
virtual void MessageReceived(BMessage* message);
virtual void AboutRequested();
virtual bool QuitRequested();
private:
BFilePanel *fFilePanel;
BWindow *fTypesWindow;
uint32 fWindowCount;
BPoint fTypesWindowPosition;
};
FileTypes::FileTypes()
: BApplication(kSignature),
fTypesWindow(NULL),
fWindowCount(0)
{
fFilePanel = new BFilePanel();
fTypesWindowPosition = BPoint(100.0f, 100.0f);
// TODO: read from settings
}
FileTypes::~FileTypes()
{
delete fFilePanel;
}
void
FileTypes::ReadyToRun()
{
// are there already windows open?
if (CountWindows() != 1)
return;
// if not, open the FileTypes window
PostMessage(kMsgOpenTypesWindow);
}
void
FileTypes::RefsReceived(BMessage *message)
{
bool traverseLinks = (modifiers() & B_SHIFT_KEY) == 0;
int32 index = 0;
entry_ref ref;
while (message->FindRef("refs", index++, &ref) == B_OK) {
BEntry entry;
status_t status = entry.SetTo(&ref, traverseLinks);
if (status == B_OK) {
// TODO: open FileType window
}
if (status != B_OK) {
char buffer[1024];
snprintf(buffer, sizeof(buffer),
"Could not open \"%s\":\n"
"%s",
ref.name, strerror(status));
(new BAlert("FileTypes request",
buffer, "Ok", NULL, NULL,
B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go();
}
}
}
void
FileTypes::ArgvReceived(int32 argc, char **argv)
{
BMessage *message = CurrentMessage();
BDirectory currentDirectory;
if (message)
currentDirectory.SetTo(message->FindString("cwd"));
BMessage refs;
for (int i = 1 ; i < argc ; i++) {
BPath path;
if (argv[i][0] == '/')
path.SetTo(argv[i]);
else
path.SetTo(&currentDirectory, argv[i]);
status_t status;
entry_ref ref;
BEntry entry;
if ((status = entry.SetTo(path.Path(), false)) != B_OK
|| (status = entry.GetRef(&ref)) != B_OK) {
fprintf(stderr, "Could not open file \"%s\": %s\n",
path.Path(), strerror(status));
continue;
}
refs.AddRef("refs", &ref);
}
RefsReceived(&refs);
}
void
FileTypes::MessageReceived(BMessage *message)
{
switch (message->what) {
case kMsgOpenTypesWindow:
if (fTypesWindow == NULL) {
fTypesWindow = new FileTypesWindow(fTypesWindowPosition);
fTypesWindow->Show();
fWindowCount++;
} else
fTypesWindow->Activate(true);
break;
case kMsgTypesWindowClosed:
fTypesWindow = NULL;
// supposed to fall through
case kMsgWindowClosed:
if (--fWindowCount == 0 && !fFilePanel->IsShowing())
PostMessage(B_QUIT_REQUESTED);
break;
case kMsgOpenFilePanel:
fFilePanel->Show();
break;
case B_CANCEL:
if (fWindowCount == 0)
PostMessage(B_QUIT_REQUESTED);
break;
default:
BApplication::MessageReceived(message);
break;
}
}
void
FileTypes::AboutRequested()
{
BAlert *alert = new BAlert("about", "FileTypes\n"
"\twritten by Axel Dörfler\n"
"\tCopyright 2006, Haiku.\n", "Ok");
BTextView *view = alert->TextView();
BFont font;
view->SetStylable(true);
view->GetFont(&font);
font.SetSize(18);
font.SetFace(B_BOLD_FACE);
view->SetFontAndColor(0, 9, &font);
alert->Go();
}
bool
FileTypes::QuitRequested()
{
return true;
}
// #pragma mark -
int
main(int argc, char **argv)
{
FileTypes probe;
probe.Run();
return 0;
}

View File

@ -0,0 +1,19 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef FILE_TYPES_H
#define FILE_TYPES_H
#include <SupportDefs.h>
extern const char* kSignature;
static const uint32 kMsgOpenFilePanel = 'opFp';
static const uint32 kMsgOpenTypesWindow = 'opTw';
static const uint32 kMsgTypesWindowClosed = 'clTw';
static const uint32 kMsgWindowClosed = 'WiCl';
#endif // FILE_TYPES_H

View File

@ -1,7 +1,6 @@
/*
** FileTypes.icons.rdef
**
*/
* FileTypes.icons.rdef
*/
resource(0, "BEOS:L:application/x-be-resource") #'ICON' array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02020008FFFFFFFFFFFFFFFFFFFF"
@ -73,41 +72,6 @@ resource(1, "BEOS:L:application/octet-stream") #'ICON' array {
$"FFFFFFFFFFFFFFFFFFFFFFFFAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02020000FFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B17110802FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B3F3F1B150800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF021B3F3F1B150A00FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF003F00FFFFFFFFFF04151B1B17110800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF003FFD00FFFFFFFFFF02081515150A0800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFF003FFDFDFD00FFFFFF00F9000A0A080A00FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF003FFDFDFDFD00FFFF003FF97D000000007D0000FFFFFFFFFFFFFF"
$"FFFFFFFF003FFDFDFDFDFDFD00FF00F93F3F7D7D7D7D7D7DF900FFFFFFFFFFFF"
$"FFFFFF003FFDFDFDFD62FDFD00FF00F9F9F93F3FF9F9F9F97D00FFFFFFFFFFFF"
$"FFFF003FFEFDFDFD62FDFDFDFA0000F9F9F9F9F93F3FF97D7D00FFFFFFFFFFFF"
$"FF003FFEFEFDFD89FDFDFDFDFA0000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"003FFEFEFEFDB0FD62FD62FD000000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"FF003FFEFEB0FD89FD62FD007B7B00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"FF003FFEB0FDB0FDB0FD6200DA7B7B00F9F90000F9F97D7D7D00FFFFFFFFFFFF"
$"FFFF003FFEB0FDB0FDB0002B2CDA7B000000606000007D7D7D00FFFFFFFFFFFF"
$"FFFF003FFEFDFDFD89FD002B2F2F00FA00606060606000007D00FFFFFFFFFFFF"
$"FFFFFF003FFDFDB0FD002B2CEB2F000060606060606060600000FFFFFFFFFFFF"
$"FFFFFF003FFDFDFDB0002B2F2F0000606060606060606060606000FFFFFFFFFF"
$"FFFFFFFF003FFDB0002B2CEB2F006060606060606060606060D5000EFFFFFFFF"
$"FFFF0000003FFDFD002B2F2F003F60606060606060606060D5D5000EFFFFFFFF"
$"FF007B7B7B003F002B2CEB2F00AC3F3F60606060606060D5D5D5000E0E0EFFFF"
$"007B7B7BDA003F002B2F2F0000ACACAC3F3F60606060D5D5D5D5000E0E0E0E0E"
$"002B2CDA7B7B002B2CEB2F0000ACACACACAC3F3F60D5D5D5D5D5000E0E0E0E0E"
$"FF002B2CDA7B2B2CEB2F000E00ACACACACACACACD5D5D5D5D5D5000E0E0E0EFF"
$"FF002B2CDA7B2B2CEB2F000E00ACACACACACACACD5D5D5D5D5D5000E0E0EFFFF"
$"FFFF002B2C2B2B2F2F000E0E00ACACACACACACACD5D5D5D5D5000E0E0EFFFFFF"
$"FFFF002B2C2B2B2F2F00FFFF00ACACACACACACACD5D5D5D5000E0E0EFFFFFFFF"
$"FFFFFF002B2CEB2F00FFFFFFFF0000ACACACACACD5D5D5000E0E0EFFFFFFFFFF"
$"FFFFFF002B2CEB2F00FFFFFFFFFFFF0000ACACACD5D5000E0E0EFFFFFFFFFFFF"
$"FFFFFFFF002B2F000E0F0F0F0F0F0F0F0F0000ACD5000E0E0EFFFFFFFFFFFFFF"
$"FFFFFFFF0000000E0F0F0F0F0F0F0F0F0F0F0F00000E0E0EFFFFFFFFFFFFFFFF"
};
resource(0, "BEOS:M:application/x-be-resource") #'MICN' array {
$"FFFFFFFFFFFFFFFF020200FFFFFFFFFF"
$"FFFFFFFFFFFFFF04151E1500FFFFFFFF"
@ -145,22 +109,3 @@ resource(1, "BEOS:M:application/octet-stream") #'MICN' array {
$"FFFFFFFFAE00000000AEAEFFFFFFFFFF"
$"FFFFFFFFFFAE00AEFFAEFFFFFFFFFFFF"
};
resource mini_icon array {
$"FFFFFFFFFFFFFFFF020200FFFFFFFFFF"
$"FFFFFFFFFFFFFF04151E1500FFFFFFFF"
$"FFFFFFFFFFFFFF021D1E1C00FFFFFFFF"
$"FFFFFFFF00FFFF00151B1600FFFFFFFF"
$"FFFFFF003F0000FA0000000000FFFFFF"
$"FFFF003FFD0000F9F9FAFAFAFA00FFFF"
$"FF003FFEFDFD00F9F9F9F97D7D00FFFF"
$"003F62FE89007B00F9F900007D00FFFF"
$"FF003FB0FD002F00F90060600000FFFF"
$"FF003FFE002F000000606060606000FF"
$"FF000000002F00003F3F606060D500FF"
$"002B00002F00FA00ACAC3F3FD5D500FF"
$"002B7B2CEB000000ACACACACD5D5000E"
$"FF002B2F00000E00ACACACACD5D5000E"
$"FF002B2F000E0E0F0000ACACD5000E0E"
$"FFFF00000E0F0F0F0F0F0000000E0EFF"
};

View File

@ -1,9 +1,8 @@
/*
** FileTypes.rdef
**
*/
* FileTypes.rdef
*/
resource app_signature "application/x-vnd.obos.file-types";
resource app_signature "application/x-vnd.Haiku-FileTypes";
resource app_flags B_SINGLE_LAUNCH;
@ -11,3 +10,72 @@ resource file_types message {
"types" = "application/x-be-resource",
"types" = "application/octet-stream"
};
resource app_version {
major = 1,
middle = 0,
minor = 0,
/* 0 = development 1 = alpha 2 = beta
3 = gamma 4 = golden master 5 = final */
variety = 0,
internal = 1,
short_info = "FileTypes",
long_info = "FileTypes, Copyright 2006 Haiku Inc."
};
resource mini_icon array {
$"FFFFFFFFFFFFFFFF020200FFFFFFFFFF"
$"FFFFFFFFFFFFFF04151E1500FFFFFFFF"
$"FFFFFFFFFFFFFF021D1E1C00FFFFFFFF"
$"FFFFFFFF00FFFF00151B1600FFFFFFFF"
$"FFFFFF003F0000FA0000000000FFFFFF"
$"FFFF003FFD0000F9F9FAFAFAFA00FFFF"
$"FF003FFEFDFD00F9F9F9F97D7D00FFFF"
$"003F62FE89007B00F9F900007D00FFFF"
$"FF003FB0FD002F00F90060600000FFFF"
$"FF003FFE002F000000606060606000FF"
$"FF000000002F00003F3F606060D500FF"
$"002B00002F00FA00ACAC3F3FD5D500FF"
$"002B7B2CEB000000ACACACACD5D5000E"
$"FF002B2F00000E00ACACACACD5D5000E"
$"FF002B2F000E0E0F0000ACACD5000E0E"
$"FFFF00000E0F0F0F0F0F0000000E0EFF"
};
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02020000FFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B17110802FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B3F3F1B150800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF021B3F3F1B150A00FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF003F00FFFFFFFFFF04151B1B17110800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF003FFD00FFFFFFFFFF02081515150A0800FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFF003FFDFDFD00FFFFFF00F9000A0A080A00FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFF003FFDFDFDFD00FFFF003FF97D000000007D0000FFFFFFFFFFFFFF"
$"FFFFFFFF003FFDFDFDFDFDFD00FF00F93F3F7D7D7D7D7D7DF900FFFFFFFFFFFF"
$"FFFFFF003FFDFDFDFD62FDFD00FF00F9F9F93F3FF9F9F9F97D00FFFFFFFFFFFF"
$"FFFF003FFEFDFDFD62FDFDFDFA0000F9F9F9F9F93F3FF97D7D00FFFFFFFFFFFF"
$"FF003FFEFEFDFD89FDFDFDFDFA0000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"003FFEFEFEFDB0FD62FD62FD000000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"FF003FFEFEB0FD89FD62FD007B7B00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
$"FF003FFEB0FDB0FDB0FD6200DA7B7B00F9F90000F9F97D7D7D00FFFFFFFFFFFF"
$"FFFF003FFEB0FDB0FDB0002B2CDA7B000000606000007D7D7D00FFFFFFFFFFFF"
$"FFFF003FFEFDFDFD89FD002B2F2F00FA00606060606000007D00FFFFFFFFFFFF"
$"FFFFFF003FFDFDB0FD002B2CEB2F000060606060606060600000FFFFFFFFFFFF"
$"FFFFFF003FFDFDFDB0002B2F2F0000606060606060606060606000FFFFFFFFFF"
$"FFFFFFFF003FFDB0002B2CEB2F006060606060606060606060D5000EFFFFFFFF"
$"FFFF0000003FFDFD002B2F2F003F60606060606060606060D5D5000EFFFFFFFF"
$"FF007B7B7B003F002B2CEB2F00AC3F3F60606060606060D5D5D5000E0E0EFFFF"
$"007B7B7BDA003F002B2F2F0000ACACAC3F3F60606060D5D5D5D5000E0E0E0E0E"
$"002B2CDA7B7B002B2CEB2F0000ACACACACAC3F3F60D5D5D5D5D5000E0E0E0E0E"
$"FF002B2CDA7B2B2CEB2F000E00ACACACACACACACD5D5D5D5D5D5000E0E0E0EFF"
$"FF002B2CDA7B2B2CEB2F000E00ACACACACACACACD5D5D5D5D5D5000E0E0EFFFF"
$"FFFF002B2C2B2B2F2F000E0E00ACACACACACACACD5D5D5D5D5000E0E0EFFFFFF"
$"FFFF002B2C2B2B2F2F00FFFF00ACACACACACACACD5D5D5D5000E0E0EFFFFFFFF"
$"FFFFFF002B2CEB2F00FFFFFFFF0000ACACACACACD5D5D5000E0E0EFFFFFFFFFF"
$"FFFFFF002B2CEB2F00FFFFFFFFFFFF0000ACACACD5D5000E0E0EFFFFFFFFFFFF"
$"FFFFFFFF002B2F000E0F0F0F0F0F0F0F0F0000ACD5000E0E0EFFFFFFFFFFFFFF"
$"FFFFFFFF0000000E0F0F0F0F0F0F0F0F0F0F0F00000E0E0EFFFFFFFFFFFFFFFF"
};

View File

@ -1,20 +0,0 @@
/*
** FileTypes.version.rdef
**
*/
resource app_version {
major = 1,
middle = 0,
minor = 0,
/* 0 = development 1 = alpha 2 = beta
3 = gamma 4 = golden master 5 = final */
variety = 0,
internal = 1,
short_info = "R1.0.0d1",
long_info = "OpenBeOS 1.0.0d1 ©2002 OpenBeOS Project"
};

View File

@ -1,121 +0,0 @@
#include <Path.h>
#include <Roster.h>
#include <stdio.h>
#include <FileTypesConstants.h>
#include <FileTypesApp.h>
#include <FileTypesWindow.h>
BRect windowRect(7,26,507,426);
FileTypesApp * file_types_app = 0;
FileTypesApp::FileTypesApp()
: BApplication(APP_SIGNATURE)
{
fOpenPanel = new BFilePanel();
file_types_app = this;
}
void FileTypesApp::DispatchMessage(BMessage *msg, BHandler *handler)
{
if ( msg->what == B_ARGV_RECEIVED ) {
int32 argc;
if (msg->FindInt32("argc",&argc) != B_OK) {
argc=0;
}
const char ** argv = new const char*[argc];
for (int arg = 0; (arg < argc) ; arg++) {
if (msg->FindString("argv",arg,&argv[arg]) != B_OK) {
argv[arg] = "";
}
}
const char * cwd;
if (msg->FindString("cwd",&cwd) != B_OK) {
cwd = "";
}
ArgvReceived(argc, argv, cwd);
} else {
BApplication::DispatchMessage(msg,handler);
}
}
void
FileTypesApp::MessageReceived(BMessage *message)
{
switch (message->what) {
case FILE_OPEN:
fOpenPanel->Show();
break;
case B_SILENT_RELAUNCH:
fWindow->Show();
break;
default:
BApplication::MessageReceived(message);
break;
}
}
void
FileTypesApp::RefsReceived(BMessage *message)
{
int32 refNum = 0;
entry_ref ref;
while (message->FindRef("refs", refNum++, &ref) == B_OK) {
}
}
void
FileTypesApp::ArgvReceived(int32 argc, const char *argv[], const char * cwd)
{
BMessage refsReceived(B_REFS_RECEIVED);
for (int i = 1 ; (i < argc) ; i++) {
BPath path;
if (argv[i][0] == '/') {
path.SetTo(argv[i]);
} else {
path.SetTo(cwd,argv[i]);
}
if (path.InitCheck() != B_OK) {
printf("path.InitCheck failed: \"");
if (argv[i][0] == '/') {
printf("%s",argv[i]);
} else {
printf("%s/%s",cwd,argv[i]);
}
printf("\".\n");
continue;
}
entry_ref ref;
if (get_ref_for_path(path.Path(), &ref) != B_OK) {
printf("get_ref_for_path failed: \"");
printf("%s",path.Path());
printf("\".\n");
continue;
}
}
}
void
FileTypesApp::ReadyToRun()
{
if (!fArgvOkay) {
Quit();
return;
}
if (fWindow == 0) {
OpenPanel()->Show();
}
}
BFilePanel *
FileTypesApp::OpenPanel()
{
if (fOpenPanel == 0) {
fOpenPanel = new BFilePanel(B_OPEN_PANEL);
}
return fOpenPanel;
}

View File

@ -1,34 +0,0 @@
#ifndef FILE_TYPES_APP
#define FILE_TYPES_APP
#include <Application.h>
#include <Message.h>
#include <FilePanel.h>
class FileTypesWindow;
class FileTypesApp
: public BApplication
{
public:
FileTypesApp();
virtual void MessageReceived(BMessage *message);
virtual void ArgvReceived(int32 argc, char ** argv) { BApplication::ArgvReceived(argc, argv); }
virtual void ArgvReceived(int32 argc, const char *argv[], const char * cwd);
virtual void RefsReceived(BMessage *message);
virtual void ReadyToRun();
virtual void DispatchMessage(BMessage *an_event, BHandler *handler);
private:
BFilePanel * OpenPanel();
FileTypesWindow * fWindow;
BFilePanel * fOpenPanel;
bool fArgvOkay;
};
extern FileTypesApp * file_types_app;
#endif // FILE_TYPES_APP

View File

@ -1,15 +0,0 @@
#ifndef FILE_TYPES_CONSTANTS_H
#define FILE_TYPES_CONSTANTS_H
#define APP_SIGNATURE "application/x-vnd.obos.file-types"
#include <SupportDefs.h>
// File menu
const uint32 FILE_NEW_RESOURCE_FILE = 'Fnrf' ;
const uint32 FILE_OPEN = 'Fopn' ;
// Settings menu
const uint32 SETTINGS_SHOW_ITERNAL_TYPES = 'Ssit' ;
#endif // FILE_TYPES_CONSTANTS_H

View File

@ -1,2 +0,0 @@
#include <FileTypesView.h>

View File

@ -1,14 +0,0 @@
#ifndef FILE_TYPES_VIEW_H
#define FILE_TYPES_VIEW_H
#include <View.h>
class FileTypesView : public BView {
public:
FileTypesView(BRect viewframe);
~FileTypesView();
private:
};
#endif // FILE_TYPES_VIEW_H

View File

@ -1 +1,75 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include "FileTypes.h"
#include "FileTypesWindow.h"
#include <Application.h>
#include <MenuBar.h>
#include <MenuItem.h>
#include <be_apps/Tracker/RecentItems.h>
FileTypesWindow::FileTypesWindow(BPoint position)
: BWindow(BRect(position.x, position.y, position.x + 300, position.y + 200),
"FileTypes", B_TITLED_WINDOW,
B_NOT_RESIZABLE | 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("New Resource File" B_UTF8_ELLIPSIS,
NULL, 'N', B_COMMAND_KEY));
BMenu* recentsMenu = BRecentFilesList::NewFileListMenu("Open" B_UTF8_ELLIPSIS,
NULL, NULL, be_app, 10, false, NULL, kSignature);
BMenuItem* item = new BMenuItem(recentsMenu, new BMessage(kMsgOpenFilePanel));
item->SetShortcut('O', B_COMMAND_KEY);
menu->AddItem(item);
menu->AddSeparatorItem();
menu->AddItem(new BMenuItem("About FileTypes" B_UTF8_ELLIPSIS,
new BMessage(B_ABOUT_REQUESTED)));
menu->AddSeparatorItem();
menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED),
'Q', B_COMMAND_KEY));
menu->SetTargetForItems(be_app);
item->SetTarget(this);
menuBar->AddItem(menu);
BRect rect = Bounds();
rect.top = menuBar->Bounds().Height() + 1;
BView* topView = new BView(rect, NULL, B_FOLLOW_ALL, B_WILL_DRAW);
topView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
AddChild(topView);
}
FileTypesWindow::~FileTypesWindow()
{
}
void
FileTypesWindow::MessageReceived(BMessage* message)
{
BWindow::MessageReceived(message);
}
bool
FileTypesWindow::QuitRequested()
{
be_app->PostMessage(kMsgTypesWindowClosed);
return true;
}

View File

@ -1,22 +1,24 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef FILE_TYPES_WINDOW_H
#define FILE_TYPES_WINDOW_H
#include <Window.h>
class FileTypesView;
class FileTypesWindow
: public BWindow
{
public:
FileTypesWindow(BRect frame);
~FileTypesWindow();
virtual void Quit();
virtual bool QuitRequested();
virtual void MessageReceived(BMessage *message);
private:
class FileTypesWindow : public BWindow {
public:
FileTypesWindow(BPoint position);
virtual ~FileTypesWindow();
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
private:
};
#endif // FILE_TYPES_WINDOW_H
#endif // FILE_TYPES_WINDOW_H

View File

@ -1,13 +1,17 @@
SubDir HAIKU_TOP src preferences filetypes ;
AddSubDirSupportedPlatforms libbe_test ;
SubDirSysHdrs $(SUBDIR) ;
Preference FileTypes :
main.cpp
FileTypesApp.cpp
FileTypesView.cpp
FileTypes.cpp
FileTypesWindow.cpp
: libbe.so libtracker.so
: FileTypes.rdef FileTypes.icons.rdef FileTypes.version.rdef
: be tracker
: FileTypes.rdef FileTypes.icons.rdef
;
if $(TARGET_PLATFORM) = libbe_test {
HaikuInstall install-test-apps : $(HAIKU_APP_TEST_DIR) : FileTypes
: tests!apps ;
}

View File

@ -1,9 +0,0 @@
#include <FileTypesApp.h>
int
main()
{
FileTypesApp fileTypes;
fileTypes.Run();
return 0;
}