www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/08/18/08:01:49

Message-ID: <37BA6984.4105AAEB@softhome.net>
Date: Wed, 18 Aug 1999 10:06:28 +0200
From: Laurynas Biveinis <lauras AT softhome DOT net>
X-Mailer: Mozilla 4.61 [en] (Win98; I)
X-Accept-Language: lt,en
MIME-Version: 1.0
To: DJGPP Mailing List <djgpp AT delorie DOT com>
Subject: Re: TDirListBox
Reply-To: djgpp AT delorie DOT com

Sascha Zapf wrote:
> 
> Hi,
> 
> i try to use TDirListBox in a simple Dialog...

Known bug in TV. TDirListBox expects that its owner is TChDirDialog
and sends messages directly by using Q&D trick ((TChDirDialog *)owner)->other_member

I've sent patch to SET and it will be fixed in 1.0.8.
Here is that patch for you:

Laurynas Biveinis
-----------------
diff -u -r tvision.1.0.7/classes/tchdirdi.cc tvision/classes/tchdirdi.cc
--- tvision.1.0.7/classes/tchdirdi.cc	Sun Jun 27 17:18:12 1999
+++ tvision/classes/tchdirdi.cc	Thu Aug 12 12:07:10 1999
@@ -129,6 +129,9 @@
 #endif
                     break;
                     }
+                case cmDirSelection:
+                    chDirButton->makeDefault((Boolean)event.message.infoPtr);
+                    return; // Do not use break here ! 
                 default:
                     return;
                 }
diff -u -r tvision.1.0.7/classes/tdirlist.cc tvision/classes/tdirlist.cc
--- tvision.1.0.7/classes/tdirlist.cc	Sun Jun 27 17:18:12 1999
+++ tvision/classes/tdirlist.cc	Thu Aug 12 12:05:50 1999
@@ -312,7 +312,7 @@
 {
     TListBox::setState( nState, enable );
     if( (nState & sfFocused) != 0 )
-        ((TChDirDialog *)owner)->chDirButton->makeDefault( enable );
+        message(owner, evCommand, cmDirSelection, (void *)enable);
 }
 
 #if !defined( NO_STREAM )
diff -u -r tvision.1.0.7/include/stddlg.h tvision/include/stddlg.h
--- tvision.1.0.7/include/stddlg.h	Wed Jun 23 00:39:16 1999
+++ tvision/include/stddlg.h	Thu Aug 12 12:08:20 1999
@@ -18,13 +18,15 @@
 
 //  Commands
 
-    cmFileOpen    = 1001,   // Returned from TFileDialog when Open pressed
-    cmFileReplace = 1002,   // Returned from TFileDialog when Replace pressed
-    cmFileClear   = 1003,   // Returned from TFileDialog when Clear pressed
-    cmFileInit    = 1004,   // Used by TFileDialog internally
-    cmChangeDir   = 1005,   // Used by TChDirDialog internally
-    cmRevert      = 1006,   // Used by TChDirDialog internally
-    cmFileSelect  = 1007,   // Returned from TFileDialog when Select pressed
+    cmFileOpen     = 1001,   // Returned from TFileDialog when Open pressed
+    cmFileReplace  = 1002,   // Returned from TFileDialog when Replace pressed
+    cmFileClear    = 1003,   // Returned from TFileDialog when Clear pressed
+    cmFileInit     = 1004,   // Used by TFileDialog internally
+    cmChangeDir    = 1005,   // Used by TChDirDialog internally
+    cmRevert       = 1006,   // Used by TChDirDialog internally
+    cmFileSelect   = 1007,   // Returned from TFileDialog when Select pressed
+    cmDirSelection = 1008,   // New: Used by TChDirDialog internally and
+                             // TDirListBox externally
 
 //  Messages

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019