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