summaryrefslogtreecommitdiff
path: root/library/resources.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'library/resources.cpp')
-rw-r--r--library/resources.cpp184
1 files changed, 184 insertions, 0 deletions
diff --git a/library/resources.cpp b/library/resources.cpp
new file mode 100644
index 00000000..73e11575
--- /dev/null
+++ b/library/resources.cpp
@@ -0,0 +1,184 @@
+#include "resources.h"
+#include <wx/wfstream.h>
+#include <wx/zipstrm.h>
+#include <wx/image.h>
+#include <wx/icon.h>
+#include <stdexcept> //for std::runtime_error
+
+#ifdef FFS_WIN
+wxChar GlobalResources::fileNameSeparator = '\\';
+#elif defined FFS_LINUX
+wxChar GlobalResources::fileNameSeparator = '/';
+#else
+assert(false);
+#endif
+
+//these two global variables are language-dependent => cannot be set statically! See CustomLocale
+const wxChar* GlobalResources::decimalPoint = "";
+const wxChar* GlobalResources::thousandsSeparator = "";
+
+
+//command line parameters
+const wxChar* GlobalResources::paramCompare = "cmp";
+const wxChar* GlobalResources::paramCfg = "cfg";
+const wxChar* GlobalResources::paramInclude = "incl";
+const wxChar* GlobalResources::paramExclude = "excl";
+const wxChar* GlobalResources::paramContinueError = "continue";
+const wxChar* GlobalResources::paramRecycler = "recycler";
+const wxChar* GlobalResources::paramSilent = "silent";
+
+const wxChar* GlobalResources::valueSizeDate = "SIZEDATE";
+const wxChar* GlobalResources::valueContent = "CONTENT";
+
+
+map<wxString, wxBitmap*> GlobalResources::bitmapResource;
+
+wxBitmap* GlobalResources::bitmapLeftArrow = 0;
+wxBitmap* GlobalResources::bitmapRightArrow = 0;
+wxBitmap* GlobalResources::bitmapNoArrow = 0;
+wxBitmap* GlobalResources::bitmapStartSync = 0;
+wxBitmap* GlobalResources::bitmapStartSyncDis = 0;
+wxBitmap* GlobalResources::bitmapDelete = 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;
+
+wxAnimation* GlobalResources::animationMoney = 0;
+wxAnimation* GlobalResources::animationSync = 0;
+wxIcon* GlobalResources::programIcon = 0;
+
+
+void GlobalResources::loadResourceFiles()
+{
+ //map, allocate and initialize pictures
+ bitmapResource["left arrow.png"] = (bitmapLeftArrow = new wxBitmap(wxNullBitmap));
+ bitmapResource["right arrow.png"] = (bitmapRightArrow = new wxBitmap(wxNullBitmap));
+ bitmapResource["no arrow.png"] = (bitmapNoArrow = new wxBitmap(wxNullBitmap));
+ bitmapResource["start sync.png"] = (bitmapStartSync = new wxBitmap(wxNullBitmap));
+ bitmapResource["start sync dis.png"] = (bitmapStartSyncDis = new wxBitmap(wxNullBitmap));
+ bitmapResource["delete.png"] = (bitmapDelete = new wxBitmap(wxNullBitmap));
+ bitmapResource["email.png"] = (bitmapEmail = new wxBitmap(wxNullBitmap));
+ bitmapResource["about.png"] = (bitmapAbout = new wxBitmap(wxNullBitmap));
+ bitmapResource["website.png"] = (bitmapWebsite = new wxBitmap(wxNullBitmap));
+ bitmapResource["exit.png"] = (bitmapExit = new wxBitmap(wxNullBitmap));
+ bitmapResource["sync.png"] = (bitmapSync = new wxBitmap(wxNullBitmap));
+ bitmapResource["compare.png"] = (bitmapCompare = new wxBitmap(wxNullBitmap));
+ bitmapResource["sync disabled.png"] = (bitmapSyncDisabled = new wxBitmap(wxNullBitmap));
+ bitmapResource["swap.png"] = (bitmapSwap = new wxBitmap(wxNullBitmap));
+ bitmapResource["help.png"] = (bitmapHelp = new wxBitmap(wxNullBitmap));
+ bitmapResource["leftOnly.png"] = (bitmapLeftOnly = new wxBitmap(wxNullBitmap));
+ bitmapResource["leftNewer.png"] = (bitmapLeftNewer = new wxBitmap(wxNullBitmap));
+ bitmapResource["different.png"] = (bitmapDifferent = new wxBitmap(wxNullBitmap));
+ bitmapResource["rightNewer.png"] = (bitmapRightNewer = new wxBitmap(wxNullBitmap));
+ bitmapResource["rightOnly.png"] = (bitmapRightOnly = new wxBitmap(wxNullBitmap));
+ bitmapResource["leftOnlyDeact.png"] = (bitmapLeftOnlyDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["leftNewerDeact.png"] = (bitmapLeftNewerDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["differentDeact.png"] = (bitmapDifferentDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["rightNewerDeact.png"] = (bitmapRightNewerDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["rightOnlyDeact.png"] = (bitmapRightOnlyDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["equal.png"] = (bitmapEqual = new wxBitmap(wxNullBitmap));
+ bitmapResource["equalDeact.png"] = (bitmapEqualDeact = new wxBitmap(wxNullBitmap));
+ bitmapResource["include.png"] = (bitmapInclude = new wxBitmap(wxNullBitmap));
+ bitmapResource["exclude.png"] = (bitmapExclude = new wxBitmap(wxNullBitmap));
+ bitmapResource["filter active.png"] = (bitmapFilterOn = new wxBitmap(wxNullBitmap));
+ bitmapResource["filter not active.png"] = (bitmapFilterOff = new wxBitmap(wxNullBitmap));
+ bitmapResource["warning.png"] = (bitmapWarning = new wxBitmap(wxNullBitmap));
+ bitmapResource["small arrow up.png"] = (bitmapSmallUp = new wxBitmap(wxNullBitmap));
+ bitmapResource["small arrow down.png"] = (bitmapSmallDown = new wxBitmap(wxNullBitmap));
+ bitmapResource["save.png"] = (bitmapSave = new wxBitmap(wxNullBitmap));
+ bitmapResource["FFS.png"] = (bitmapFFS = new wxBitmap(wxNullBitmap));
+ bitmapResource["deleteFile.png"] = (bitmapDeleteFile = new wxBitmap(wxNullBitmap));
+ bitmapResource["gpl.png"] = (bitmapGPL = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusPause.png"] = (bitmapStatusPause = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusError.png"] = (bitmapStatusError = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusSuccess.png"] = (bitmapStatusSuccess = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusWarning.png"] = (bitmapStatusWarning = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusScanning.png"] = (bitmapStatusScanning = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusComparing.png"] = (bitmapStatusComparing = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusSyncing.png"] = (bitmapStatusSyncing = new wxBitmap(wxNullBitmap));
+ bitmapResource["logo.png"] = (bitmapLogo = new wxBitmap(wxNullBitmap));
+ bitmapResource["finished.png"] = (bitmapFinished = new wxBitmap(wxNullBitmap));
+ bitmapResource["statusEdge.png"] = (bitmapStatusEdge = new wxBitmap(wxNullBitmap));
+
+ wxFileInputStream input("Resources.dat");
+ if (!input.IsOk()) throw runtime_error(_("Unable to load Resources.dat!"));
+
+ wxZipInputStream resourceFile(input);
+
+ 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));
+ }
+
+ //load all the other resource files
+ animationMoney = new wxAnimation(wxNullAnimation);
+ animationSync = new wxAnimation(wxNullAnimation);
+
+ animationMoney->LoadFile("Resources.a01");
+ animationSync->LoadFile("Resources.a02");
+
+#ifdef FFS_WIN
+ programIcon = new wxIcon("winIcon");
+#else
+#include "FreeFileSync.xpm"
+ 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;
+}
bgstack15