first cut
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4293 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -30,7 +30,7 @@ FileTypeView::SetPreferredApplication(const char * preferredApplication)
|
||||
}
|
||||
|
||||
bool
|
||||
FileTypeView::Clean()
|
||||
FileTypeView::IsClean() const
|
||||
{
|
||||
if (fFileType.Compare(GetFileType()) != 0) {
|
||||
return false;
|
||||
@@ -42,14 +42,14 @@ FileTypeView::Clean()
|
||||
}
|
||||
|
||||
const char *
|
||||
FileTypeView::GetFileType()
|
||||
FileTypeView::GetFileType() const
|
||||
{
|
||||
// return from UI
|
||||
return "";
|
||||
}
|
||||
|
||||
const char *
|
||||
FileTypeView::GetPreferredApplication()
|
||||
FileTypeView::GetPreferredApplication() const
|
||||
{
|
||||
// return from UI
|
||||
return "";
|
||||
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
void SetFileType(const char * fileType);
|
||||
void SetPreferredApplication(const char * preferredApplication);
|
||||
|
||||
bool Clean() const;
|
||||
bool IsClean() const;
|
||||
const char * GetFileType() const;
|
||||
const char * GetPreferredApplication() const;
|
||||
private:
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#include <Alert.h>
|
||||
#include <Debug.h>
|
||||
#include <Entry.h>
|
||||
#include <Node.h>
|
||||
|
||||
#include <FileTypeView.h>
|
||||
#include <FileTypeWindow.h>
|
||||
@@ -115,9 +118,9 @@ FileTypeWindow::SetEntries(BEntryList entries)
|
||||
|
||||
BString title = SummarizeEntries();
|
||||
title.Append(" File Type");
|
||||
SetTitle(title);
|
||||
SetTitle(strdup(title.String()));
|
||||
|
||||
if (fEntries->Rewind() != B_OK) {
|
||||
if (fEntries.Rewind() != B_OK) {
|
||||
return;
|
||||
}
|
||||
BString * fileType = 0;
|
||||
@@ -141,7 +144,7 @@ FileTypeWindow::SetEntries(BEntryList entries)
|
||||
if (fileType == 0) {
|
||||
fileType = new BString(string);
|
||||
} else if (fileType->Compare(string) != 0) {
|
||||
fileType.SetTo("");
|
||||
fileType->SetTo("");
|
||||
if (preferredApplication && (preferredApplication->Length() == 0)) {
|
||||
break; // stop now, don't waste time checking the rest
|
||||
}
|
||||
@@ -153,30 +156,34 @@ FileTypeWindow::SetEntries(BEntryList entries)
|
||||
if (preferredApplication == 0) {
|
||||
preferredApplication = new BString(string);
|
||||
} else if (preferredApplication->Compare(string) != 0) {
|
||||
preferredApplication.SetTo("");
|
||||
preferredApplication->SetTo("");
|
||||
if (fileType && (fileType->Length() == 0)) {
|
||||
break; // stop now, don't waste time checking the rest
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fView->SetFileType(fileType.String());
|
||||
fView->SetPreferredApplication(preferredApplication.String());
|
||||
if (fileType != 0) {
|
||||
fView->SetFileType(fileType->String());
|
||||
delete fileType;
|
||||
}
|
||||
if (preferredApplication != 0) {
|
||||
fView->SetPreferredApplication(preferredApplication->String());
|
||||
delete preferredApplication;
|
||||
}
|
||||
}
|
||||
|
||||
const char *
|
||||
FileTypeWindow::SummarizeEntries()
|
||||
{
|
||||
if (fEntries->Rewind() != B_OK) {
|
||||
if (fEntries.Rewind() != B_OK) {
|
||||
return "<error>";
|
||||
}
|
||||
const char * result = "";
|
||||
dirent dent;
|
||||
if (fEntries->GetNextDirents(&dent,sizeof(dirent),1) != 0) {
|
||||
if (fEntries.GetNextDirents(&dent,sizeof(dirent),1) != 0) {
|
||||
result = strdup(dent.d_name);
|
||||
if (fEntries->GetNextDirents(&dent,sizeof(dirent),1) != 0) {
|
||||
if (fEntries.GetNextDirents(&dent,sizeof(dirent),1) != 0) {
|
||||
result = "[Multiple Files]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
** FileTypes.icons.rdef
|
||||
**
|
||||
*/
|
||||
|
||||
resource(0, "BEOS:L:application/x-be-resource") #'ICON' array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02020008FFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B17110802FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B3F3F1B150800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF021B3F3F1B150A00FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFF003F00FFFFFFFFFF04151B1B17110800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF003FFD00FFFFFFFFFF02081515150A0800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF003FFDFDFD00FFFFFF00F9000A0A080A00FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFD00FFFF003FF97D000000007D0000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFF003FFDFDFDFDFDFD00FF00F93F3F7D7D7D7D7D7DF900FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDFDFD62FDFD00FF00F9F9F93F3FF9F9F9F97D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEFDFDFD62FDFDFDFA0000F9F9F9F9F93F3FF97D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEFEFDFD89FDFDFDFDFA0000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"003FFEFEFEFDB0FD62FD62FDFAFA00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEFEB0FD89FD62FD62FAFA00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEB0FDB0FDB0FD62FAFAFAFA00F9F90000F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEB0FDB0FDB0FDFAFA62FA000000606000007D7D7D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEFDFDFD89FD62FD62FAFAFA00606060606000007D00FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDB0FD89FD62FAFAFA0060606060606060600000FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDFDB0FD89FAFAFA00606060606060606060606000FFFFFFFFFF"
|
||||
$"FFFFFFFF003FFDB0FDB0FDFDFA006060606060606060606060D5000EFFFFFFFF"
|
||||
$"FFFFFFFF003FFDFDB0FDFDFD003F60606060606060606060D5D5000EFFFFFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFDFD00AC3F3F60606060606060D5D5D5000E0E0EFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFDFD00ACACAC3F3F60606060D5D5D5D5000E0E0E0E0E"
|
||||
$"FFFFFFFFFFFF003FFDFDFD0000ACACACACAC3F3F60D5D5D5D5D5000E0E0E0E0E"
|
||||
$"FFFFFFFFFFFF003FFDFD000E00ACACACACACACACD5D5D5D5D5D5000E0E0E0EFF"
|
||||
$"FFFFFFFFFFFFFF00FD000E0E00ACACACACACACACD5D5D5D5D5D5000E0E0EFFFF"
|
||||
$"FFFFFFFFFFFFFFFF000E0E0E00ACACACACACACACD5D5D5D5D5000E0E0EFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF00ACACACACACACACD5D5D5D5000E0E0EFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFF0000ACACACACACD5D5D5000E0E0EFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000ACACACD5D5000E0E0EFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000ACD5000E0E0EFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000E0E0EFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(1, "BEOS:L:application/octet-stream") #'ICON' array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFF0060600000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFF0060606060600000FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF00603F603F603F603F0000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFF00603F603F603F603F603F600000FFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF00603F3F3F3F3F3F3F3F3F3F3F3F3F0000FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF00603F603F603F603F603F603F603F603F3F0000FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF00603F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F0000FFFFFFFF"
|
||||
$"FFFFFFFF00603F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F0000FFFF"
|
||||
$"FFFFFF00603F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F603F00FF"
|
||||
$"FFFF00603F603F603F603F603F603F603F603F603F603F603F603F603F00FFFF"
|
||||
$"FF00603F603F603F603F603F603F603F603F603F603F603F603F603F00AEAEAE"
|
||||
$"00003F603F603F603F603F603F603F603F603F603F603F603F603F0000AEAEFF"
|
||||
$"FFAE0000603F603F603F603F603F603F603F603F603F603F603F00AE8700AEFF"
|
||||
$"FFFFAE0000006060606060606060606060601B60606060606000AE87870100AE"
|
||||
$"FFFFFFAE00AE00006060606060606060606060601B60606000AE870000AEAEAE"
|
||||
$"FFFFFFFFAE00AEAE00006087608760876087608760871B29AE0000AEAEFFFFFF"
|
||||
$"FFFFFFFFFFAE0087AEAE000087878787878787878787010000AEAEFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFAE008787AEAE0000878787878787870100AEAEFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFAE00608787AEAE0000AEAEAEAE00AEAEFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFAE0060608787AEAE0000AE00AEAEFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFAE00606060870000AE00AEAEFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFAE00600000AEAEAEAEAEFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFAE00AEAEFFFFFFAEFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"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"
|
||||
$"FFFFFFFFFFFFFF021D1E1C00FFFFFFFF"
|
||||
$"FFFFFFFF00FFFF00151B1600FFFFFFFF"
|
||||
$"FFFFFF003F0000FA0000000000FFFFFF"
|
||||
$"FFFF003FFD0000F9F9FAFAFAFA00FFFF"
|
||||
$"FF003FFEFDFD00F9F9F9F97D7D00FFFF"
|
||||
$"003F62FE89FD00F9F9F900007D00FFFF"
|
||||
$"FF003FB0FD89FA00F90060600000FFFF"
|
||||
$"FF003FFEB0FD620000606060606000FF"
|
||||
$"FFFF003FFD89FA003F3F606060D500FF"
|
||||
$"FFFF003FFDFDFA00ACAC3F3FD5D5000E"
|
||||
$"FFFFFF003FFD0000ACACACACD5D5000E"
|
||||
$"FFFFFF003F000E00ACACACACD5D5000E"
|
||||
$"FFFFFFFF000E0E0E0000ACACD5000E0E"
|
||||
$"FFFFFFFFFFFFFFFFFFFF0000000E0EFF"
|
||||
};
|
||||
|
||||
resource(1, "BEOS:M:application/octet-stream") #'MICN' array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF003F0000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFF003F6060600000FFFFFFFFFF"
|
||||
$"FFFFFF003F6060606060600000FFFFFF"
|
||||
$"FFFF003F3F3F3F3F3F3F3F60600000FF"
|
||||
$"FF003F603F603F603F603F3F60600000"
|
||||
$"00606060606060606060601B600000AE"
|
||||
$"AE000087878787878787878701870000"
|
||||
$"FFAE000000878787878787008700AEAE"
|
||||
$"FFFFAE00AE0000AEAEAE000000AEFFFF"
|
||||
$"FFFFFFAE0087AE00AE00AEAEFFFFFFFF"
|
||||
$"FFFFFFFFAE00000000AEAEFFFFFFFFFF"
|
||||
$"FFFFFFFFFFAE00AEFFAEFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource mini_icon array {
|
||||
$"FFFFFFFFFFFFFFFF020200FFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF04151E1500FFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF021D1E1C00FFFFFFFF"
|
||||
$"FFFFFFFF00FFFF00151B1600FFFFFFFF"
|
||||
$"FFFFFF003F0000FA0000000000FFFFFF"
|
||||
$"FFFF003FFD0000F9F9FAFAFAFA00FFFF"
|
||||
$"FF003FFEFDFD00F9F9F9F97D7D00FFFF"
|
||||
$"003F62FE89007B00F9F900007D00FFFF"
|
||||
$"FF003FB0FD002F00F90060600000FFFF"
|
||||
$"FF003FFE002F000000606060606000FF"
|
||||
$"FF000000002F00003F3F606060D500FF"
|
||||
$"002B00002F00FA00ACAC3F3FD5D500FF"
|
||||
$"002B7B2CEB000000ACACACACD5D5000E"
|
||||
$"FF002B2F00000E00ACACACACD5D5000E"
|
||||
$"FF002B2F000E0E0F0000ACACD5000E0E"
|
||||
$"FFFF00000E0F0F0F0F0F0000000E0EFF"
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
** FileTypes.rdef
|
||||
**
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.obos.file-types";
|
||||
|
||||
resource app_flags 0x00000000;
|
||||
|
||||
resource file_types message {
|
||||
"types" = "application/x-be-resource",
|
||||
"types" = "application/octet-stream"
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
** 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"
|
||||
};
|
||||
@@ -0,0 +1,106 @@
|
||||
#include <Roster.h>
|
||||
|
||||
#include <Constants.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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
OpenDocument(&ref);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
FileTypesApp::ReadyToRun()
|
||||
{
|
||||
if (fWindowCount == 0) {
|
||||
OpenDocument();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
#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, const char *argv[], const char * cwd);
|
||||
virtual void RefsReceived(BMessage *message);
|
||||
virtual void ReadyToRun();
|
||||
|
||||
virtual void DispatchMessage(BMessage *an_event, BHandler *handler);
|
||||
|
||||
private:
|
||||
BFilePanel * fOpenPanel;
|
||||
FileTypesWindow * fWindow;
|
||||
};
|
||||
|
||||
extern FileTypesApp * file_types_app;
|
||||
|
||||
#endif // FILE_TYPES_APP
|
||||
@@ -0,0 +1,15 @@
|
||||
#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
|
||||
@@ -0,0 +1,2 @@
|
||||
#include <FileTypesView.h>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#ifndef FILE_TYPES_VIEW_H
|
||||
#define FILE_TYPES_VIEW_H
|
||||
|
||||
#include <BView.h>
|
||||
|
||||
class FileTypesView : public BView {
|
||||
public:
|
||||
FileTypesView(BRect viewframe);
|
||||
~FileTypesView();
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif // FILE_TYPES_VIEW_H
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
#include <FileTypeWindow.h>
|
||||
#include <FileTypeView.h>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#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:
|
||||
};
|
||||
|
||||
#endif // FILE_TYPES_WINDOW_H
|
||||
@@ -0,0 +1,16 @@
|
||||
SubDir OBOS_TOP src prefs filetypes ;
|
||||
|
||||
AddResources FileTypes :
|
||||
FileTypes.rdef FileTypes.icons.rdef FileTypes.version.rdef
|
||||
;
|
||||
|
||||
Preference FileTypes :
|
||||
main.cpp
|
||||
FileTypesApp.cpp
|
||||
FileTypesView.cpp
|
||||
FileTypesWindow.cpp
|
||||
FileTypeView.cpp
|
||||
FileTypeWindow.cpp
|
||||
;
|
||||
|
||||
LinkSharedOSLibs FileTypes : be ;
|
||||
@@ -0,0 +1,9 @@
|
||||
#include <FileTypesApp.h>
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
FileTypesApp fileTypes;
|
||||
fileTypes.Run();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user