//	Zinc Application Framework - M_UTILS.HPP
//	COPYRIGHT (C) 1990-1999.  All Rights Reserved.
//	Zinc Software Incorporated.  Pleasant Grove, Utah  USA

#if !defined(M_UTILS_HPP)
#define M_UTILS_HPP
#include <z_win.hpp>

extern "C"
{
#include _AtomMgr_
#include _DragDrop_
}

// --- Miscellaneous --------------------------------------------------------

KeySym ZafKeySym(ZafIChar value);
void ZafProcessXtEvents(void);
void  ZafMouseCallback(Widget widget, XEvent *xEvent, String *, Cardinal *);
void  mouse_callback(Widget , ZafWindowObject *, XEvent *, Boolean *);

// --- Edit Mode support ----------------------------------------------------

void ZafBeginEscape(Widget widget, XEvent *xEvent, String *, Cardinal *);
void ZafBeginSelect(Widget widget, XEvent *xEvent, String *, Cardinal *);
void ZafEditModeRegister(ZafWindowObject *object);
void ZafView(Widget widget, XEvent *xEvent, String *, Cardinal *);

// --- Drag/Drop support ----------------------------------------------------

ZafEventType ZafDragBegin(ZafWindowObject *object, const ZafEventStruct &event);
ZafEventType ZafDragEnd(ZafWindowObject *object, const ZafEventStruct &event);
void ZafDropSiteRegister(ZafWindowObject *object);

#endif
