Win32FileDialog.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Oct 2008 16:41:35 +0200
changeset 8358 83aa07fd9d8a
parent 8277 5535db32c46f
child 8402 d4b122b3a4b7
permissions -rw-r--r--
leftover halt in fileSpec:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     1
"
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     2
 COPYRIGHT (c) 2008 by eXept Software AG
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     3
              All Rights Reserved
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     4
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     5
 This software is furnished under a license and may be used
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     6
 only in accordance with the terms of that license and with the
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     8
 be provided or otherwise made available to, or used by, any
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     9
 other person.  No title to or ownership of the software is
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    10
 hereby transferred.
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    11
"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    13
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    14
Object subclass:#Win32FileDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    15
	instanceVariableNames:'fileName openFileNameStruct filters lpstrFilter lpstrFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    16
		lpstrInitialDir lpstrTitle lpstrDefExt defFilter defExtension
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    17
		style title smalltalkFileFilters defFilterIndex parent'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    18
	classVariableNames:'InitialDirectory CommonDialogConstants FilterPatternDescriptions'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    19
	poolDictionaries:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    20
	category:'Interface-Tools-File'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    21
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    22
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    23
ByteArray variableByteSubclass:#OpenFilenameStructure
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    24
	instanceVariableNames:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    25
	classVariableNames:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    26
	poolDictionaries:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    27
	privateIn:Win32FileDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    28
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    29
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    30
!Win32FileDialog class methodsFor:'documentation'!
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    31
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    32
copyright
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    33
"
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    34
 COPYRIGHT (c) 2008 by eXept Software AG
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    35
              All Rights Reserved
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    36
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    37
 This software is furnished under a license and may be used
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    38
 only in accordance with the terms of that license and with the
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    40
 be provided or otherwise made available to, or used by, any
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    41
 other person.  No title to or ownership of the software is
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    42
 hereby transferred.
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    43
"
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    44
! !
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    45
8260
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    46
!Win32FileDialog class methodsFor:'initialization'!
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    47
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    48
startUp
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    49
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    50
        "Private - Initialize the class variables.  This is called
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    51
         during startup."
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    52
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    53
    InitialDirectory := Directory pathName: Disk drivePathName.
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    54
! !
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    55
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    56
!Win32FileDialog class methodsFor:'instance creation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    57
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    58
new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    59
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    60
    ^ super new initialize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    61
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    62
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    63
!Win32FileDialog class methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    64
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    65
getInitialDirectory
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    66
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    67
     ^ InitialDirectory
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    68
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    69
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    70
setInitialDirectory: aName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    71
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    72
     InitialDirectory := Directory pathName: aName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    73
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    74
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    75
!Win32FileDialog class methodsFor:'constants'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    76
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    77
commonDialogConstantAt: aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    78
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    79
    ^ self commonDialogConstants at: aString ifAbsent:[Transcript showCR: 'Common Dialog Constant ', aString, ' notfound!!']
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    80
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    81
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    82
commonDialogConstants
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    83
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    84
    CommonDialogConstants isNil ifTrue:[CommonDialogConstants := self generateCommonDialogConstants ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    85
    ^ CommonDialogConstants
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    86
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    87
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    88
generateCommonDialogConstants
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    89
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    90
    |dictionary|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    91
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    92
    dictionary := Dictionary new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    93
    dictionary
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    94
    at: 'CcPreventfullopen' put: 4;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    95
    at: 'FrShowhelp' put: 128;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    96
    at: 'PdEnablesetuptemplate' put: 32768;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    97
    at: 'FrNoupdown' put: 1024;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    98
    at: 'CfNosimulations' put: 4096;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    99
    at: 'OfnPathmustexist' put: 2048;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   100
    at: 'CfWysiwyg' put: 32768;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   101
    at: 'PdReturndc' put: 256;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   102
    at: 'PdEnableprinthook' put: 4096;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   103
    at: 'CfInittologfontstruct' put: 64;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   104
    at: 'CfScalableonly' put: 131072;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   105
    at: 'PdPrinttofile' put: 32;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   106
    at: 'CfEffects' put: 256;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   107
    at: 'PdShowhelp' put: 2048;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   108
    at: 'OfnEnabletemplatehandle' put: 128;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   109
    at: 'CfBoth' put: 3;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   110
    at: 'OfnReadonly' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   111
    at: 'PdNopagenums' put: 8;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   112
    at: 'PdDisableprinttofile' put: 524288;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   113
    at: 'PdHideprinttofile' put: 1048576;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   114
    at: 'OfnAllowmultiselect' put: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   115
    at: 'CfPrinterfonts' put: 2;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   116
    at: 'CfEnabletemplatehandle' put: 32;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   117
    at: 'PdSelection' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   118
    at: 'OfnHidereadonly' put: 4;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   119
    at: 'PdPrintsetup' put: 64;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   120
    at: 'OfnExtentiondifferent' put: 1024;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   121
    at: 'FrReplaceall' put: 32;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   122
    at: 'FrMatchcase' put: 4;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   123
    at: 'OfnFilemustexist' put: 4096;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   124
    at: 'PdCollate' put: 16;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   125
    at: 'CfFixedpitchonly' put: 16384;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   126
    at: 'PdEnablesetuphook' put: 8192;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   127
    at: 'OfnShareaware' put: 16384;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   128
    at: 'CcEnablehook' put: 16;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   129
    at: 'CfEnabletemplate' put: 16;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   130
    at: 'Findmsgstring' put: 'commdlgFindreplace';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   131
    at: 'CfLimitsize' put: 8192;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   132
    at: 'OfnNochangedir' put: 8;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   133
    at: 'OfnCreateprompt' put: 8192;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   134
    at: 'ScreenFonttype' put: 8192;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   135
    at: 'PdUsedevmodecopies' put: 262144;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   136
    at: 'CcRgbinit' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   137
    at: 'FrFindnext' put: 8;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   138
    at: 'CfUsestyle' put: 128;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   139
    at: 'FrEnablehook' put: 256;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   140
    at: 'PdEnableprinttemplatehandle' put: 65536;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   141
    at: 'CfShowhelp' put: 4;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   142
    at: 'FrNowholeword' put: 4096.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   143
    dictionary
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   144
    at: 'ShareExist' put: 16448;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   145
    at: 'OfnOverwriteprompt' put: 2;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   146
    at: 'OfnEnablehook' put: 32;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   147
    at: 'OfnShowhelp' put: 16;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   148
    at: 'CcEnabletemplatehandle' put: 64;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   149
    at: 'SimulatedFonttype' put: 32768;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   150
    at: 'FrDown' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   151
    at: 'PdEnableprinttemplate' put: 16384;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   152
    at: 'CfNovectorfonts' put: 2048;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   153
    at: 'PdNoselection' put: 4;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   154
    at: 'CfAnsionly' put: 1024;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   155
    at: 'OfnNovalidate' put: 256;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   156
    at: 'CfScreenfonts' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   157
    at: 'FrWholeword' put: 2;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   158
    at: 'FrEnabletemplatehandle' put: 8192;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   159
    at: 'PdAllpages' put: 0;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   160
    at: 'CfForcefontexist' put: 65536;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   161
    at: 'CcEnabletemplate' put: 32;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   162
    at: 'PdPagenums' put: 2;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   163
    at: 'FrReplace' put: 16;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   164
    at: 'PdEnablesetuptemplatehandle' put: 131072;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   165
    at: 'CfApply' put: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   166
    at: 'OfnEnabletemplate' put: 64;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   167
    at: 'DnDefaultprn' put: 1;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   168
    at: 'PdNowarning' put: 128;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   169
    at: 'CfTtonly' put: 262144;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   170
    at: 'PrinterFonttype' put: 16384;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   171
    at: 'CcShowhelp' put: 8;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   172
    at: 'CcFullopen' put: 2;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   173
    at: 'PdReturnic' put: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   174
    at: 'FrEnabletemplate' put: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   175
    at: 'FrDialogterm' put: 64;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   176
    at: 'Helpmsgstring' put: 'commdlgHelp';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   177
    at: 'PdReturndefault' put: 1024;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   178
    at: 'FrNomatchcase' put: 2048;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   179
    at: 'CfEnablehook' put: 8.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   180
    ^ dictionary
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   181
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   182
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   183
!Win32FileDialog class methodsFor:'examples'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   184
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   185
openFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   186
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   187
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   188
        self openFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   189
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   190
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   191
    ^ (FileDialogWin new openFile: 'c:\untitled.txt') file.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   192
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   193
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   194
saveFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   195
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   196
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   197
        self saveFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   198
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   199
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   200
    ^ (FileDialogWin new saveFile: 'C:\vsw311\untitled.txt') file.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   201
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   202
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   203
!Win32FileDialog class methodsFor:'filters'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   204
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   205
filterPatternDescription: filterPattern
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   206
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   207
    ^ self filterPatternDescriptions at: filterPattern ifAbsent: ''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   208
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   209
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   210
filterPatternDescriptions
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   211
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   212
    FilterPatternDescriptions isNil ifTrue:[ FilterPatternDescriptions := self generateFilterPatternDescriptions ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   213
    ^ FilterPatternDescriptions
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   214
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   215
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   216
filtersFor: pattern
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   217
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   218
    |filters filterPatterns|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   219
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   220
    pattern isEmptyOrNil ifTrue:[^ nil].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   221
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   222
    filters := OrderedCollection new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   223
    filterPatterns := pattern subStrings: $;.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   224
    filterPatterns do:[:filterPattern | 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   225
        filterPattern notEmpty ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   226
            filters add: (Array with: (self filterPatternDescription: filterPattern) 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   227
                                with:filterPattern)
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   228
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   229
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   230
    ^ filters asArray
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   231
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   232
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   233
generateFilterPatternDescriptions
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   234
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   235
    ^ Dictionary new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   236
        at: '*.txt' put: 'Text files (*.txt)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   237
        at: '*.st'  put: 'Smalltalk files (*.st)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   238
        at: '*.csv' put: 'CSV files (*.csv)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   239
        at: '*.xml' put: 'XML files (*.xml)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   240
        at: '*.zip' put: 'ZIP files (*.zip)';   
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   241
        at: '*.xls' put: 'Excel files (*.xls)'; 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   242
        at: '*.ent' put: 'SGML Entity files (*.ent)'; 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   243
        at: '*.ccs' put: 'CCS files (*.ccs)';             
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   244
        at: '*.ini' put: 'Configuration files (*.ini)';    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   245
        at: '*.prn' put: 'Printer Text files (*.prn)'; 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   246
        at: '*.dir' put: 'DapasX Database files (*.dir)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   247
        at: '*.dat' put: 'DapasX Database files (*.dat)'; 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   248
        at: '*.prg' put: 'DapasX Program files (*.prg)';      
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   249
        at: '*.dcf' put: 'DapasX Options files (*.dcf)';  
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   250
        at: '*.ext' put: 'DapasX Backup files (*.ext)';  
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   251
        at: '*.mpl' put: 'DapasX Project files (*.mpl)';    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   252
        yourself
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   253
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   254
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   255
!Win32FileDialog class methodsFor:'opening'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   256
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   257
fileDialogFor:ownerWindow 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   258
         save:isSaveDialog 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   259
        title:titleOrNil 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   260
  inDirectory:dirPathOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   261
initialAnswer:initialOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   262
       filter:pattern
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   263
    extension:extensionOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   264
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   265
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   266
    "start a native open-file dialog.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   267
     If not cancelled, the selected fileName is returned; nil otherwise.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   268
     Of course, this one looks like the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   269
     Windows file dialog - no matter which viewStyle settings are active.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   270
     Notice: if no ownerWindow is given, the dialog pops up at 0@0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   271
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   272
     EXPERIMENTAL & non-portable: use with caution"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   273
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   274
    |filePath filterArrayOrNil|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   275
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   276
    filterArrayOrNil := self filtersFor: pattern.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   277
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   278
    filePath := self new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   279
        openFor:ownerWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   280
           save:isSaveDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   281
          title:titleOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   282
    inDirectory:dirPathOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   283
  initialAnswer:initialOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   284
         filter:filterArrayOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   285
      extension:extensionOrNil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   286
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   287
    ^ filePath
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   288
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   289
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   290
!Win32FileDialog methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   291
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   292
addAllFilesFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   293
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   294
    self addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   295
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   296
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   297
addFilter: aFilter description: aDescription
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   298
        "Add aFilter and aDescription to the list of File dialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   299
        filters."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   300
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   301
    filters add: ( Association key: aFilter value: aDescription ).
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   302
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   303
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   304
addSmalltalkFileFilters
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   305
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   306
    ^ smalltalkFileFilters
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   307
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   308
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   309
defExtension: aDefExtension
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   310
        "Specifies the default extension of File dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   311
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   312
    defExtension := aDefExtension.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   313
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   314
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   315
defFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   316
        "Answers the aDefFilterString as the default filter of File dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   317
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   318
    ^ defFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   319
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   320
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   321
defFilter: aDefFilterString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   322
        "Specifies the aDefFilterString as the default filter of File dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   323
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   324
    defFilter := aDefFilterString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   325
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   326
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   327
defFilterIndex: defaultFilterIndex 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   328
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   329
    defFilterIndex := defaultFilterIndex.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   330
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   331
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   332
directory
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   333
        "Answer the selected directory."
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   334
    InitialDirectory isNil ifTrue:[
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   335
        ^ Filename currentDirectory pathName asFilename
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   336
    ].
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   337
    ^ InitialDirectory "? OperatingSystem getCurrentDirectory asFilename"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   338
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   339
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   340
directory: directory
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   341
        "Sets the initial directory."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   342
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   343
    | aFilename |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   344
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   345
    directory isNil ifTrue:[^ self.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   346
    aFilename := directory asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   347
    aFilename exists ifTrue: [ InitialDirectory := aFilename ].      
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   348
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   349
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   350
file
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   351
        "Answer the selected file."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   352
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   353
    ^fileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   354
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   355
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   356
fileSpec: aFileSpec
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   357
        "Sets the initial fileName and directory in the File Dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   358
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   359
   | array dir |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   360
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   361
    "SHOULD assign initial fileName and directory separately using #fileName: and #directory"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   362
8358
83aa07fd9d8a leftover halt in fileSpec:
Claus Gittinger <cg@exept.de>
parents: 8277
diff changeset
   363
    self breakPoint:#fm.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   364
    fileName := aFileSpec.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   365
"/    array := Filename splitPath: aFileSpec in: self directory .
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   366
"/    dir := 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   367
"/        (( String with: ( array at: 1 ) with: $: ),
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   368
"/        ( ( array at: 2 ) isEmpty ifTrue: [ '\' ] ifFalse: [ array at: 2 ] )) asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   369
"/    dir exists ifFalse: [ dir := OperatingSystem getCurrentDirectory asFilename ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   370
"/
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   371
"/    self directory: dir.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   372
"/    fileName := array at: 3
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   373
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   374
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   375
filters
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   376
        "Private - answers  a string containing all filters and sets up
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   377
        the defFilterIndex property"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   378
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   379
    | filterString count defaultFilterIndex defaultFilter|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   380
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   381
    smalltalkFileFilters notNil ifTrue: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   382
        self
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   383
            addFilter: '*.cls' description: 'Class Files (*.CLS)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   384
            addFilter: '*.mth' description: 'Method Files (*.MTH)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   385
            addFilter: '*.st' description: 'Smalltalk Files (*.ST)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   386
            addFilter: '*.bnd' description: 'Library Bind Files (*.BND)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   387
            addFilter: '*.map' description: 'Library Map Files (*.MAP)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   388
            addFilter: '*.ini' description: 'Initialization Files (*.INI)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   389
            addFilter: '*.obj' description: 'Object Files (*.OBJ)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   390
            addFilter: '*.log' description: 'Log Files (*.LOG)' 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   391
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   392
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   393
    defaultFilter := self defFilter.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   394
    (fileName notEmptyOrNil and:[defaultFilter isNil]) ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   395
        |initialFilenameSuffix|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   396
        initialFilenameSuffix := fileName asFilename suffix.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   397
        initialFilenameSuffix notEmptyOrNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   398
            defaultFilter := '*.', initialFilenameSuffix.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   399
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   400
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   401
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   402
    filterString := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   403
    count := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   404
    defaultFilterIndex := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   405
    filters do: [:assoc |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   406
        count := count + 1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   407
        assoc key = defaultFilter ifTrue: [ defaultFilterIndex := count ].
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   408
        filterString := filterString, assoc value, #[0] asString, assoc key , #[0] asString. 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   409
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   410
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   411
    self defFilterIndex: defaultFilterIndex.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   412
    ^filterString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   413
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   414
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   415
flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   416
        "Private - Answers the dialog box current flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   417
        For compatibility reasons -> use style instead"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   418
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   419
    ^openFileNameStruct flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   420
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   421
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   422
flags: flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   423
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   424
        "Private - Specifies the dialog box creation flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   425
        Kept for compatibility reasons. Use style: instead"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   426
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   427
    self style: flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   428
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   429
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   430
hideReadonly
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   431
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   432
        "Hides the file dialog's Readonly check box. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   433
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   434
    self style: self style | (self class commonDialogConstantAt: 'OfnHidereadonly')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   435
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   436
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   437
initialFileName: filename
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   438
        "Sets the initial fileName string in the File Dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   439
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   440
    | aString |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   441
    filename isNil ifTrue:[^ self.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   442
    aString := filename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   443
    filename isFilename ifTrue:[ aString := filename baseName].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   444
    fileName := aString.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   445
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   446
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   447
overwritePrompt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   448
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   449
        "Prompt if the user attempts to overwrite a file"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   450
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   451
    self style: self style | (self class commonDialogConstantAt: 'OfnOverwriteprompt')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   452
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   453
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   454
owner: ownerWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   455
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   456
        "Sets the owner of the Dialog box."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   457
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   458
    |mainView handle|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   459
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   460
    ownerWindow isNil ifTrue:[^ self].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   461
    mainView := ownerWindow windowGroup mainView.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   462
    mainView notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   463
        handle := mainView id.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   464
        handle notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   465
            parent := handle address
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   466
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   467
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   468
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   469
"/    super owner: anOwner.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   470
"/    owner isWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   471
"/        ifTrue: [ parent := owner ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   472
"/        ifFalse: [ parent := owner mainView.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   473
"/                       parent isWindow ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   474
"/                            parent := Notifier findWindow: WindowHandle queryActive ]].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   475
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   476
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   477
pathMustExist
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   478
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   479
       "Private & DEFAULT!!."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   480
       "Changed by K3/EES5-Mg, 29.01.97"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   481
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   482
    self style: self style | 16r800.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   483
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   484
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   485
shareAware
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   486
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   487
        "Allows a previously opened file to be opened
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   488
         (e.g. change.log)"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   489
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   490
    self style: self style | (self class commonDialogConstantAt: 'OfnShareaware')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   491
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   492
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   493
style
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   494
    ^ style ? 8
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   495
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   496
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   497
style:something
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   498
    style := something.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   499
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   500
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   501
title: aTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   502
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   503
        "Specifies the string to be placed in the title bar of the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   504
        File dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   505
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   506
    title := aTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   507
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   508
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   509
!Win32FileDialog methodsFor:'dapas'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   510
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   511
dapasOpenFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   512
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   513
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   514
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   515
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   516
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   517
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   518
         addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   519
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   520
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   521
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   522
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   523
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   524
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   525
dapasSaveFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   526
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   527
        "Brings up the file save dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   528
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   529
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   530
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   531
         overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   532
         addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   533
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   534
    self save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   535
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   536
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   537
openFileXml
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   538
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   539
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   540
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   541
       "Changed by GS-EC/EES3 - Bernd Eisenmann, 14.08.03"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   542
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   543
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   544
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   545
         addFilter: '*.xml' description: 'XML-Datei'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   546
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   547
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   548
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   549
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   550
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   551
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   552
openFileXmlZip
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   553
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   554
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   555
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   556
       "Changed by GS-EC/EES3 - Bernd Eisenmann, 14.08.03"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   557
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   558
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   559
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   560
         addFilter: '*.xml' description: 'XML-Datei';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   561
         addFilter: '*.zip' description: 'ZIP-Datei'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   562
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   563
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   564
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   565
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   566
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   567
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   568
!Win32FileDialog methodsFor:'initialize & release'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   569
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   570
cleanUp
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   571
        "Private - Free openFileNameStruct."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   572
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   573
    self style: self flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   574
    lpstrFilter notNil ifTrue: [lpstrFilter free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   575
    lpstrFile notNil ifTrue: [lpstrFile free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   576
    lpstrInitialDir notNil ifTrue: [lpstrInitialDir free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   577
    lpstrTitle notNil ifTrue: [ lpstrTitle free ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   578
    lpstrDefExt notNil ifTrue: [ lpstrDefExt free ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   579
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   580
    openFileNameStruct := nil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   581
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   582
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   583
initialize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   584
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   585
        "Private - Initialize openFileNameStruct"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   586
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   587
    super initialize.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   588
    openFileNameStruct :=  OpenFilenameStructure new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   589
    openFileNameStruct lStructSize: openFileNameStruct sizeInBytes.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   590
    fileName := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   591
    filters := OrderedCollection new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   592
    self style: (self class commonDialogConstantAt: 'OfnNochangedir')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   593
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   594
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   595
!Win32FileDialog methodsFor:'opening'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   596
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   597
open
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   598
        "Brings up the open file dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   599
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   600
    | error rslt openFileNameStructExternalBytes |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   601
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   602
    [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   603
    self fillStruct.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   604
    parent notNil ifTrue: [ openFileNameStruct hwndOwner: parent.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   605
    style notNil ifTrue: [ openFileNameStruct flags: style ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   606
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   607
    openFileNameStructExternalBytes := ExternalBytes from: openFileNameStruct asByteArray.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   608
    rslt := OperatingSystem getOpenFilename: openFileNameStructExternalBytes address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   609
    rslt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   610
        ifTrue: [ self getFileName ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   611
        ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   612
            fileName := nil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   613
            error := OperatingSystem commDlgExtendedError.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   614
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   615
    ] ensure:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   616
        openFileNameStructExternalBytes free.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   617
        self cleanUp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   618
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   619
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   620
    (error notNil and:[error ~= 0]) ifTrue: [self error: error ]. 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   621
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   622
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   623
openFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   624
        "Brings up the default open file dialog.  The title is set to 'Open File'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   625
        and fileSpec is set to '*.*'. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   626
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   627
    self openFile: '*.*'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   628
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   629
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   630
openFile: initialFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   631
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   632
        "Brings up the default open file dialog.  The title is set to 'Open File'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   633
        and fileSpec is set to patternString. "  
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   634
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   635
    self title: 'Open'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   636
    initialFileName notNil ifTrue: [ self initialFileName: initialFileName ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   637
    self
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   638
        hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   639
        shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   640
        addAllFilesFilter;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   641
        addFilter: '*.txt' description: 'Text Files (*.txt)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   642
    Smalltalk isStandAloneApp ifFalse: [ self addSmalltalkFileFilters ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   643
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   644
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   645
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   646
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   647
openFor:ownerWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   648
        save:isSaveDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   649
        title:titleOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   650
        inDirectory:dirPathOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   651
        initialAnswer:initialOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   652
        filter:filterArrayOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   653
     extension:extensionOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   654
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   655
    self 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   656
        owner: ownerWindow;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   657
        title: titleOrNil;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   658
        initialFileName: initialOrNil;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   659
        defFilter: extensionOrNil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   660
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   661
    filterArrayOrNil notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   662
        filterArrayOrNil do:[:each | self addFilter: each last description: each first].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   663
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   664
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   665
    self addAllFilesFilter.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   666
"/    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   667
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   668
    isSaveDialog 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   669
        ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   670
            self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   671
                 overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   672
                 save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   673
        ] ifFalse:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   674
            self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   675
                 shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   676
                 open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   677
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   678
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   679
    ^ self file
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   680
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   681
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   682
save
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   683
        "Brings up the save file dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   684
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   685
    | error rslt openFileNameStructExternalBytes |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   686
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   687
    [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   688
    self fillStruct.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   689
    parent notNil ifTrue: [ openFileNameStruct hwndOwner: parent.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   690
    style notNil ifTrue: [ openFileNameStruct flags: style ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   691
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   692
    openFileNameStructExternalBytes := ExternalBytes from: openFileNameStruct asByteArray.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   693
    rslt := OperatingSystem getSaveFilename: openFileNameStructExternalBytes address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   694
    rslt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   695
        ifTrue: [ self getFileName ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   696
        ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   697
            fileName := nil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   698
            error := OperatingSystem commDlgExtendedError.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   699
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   700
    ] ensure:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   701
        openFileNameStructExternalBytes free.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   702
        self cleanUp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   703
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   704
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   705
    (error notNil and:[error ~= 0]) ifTrue: [self error: error ]. 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   706
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   707
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   708
saveFile: aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   709
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   710
        "Brings up the save file dialog with aString as the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   711
         default name.  The title is set to 'Save File'. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   712
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   713
    self saveTitle: 'Save File' fileName: aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   714
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   715
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   716
saveTitle: aTitle fileName: initialFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   717
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   718
        "Brings up the file save dialog with aTitle and aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   719
         as the default name."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   720
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   721
    self title: aTitle;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   722
            initialFileName: initialFileName;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   723
            hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   724
            overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   725
            addAllFilesFilter;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   726
            addFilter: '*.txt' description: 'Text Files (*.txt)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   727
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   728
    self save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   729
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   730
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   731
!Win32FileDialog methodsFor:'private'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   732
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   733
fillStruct
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   734
        "Private - fills the openFileNameStruct"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   735
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   736
    | temp |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   737
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   738
    temp := fileName "asAsciiZ".
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   739
    lpstrFile := ExternalBytes new:512 withAll:0.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   740
    lpstrFile 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   741
        replaceBytesFrom:1 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   742
        to:temp size 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   743
        with:temp 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   744
        startingAt:1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   745
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   746
    lpstrFilter := ExternalBytes newNullTerminatedFromString: self filters.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   747
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   748
    lpstrInitialDir := ExternalBytes newNullTerminatedFromString: self directory pathName.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   749
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   750
    openFileNameStruct
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   751
        lpstrFile: lpstrFile address ;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   752
        nMaxFile: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   753
        lpstrFilter: lpstrFilter address ;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   754
        nFilterIndex: defFilterIndex ;      "set by filters"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   755
        lpstrInitialDir: lpstrInitialDir address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   756
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   757
    ( temp := defExtension) notNil ifTrue: [
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   758
        lpstrDefExt := ExternalBytes newNullTerminatedFromString: temp.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   759
        openFileNameStruct lpstrDefExt: lpstrDefExt address].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   760
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   761
    ( temp := title ) notNil ifTrue: [
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   762
        lpstrTitle := ExternalBytes newNullTerminatedFromString: temp.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   763
        openFileNameStruct lpstrTitle: lpstrTitle address ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   764
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   765
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   766
getFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   767
        "Private - get the filename"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   768
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   769
    | directory |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   770
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   771
    self style: self flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   772
    fileName := lpstrFile stringAt: 1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   773
    directory := fileName copyFrom: 1 to: openFileNameStruct nFileOffset.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   774
    self directory: directory asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   775
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   776
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   777
!Win32FileDialog::OpenFilenameStructure class methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   778
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   779
sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   780
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   781
    ^ 76
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   782
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   783
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   784
!Win32FileDialog::OpenFilenameStructure class methodsFor:'instance creation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   785
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   786
new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   787
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   788
    ^ super new: self sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   789
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   790
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   791
!Win32FileDialog::OpenFilenameStructure methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   792
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   793
flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   794
    "Answer the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   795
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   796
    ^ self doubleWordAt: 52+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   797
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   798
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   799
flags: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   800
    "Set the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   801
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   802
    ^ self doubleWordAt: 52+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   803
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   804
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   805
hInstance
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   806
    "Get the receiver's hInstance field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   807
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   808
    ^ self doubleWordAt: 8+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   809
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   810
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   811
hInstance: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   812
    "Set the receiver's hInstance field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   813
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   814
    self doubleWordAt: 8+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   815
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   816
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   817
hwndOwner
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   818
    "Get the receiver's hwndOwner field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   819
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   820
    ^ self doubleWordAt: 4+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   821
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   822
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   823
hwndOwner: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   824
    "Set the receiver's hwndOwner field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   825
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   826
    self doubleWordAt: 4+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   827
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   828
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   829
lCustData
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   830
    "Get the receiver's lCustData field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   831
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   832
    ^ self doubleWordAt: 64+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   833
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   834
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   835
lCustData: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   836
    "Set the receiver's lCustData field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   837
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   838
    ^ self doubleWordAt: 64+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   839
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   840
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   841
lStructSize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   842
    "Get the receiver's lStructSize field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   843
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   844
    ^ self doubleWordAt: 0+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   845
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   846
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   847
lStructSize: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   848
    "Set the receiver's lStructSize field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   849
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   850
    self doubleWordAt:0+1 put:anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   851
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   852
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   853
lpfnHook
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   854
    "Get the receiver's lpfnHook field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   855
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   856
    ^ self doubleWordAt: 68+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   857
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   858
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   859
lpfnHook: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   860
    "Set the receiver's lpfnHook field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   861
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   862
    self doubleWordAt: 68+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   863
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   864
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   865
lpstrCustomFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   866
    "Get the receiver's lpstrCustomFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   867
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   868
    ^ self doubleWordAt: 16+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   869
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   870
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   871
lpstrCustomFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   872
    "Set the receiver's lpstrCustomFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   873
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   874
    self doubleWordAt: 16+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   875
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   876
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   877
lpstrDefExt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   878
    "Get the receiver's lpstrDefExt field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   879
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   880
    ^ self doubleWordAt: 60+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   881
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   882
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   883
lpstrDefExt: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   884
    "Set the receiver's lpstrDefExt field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   885
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   886
    self doubleWordAt: 60+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   887
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   888
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   889
lpstrFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   890
    "Get the receiver's lpstrFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   891
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   892
    ^ self doubleWordAt: 28+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   893
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   894
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   895
lpstrFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   896
    "Set the receiver's lpstrFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   897
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   898
    self doubleWordAt: 28+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   899
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   900
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   901
lpstrFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   902
    "Get the receiver's lpstrFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   903
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   904
    ^ self doubleWordAt: 36+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   905
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   906
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   907
lpstrFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   908
    "Set the receiver's lpstrFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   909
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   910
    self doubleWordAt: 36+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   911
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   912
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   913
lpstrFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   914
    "Get the receiver's lpstrFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   915
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   916
    ^ self doubleWordAt: 12+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   917
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   918
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   919
lpstrFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   920
    "Set the receiver's lpstrFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   921
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   922
    self doubleWordAt: 12+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   923
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   924
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   925
lpstrInitialDir
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   926
    "Get the receiver's lpstrInitialDir field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   927
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   928
    ^ self doubleWordAt: 44+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   929
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   930
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   931
lpstrInitialDir: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   932
    "Set the receiver's lpstrInitialDir field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   933
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   934
    self doubleWordAt: 44+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   935
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   936
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   937
lpstrTemplateName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   938
    "Get the receiver's lpstrTemplateName field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   939
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   940
    ^ self doubleWordAt: 72+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   941
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   942
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   943
lpstrTemplateName: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   944
    "Set the receiver's lpstrTemplateName field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   945
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   946
    self doubleWordAt: 72+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   947
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   948
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   949
lpstrTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   950
    "Get the receiver's lpstrTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   951
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   952
    ^ self doubleWordAt: 48+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   953
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   954
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   955
lpstrTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   956
    "Set the receiver's lpstrTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   957
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   958
    self doubleWordAt: 48+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   959
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   960
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   961
nFileExtension
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   962
    "Get the receiver's nFileExtension field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   963
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   964
    ^ self unsignedShortAt: 58+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   965
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   966
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   967
nFileExtension: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   968
    "Set the receiver's nFileExtension field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   969
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   970
    self unsignedShortAt: 58+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   971
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   972
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   973
nFileOffset
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   974
    "Get the receiver's nFileOffset field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   975
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   976
    ^ self unsignedShortAt: 56+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   977
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   978
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   979
nFileOffset: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   980
    "Set the receiver's nFileOffset field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   981
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   982
    self unsignedShortAt: 56+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   983
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   984
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   985
nFilterIndex
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   986
    "Get the receiver's nFilterIndex field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   987
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   988
    ^ self doubleWordAt: 24+1 
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   989
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   990
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   991
nFilterIndex: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   992
    "Set the receiver's nFilterIndex field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   993
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   994
    self doubleWordAt: 24+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   995
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   996
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   997
nMaxCustFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   998
    "Get the receiver's nMaxCustFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   999
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1000
    ^ self doubleWordAt: 20+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1001
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1002
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1003
nMaxCustFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1004
    "Set the receiver's nMaxCustFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1005
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1006
    self doubleWordAt: 20+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1007
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1008
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1009
nMaxFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1010
    "Get the receiver's nMaxFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1011
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1012
    ^ self doubleWordAt: 32+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1013
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1014
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1015
nMaxFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1016
    "Set the receiver's nMaxFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1017
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1018
    self doubleWordAt: 32+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1019
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1020
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1021
nMaxFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1022
    "Get the receiver's nMaxFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1023
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1024
    ^ self doubleWordAt: 40+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1025
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1026
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1027
nMaxFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1028
    "Set the receiver's nMaxFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1029
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
  1030
    self doubleWordAt: 40+1 put: anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1031
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1032
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1033
sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1034
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1035
    ^ self class sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1036
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1037
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1038
!Win32FileDialog::OpenFilenameStructure methodsFor:'printing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1039
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1040
printOn: aStream
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1041
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1042
    super printOn: aStream.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1043
    aStream cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1044
    aStream nextPutAll:'flags: ', self flags printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1045
    aStream nextPutAll:'hInstance: ', self hInstance printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1046
    aStream nextPutAll:'hwndOwner: ', self hwndOwner printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1047
    aStream nextPutAll:'lCustData: ', self lCustData printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1048
    aStream nextPutAll:'lpfnHook: ', self lpfnHook printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1049
    aStream nextPutAll:'lpstrCustomFilter: ', self lpstrCustomFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1050
    aStream nextPutAll:'lpstrDefExt: ', self lpstrDefExt printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1051
    aStream nextPutAll:'lpstrFile: ', self lpstrFile printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1052
    aStream nextPutAll:'lpstrFileTitle: ', self lpstrFileTitle printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1053
    aStream nextPutAll:'lpstrFilter: ', self lpstrFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1054
    aStream nextPutAll:'lpstrInitialDir: ', self lpstrInitialDir printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1055
    aStream nextPutAll:'lpstrTemplateName: ', self lpstrTemplateName printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1056
    aStream nextPutAll:'lStructSize: ', self lStructSize printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1057
    aStream nextPutAll:'nFileExtension: ', self nFileExtension printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1058
    aStream nextPutAll:'nFileOffset: ', self nFileOffset printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1059
    aStream nextPutAll:'nFilterIndex: ', self nFilterIndex printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1060
    aStream nextPutAll:'nMaxCustFilter: ', self nMaxCustFilter printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1061
    aStream nextPutAll:'nMaxFile: ', self nMaxFile printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1062
    aStream nextPutAll:'nMaxFileTitle: ', self nMaxFileTitle printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1063
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1064
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1065
!Win32FileDialog class methodsFor:'documentation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1066
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1067
version
8358
83aa07fd9d8a leftover halt in fileSpec:
Claus Gittinger <cg@exept.de>
parents: 8277
diff changeset
  1068
    ^ '$Header: /cvs/stx/stx/libtool/Win32FileDialog.st,v 1.5 2008-10-20 14:41:35 cg Exp $'
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1069
! !