diff options
Diffstat (limited to 'library/resources.cpp')
-rw-r--r-- | library/resources.cpp | 241 |
1 files changed, 91 insertions, 150 deletions
diff --git a/library/resources.cpp b/library/resources.cpp index d2dc36e8..9fce4501 100644 --- a/library/resources.cpp +++ b/library/resources.cpp @@ -6,9 +6,9 @@ #include "globalFunctions.h" #ifdef FFS_WIN -wxChar GlobalResources::fileNameSeparator = '\\'; +const wxChar GlobalResources::fileNameSeparator = '\\'; #elif defined FFS_LINUX -wxChar GlobalResources::fileNameSeparator = '/'; +const wxChar GlobalResources::fileNameSeparator = '/'; #else assert(false); #endif @@ -17,154 +17,108 @@ assert(false); const wxChar* GlobalResources::decimalPoint = wxEmptyString; const wxChar* GlobalResources::thousandsSeparator = wxEmptyString; +GlobalResources globalResource; //init resources on program startup -//command line parameters -const wxChar* GlobalResources::paramCompare = wxT("comp"); -const wxChar* GlobalResources::paramSync = wxT("sync"); -const wxChar* GlobalResources::paramInclude = wxT("incl"); -const wxChar* GlobalResources::paramExclude = wxT("excl"); -const wxChar* GlobalResources::paramContinueError = wxT("continue"); -const wxChar* GlobalResources::paramRecycler = wxT("recycler"); -const wxChar* GlobalResources::paramSilent = wxT("silent"); - -const wxChar* GlobalResources::valueSizeDate = wxT("SIZEDATE"); -const wxChar* GlobalResources::valueContent = wxT("CONTENT"); - +GlobalResources::GlobalResources() +{ + //map, allocate and initialize pictures + bitmapResource[wxT("left arrow.png")] = (bitmapArrowLeft = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("right arrow.png")] = (bitmapArrowRight = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("left arrow create.png")] = (bitmapArrowLeftCr = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("right arrow create.png")] = (bitmapArrowRightCr = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("no arrow.png")] = (bitmapArrowNone = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("start sync.png")] = (bitmapStartSync = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("start sync dis.png")] = (bitmapStartSyncDis = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("left delete.png")] = (bitmapDeleteLeft = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("right delete.png")] = (bitmapDeleteRight = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("email.png")] = (bitmapEmail = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("about.png")] = (bitmapAbout = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("website.png")] = (bitmapWebsite = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("exit.png")] = (bitmapExit = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("sync.png")] = (bitmapSync = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("compare.png")] = (bitmapCompare = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("sync disabled.png")] = (bitmapSyncDisabled = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("swap.png")] = (bitmapSwap = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("help.png")] = (bitmapHelp = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("leftOnly.png")] = (bitmapLeftOnly = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("leftNewer.png")] = (bitmapLeftNewer = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("different.png")] = (bitmapDifferent = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("rightNewer.png")] = (bitmapRightNewer = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("rightOnly.png")] = (bitmapRightOnly = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("leftOnlyDeact.png")] = (bitmapLeftOnlyDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("leftNewerDeact.png")] = (bitmapLeftNewerDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("differentDeact.png")] = (bitmapDifferentDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("rightNewerDeact.png")] = (bitmapRightNewerDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("rightOnlyDeact.png")] = (bitmapRightOnlyDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("equal.png")] = (bitmapEqual = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("equalDeact.png")] = (bitmapEqualDeact = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("include.png")] = (bitmapInclude = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("exclude.png")] = (bitmapExclude = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("filter active.png")] = (bitmapFilterOn = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("filter not active.png")] = (bitmapFilterOff = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("warning.png")] = (bitmapWarning = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("small arrow up.png"]) = (bitmapSmallUp = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("small arrow down.png")] = (bitmapSmallDown = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("save.png")] = (bitmapSave = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("FFS.png")] = (bitmapFFS = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("deleteFile.png")] = (bitmapDeleteFile = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("gpl.png")] = (bitmapGPL = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusPause.png")] = (bitmapStatusPause = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusError.png")] = (bitmapStatusError = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusSuccess.png")] = (bitmapStatusSuccess = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusWarning.png")] = (bitmapStatusWarning = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusScanning.png")] = (bitmapStatusScanning = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusComparing.png")] = (bitmapStatusComparing = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusSyncing.png")] = (bitmapStatusSyncing = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("logo.png")] = (bitmapLogo = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("finished.png")] = (bitmapFinished = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("statusEdge.png")] = (bitmapStatusEdge = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("add pair.png")] = (bitmapAddFolderPair = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("remove pair.png")] = (bitmapRemoveFolderPair = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("remove pair disabl.png")] = (bitmapRemoveFolderPairD = new wxBitmap(wxNullBitmap)); + bitmapResource[wxT("link.png")] = (bitmapLink = new wxBitmap(wxNullBitmap)); + + //init all the other resource files + animationMoney = new wxAnimation(wxNullAnimation); + animationSync = new wxAnimation(wxNullAnimation); +} -map<wxString, wxBitmap*> GlobalResources::bitmapResource; -wxBitmap* GlobalResources::bitmapArrowLeft = 0; -wxBitmap* GlobalResources::bitmapArrowRight = 0; -wxBitmap* GlobalResources::bitmapArrowLeftCr = 0; -wxBitmap* GlobalResources::bitmapArrowRightCr = 0; -wxBitmap* GlobalResources::bitmapArrowNone = 0; -wxBitmap* GlobalResources::bitmapStartSync = 0; -wxBitmap* GlobalResources::bitmapStartSyncDis = 0; -wxBitmap* GlobalResources::bitmapDeleteLeft = 0; -wxBitmap* GlobalResources::bitmapDeleteRight = 0; -wxBitmap* GlobalResources::bitmapEmail = 0; -wxBitmap* GlobalResources::bitmapAbout = 0; -wxBitmap* GlobalResources::bitmapWebsite = 0; -wxBitmap* GlobalResources::bitmapExit = 0; -wxBitmap* GlobalResources::bitmapSync = 0; -wxBitmap* GlobalResources::bitmapCompare = 0; -wxBitmap* GlobalResources::bitmapSyncDisabled = 0; -wxBitmap* GlobalResources::bitmapSwap = 0; -wxBitmap* GlobalResources::bitmapHelp = 0; -wxBitmap* GlobalResources::bitmapLeftOnly = 0; -wxBitmap* GlobalResources::bitmapLeftNewer = 0; -wxBitmap* GlobalResources::bitmapDifferent = 0; -wxBitmap* GlobalResources::bitmapRightNewer = 0; -wxBitmap* GlobalResources::bitmapRightOnly = 0; -wxBitmap* GlobalResources::bitmapLeftOnlyDeact = 0; -wxBitmap* GlobalResources::bitmapLeftNewerDeact = 0; -wxBitmap* GlobalResources::bitmapDifferentDeact = 0; -wxBitmap* GlobalResources::bitmapRightNewerDeact = 0; -wxBitmap* GlobalResources::bitmapRightOnlyDeact = 0; -wxBitmap* GlobalResources::bitmapEqual = 0; -wxBitmap* GlobalResources::bitmapEqualDeact = 0; -wxBitmap* GlobalResources::bitmapInclude = 0; -wxBitmap* GlobalResources::bitmapExclude = 0; -wxBitmap* GlobalResources::bitmapFilterOn = 0; -wxBitmap* GlobalResources::bitmapFilterOff = 0; -wxBitmap* GlobalResources::bitmapWarning = 0; -wxBitmap* GlobalResources::bitmapSmallUp = 0; -wxBitmap* GlobalResources::bitmapSmallDown = 0; -wxBitmap* GlobalResources::bitmapSave = 0; -wxBitmap* GlobalResources::bitmapFFS = 0; -wxBitmap* GlobalResources::bitmapDeleteFile = 0; -wxBitmap* GlobalResources::bitmapGPL = 0; -wxBitmap* GlobalResources::bitmapStatusPause = 0; -wxBitmap* GlobalResources::bitmapStatusError = 0; -wxBitmap* GlobalResources::bitmapStatusSuccess = 0; -wxBitmap* GlobalResources::bitmapStatusWarning = 0; -wxBitmap* GlobalResources::bitmapStatusScanning = 0; -wxBitmap* GlobalResources::bitmapStatusComparing = 0; -wxBitmap* GlobalResources::bitmapStatusSyncing = 0; -wxBitmap* GlobalResources::bitmapLogo = 0; -wxBitmap* GlobalResources::bitmapFinished = 0; -wxBitmap* GlobalResources::bitmapStatusEdge = 0; +GlobalResources::~GlobalResources() +{ + //free bitmap resources + for (map<wxString, wxBitmap*>::iterator i = bitmapResource.begin(); i != bitmapResource.end(); ++i) + delete i->second; -wxAnimation* GlobalResources::animationMoney = 0; -wxAnimation* GlobalResources::animationSync = 0; -wxIcon* GlobalResources::programIcon = 0; + //free other resources + delete animationMoney; + delete animationSync; + delete programIcon; +} -void GlobalResources::loadResourceFiles() +void GlobalResources::load() { - //map, allocate and initialize pictures - bitmapResource[wxT("left arrow.png")] = (bitmapArrowLeft = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("right arrow.png")] = (bitmapArrowRight = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("left arrow create.png")] = (bitmapArrowLeftCr = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("right arrow create.png")]= (bitmapArrowRightCr = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("no arrow.png")] = (bitmapArrowNone = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("start sync.png")] = (bitmapStartSync = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("start sync dis.png")] = (bitmapStartSyncDis = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("left delete.png")] = (bitmapDeleteLeft = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("right delete.png")] = (bitmapDeleteRight = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("email.png")] = (bitmapEmail = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("about.png")] = (bitmapAbout = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("website.png")] = (bitmapWebsite = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("exit.png")] = (bitmapExit = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("sync.png")] = (bitmapSync = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("compare.png")] = (bitmapCompare = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("sync disabled.png")] = (bitmapSyncDisabled = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("swap.png")] = (bitmapSwap = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("help.png")] = (bitmapHelp = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("leftOnly.png")] = (bitmapLeftOnly = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("leftNewer.png")] = (bitmapLeftNewer = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("different.png")] = (bitmapDifferent = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("rightNewer.png")] = (bitmapRightNewer = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("rightOnly.png")] = (bitmapRightOnly = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("leftOnlyDeact.png")] = (bitmapLeftOnlyDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("leftNewerDeact.png")] = (bitmapLeftNewerDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("differentDeact.png")] = (bitmapDifferentDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("rightNewerDeact.png")] = (bitmapRightNewerDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("rightOnlyDeact.png")] = (bitmapRightOnlyDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("equal.png")] = (bitmapEqual = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("equalDeact.png")] = (bitmapEqualDeact = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("include.png")] = (bitmapInclude = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("exclude.png")] = (bitmapExclude = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("filter active.png")] = (bitmapFilterOn = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("filter not active.png")] = (bitmapFilterOff = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("warning.png")] = (bitmapWarning = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("small arrow up.png"]) = (bitmapSmallUp = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("small arrow down.png")] = (bitmapSmallDown = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("save.png")] = (bitmapSave = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("FFS.png")] = (bitmapFFS = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("deleteFile.png")] = (bitmapDeleteFile = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("gpl.png")] = (bitmapGPL = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusPause.png")] = (bitmapStatusPause = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusError.png")] = (bitmapStatusError = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusSuccess.png")] = (bitmapStatusSuccess = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusWarning.png")] = (bitmapStatusWarning = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusScanning.png")] = (bitmapStatusScanning = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusComparing.png")] = (bitmapStatusComparing = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusSyncing.png")] = (bitmapStatusSyncing = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("logo.png")] = (bitmapLogo = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("finished.png")] = (bitmapFinished = new wxBitmap(wxNullBitmap)); - bitmapResource[wxT("statusEdge.png")] = (bitmapStatusEdge = new wxBitmap(wxNullBitmap)); - wxFileInputStream input(wxT("Resources.dat")); - if (!input.IsOk()) throw RuntimeException(_("Unable to load Resources.dat!")); + if (input.IsOk()) //if not... we don't want to react too harsh here + { + //activate support for .png files + wxImage::AddHandler(new wxPNGHandler); - wxZipInputStream resourceFile(input); + wxZipInputStream resourceFile(input); - wxZipEntry* entry; - map<wxString, wxBitmap*>::iterator bmp; - while ((entry = resourceFile.GetNextEntry())) - { - wxString name = entry->GetName(); + wxZipEntry* entry; + map<wxString, wxBitmap*>::iterator bmp; + while ((entry = resourceFile.GetNextEntry())) + { + wxString name = entry->GetName(); - //just to be sure: search if entry is available in map - if ((bmp = bitmapResource.find(name)) != bitmapResource.end()) - *(bmp->second) = wxBitmap(wxImage(resourceFile, wxBITMAP_TYPE_PNG)); + //just to be sure: search if entry is available in map + if ((bmp = bitmapResource.find(name)) != bitmapResource.end()) + *(bmp->second) = wxBitmap(wxImage(resourceFile, wxBITMAP_TYPE_PNG)); + } } - //load all the other resource files - animationMoney = new wxAnimation(wxNullAnimation); - animationSync = new wxAnimation(wxNullAnimation); - animationMoney->LoadFile(wxT("Resources.a01")); animationSync->LoadFile(wxT("Resources.a02")); @@ -175,16 +129,3 @@ void GlobalResources::loadResourceFiles() programIcon = new wxIcon(FreeFileSync_xpm); #endif } - - -void GlobalResources::unloadResourceFiles() -{ - //free bitmap resources - for (map<wxString, wxBitmap*>::iterator i = bitmapResource.begin(); i != bitmapResource.end(); ++i) - delete i->second; - - //free other resources - delete animationMoney; - delete animationSync; - delete programIcon; -} |