haiku/src/apps/icon-o-matic/IconEditorApp.h

89 lines
1.7 KiB
C++

/*
* Copyright 2006, 2011, Stephan Aßmus <superstippi@gmx.de>.
* Distributed under the terms of the MIT License.
*/
#ifndef ICON_EDITOR_APP_H
#define ICON_EDITOR_APP_H
#include <Application.h>
#include <String.h>
class BFilePanel;
class MainWindow;
class SavePanel;
enum {
MSG_NEW = 'newi',
MSG_SAVE_AS = 'svas',
MSG_EXPORT_AS = 'xpas',
MSG_WINDOW_CLOSED = 'wndc',
};
enum {
EXPORT_MODE_MESSAGE = 0,
EXPORT_MODE_FLAT_ICON,
EXPORT_MODE_SVG,
EXPORT_MODE_BITMAP_16,
EXPORT_MODE_BITMAP_32,
EXPORT_MODE_BITMAP_64,
EXPORT_MODE_BITMAP_SET,
EXPORT_MODE_ICON_ATTR,
EXPORT_MODE_ICON_MIME_ATTR,
EXPORT_MODE_ICON_RDEF,
EXPORT_MODE_ICON_SOURCE,
};
typedef enum {
LAST_PATH_OPEN = 0,
LAST_PATH_SAVE,
LAST_PATH_EXPORT,
} path_kind;
class IconEditorApp : public BApplication {
public:
IconEditorApp();
virtual ~IconEditorApp();
// BApplication interface
virtual bool QuitRequested();
virtual void MessageReceived(BMessage* message);
virtual void ReadyToRun();
virtual void RefsReceived(BMessage* message);
virtual void ArgvReceived(int32 argc, char** argv);
// IconEditorApp
private:
MainWindow* _NewWindow();
void _SyncPanels(BFilePanel* from,
BFilePanel* to);
const char* _LastFilePath(path_kind which);
void _StoreSettings();
void _RestoreSettings();
void _InstallDocumentMimeType();
private:
int32 fWindowCount;
BMessage fLastWindowSettings;
BRect fLastWindowFrame;
BFilePanel* fOpenPanel;
SavePanel* fSavePanel;
BString fLastOpenPath;
BString fLastSavePath;
BString fLastExportPath;
};
#endif // ICON_EDITOR_APP_H