From 9705667601610f29e7a9ac65bec273cc198adda6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 4 Apr 2011 09:39:25 +0000 Subject: [PATCH] * Created separate PNG exporters for 16x16, 32x32 and 64x64 sizes. * When exporting for the first time, use the native saver's file name to initialize the file panel save text. * Don't shadow exportMode variable. * Small cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41181 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/icon-o-matic/IconEditorApp.cpp | 37 +++++++++++++++---------- src/apps/icon-o-matic/IconEditorApp.h | 4 ++- src/apps/icon-o-matic/gui/SavePanel.cpp | 24 ++++++++++++---- src/apps/icon-o-matic/gui/SavePanel.h | 4 ++- 4 files changed, 47 insertions(+), 22 deletions(-) diff --git a/src/apps/icon-o-matic/IconEditorApp.cpp b/src/apps/icon-o-matic/IconEditorApp.cpp index 66622ea1df..fc8c171172 100644 --- a/src/apps/icon-o-matic/IconEditorApp.cpp +++ b/src/apps/icon-o-matic/IconEditorApp.cpp @@ -136,7 +136,7 @@ IconEditorApp::MessageReceived(BMessage* message) saver = fDocument->NativeSaver(); else saver = fDocument->ExportSaver(); - if (saver) { + if (saver != NULL) { saver->Save(fDocument); _PickUpActionBeforeSave(); break; @@ -171,24 +171,26 @@ IconEditorApp::MessageReceived(BMessage* message) } _SyncPanels(fSavePanel, fOpenPanel); } else { + printf("configure file panel\n"); // configure the file panel const char* saveText = NULL; FileSaver* saver = dynamic_cast( fDocument->NativeSaver()); - - bool exportMode = message->what == MSG_EXPORT_AS - || message->what == MSG_EXPORT; - if (exportMode) { - saver = dynamic_cast( - fDocument->ExportSaver()); - } - - if (saver) + if (saver != NULL) saveText = saver->Ref()->name; - fSavePanel->SetExportMode(exportMode); + bool isExportMode = message->what == MSG_EXPORT_AS + || message->what == MSG_EXPORT; + if (isExportMode) { + saver = dynamic_cast( + fDocument->ExportSaver()); + if (saver != NULL && saver->Ref()->name != NULL) + saveText = saver->Ref()->name; + } + + fSavePanel->SetExportMode(isExportMode); // fSavePanel->Refresh(); - if (saveText) + if (saveText != NULL) fSavePanel->SetSaveText(saveText); fSavePanel->Show(); } @@ -469,8 +471,7 @@ IconEditorApp::_Open(const entry_ref& ref, bool append) // least one ref already switch (refMode) { case REF_MESSAGE: - fDocument->SetNativeSaver( - new NativeSaver(ref)); + fDocument->SetNativeSaver(new NativeSaver(ref)); break; case REF_FLAT: fDocument->SetExportSaver( @@ -592,7 +593,13 @@ IconEditorApp::_CreateSaver(const entry_ref& ref, uint32 exportMode) saver = new SimpleFileSaver(new SourceExporter(), ref); break; - case EXPORT_MODE_BITMAP: + case EXPORT_MODE_BITMAP_16: + saver = new SimpleFileSaver(new BitmapExporter(16), ref); + break; + case EXPORT_MODE_BITMAP_32: + saver = new SimpleFileSaver(new BitmapExporter(32), ref); + break; + case EXPORT_MODE_BITMAP_64: saver = new SimpleFileSaver(new BitmapExporter(64), ref); break; diff --git a/src/apps/icon-o-matic/IconEditorApp.h b/src/apps/icon-o-matic/IconEditorApp.h index 530e067658..2ebaea61d4 100644 --- a/src/apps/icon-o-matic/IconEditorApp.h +++ b/src/apps/icon-o-matic/IconEditorApp.h @@ -35,7 +35,9 @@ enum { EXPORT_MODE_MESSAGE = 0, EXPORT_MODE_FLAT_ICON, EXPORT_MODE_SVG, - EXPORT_MODE_BITMAP, + 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, diff --git a/src/apps/icon-o-matic/gui/SavePanel.cpp b/src/apps/icon-o-matic/gui/SavePanel.cpp index ab6ee8c5c4..9932e8bf2d 100644 --- a/src/apps/icon-o-matic/gui/SavePanel.cpp +++ b/src/apps/icon-o-matic/gui/SavePanel.cpp @@ -239,8 +239,14 @@ SavePanel::SetExportMode(int32 mode) case EXPORT_MODE_SVG: fSVGMI->SetMarked(true); break; - case EXPORT_MODE_BITMAP: - fBitmapMI->SetMarked(true); + case EXPORT_MODE_BITMAP_16: + fBitmap16MI->SetMarked(true); + break; + case EXPORT_MODE_BITMAP_32: + fBitmap32MI->SetMarked(true); + break; + case EXPORT_MODE_BITMAP_64: + fBitmap64MI->SetMarked(true); break; case EXPORT_MODE_BITMAP_SET: fBitmapSetMI->SetMarked(true); @@ -413,9 +419,17 @@ SavePanel::_BuildMenu() fFormatM->AddSeparatorItem(); - fBitmapMI = new SaveItem("PNG", - new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP); - fFormatM->AddItem(fBitmapMI); + fBitmap16MI = new SaveItem("PNG 16x16", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_16); + fFormatM->AddItem(fBitmap16MI); + + fBitmap32MI = new SaveItem("PNG 32x32", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_32); + fFormatM->AddItem(fBitmap32MI); + + fBitmap64MI = new SaveItem("PNG 64x64", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_64); + fFormatM->AddItem(fBitmap64MI); fBitmapSetMI = new SaveItem(B_TRANSLATE("PNG Set"), new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_SET); diff --git a/src/apps/icon-o-matic/gui/SavePanel.h b/src/apps/icon-o-matic/gui/SavePanel.h index 19e799fb7e..0adac8f4bf 100644 --- a/src/apps/icon-o-matic/gui/SavePanel.h +++ b/src/apps/icon-o-matic/gui/SavePanel.h @@ -77,7 +77,9 @@ class SavePanel : public BFilePanel, SaveItem* fRDefMI; SaveItem* fSourceMI; SaveItem* fSVGMI; - SaveItem* fBitmapMI; + SaveItem* fBitmap16MI; + SaveItem* fBitmap32MI; + SaveItem* fBitmap64MI; SaveItem* fBitmapSetMI; SaveItem* fIconAttrMI; SaveItem* fIconMimeAttrMI;