From f1486a980fe3ec20d30c12709b315df49819b839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 8 Feb 2006 20:10:47 +0000 Subject: [PATCH] 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 --- src/preferences/filetypes/FileTypes.cpp | 216 ++++++++++++++++++ src/preferences/filetypes/FileTypes.h | 19 ++ .../filetypes/FileTypes.icons.rdef | 59 +---- src/preferences/filetypes/FileTypes.rdef | 76 +++++- .../filetypes/FileTypes.version.rdef | 20 -- src/preferences/filetypes/FileTypesApp.cpp | 121 ---------- src/preferences/filetypes/FileTypesApp.h | 34 --- .../filetypes/FileTypesConstants.h | 15 -- src/preferences/filetypes/FileTypesView.cpp | 2 - src/preferences/filetypes/FileTypesView.h | 14 -- src/preferences/filetypes/FileTypesWindow.cpp | 74 ++++++ src/preferences/filetypes/FileTypesWindow.h | 30 +-- src/preferences/filetypes/Jamfile | 14 +- src/preferences/filetypes/main.cpp | 9 - 14 files changed, 408 insertions(+), 295 deletions(-) create mode 100644 src/preferences/filetypes/FileTypes.cpp create mode 100644 src/preferences/filetypes/FileTypes.h delete mode 100644 src/preferences/filetypes/FileTypes.version.rdef delete mode 100644 src/preferences/filetypes/FileTypesApp.cpp delete mode 100644 src/preferences/filetypes/FileTypesApp.h delete mode 100644 src/preferences/filetypes/FileTypesConstants.h delete mode 100644 src/preferences/filetypes/FileTypesView.cpp delete mode 100644 src/preferences/filetypes/FileTypesView.h delete mode 100644 src/preferences/filetypes/main.cpp diff --git a/src/preferences/filetypes/FileTypes.cpp b/src/preferences/filetypes/FileTypes.cpp new file mode 100644 index 0000000000..b8c3525630 --- /dev/null +++ b/src/preferences/filetypes/FileTypes.cpp @@ -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 +//#include +//#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +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(¤tDirectory, 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; +} diff --git a/src/preferences/filetypes/FileTypes.h b/src/preferences/filetypes/FileTypes.h new file mode 100644 index 0000000000..a01651fc3f --- /dev/null +++ b/src/preferences/filetypes/FileTypes.h @@ -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 + + +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 diff --git a/src/preferences/filetypes/FileTypes.icons.rdef b/src/preferences/filetypes/FileTypes.icons.rdef index 85a9319e7c..1d15fd5de5 100644 --- a/src/preferences/filetypes/FileTypes.icons.rdef +++ b/src/preferences/filetypes/FileTypes.icons.rdef @@ -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" -}; diff --git a/src/preferences/filetypes/FileTypes.rdef b/src/preferences/filetypes/FileTypes.rdef index 773a03bcc1..0d9ad76b33 100644 --- a/src/preferences/filetypes/FileTypes.rdef +++ b/src/preferences/filetypes/FileTypes.rdef @@ -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" +}; diff --git a/src/preferences/filetypes/FileTypes.version.rdef b/src/preferences/filetypes/FileTypes.version.rdef deleted file mode 100644 index 37c2b5ed28..0000000000 --- a/src/preferences/filetypes/FileTypes.version.rdef +++ /dev/null @@ -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" -}; diff --git a/src/preferences/filetypes/FileTypesApp.cpp b/src/preferences/filetypes/FileTypesApp.cpp deleted file mode 100644 index ceae79e36c..0000000000 --- a/src/preferences/filetypes/FileTypesApp.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include -#include -#include - -#include -#include -#include - -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; -} diff --git a/src/preferences/filetypes/FileTypesApp.h b/src/preferences/filetypes/FileTypesApp.h deleted file mode 100644 index 37be0294f3..0000000000 --- a/src/preferences/filetypes/FileTypesApp.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef FILE_TYPES_APP -#define FILE_TYPES_APP - -#include -#include -#include - -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 diff --git a/src/preferences/filetypes/FileTypesConstants.h b/src/preferences/filetypes/FileTypesConstants.h deleted file mode 100644 index 986c81b409..0000000000 --- a/src/preferences/filetypes/FileTypesConstants.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef FILE_TYPES_CONSTANTS_H -#define FILE_TYPES_CONSTANTS_H - -#define APP_SIGNATURE "application/x-vnd.obos.file-types" - -#include - -// 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 diff --git a/src/preferences/filetypes/FileTypesView.cpp b/src/preferences/filetypes/FileTypesView.cpp deleted file mode 100644 index 1905877b1e..0000000000 --- a/src/preferences/filetypes/FileTypesView.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include - diff --git a/src/preferences/filetypes/FileTypesView.h b/src/preferences/filetypes/FileTypesView.h deleted file mode 100644 index bab5fa4bce..0000000000 --- a/src/preferences/filetypes/FileTypesView.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef FILE_TYPES_VIEW_H -#define FILE_TYPES_VIEW_H - -#include - -class FileTypesView : public BView { -public: - FileTypesView(BRect viewframe); - ~FileTypesView(); - -private: -}; - -#endif // FILE_TYPES_VIEW_H diff --git a/src/preferences/filetypes/FileTypesWindow.cpp b/src/preferences/filetypes/FileTypesWindow.cpp index 8b13789179..b66d2a637a 100644 --- a/src/preferences/filetypes/FileTypesWindow.cpp +++ b/src/preferences/filetypes/FileTypesWindow.cpp @@ -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 +#include +#include + +#include + + +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; +} + diff --git a/src/preferences/filetypes/FileTypesWindow.h b/src/preferences/filetypes/FileTypesWindow.h index 0d27511a71..c588caffbb 100644 --- a/src/preferences/filetypes/FileTypesWindow.h +++ b/src/preferences/filetypes/FileTypesWindow.h @@ -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 -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 diff --git a/src/preferences/filetypes/Jamfile b/src/preferences/filetypes/Jamfile index 2fdc67eb1c..c6cbb3a592 100644 --- a/src/preferences/filetypes/Jamfile +++ b/src/preferences/filetypes/Jamfile @@ -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 ; +} diff --git a/src/preferences/filetypes/main.cpp b/src/preferences/filetypes/main.cpp deleted file mode 100644 index e5d837cd4e..0000000000 --- a/src/preferences/filetypes/main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include - -int -main() -{ - FileTypesApp fileTypes; - fileTypes.Run(); - return 0; -}