I've added a XmDropSiteRegistered() which returns False for now,
Alexander has added the prototype for it to the include files.
I've added some code so _XmCalcIconGDimensions() picks up either
the small or large icon pixmap, depending on ViewType. Don't know if
that's correct behaviour.
I've also added a call to XmRepTypeInstallTearOffModelConverter() in
Motif 2.* implementations, we didn't call this by default but it looks
like that's necessary. It wasn't in Motif 1.* .
All this is in LessTif-CVS, Alexander has mentioned doing a test release
one of these days, it should be in that.
Question : I currently run "xplore -C -sync" to see things. But this
pops up an "xterm -C" before dying. Is there a better way ?
Danny
Albert Graef wrote:
>
> Danny Backx wrote:
>
> > Here are some remarks by the author of Xplore about stuff missing
> > in LessTif.
> > [...]
>
> Hi,
>
> another update on my xplore porting story. Please excuse this
> long-winded mail, I'm just trying to give as much information as
> possible s.t. these problems can be fixed.
>
> I now replaced in IconG.c all references to XG_SmallIconPixmap with
> XG_IconPixmap, which I defined as follows:
>
> #define IG_IconPixmap(w) \
> ((IG_ViewType(w)==XmLARGE_ICON)?IG_LargeIconPixmap(w):IG_SmallIconPixmap(w))
>
> Now it gets a little further, but it still breaks down in
> _XmCalcIconGDimensions with the same kind of error (apparently that now
> happens when the directory tree view is constructed, which is a
> container in outline mode). The interesting tail part of the log (with
> DEBUG_SOURCES=IconG.c) looks as follows:
>
> -- snip snip --
> Warning:
> Name: shelf_scroll
> Class: XmContainer
> Attempt to destroy dropSite info for widget that
> hasn't been added as a dropSite.
>
> Warning: XmeDropSink(): not yet implemented!
> XmIconGadget dir_icon: IconG InitializePrehook
> XmIconGadget dir_icon: IconGCacheRec dir_icon being initialized.
> XmIconGadget dir_icon: initialize: 5 args
> request X 0 Y 0 W 0 H 0
> new_w X 0 Y 0 W 6 H 6
> Arg[0] : labelString /
> Arg[1] : smallIconPixmap (not handled FIX ME)
> Arg[2] : smallIconMask (not handled FIX ME)
> Arg[3] : entryParent (not handled FIX ME)
> Arg[4] : outlineState (not handled FIX ME)
> XmIconGadget dir_icon: _XmCalcIconGDimensions
> XmIconGadget dir_icon: Text width 6 height 13
> X Error of failed request: BadDrawable (invalid Pixmap or Window parameter)
> Major opcode of failed request: 14 (X_GetGeometry)
> Resource id in failed request: 0x2
> Serial number of failed request: 6424
> Current serial number in output stream: 6424
> -- snip snip --
>
> Comments: The "Attempt to destroy dropSite" warning happens because I
> had to comment the call to XmDropSiteRegistered (missing in LessTif).
> The "XmeDropSink(): not yet implemented!" warning looks particularly
> discomforting since it probably means that drag and drop doesn't work.
>
> I'm giving up now. :( I'm no widget writing expert, so it would be nice
> if the authors of the container and the drag-n-drop implementation could
> take a look at this. In case anybody wants to try it with xplore, I
> enclose my diffs below.
>
> If there's any progress on this matter, I'd like very much to hear about
> it. (Please cc to my personal address since I'm not a regular subscriber
> of the lesstif mailing list.)
>
> Attachments:
>
> 1. Xplore diffs:
>
> -- snip snip --
> diff -ru xplore-1.1/Xplore.tmpl xplore-1.1-lesstif/Xplore.tmpl
> --- xplore-1.1/Xplore.tmpl Sat Aug 18 23:58:20 2001
> +++ xplore-1.1-lesstif/Xplore.tmpl Mon Aug 27 10:48:54 2001
> @@ -13,11 +13,13 @@
>
> XCOMM Set XMINCDIR and XMLIBDIR as required by your system if the Motif
> XCOMM library is not on the standard path.
> -XCOMM XMINCDIR = -I/usr/motif/include
> -XCOMM XMLIBDIR = -L/usr/motif/lib
> +XMINCDIR = -I/usr/local/LessTif/Motif2.1/include
> +XMLIBDIR = -L/usr/local/LessTif/Motif2.1/lib
>
> XCOMM How to link the Motif library:
> -XMLIB = -lXm
> +XCOMM XMLIB = -lXm
> +XCOMM XMLIB = -lXm -lXp
> +XMLIB = /usr/local/LessTif/Motif2.1/lib/libXm.a
>
> XCOMM Set XPMINCDIR and XPMLIBDIR as required by your system if
> libXpm is not
> XCOMM on the standard path.
> @@ -42,7 +44,7 @@
>
> XCOMM Debugging options.
> ####################################################
> XCOMM Uncomment this if you want to generate debug information:
> -XCOMM CDEBUGFLAGS = -g
> +CDEBUGFLAGS = -g
>
> XCOMM System dependencies.
> ##################################################
>
> diff -ru xplore-1.1/callbacks.c xplore-1.1-lesstif/callbacks.c
> --- xplore-1.1/callbacks.c Sat Aug 25 12:34:56 2001
> +++ xplore-1.1-lesstif/callbacks.c Mon Aug 27 11:57:22 2001
> @@ -2525,7 +2525,7 @@
> Atom FILE_NAME = XInternAtom(display, "FILE_NAME", False);
> Atom FILES = XInternAtom(display, "FILES", False);
> XmDropProcCallbackStruct *ds = dcs->destination_data;
> - Widget target = XmObjectAtPoint(w, ds->x, ds->y);
> + Widget target = (Widget)XmObjectAtPoint(w, ds->x, ds->y);
> FileTransferRec *t = (FileTransferRec*) MALLOC(sizeof(FileTransferRec));
> Atom *exportTargets;
> Cardinal numExportTargets;
> @@ -2581,7 +2581,7 @@
> Atom FILE_NAME = XInternAtom(display, "FILE_NAME", False);
> Atom FILES = XInternAtom(display, "FILES", False);
> XmDropProcCallbackStruct *ds = dcs->destination_data;
> - Widget target = XmObjectAtPoint(w, ds->x, ds->y);
> + Widget target = (Widget)XmObjectAtPoint(w, ds->x, ds->y);
> FileTransferRec *t = (FileTransferRec*) MALLOC(sizeof(FileTransferRec));
> Atom *exportTargets;
> Cardinal numExportTargets;
> @@ -2637,7 +2637,7 @@
> Atom FILE_NAME = XInternAtom(display, "FILE_NAME", False);
> Atom FILES = XInternAtom(display, "FILES", False);
> XmDropProcCallbackStruct *ds = dcs->destination_data;
> - Widget target = XmObjectAtPoint(w, ds->x, ds->y);
> + Widget target = (Widget)XmObjectAtPoint(w, ds->x, ds->y);
> TreeTransferRec *t = (TreeTransferRec*) MALLOC(sizeof(TreeTransferRec));
> Atom *exportTargets;
> Cardinal numExportTargets;
> @@ -2683,7 +2683,7 @@
> static unsigned char prevStatus = XmDROP_SITE_VALID;
> static DirPtr prev_dir = NULL;
> static int prev_item = NONE;
> - Widget gadget = XmObjectAtPoint(w, dpcs->x, dpcs->y);
> + Widget gadget = (Widget)XmObjectAtPoint(w, dpcs->x, dpcs->y);
> Boolean update = False;
> DirPtr dir = NULL;
> int item = NONE;
> diff -ru xplore-1.1/interface.c xplore-1.1-lesstif/interface.c
> --- xplore-1.1/interface.c Sat Aug 25 12:26:04 2001
> +++ xplore-1.1-lesstif/interface.c Mon Aug 27 16:33:59 2001
> @@ -1467,7 +1467,7 @@
> static void FilePopupH(Widget w, XtPointer client_data, XEvent *event)
> {
> XButtonPressedEvent *button_event = (XButtonPressedEvent *) event;
> - Widget gadget = XmObjectAtPoint(w, button_event->x, button_event->y);
> + Widget gadget = (Widget)XmObjectAtPoint(w, button_event->x,
> button_event->y);
> DirPtr dir = (w == file_scroll)?curdir:shelfdir;
>
> if (button_event->button == 3 && gadget != None) {
> @@ -1665,7 +1665,7 @@
> static void FileStartDrag(Widget w, XEvent *event)
> {
> XButtonPressedEvent *button_event = (XButtonPressedEvent *) event;
> - Widget gadget = XmObjectAtPoint(w, button_event->x, button_event->y);
> + Widget gadget = (Widget)XmObjectAtPoint(w, button_event->x,
> button_event->y);
> DirPtr dir = (w == file_scroll)?curdir:shelfdir;
>
> if (gadget) {
> @@ -1730,7 +1730,7 @@
> static void TreeStartDrag(Widget w, XEvent *event)
> {
> XButtonPressedEvent *button_event = (XButtonPressedEvent *) event;
> - Widget gadget = XmObjectAtPoint(w, button_event->x, button_event->y);
> + Widget gadget = (Widget)XmObjectAtPoint(w, button_event->x,
> button_event->y);
>
> if (gadget) {
> int n;
> @@ -1789,7 +1789,7 @@
> XtSetArg(args[n], XmNnumImportTargets, 2); n++;
> XtSetArg(args[n], XmNdragProc, DragProcCB); n++;
> XtSetArg(args[n], XmNanimationStyle, XmDRAG_UNDER_NONE); n++;
> - if (XmDropSiteRegistered(w))
> + /* if (XmDropSiteRegistered(w)) */
> XmDropSiteUnregister(w);
> XmeDropSink(w, args, n);
> }
> -- snip snip --
>
> 2. LessTif diffs:
>
> -- snip snip --
> diff -ru lesstif-0.93.0.orig/lib/Xm-2.0/IconG.c
> lesstif-0.93.0/lib/Xm-2.0/IconG.c
> --- lesstif-0.93.0.orig/lib/Xm-2.0/IconG.c Fri Jul 27 20:55:20 2001
> +++ lesstif-0.93.0/lib/Xm-2.0/IconG.c Mon Aug 27 16:32:17 2001
> @@ -55,6 +55,12 @@
> (((XmIconGadget)(w))->icong.cache->render_table)
> #endif
>
> +/* 08-27-01 [EMAIL PROTECTED] */
> +#ifndef IG_IconPixmap
> +#define IG_IconPixmap(w) \
> +
> ((IG_ViewType(w)==XmLARGE_ICON)?IG_LargeIconPixmap(w):IG_SmallIconPixmap(w))
> +#endif
> +
> /* Forward Declarations */
>
> static void class_initialize(void);
> @@ -633,7 +639,7 @@
> unsigned Depth;
>
> XGetGeometry(XtDisplayOfObject(w),
> -
> IG_SmallIconPixmap(w),
> +
> IG_IconPixmap(w),
> &tmpwin,
> &tmpx, &tmpy,
> &IconWidth, &IconHeight,
> @@ -1278,7 +1284,7 @@
> unsigned Depth;
>
> XGetGeometry(XtDisplayOfObject(w),
> -
> IG_SmallIconPixmap(w),
> +
> IG_IconPixmap(w),
> &tmpwin,
> &tmpx, &tmpy,
> &IconWidth, &IconHeight,
> @@ -1303,7 +1309,7 @@
> }
>
> XCopyArea(XtDisplay(w),
> -
> IG_SmallIconPixmap(w),
> +
> IG_IconPixmap(w),
> XtWindow(w),
> myGC,
> 0,
> -- snip snip --
>
> --
> Dr. Albert Gr"af
> Email: [EMAIL PROTECTED], [EMAIL PROTECTED]
> WWW: http://www.musikwissenschaft.uni-mainz.de/~ag
--
Danny Backx ([EMAIL PROTECTED] [EMAIL PROTECTED])
Home page : http://users.skynet.be/danny.backx
Projects: LessTif (http://www.lesstif.org)
Oleo (http://www.gnu.org/software/oleo/oleo.html)