dolphin/Source/Core/DolphinWX/WxUtils.cpp

83 lines
1.6 KiB
C++
Raw Normal View History

// Copyright 2013 Dolphin Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.
2014-02-22 15:36:30 -07:00
#include <string>
#include <wx/bitmap.h>
#include <wx/chartype.h>
#include <wx/gdicmn.h>
#include <wx/image.h>
#include <wx/mstream.h>
#include <wx/string.h>
2014-02-22 15:36:30 -07:00
#include <wx/utils.h>
#include "DolphinWX/WxUtils.h"
2013-09-25 01:05:36 -06:00
#ifdef __APPLE__
#import <AppKit/AppKit.h>
#endif
namespace WxUtils {
// Launch a file according to its mime type
void Launch(const char *filename)
{
if (! ::wxLaunchDefaultBrowser(StrToWxStr(filename)))
{
// WARN_LOG
}
}
// Launch an file explorer window on a certain path
void Explore(const char *path)
{
wxString wxPath = StrToWxStr(path);
#ifndef _WIN32
// Default to file
if (! wxPath.Contains(wxT("://")))
{
wxPath = wxT("file://") + wxPath;
}
#endif
#ifdef __WXGTK__
wxPath.Replace(wxT(" "), wxT("\\ "));
#endif
if (! ::wxLaunchDefaultBrowser(wxPath))
{
// WARN_LOG
}
}
2013-09-25 01:05:36 -06:00
double GetCurrentBitmapLogicalScale()
{
#ifdef __APPLE__
// wx doesn't expose this itself, unfortunately.
2014-02-27 10:28:00 -07:00
if ([[NSScreen mainScreen] respondsToSelector:@selector(backingScaleFactor)])
2013-09-25 01:05:36 -06:00
{
2014-02-27 10:28:00 -07:00
return [[NSScreen mainScreen] backingScaleFactor];
2013-09-25 01:05:36 -06:00
}
#endif
return 1.0;
}
2014-02-22 15:36:30 -07:00
wxBitmap _wxGetBitmapFromMemory(const unsigned char* data, int length)
{
wxMemoryInputStream is(data, length);
return(wxBitmap(wxImage(is, wxBITMAP_TYPE_ANY, -1), -1));
}
} // namespace
std::string WxStrToStr(const wxString& str)
{
2013-02-28 02:11:10 -07:00
return str.ToUTF8().data();
}
wxString StrToWxStr(const std::string& str)
{
2013-02-28 02:11:10 -07:00
//return wxString::FromUTF8Unchecked(str.c_str());
return wxString::FromUTF8(str.c_str());
}