Win32FileDialog.st
author fm
Wed, 12 Mar 2008 17:39:04 +0100
changeset 8015 4e27ebbd5d79
child 8037 04b0b1939a14
permissions -rw-r--r--
initial checkin
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."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   308
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   309
    ^ InitialDirectory ? OperatingSystem getCurrentDirectory asFilename
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   310
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   311
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   312
directory: directory
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   313
        "Sets the initial directory."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   314
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   315
    | aFilename |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   316
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   317
    directory isNil ifTrue:[^ self.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   318
    aFilename := directory asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   319
    aFilename exists ifTrue: [ InitialDirectory := aFilename ].      
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   320
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   321
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   322
file
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   323
        "Answer the selected file."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   324
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   325
    ^fileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   326
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   327
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   328
fileSpec: aFileSpec
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   329
        "Sets the initial fileName and directory in the File Dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   330
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   331
   | array dir |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   332
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   333
    "SHOULD assign initial fileName and directory separately using #fileName: and #directory"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   334
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   335
    self halt.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   336
    fileName := aFileSpec.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   337
"/    array := Filename splitPath: aFileSpec in: self directory .
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   338
"/    dir := 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   339
"/        (( String with: ( array at: 1 ) with: $: ),
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   340
"/        ( ( array at: 2 ) isEmpty ifTrue: [ '\' ] ifFalse: [ array at: 2 ] )) asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   341
"/    dir exists ifFalse: [ dir := OperatingSystem getCurrentDirectory asFilename ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   342
"/
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   343
"/    self directory: dir.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   344
"/    fileName := array at: 3
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   345
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   346
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   347
filters
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   348
        "Private - answers  a string containing all filters and sets up
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   349
        the defFilterIndex property"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   350
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   351
    | filterString count defaultFilterIndex defaultFilter|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   352
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   353
    smalltalkFileFilters notNil ifTrue: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   354
        self
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   355
            addFilter: '*.cls' description: 'Class Files (*.CLS)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   356
            addFilter: '*.mth' description: 'Method Files (*.MTH)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   357
            addFilter: '*.st' description: 'Smalltalk Files (*.ST)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   358
            addFilter: '*.bnd' description: 'Library Bind Files (*.BND)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   359
            addFilter: '*.map' description: 'Library Map Files (*.MAP)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   360
            addFilter: '*.ini' description: 'Initialization Files (*.INI)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   361
            addFilter: '*.obj' description: 'Object Files (*.OBJ)';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   362
            addFilter: '*.log' description: 'Log Files (*.LOG)' 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   363
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   364
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   365
    defaultFilter := self defFilter.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   366
    (fileName notEmptyOrNil and:[defaultFilter isNil]) ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   367
        |initialFilenameSuffix|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   368
        initialFilenameSuffix := fileName asFilename suffix.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   369
        initialFilenameSuffix notEmptyOrNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   370
            defaultFilter := '*.', initialFilenameSuffix.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   371
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   372
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   373
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   374
    filterString := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   375
    count := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   376
    defaultFilterIndex := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   377
    filters do: [:assoc |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   378
        count := count + 1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   379
        assoc key = defaultFilter ifTrue: [ defaultFilterIndex := count ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   380
        filterString := filterString, assoc value asAsciiZ, assoc key asAsciiZ 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   381
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   382
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   383
    self defFilterIndex: defaultFilterIndex.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   384
    ^filterString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   385
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   386
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   387
flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   388
        "Private - Answers the dialog box current flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   389
        For compatibility reasons -> use style instead"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   390
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   391
    ^openFileNameStruct flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   392
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   393
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   394
flags: flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   395
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   396
        "Private - Specifies the dialog box creation flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   397
        Kept for compatibility reasons. Use style: instead"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   398
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   399
    self style: flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   400
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   401
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   402
hideReadonly
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   403
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   404
        "Hides the file dialog's Readonly check box. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   405
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   406
    self style: self style | (self class commonDialogConstantAt: 'OfnHidereadonly')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   407
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   408
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   409
initialFileName: filename
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   410
        "Sets the initial fileName string in the File Dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   411
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   412
    | aString |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   413
    filename isNil ifTrue:[^ self.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   414
    aString := filename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   415
    filename isFilename ifTrue:[ aString := filename baseName].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   416
    fileName := aString.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   417
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   418
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   419
overwritePrompt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   420
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   421
        "Prompt if the user attempts to overwrite a file"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   422
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   423
    self style: self style | (self class commonDialogConstantAt: 'OfnOverwriteprompt')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   424
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   425
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   426
owner: ownerWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   427
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   428
        "Sets the owner of the Dialog box."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   429
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   430
    |mainView handle|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   431
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   432
    ownerWindow isNil ifTrue:[^ self].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   433
    mainView := ownerWindow windowGroup mainView.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   434
    mainView notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   435
        handle := mainView id.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   436
        handle notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   437
            parent := handle address
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   438
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   439
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   440
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   441
"/    super owner: anOwner.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   442
"/    owner isWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   443
"/        ifTrue: [ parent := owner ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   444
"/        ifFalse: [ parent := owner mainView.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   445
"/                       parent isWindow ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   446
"/                            parent := Notifier findWindow: WindowHandle queryActive ]].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   447
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   448
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   449
pathMustExist
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   450
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   451
       "Private & DEFAULT!!."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   452
       "Changed by K3/EES5-Mg, 29.01.97"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   453
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   454
    self style: self style | 16r800.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   455
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   456
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   457
shareAware
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   458
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   459
        "Allows a previously opened file to be opened
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   460
         (e.g. change.log)"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   461
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   462
    self style: self style | (self class commonDialogConstantAt: 'OfnShareaware')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   463
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   464
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   465
style
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   466
    ^ style ? 8
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   467
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   468
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   469
style:something
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   470
    style := something.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   471
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   472
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   473
title: aTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   474
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   475
        "Specifies the string to be placed in the title bar of the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   476
        File dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   477
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   478
    title := aTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   479
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   480
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   481
!Win32FileDialog methodsFor:'dapas'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   482
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   483
dapasOpenFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   484
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   485
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   486
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   487
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   488
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   489
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   490
         addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   491
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   492
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   493
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   494
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   495
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   496
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   497
dapasSaveFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   498
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   499
        "Brings up the file save dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   500
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   501
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   502
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   503
         overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   504
         addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   505
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   506
    self save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   507
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   508
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   509
openFileXml
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   510
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   511
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   512
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   513
       "Changed by GS-EC/EES3 - Bernd Eisenmann, 14.08.03"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   514
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   515
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   516
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   517
         addFilter: '*.xml' description: 'XML-Datei'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   518
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   519
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   520
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   521
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   522
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   523
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   524
openFileXmlZip
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   525
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   526
        "Brings up the default open file dialog "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   527
       "Changed by K3/EES5-Mg, 28.02.96"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   528
       "Changed by GS-EC/EES3 - Bernd Eisenmann, 14.08.03"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   529
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   530
    self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   531
         shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   532
         addFilter: '*.xml' description: 'XML-Datei';
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   533
         addFilter: '*.zip' description: 'ZIP-Datei'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   534
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   535
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   536
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   537
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   538
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   539
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   540
!Win32FileDialog methodsFor:'initialize & release'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   541
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   542
cleanUp
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   543
        "Private - Free openFileNameStruct."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   544
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   545
    self style: self flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   546
    lpstrFilter notNil ifTrue: [lpstrFilter free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   547
    lpstrFile notNil ifTrue: [lpstrFile free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   548
    lpstrInitialDir notNil ifTrue: [lpstrInitialDir free].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   549
    lpstrTitle notNil ifTrue: [ lpstrTitle free ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   550
    lpstrDefExt notNil ifTrue: [ lpstrDefExt free ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   551
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   552
    openFileNameStruct := nil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   553
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   554
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   555
initialize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   556
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   557
        "Private - Initialize openFileNameStruct"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   558
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   559
    super initialize.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   560
    openFileNameStruct :=  OpenFilenameStructure new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   561
    openFileNameStruct lStructSize: openFileNameStruct sizeInBytes.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   562
    fileName := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   563
    filters := OrderedCollection new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   564
    self style: (self class commonDialogConstantAt: 'OfnNochangedir')
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   565
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   566
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   567
!Win32FileDialog methodsFor:'opening'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   568
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   569
open
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   570
        "Brings up the open file dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   571
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   572
    | error rslt openFileNameStructExternalBytes |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   573
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   574
    [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   575
    self fillStruct.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   576
    parent notNil ifTrue: [ openFileNameStruct hwndOwner: parent.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   577
    style notNil ifTrue: [ openFileNameStruct flags: style ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   578
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   579
    openFileNameStructExternalBytes := ExternalBytes from: openFileNameStruct asByteArray.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   580
    rslt := OperatingSystem getOpenFilename: openFileNameStructExternalBytes address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   581
    rslt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   582
        ifTrue: [ self getFileName ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   583
        ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   584
            fileName := nil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   585
            error := OperatingSystem commDlgExtendedError.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   586
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   587
    ] ensure:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   588
        openFileNameStructExternalBytes free.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   589
        self cleanUp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   590
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   591
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   592
    (error notNil and:[error ~= 0]) ifTrue: [self error: error ]. 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   593
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   594
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   595
openFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   596
        "Brings up the default open file dialog.  The title is set to 'Open File'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   597
        and fileSpec is set to '*.*'. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   598
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   599
    self openFile: '*.*'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   600
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   601
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   602
openFile: initialFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   603
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   604
        "Brings up the default open file dialog.  The title is set to 'Open File'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   605
        and fileSpec is set to patternString. "  
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   606
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   607
    self title: 'Open'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   608
    initialFileName notNil ifTrue: [ self initialFileName: initialFileName ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   609
    self
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   610
        hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   611
        shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   612
        addAllFilesFilter;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   613
        addFilter: '*.txt' description: 'Text Files (*.txt)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   614
    Smalltalk isStandAloneApp ifFalse: [ self addSmalltalkFileFilters ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   615
    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   616
    self open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   617
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   618
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   619
openFor:ownerWindow
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   620
        save:isSaveDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   621
        title:titleOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   622
        inDirectory:dirPathOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   623
        initialAnswer:initialOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   624
        filter:filterArrayOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   625
     extension:extensionOrNil
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   626
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   627
    self 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   628
        owner: ownerWindow;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   629
        title: titleOrNil;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   630
        initialFileName: initialOrNil;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   631
        defFilter: extensionOrNil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   632
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   633
    filterArrayOrNil notNil ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   634
        filterArrayOrNil do:[:each | self addFilter: each last description: each first].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   635
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   636
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   637
    self addAllFilesFilter.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   638
"/    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   639
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   640
    isSaveDialog 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   641
        ifTrue:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   642
            self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   643
                 overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   644
                 save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   645
        ] ifFalse:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   646
            self hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   647
                 shareAware;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   648
                 open.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   649
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   650
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   651
    ^ self file
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   652
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   653
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   654
save
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   655
        "Brings up the save file dialog."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   656
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   657
    | error rslt openFileNameStructExternalBytes |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   658
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   659
    [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   660
    self fillStruct.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   661
    parent notNil ifTrue: [ openFileNameStruct hwndOwner: parent.].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   662
    style notNil ifTrue: [ openFileNameStruct flags: style ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   663
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   664
    openFileNameStructExternalBytes := ExternalBytes from: openFileNameStruct asByteArray.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   665
    rslt := OperatingSystem getSaveFilename: openFileNameStructExternalBytes address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   666
    rslt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   667
        ifTrue: [ self getFileName ]
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   668
        ifFalse: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   669
            fileName := nil.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   670
            error := OperatingSystem commDlgExtendedError.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   671
        ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   672
    ] ensure:[
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   673
        openFileNameStructExternalBytes free.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   674
        self cleanUp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   675
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   676
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   677
    (error notNil and:[error ~= 0]) ifTrue: [self error: error ]. 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   678
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   679
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   680
saveFile: aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   681
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   682
        "Brings up the save file dialog with aString as the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   683
         default name.  The title is set to 'Save File'. "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   684
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   685
    self saveTitle: 'Save File' fileName: aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   686
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   687
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   688
saveTitle: aTitle fileName: initialFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   689
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   690
        "Brings up the file save dialog with aTitle and aString
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   691
         as the default name."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   692
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   693
    self title: aTitle;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   694
            initialFileName: initialFileName;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   695
            hideReadonly;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   696
            overwritePrompt;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   697
            addAllFilesFilter;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   698
            addFilter: '*.txt' description: 'Text Files (*.txt)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   699
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   700
    self save.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   701
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   702
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   703
!Win32FileDialog methodsFor:'private'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   704
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   705
fillStruct
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   706
        "Private - fills the openFileNameStruct"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   707
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   708
    | temp |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   709
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   710
    temp := fileName asAsciiZ.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   711
    lpstrFile := ExternalBytes new: 512.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   712
    lpstrFile 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   713
        replaceBytesFrom:1 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   714
        to:temp size 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   715
        with:temp 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   716
        startingAt:1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   717
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   718
    lpstrFilter := ExternalBytes fromString: self filters.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   719
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   720
    lpstrInitialDir := ExternalBytes fromString: self directory pathName.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   721
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   722
    openFileNameStruct
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   723
        lpstrFile: lpstrFile address ;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   724
        nMaxFile: 512;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   725
        lpstrFilter: lpstrFilter address ;
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   726
        nFilterIndex: defFilterIndex ;      "set by filters"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   727
        lpstrInitialDir: lpstrInitialDir address.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   728
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   729
    ( temp := defExtension) notNil ifTrue: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   730
        lpstrDefExt := ExternalBytes fromString: temp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   731
        openFileNameStruct lpstrDefExt: lpstrDefExt address].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   732
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   733
    ( temp := title ) notNil ifTrue: [
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   734
        lpstrTitle := ExternalBytes fromString: temp.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   735
        openFileNameStruct lpstrTitle: lpstrTitle address ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   736
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   737
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   738
getFileName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   739
        "Private - get the filename"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   740
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   741
    | directory |
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   742
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   743
    self style: self flags.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   744
    fileName := lpstrFile stringAt: 1.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   745
    directory := fileName copyFrom: 1 to: openFileNameStruct nFileOffset.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   746
    self directory: directory asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   747
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   748
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   749
!Win32FileDialog::OpenFilenameStructure class methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   750
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   751
sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   752
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   753
    ^ 76
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   754
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   755
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   756
!Win32FileDialog::OpenFilenameStructure class methodsFor:'instance creation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   757
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   758
new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   759
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   760
    ^ super new: self sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   761
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   762
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   763
!Win32FileDialog::OpenFilenameStructure methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   764
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   765
flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   766
    "Answer the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   767
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   768
    ^ self doubleWordAtOffset: 52
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   769
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   770
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   771
flags: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   772
    "Set the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   773
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   774
    ^ self doubleWordAtOffset: 52 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   775
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   776
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   777
hInstance
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   778
    "Get the receiver's hInstance field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   779
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   780
    ^ self doubleWordAtOffset: 4 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   781
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   782
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   783
hInstance: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   784
    "Set the receiver's hInstance field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   785
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   786
    self doubleWordAtOffset: 8 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   787
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   788
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   789
hwndOwner
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   790
    "Get the receiver's hwndOwner field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   791
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   792
    ^ self doubleWordAtOffset: 4 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   793
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   794
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   795
hwndOwner: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   796
    "Set the receiver's hwndOwner field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   797
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   798
    self doubleWordAtOffset: 4 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   799
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   800
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   801
lCustData
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   802
    "Get the receiver's lCustData field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   803
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   804
    ^ self doubleWordAtOffset: 64 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   805
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   806
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   807
lCustData: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   808
    "Set the receiver's lCustData field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   809
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   810
    ^ self doubleWordAtOffset: 64 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   811
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   812
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   813
lStructSize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   814
    "Get the receiver's lStructSize field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   815
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   816
    ^ self doubleWordAtOffset: 0
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   817
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   818
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   819
lStructSize: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   820
    "Set the receiver's lStructSize field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   821
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   822
    self doubleWordAtOffset: 0 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   823
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   824
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   825
lpfnHook
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   826
    "Get the receiver's lpfnHook field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   827
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   828
    ^ self doubleWordAtOffset: 68 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   829
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   830
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   831
lpfnHook: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   832
    "Set the receiver's lpfnHook field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   833
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   834
    self doubleWordAtOffset: 68 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   835
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   836
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   837
lpstrCustomFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   838
    "Get the receiver's lpstrCustomFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   839
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   840
    ^ self doubleWordAtOffset: 16 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   841
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   842
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   843
lpstrCustomFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   844
    "Set the receiver's lpstrCustomFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   845
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   846
    self doubleWordAtOffset: 16 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   847
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   848
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   849
lpstrDefExt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   850
    "Get the receiver's lpstrDefExt field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   851
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   852
    ^ self doubleWordAtOffset: 60 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   853
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   854
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   855
lpstrDefExt: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   856
    "Set the receiver's lpstrDefExt field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   857
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   858
    self doubleWordAtOffset: 60 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   859
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   860
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   861
lpstrFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   862
    "Get the receiver's lpstrFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   863
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   864
    ^ self doubleWordAtOffset: 28 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   865
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   866
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   867
lpstrFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   868
    "Set the receiver's lpstrFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   869
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   870
    self doubleWordAtOffset: 28 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   871
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   872
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   873
lpstrFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   874
    "Get the receiver's lpstrFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   875
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   876
    ^ self doubleWordAtOffset: 36 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   877
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   878
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   879
lpstrFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   880
    "Set the receiver's lpstrFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   881
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   882
    self doubleWordAtOffset: 36 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   883
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   884
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   885
lpstrFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   886
    "Get the receiver's lpstrFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   887
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   888
    ^ self doubleWordAtOffset: 12 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   889
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   890
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   891
lpstrFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   892
    "Set the receiver's lpstrFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   893
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   894
    self doubleWordAtOffset: 12 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   895
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   896
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   897
lpstrInitialDir
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   898
    "Get the receiver's lpstrInitialDir field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   899
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   900
    ^ self doubleWordAtOffset: 44 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   901
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   902
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   903
lpstrInitialDir: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   904
    "Set the receiver's lpstrInitialDir field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   905
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   906
    self doubleWordAtOffset: 44 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   907
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   908
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   909
lpstrTemplateName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   910
    "Get the receiver's lpstrTemplateName field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   911
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   912
    ^ self doubleWordAtOffset: 72 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   913
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   914
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   915
lpstrTemplateName: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   916
    "Set the receiver's lpstrTemplateName field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   917
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   918
    self doubleWordAtOffset: 72 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   919
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   920
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   921
lpstrTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   922
    "Get the receiver's lpstrTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   923
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   924
    ^ self doubleWordAtOffset: 48 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   925
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   926
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   927
lpstrTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   928
    "Set the receiver's lpstrTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   929
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   930
    self doubleWordAtOffset: 48 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   931
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   932
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   933
nFileExtension
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   934
    "Get the receiver's nFileExtension field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   935
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   936
    ^ self unsignedShortAtOffset: 58 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   937
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   938
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   939
nFileExtension: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   940
    "Set the receiver's nFileExtension field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   941
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   942
    self unsignedShortAtOffset: 58 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   943
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   944
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   945
nFileOffset
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   946
    "Get the receiver's nFileOffset field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   947
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   948
    ^ self unsignedShortAtOffset: 56 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   949
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   950
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   951
nFileOffset: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   952
    "Set the receiver's nFileOffset field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   953
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   954
    self unsignedShortAtOffset: 56 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   955
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   956
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   957
nFilterIndex
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   958
    "Get the receiver's nFilterIndex field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   959
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   960
    ^ self doubleWordAtOffset: 24 
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   961
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   962
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   963
nFilterIndex: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   964
    "Set the receiver's nFilterIndex field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   965
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   966
    self doubleWordAtOffset: 24 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   967
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   968
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   969
nMaxCustFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   970
    "Get the receiver's nMaxCustFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   971
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   972
    ^ self doubleWordAtOffset: 20
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   973
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   974
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   975
nMaxCustFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   976
    "Set the receiver's nMaxCustFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   977
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   978
    self doubleWordAtOffset: 20 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   979
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   980
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   981
nMaxFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   982
    "Get the receiver's nMaxFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   983
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   984
    ^ self doubleWordAtOffset: 32
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   985
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   986
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   987
nMaxFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   988
    "Set the receiver's nMaxFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   989
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   990
    self doubleWordAtOffset: 32 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   991
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   992
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   993
nMaxFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   994
    "Get the receiver's nMaxFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   995
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   996
    ^ self doubleWordAtOffset: 40
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   997
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   998
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   999
nMaxFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1000
    "Set the receiver's nMaxFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1001
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1002
    self doubleWordAtOffset: 40 put: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1003
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1004
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1005
sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1006
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1007
    ^ self class sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1008
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1009
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1010
!Win32FileDialog::OpenFilenameStructure methodsFor:'printing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1011
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1012
printOn: aStream
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1013
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1014
    super printOn: aStream.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1015
    aStream cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1016
    aStream nextPutAll:'flags: ', self flags printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1017
    aStream nextPutAll:'hInstance: ', self hInstance printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1018
    aStream nextPutAll:'hwndOwner: ', self hwndOwner printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1019
    aStream nextPutAll:'lCustData: ', self lCustData printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1020
    aStream nextPutAll:'lpfnHook: ', self lpfnHook printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1021
    aStream nextPutAll:'lpstrCustomFilter: ', self lpstrCustomFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1022
    aStream nextPutAll:'lpstrDefExt: ', self lpstrDefExt printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1023
    aStream nextPutAll:'lpstrFile: ', self lpstrFile printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1024
    aStream nextPutAll:'lpstrFileTitle: ', self lpstrFileTitle printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1025
    aStream nextPutAll:'lpstrFilter: ', self lpstrFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1026
    aStream nextPutAll:'lpstrInitialDir: ', self lpstrInitialDir printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1027
    aStream nextPutAll:'lpstrTemplateName: ', self lpstrTemplateName printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1028
    aStream nextPutAll:'lStructSize: ', self lStructSize printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1029
    aStream nextPutAll:'nFileExtension: ', self nFileExtension printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1030
    aStream nextPutAll:'nFileOffset: ', self nFileOffset printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1031
    aStream nextPutAll:'nFilterIndex: ', self nFilterIndex printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1032
    aStream nextPutAll:'nMaxCustFilter: ', self nMaxCustFilter printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1033
    aStream nextPutAll:'nMaxFile: ', self nMaxFile printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1034
    aStream nextPutAll:'nMaxFileTitle: ', self nMaxFileTitle printString; cr.    
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1035
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1036
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1037
!Win32FileDialog class methodsFor:'documentation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1038
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1039
version
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1040
    ^ '$Header: /cvs/stx/stx/libtool/Win32FileDialog.st,v 1.1 2008-03-12 16:39:04 fm Exp $'
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1041
! !