mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-11-11 04:48:44 +03:00
132 lines
4.3 KiB
C++
132 lines
4.3 KiB
C++
#ifndef NATIVE_LINUX_H_
|
|
#define NATIVE_LINUX_H_
|
|
|
|
#include "include/cef_base.h"
|
|
#include "include/cef_v8.h"
|
|
#include <string>
|
|
#include <map>
|
|
|
|
namespace v8_extensions {
|
|
|
|
struct CallbackContext {
|
|
CefRefPtr<CefV8Context> context;
|
|
CefRefPtr<CefV8Value> function;
|
|
CefRefPtr<CefV8Value> eventTypes;
|
|
};
|
|
|
|
struct NotifyContext {
|
|
int descriptor;
|
|
std::map<int, std::map<std::string, CallbackContext> > callbacks;
|
|
};
|
|
|
|
class NativeHandler: public CefV8Handler {
|
|
public:
|
|
NativeHandler();
|
|
|
|
GtkWidget* window;
|
|
|
|
std::string path;
|
|
|
|
virtual bool Execute(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void NotifyWatchers();
|
|
|
|
IMPLEMENT_REFCOUNTING(NativeHandler)
|
|
;
|
|
|
|
private:
|
|
|
|
int notifyFd;
|
|
|
|
unsigned long int idCounter;
|
|
|
|
std::map<int, std::map<std::string, CallbackContext> > pathCallbacks;
|
|
|
|
std::map<std::string, int> pathDescriptors;
|
|
|
|
void Exists(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Read(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Absolute(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void List(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void AsyncList(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void IsFile(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void IsDirectory(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void OpenDialog(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Open(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Write(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void WriteToPasteboard(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void ReadFromPasteboard(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void MakeDirectory(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Move(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Remove(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Alert(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void WatchPath(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void UnwatchPath(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void Digest(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
|
|
void LastModified(const CefString& name, CefRefPtr<CefV8Value> object,
|
|
const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval,
|
|
CefString& exception);
|
|
};
|
|
|
|
}
|
|
#endif
|