25 #ifndef TBX_LOADERMANAGER_H_
26 #define TBX_LOADERMANAGER_H_
28 #include "wimpmessagelistener.h"
45 static LoaderManager *_instance;
49 virtual ~LoaderManager();
51 static LoaderManager* instance() {
return _instance;}
53 virtual void user_message(WimpMessageEvent &event);
54 virtual void recorded_message(WimpMessageEvent &event,
int reply_to);
55 virtual void acknowledge_message(WimpMessageEvent &event);
60 void remove_all_loaders(
ObjectId handle);
64 void paste_ref(
int ref) {_paste_ref = ref;}
65 void send_local(
int file_type,
const char *data,
int size, Object load_object, Gadget load_gadget,
int x,
int y);
67 class MessageIntercept
70 virtual ~MessageIntercept() {};
71 virtual bool loader_message_intercept(
WimpMessage::SendType type, WimpMessageEvent &event,
int reply_to) = 0;
73 void message_intercept(MessageIntercept *intercept) {_message_intercept = intercept;}
74 MessageIntercept *message_intercept()
const {
return _message_intercept;}
77 void start_loader(WimpMessageEvent &msg_event,
int reply_to);
78 void process_dataload(WimpMessageEvent &event);
79 bool load_file(
const WimpMessage &msg);
80 void ram_transmit(
const WimpMessage &msg);
81 void find_loading(WimpMessageEvent &msg_event,
int reply_to);
93 std::map<ObjectId, LoaderItem *> _loaders;
98 WimpMessage *_data_save_reply;
102 LoadEvent *_load_event;
104 LoadingItem(Loader *loader) : _loader(loader), _data_save_reply(0), _load_event(0) {};
105 ~LoadingItem() {
delete _data_save_reply;
delete _load_event;}
109 MessageIntercept *_message_intercept;