Mail Archives: djgpp/1999/08/18/08:01:49
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 -