#ifndef PATHBAR_H
#define PATHBAR_H
#include <Xm/XmAll.h>
#include "../ui/text.h"
#ifdef __cplusplus
extern "C" {
#endif
#define XNECreateText(parent,name,args,count) XmCreateTextField(parent,name,args,count)
#define XNETextSetString(widget,value) XmTextFieldSetString(widget,value)
#define XNETextGetString(widget) XmTextFieldGetString(widget)
#define XNETextGetLastPosition(widget) XmTextFieldGetLastPosition(widget)
#define XNETextSetInsertionPosition(widget, i) XmTextFieldSetInsertionPosition(widget, i)
#define XNETextSetSelection(w, f, l, t) XmTextFieldSetSelection(w, f, l, t)
typedef void(*updatedir_callback)(
void*,
char*,
int);
typedef struct PathBar {
Widget widget;
Widget textfield;
Widget focus_widget;
Widget left;
Widget right;
Dimension lw;
Dimension rw;
int shift;
UiPathElm *current_pathelms;
Widget *pathSegments;
size_t numSegments;
size_t segmentAlloc;
char *path;
int selection;
Boolean input;
int focus;
Boolean disableResize;
updatedir_callback updateDir;
void *updateDirData;
ui_pathelm_func getpathelm;
void *getpathelmdata;
} PathBar;
PathBar* CreatePathBar(Widget parent, ArgList args,
int n);
void PathBarSetPath(PathBar *bar,
const char *path);
void PathBarDestroy(PathBar *bar);
void pathbar_resize(Widget w, PathBar *p, XtPointer d);
char* pathbar_concat_path(
const char *path1,
const char *path2);
#ifdef __cplusplus
}
#endif
#endif