blob: 6007f5c907d4d8c7c8dbc5515d3ba7d6e3377a0a [file] [log] [blame]
#include "llbrowse/Resources.h"
#include "wx/mstream.h"
#include "wx/imaglist.h"
#include "resources/icons/alias.png.h"
#include "resources/icons/collapse.png.h"
#include "resources/icons/constant.png.h"
#include "resources/icons/debug.png.h"
#include "resources/icons/expand.png.h"
#include "resources/icons/folder.png.h"
#include "resources/icons/function.png.h"
#include "resources/icons/meta.png.h"
#include "resources/icons/module.png.h"
#include "resources/icons/type.png.h"
#include "resources/icons/typeref.png.h"
#include "resources/icons/variable.png.h"
static wxBitmap wxGetBitmapFromMemory(const unsigned char* data, int length) {
wxMemoryInputStream strm(data, length);
return wxBitmap(wxImage(strm, wxBITMAP_TYPE_PNG, -1), -1);
}
#define DEFINE_IMAGE_RESOURCE(symname, imgname) \
wxBitmap Resources::Get ## symname ## Icon() { \
static wxBitmap bm; \
if (!bm.IsOk()) { \
bm = wxGetBitmapFromMemory(imgname ## _png, sizeof(imgname ## _png)); \
} \
return bm; \
}
DEFINE_IMAGE_RESOURCE(Collapse, collapse)
DEFINE_IMAGE_RESOURCE(Expand, expand)
DEFINE_IMAGE_RESOURCE(Module, module)
DEFINE_IMAGE_RESOURCE(Folder, folder)
DEFINE_IMAGE_RESOURCE(Type, type)
DEFINE_IMAGE_RESOURCE(Function, function)
DEFINE_IMAGE_RESOURCE(Variable, variable)
DEFINE_IMAGE_RESOURCE(Alias, alias)
DEFINE_IMAGE_RESOURCE(Constant, constant)
DEFINE_IMAGE_RESOURCE(Typeref, typeref)
DEFINE_IMAGE_RESOURCE(Meta, meta)
DEFINE_IMAGE_RESOURCE(Debug, debug)
wxImageList* Resources::GetTreeListIconList() {
static wxImageList* icons = NULL;
if (icons == NULL) {
icons = new wxImageList(
GetModuleIcon().GetWidth(),
GetModuleIcon().GetHeight(),
true, ICON_COUNT);
// Important: Keep in sync with TreeListIconID enum.
icons->Add(GetModuleIcon());
icons->Add(GetFolderIcon());
icons->Add(GetTypeIcon());
icons->Add(GetFunctionIcon());
icons->Add(GetVariableIcon());
icons->Add(GetAliasIcon());
icons->Add(GetConstantIcon());
icons->Add(GetTyperefIcon());
icons->Add(GetMetaIcon());
icons->Add(GetDebugIcon());
}
return icons;
}
wxImageList* Resources::GetTreeListButtonList() {
static wxImageList* icons = NULL;
if (icons == NULL) {
icons = new wxImageList(
GetExpandIcon().GetWidth(),
GetExpandIcon().GetHeight(),
true, 4);
icons->Add(GetExpandIcon());
icons->Add(GetExpandIcon());
icons->Add(GetCollapseIcon());
icons->Add(GetCollapseIcon());
}
return icons;
}