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)

Reply via email to