1/* 2 * Copyright 2006, 2011, Stephan A��mus <superstippi@gmx.de>. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef ICON_EDITOR_APP_H 6#define ICON_EDITOR_APP_H 7 8 9#include <Application.h> 10#include <String.h> 11 12 13class BFilePanel; 14class MainWindow; 15class SavePanel; 16 17 18enum { 19 MSG_NEW = 'newi', 20 MSG_SAVE_AS = 'svas', 21 MSG_EXPORT_AS = 'xpas', 22 MSG_WINDOW_CLOSED = 'wndc', 23}; 24 25 26enum { 27 EXPORT_MODE_MESSAGE = 0, 28 EXPORT_MODE_FLAT_ICON, 29 EXPORT_MODE_SVG, 30 EXPORT_MODE_BITMAP_16, 31 EXPORT_MODE_BITMAP_32, 32 EXPORT_MODE_BITMAP_64, 33 EXPORT_MODE_BITMAP_SET, 34 EXPORT_MODE_ICON_ATTR, 35 EXPORT_MODE_ICON_MIME_ATTR, 36 EXPORT_MODE_ICON_RDEF, 37 EXPORT_MODE_ICON_SOURCE, 38}; 39 40 41typedef enum { 42 LAST_PATH_OPEN = 0, 43 LAST_PATH_SAVE, 44 LAST_PATH_EXPORT, 45} path_kind; 46 47 48class IconEditorApp : public BApplication { 49public: 50 IconEditorApp(); 51 virtual ~IconEditorApp(); 52 53 // BApplication interface 54 virtual bool QuitRequested(); 55 virtual void MessageReceived(BMessage* message); 56 virtual void ReadyToRun(); 57 virtual void RefsReceived(BMessage* message); 58 virtual void ArgvReceived(int32 argc, char** argv); 59 60 // IconEditorApp 61 62private: 63 MainWindow* _NewWindow(); 64 65 void _SyncPanels(BFilePanel* from, 66 BFilePanel* to); 67 68 const char* _LastFilePath(path_kind which); 69 70 void _StoreSettings(); 71 void _RestoreSettings(); 72 void _InstallDocumentMimeType(); 73 74private: 75 int32 fWindowCount; 76 BMessage fLastWindowSettings; 77 BRect fLastWindowFrame; 78 79 BFilePanel* fOpenPanel; 80 SavePanel* fSavePanel; 81 82 BString fLastOpenPath; 83 BString fLastSavePath; 84 BString fLastExportPath; 85}; 86 87 88#endif // ICON_EDITOR_APP_H 89