Win32FileDialog.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 16237 bc32adffa408
child 18532 cccb41254edf
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
     1
"{ Encoding: utf8 }"
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
     2
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     3
"
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     4
 COPYRIGHT (c) 2008 by eXept Software AG
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
     5
	      All Rights Reserved
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     6
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     7
 This software is furnished under a license and may be used
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     8
 only in accordance with the terms of that license and with the
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    10
 be provided or otherwise made available to, or used by, any
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    11
 other person.  No title to or ownership of the software is
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    12
 hereby transferred.
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    13
"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    14
"{ Package: 'stx:libtool' }"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    15
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
    16
"{ NameSpace: Smalltalk }"
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
    17
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    18
Object subclass:#Win32FileDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    19
	instanceVariableNames:'fileName openFileNameStruct filters lpstrFilter lpstrFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    20
		lpstrInitialDir lpstrTitle lpstrDefExt defFilter defExtension
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
    21
		style title smalltalkFileFilters defFilterIndex parent error'
13577
4392e22c957f class: Win32FileDialog
Claus Gittinger <cg@exept.de>
parents: 11948
diff changeset
    22
	classVariableNames:'Lock InitialDirectory CommonDialogConstants
4392e22c957f class: Win32FileDialog
Claus Gittinger <cg@exept.de>
parents: 11948
diff changeset
    23
		FilterPatternDescriptions'
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
    24
	poolDictionaries:'Win32Constants'
16170
d494e069b04f #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16169
diff changeset
    25
	category:'OS-Windows'
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    26
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    27
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    28
ByteArray variableByteSubclass:#OpenFilenameStructure
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    29
	instanceVariableNames:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    30
	classVariableNames:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    31
	poolDictionaries:''
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    32
	privateIn:Win32FileDialog
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    33
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    34
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    35
!Win32FileDialog class methodsFor:'documentation'!
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    36
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    37
copyright
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    38
"
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    39
 COPYRIGHT (c) 2008 by eXept Software AG
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    40
	      All Rights Reserved
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    41
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    42
 This software is furnished under a license and may be used
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    43
 only in accordance with the terms of that license and with the
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    44
 inclusion of the above copyright notice.   This software may not
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    45
 be provided or otherwise made available to, or used by, any
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    46
 other person.  No title to or ownership of the software is
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    47
 hereby transferred.
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    48
"
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    49
!
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    50
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    51
documentation
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    52
"
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
    53
    interface to windows file dialogs.
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
    54
    Written by felix madrid.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    55
"
8277
5535db32c46f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8260
diff changeset
    56
! !
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    57
8260
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    58
!Win32FileDialog class methodsFor:'initialization'!
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    59
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    60
initialize
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    61
    Lock := RecursionLock new.
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    62
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    63
    "Created: / 26-10-2010 / 12:51:23 / cg"
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    64
!
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
    65
8260
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    66
startUp
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    67
    "Private - Initialize the class variables.
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
    68
     This is called during startup."
8260
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    69
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    70
    InitialDirectory := Directory pathName: Disk drivePathName.
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    71
! !
bd2f4ccb4fec category change
Claus Gittinger <cg@exept.de>
parents: 8037
diff changeset
    72
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    73
!Win32FileDialog class methodsFor:'instance creation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    74
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    75
new
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
    76
    ^ self basicNew initialize
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    77
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    78
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    79
!Win32FileDialog class methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    80
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    81
getInitialDirectory
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    82
    ^ InitialDirectory
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    83
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    84
    "Modified: / 26-10-2010 / 18:47:46 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    85
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    86
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    87
setInitialDirectory:aName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    88
    InitialDirectory := Directory pathName:aName
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    89
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    90
    "Modified: / 26-10-2010 / 18:47:48 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    91
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    92
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    93
!Win32FileDialog class methodsFor:'constants'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
    94
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    95
commonDialogConstantAt:aString
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
    96
    ^ self commonDialogConstants at:aString
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    97
	ifAbsent:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    98
	    Transcript showCR:'Common Dialog Constant ' , aString , ' notfound!!'
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
    99
	]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   100
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   101
    "Modified: / 26-10-2010 / 18:47:51 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   102
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   103
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   104
commonDialogConstants
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   105
    CommonDialogConstants isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   106
	CommonDialogConstants := self generateCommonDialogConstants
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   107
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   108
    ^ CommonDialogConstants
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   109
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   110
    "Modified: / 26-10-2010 / 18:47:54 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   111
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   112
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   113
generateCommonDialogConstants
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   114
    |dictionary|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   115
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   116
    dictionary := Dictionary new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   117
    dictionary
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   118
	at:'CcPreventfullopen' put:4;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   119
	at:'FrShowhelp' put:128;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   120
	at:'PdEnablesetuptemplate' put:32768;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   121
	at:'FrNoupdown' put:1024;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   122
	at:'CfNosimulations' put:4096;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   123
	at:'OfnPathmustexist' put:2048;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   124
	at:'CfWysiwyg' put:32768;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   125
	at:'PdReturndc' put:256;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   126
	at:'PdEnableprinthook' put:4096;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   127
	at:'CfInittologfontstruct' put:64;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   128
	at:'CfScalableonly' put:131072;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   129
	at:'PdPrinttofile' put:32;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   130
	at:'CfEffects' put:256;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   131
	at:'PdShowhelp' put:2048;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   132
	at:'OfnEnabletemplatehandle' put:128;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   133
	at:'CfBoth' put:3;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   134
	at:'OfnReadonly' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   135
	at:'PdNopagenums' put:8;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   136
	at:'PdDisableprinttofile' put:524288;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   137
	at:'PdHideprinttofile' put:1048576;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   138
	at:'OfnAllowmultiselect' put:512;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   139
	at:'CfPrinterfonts' put:2;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   140
	at:'CfEnabletemplatehandle' put:32;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   141
	at:'PdSelection' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   142
	at:'OfnHidereadonly' put:4;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   143
	at:'PdPrintsetup' put:64;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   144
	at:'OfnExtentiondifferent' put:1024;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   145
	at:'FrReplaceall' put:32;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   146
	at:'FrMatchcase' put:4;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   147
	at:'OfnFilemustexist' put:4096;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   148
	at:'PdCollate' put:16;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   149
	at:'CfFixedpitchonly' put:16384;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   150
	at:'PdEnablesetuphook' put:8192;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   151
	at:'OfnShareaware' put:16384;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   152
	at:'CcEnablehook' put:16;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   153
	at:'CfEnabletemplate' put:16;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   154
	at:'Findmsgstring' put:'commdlgFindreplace';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   155
	at:'CfLimitsize' put:8192;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   156
	at:'OfnNochangedir' put:8;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   157
	at:'OfnCreateprompt' put:8192;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   158
	at:'ScreenFonttype' put:8192;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   159
	at:'PdUsedevmodecopies' put:262144;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   160
	at:'CcRgbinit' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   161
	at:'FrFindnext' put:8;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   162
	at:'CfUsestyle' put:128;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   163
	at:'FrEnablehook' put:256;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   164
	at:'PdEnableprinttemplatehandle' put:65536;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   165
	at:'CfShowhelp' put:4;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   166
	at:'FrNowholeword' put:4096.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   167
    dictionary
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   168
	at:'ShareExist' put:16448;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   169
	at:'OfnOverwriteprompt' put:2;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   170
	at:'OfnEnablehook' put:32;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   171
	at:'OfnShowhelp' put:16;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   172
	at:'CcEnabletemplatehandle' put:64;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   173
	at:'SimulatedFonttype' put:32768;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   174
	at:'FrDown' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   175
	at:'PdEnableprinttemplate' put:16384;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   176
	at:'CfNovectorfonts' put:2048;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   177
	at:'PdNoselection' put:4;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   178
	at:'CfAnsionly' put:1024;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   179
	at:'OfnNovalidate' put:256;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   180
	at:'CfScreenfonts' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   181
	at:'FrWholeword' put:2;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   182
	at:'FrEnabletemplatehandle' put:8192;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   183
	at:'PdAllpages' put:0;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   184
	at:'CfForcefontexist' put:65536;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   185
	at:'CcEnabletemplate' put:32;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   186
	at:'PdPagenums' put:2;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   187
	at:'FrReplace' put:16;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   188
	at:'PdEnablesetuptemplatehandle' put:131072;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   189
	at:'CfApply' put:512;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   190
	at:'OfnEnabletemplate' put:64;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   191
	at:'DnDefaultprn' put:1;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   192
	at:'PdNowarning' put:128;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   193
	at:'CfTtonly' put:262144;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   194
	at:'PrinterFonttype' put:16384;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   195
	at:'CcShowhelp' put:8;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   196
	at:'CcFullopen' put:2;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   197
	at:'PdReturnic' put:512;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   198
	at:'FrEnabletemplate' put:512;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   199
	at:'FrDialogterm' put:64;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   200
	at:'Helpmsgstring' put:'commdlgHelp';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   201
	at:'PdReturndefault' put:1024;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   202
	at:'FrNomatchcase' put:2048;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   203
	at:'CfEnablehook' put:8.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   204
    ^ dictionary
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   205
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   206
    "Modified: / 26-10-2010 / 18:47:57 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   207
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   208
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   209
!Win32FileDialog class methodsFor:'examples'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   210
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   211
openFile
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   212
    ^ (Win32FileDialog new openFile: 'c:\untitled.txt') file.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   213
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   214
    "
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   215
     Win32FileDialog openFile
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   216
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   217
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   218
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   219
saveFile
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   220
    ^ (Win32FileDialog new saveFile: 'C:\vsw311\untitled.txt') file.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   221
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   222
    "
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   223
     self saveFile
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   224
    "
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   225
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   226
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   227
!Win32FileDialog class methodsFor:'filters'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   228
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   229
filterPatternDescription:filterPattern
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   230
    ^ self filterPatternDescriptions at:filterPattern ifAbsent:''
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   231
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   232
    "Modified: / 26-10-2010 / 18:48:24 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   233
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   234
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   235
filterPatternDescriptions
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   236
    FilterPatternDescriptions isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   237
	FilterPatternDescriptions := self generateFilterPatternDescriptions
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   238
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   239
    ^ FilterPatternDescriptions
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   240
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   241
    "Modified: / 26-10-2010 / 18:48:25 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   242
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   243
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   244
filtersFor:pattern
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   245
    |filters filterPatterns|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   246
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   247
    pattern isEmptyOrNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   248
	^ nil
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   249
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   250
    filters := OrderedCollection new.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   251
    filterPatterns := pattern subStrings:$;.
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   252
    filterPatterns do:[:filterPattern |
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   253
	filterPattern notEmpty ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   254
	    filters add:(Array with:(self filterPatternDescription:filterPattern)
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   255
			with:filterPattern)
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   256
	].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   257
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   258
    ^ filters asArray
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   259
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   260
    "Modified: / 26-10-2010 / 18:48:26 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   261
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   262
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   263
generateFilterPatternDescriptions
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   264
    ^ (Dictionary new)
16229
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   265
        at:'*.txt'              put:'Text files (*.txt)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   266
        at:'*.st'               put:'Smalltalk files (*.st)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   267
        at:'*.java'             put:'Java files (*.java)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   268
        at:'*.csv'              put:'CSV files (*.csv)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   269
        at:'*.xml'              put:'XML files (*.xml)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   270
        at:'*.zip'              put:'ZIP files (*.zip)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   271
        at:'*.xls'              put:'Excel files (*.xls)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   272
        at:'*.ent'              put:'SGML Entity files (*.ent)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   273
        at:'*.ccs'              put:'CCS files (*.ccs)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   274
        at:'*.dll'              put:'Shared Library files (*.dll)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   275
        at:'*.ini'              put:'Configuration files (*.ini)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   276
        at:'*.prn'              put:'Printer Text files (*.prn)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   277
        at:'*.dir'              put:'DapasX Database files (*.dir)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   278
        at:'*.dat'              put:'DapasX Database files (*.dat)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   279
        at:'*.prg'              put:'DapasX Program files (*.prg)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   280
        at:'*.dcf'              put:'DapasX Options files (*.dcf)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   281
        at:'*.ext'              put:'DapasX Backup files (*.ext)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   282
        at:'*.mpl'              put:'DapasX Project files (*.mpl)';
09278ae8faed #REFACTORING
sr
parents: 16228
diff changeset
   283
        yourself
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   284
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   285
    "Modified: / 26-10-2010 / 18:48:28 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   286
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   287
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   288
!Win32FileDialog class methodsFor:'opening'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   289
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   290
fileDialogFor:ownerWindow save:isSaveDialog
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   291
    title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
   292
    filter:pattern extension:extensionOrNil
16232
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   293
    <resource: #obsolete>
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   294
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   295
    "start a native open-file dialog.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   296
     If not cancelled, the selected fileName is returned; nil otherwise.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   297
     Of course, this one looks like the
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   298
     Windows file dialog - no matter which viewStyle settings are active.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   299
     Notice: if no ownerWindow is given, the dialog pops up at 0@0.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   300
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   301
     EXPERIMENTAL & non-portable: use with caution"
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   302
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   303
    self obsoleteMethodWarning:'please use the new interface'.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   304
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   305
    ^ self
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   306
        fileDialogFor:ownerWindow save:isSaveDialog
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   307
        title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   308
        pattern:pattern extension:extensionOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   309
!
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   310
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   311
fileDialogFor:ownerWindow save:isSaveDialog
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   312
    title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   313
    pattern:pattern extension:extensionOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   314
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   315
    "start a native open-file dialog.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   316
     If not cancelled, the selected fileName is returned; nil otherwise.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   317
     Of course, this one looks like the
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   318
     Windows file dialog - no matter which viewStyle settings are active.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   319
     Notice: if no ownerWindow is given, the dialog pops up at 0@0.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   320
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   321
     EXPERIMENTAL & non-portable: use with caution"
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   322
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   323
    ^ self
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   324
        fileDialogFor:ownerWindow save:isSaveDialog
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   325
        title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   326
        pattern:pattern orFilters:nil extension:extensionOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   327
!
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   328
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   329
fileDialogFor:ownerWindow save:isSaveDialog
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   330
    title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   331
    pattern:patternOrNil orFilters:filtersOrNil extension:extensionOrNil
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   332
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   333
    "start a native open-file dialog.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   334
     If not cancelled, the selected fileName is returned; nil otherwise.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   335
     Of course, this one looks like the
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   336
     Windows file dialog - no matter which viewStyle settings are active.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   337
     Notice: if no ownerWindow is given, the dialog pops up at 0@0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   338
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   339
     EXPERIMENTAL & non-portable: use with caution"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   340
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   341
    |filePath filterArrayOrNil|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   342
16232
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   343
    filtersOrNil notNil ifTrue:[
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   344
        filterArrayOrNil := filtersOrNil.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   345
    ] ifFalse:[
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   346
        patternOrNil notNil ifTrue:[
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   347
            filterArrayOrNil := self filtersFor:patternOrNil.
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   348
        ]
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   349
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   350
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   351
    filePath :=
16232
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   352
        self new
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   353
            openFor:ownerWindow
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   354
            save:isSaveDialog
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   355
            title:titleOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   356
            inDirectory:dirPathOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   357
            initialAnswer:initialOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   358
            filter:filterArrayOrNil
7c6304d387e5 #REFACTORING
sr
parents: 16231
diff changeset
   359
            extension:extensionOrNil.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   360
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   361
    ^ filePath
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   362
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   363
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   364
!Win32FileDialog methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   365
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   366
addAllFilesFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   367
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   368
    self addFilter: '*.*' description: 'All Files (*.*)'.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   369
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   370
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   371
addFilter:aFilter description:aDescription
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   372
    "Add aFilter and aDescription to the list of File dialog filters."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   373
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   374
    filters add:(Association key:aFilter value:aDescription).
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   375
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   376
    "Modified: / 26-10-2010 / 18:45:27 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   377
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   378
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   379
addSmalltalkFileFilters
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   380
    ^ smalltalkFileFilters
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   381
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   382
    "Modified: / 26-10-2010 / 18:45:29 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   383
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   384
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   385
defExtension:aDefExtension
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   386
    "Specifies the default extension of File dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   387
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   388
    defExtension := aDefExtension.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   389
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   390
    "Modified: / 26-10-2010 / 18:45:54 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   391
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   392
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   393
defFilter
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   394
    "Answers the aDefFilterString as the default filter of File dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   395
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   396
    ^ defFilter
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   397
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   398
    "Modified: / 26-10-2010 / 18:45:56 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   399
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   400
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   401
defFilter:aDefFilterString
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   402
    "Specifies the aDefFilterString as the default filter of File dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   403
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   404
    defFilter := aDefFilterString
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   405
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   406
    "Modified: / 26-10-2010 / 18:45:58 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   407
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   408
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   409
defFilterIndex:defaultFilterIndex
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   410
    defFilterIndex := defaultFilterIndex.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   411
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   412
    "Modified: / 26-10-2010 / 18:46:01 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   413
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   414
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   415
directory
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   416
    "Answer the selected directory."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   417
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   418
    InitialDirectory isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   419
	^ Filename currentDirectory pathName asFilename
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   420
    ].
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   421
    ^ InitialDirectory "? OperatingSystem getCurrentDirectory asFilename"
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   422
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   423
    "Modified: / 26-10-2010 / 18:46:03 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   424
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   425
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   426
directory:directory
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   427
    "Sets the initial directory."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   428
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   429
    |aFilename|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   430
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   431
    directory isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   432
	^ self.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   433
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   434
    aFilename := directory asFilename.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   435
    aFilename exists ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   436
	InitialDirectory := aFilename
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   437
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   438
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   439
    "Modified: / 26-10-2010 / 18:46:06 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   440
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   441
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   442
file
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   443
    "Answer the selected file."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   444
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   445
    ^ fileName
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   446
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   447
    "Modified: / 26-10-2010 / 18:46:10 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   448
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   449
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   450
fileSpec: aFileSpec
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   451
    "Sets the initial fileName and directory in the File Dialog."
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   452
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   453
    | array dir |
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   454
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   455
    "SHOULD assign initial fileName and directory separately using #fileName: and #directory"
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   456
8358
83aa07fd9d8a leftover halt in fileSpec:
Claus Gittinger <cg@exept.de>
parents: 8277
diff changeset
   457
    self breakPoint:#fm.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   458
    fileName := aFileSpec.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   459
"/    array := Filename splitPath: aFileSpec in: self directory .
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   460
"/    dir :=
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   461
"/        (( String with: ( array at: 1 ) with: $: ),
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   462
"/        ( ( array at: 2 ) isEmpty ifTrue: [ '\' ] ifFalse: [ array at: 2 ] )) asFilename.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   463
"/    dir exists ifFalse: [ dir := OperatingSystem getCurrentDirectory asFilename ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   464
"/
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   465
"/    self directory: dir.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   466
"/    fileName := array at: 3
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   467
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   468
    "Modified: / 26-10-2010 / 18:46:22 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   469
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   470
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   471
filters
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   472
    "Private - answers  a string containing all filters and sets up
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   473
     the defFilterIndex property"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   474
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   475
    | filterString count defaultFilterIndex defaultFilter|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   476
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   477
    smalltalkFileFilters notNil ifTrue: [
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   478
	self
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   479
	    addFilter: '*.cls' description: 'Class Files (*.CLS)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   480
	    addFilter: '*.mth' description: 'Method Files (*.MTH)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   481
	    addFilter: '*.st' description: 'Smalltalk Files (*.ST)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   482
	    addFilter: '*.bnd' description: 'Library Bind Files (*.BND)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   483
	    addFilter: '*.map' description: 'Library Map Files (*.MAP)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   484
	    addFilter: '*.ini' description: 'Initialization Files (*.INI)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   485
	    addFilter: '*.obj' description: 'Object Files (*.OBJ)';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   486
	    addFilter: '*.log' description: 'Log Files (*.LOG)'
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   487
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   488
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   489
    defaultFilter := self defFilter.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   490
    (fileName notEmptyOrNil and:[defaultFilter isNil]) ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   491
	|initialFilenameSuffix|
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   492
	initialFilenameSuffix := fileName asFilename suffix.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   493
	initialFilenameSuffix notEmptyOrNil ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   494
	    defaultFilter := '*.', initialFilenameSuffix.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   495
	].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   496
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   497
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   498
    filterString := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   499
    count := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   500
    defaultFilterIndex := 0.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   501
    filters do: [:assoc |
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   502
	count := count + 1.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   503
	assoc key = defaultFilter ifTrue: [ defaultFilterIndex := count ].
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   504
	filterString := filterString, assoc value, #[0] asString, assoc key , #[0] asString.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   505
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   506
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   507
    self defFilterIndex: defaultFilterIndex.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   508
    ^filterString
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   509
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   510
    "Modified: / 26-10-2010 / 18:46:35 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   511
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   512
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   513
flags
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   514
    "Private - Answers the dialog box current flags.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   515
     For compatibility reasons -> use style instead"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   516
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   517
    ^ openFileNameStruct flags
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   518
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   519
    "Modified: / 26-10-2010 / 18:46:38 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   520
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   521
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   522
flags:flags
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   523
    "Private - Specifies the dialog box creation flags.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   524
     Kept for compatibility reasons. Use style: instead"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   525
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   526
    self style:flags
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   527
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   528
    "Modified: / 26-10-2010 / 18:46:42 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   529
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   530
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   531
hideReadonly
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   532
    "Hides the file dialog's Readonly check box. "
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   533
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   534
    self style:(self style bitOr:OFN_HIDEREADONLY)
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   535
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   536
    "Modified: / 26-10-2010 / 18:46:48 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   537
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   538
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   539
initialFileName:filename
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   540
    "Sets the initial fileName string in the File Dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   541
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   542
    |aString|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   543
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   544
    filename isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   545
	^ self.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   546
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   547
    aString := filename.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   548
    filename isFilename ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   549
	aString := filename baseName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   550
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   551
    fileName := aString.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   552
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   553
    "Modified: / 26-10-2010 / 18:46:50 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   554
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   555
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   556
overwritePrompt
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   557
    "Prompt if the user attempts to overwrite a file"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   558
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   559
    self style:(self style
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   560
		bitOr: (self class commonDialogConstantAt:'OfnOverwriteprompt'))
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   561
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   562
    "Modified: / 26-10-2010 / 18:47:19 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   563
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   564
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   565
owner:ownerWindow
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   566
    "Sets the owner of the Dialog box."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   567
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   568
    |mainView handle|
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   569
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   570
    ownerWindow isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   571
	^ self
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   572
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   573
    mainView := ownerWindow windowGroup mainView.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   574
    mainView notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   575
	handle := mainView id.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   576
	handle notNil ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   577
	    parent := handle address
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   578
	].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   579
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   580
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   581
    "/    super owner: anOwner.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   582
    "/    owner isWindow
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   583
    "/        ifTrue: [ parent := owner ]
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   584
    "/        ifFalse: [ parent := owner mainView.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   585
    "/                       parent isWindow ifFalse: [
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   586
    "/                            parent := Notifier findWindow: WindowHandle queryActive ]].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   587
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   588
    "Modified: / 26-10-2010 / 18:47:22 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   589
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   590
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   591
pathMustExist
11948
579c05620cfc changed:
Claus Gittinger <cg@exept.de>
parents: 9698
diff changeset
   592
    self style:(self style bitOr: 16r800).
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   593
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   594
    "Modified: / 26-10-2010 / 18:47:27 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   595
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   596
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   597
shareAware
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   598
    "Allows a previously opened file to be opened
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   599
     (e.g. change.log)"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   600
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   601
    self style:(self style bitOr:OFN_SHAREAWARE)
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   602
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   603
    "Modified: / 26-10-2010 / 18:47:36 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   604
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   605
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   606
style
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   607
    style isNil ifTrue:[^ self class commonDialogConstantAt:'OfnNochangedir'].
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   608
    ^ style
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   609
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   610
    "Modified: / 27-10-2010 / 11:07:41 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   611
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   612
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   613
style:something
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   614
    style := something.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   615
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   616
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   617
title:aTitle
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   618
    "Specifies the string to be placed in the title bar of the
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   619
     File dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   620
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   621
    title := aTitle
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   622
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   623
    "Modified: / 26-10-2010 / 18:47:41 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   624
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   625
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   626
!Win32FileDialog methodsFor:'dapas'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   627
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   628
dapasOpenFile
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   629
    "Brings up the default open file dialog "
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   630
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   631
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   632
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   633
	shareAware;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   634
	addFilter:'*.*' description:'All Files (*.*)'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   635
    self defFilter isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   636
	self defFilter:'*.*'
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   637
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   638
    self open.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   639
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   640
    "Modified: / 26-10-2010 / 18:45:46 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   641
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   642
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   643
dapasSaveFile
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   644
    "Brings up the file save dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   645
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   646
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   647
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   648
	overwritePrompt;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   649
	addFilter:'*.*' description:'All Files (*.*)'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   650
    self save.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   651
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   652
    "Modified: / 26-10-2010 / 18:45:52 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   653
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   654
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   655
openFileXml
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   656
    "Brings up the default open file dialog "
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   657
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   658
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   659
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   660
	shareAware;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   661
	addFilter:'*.xml' description:'XML-Files'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   662
    self defFilter isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   663
	self defFilter:'*.*'
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   664
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   665
    self open.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   666
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   667
    "Modified: / 26-10-2010 / 18:49:00 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   668
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   669
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   670
openFileXmlZip
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   671
    "Brings up the default open file dialog "
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   672
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   673
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   674
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   675
	shareAware;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   676
	addFilter:'*.xml' description:'XML-Datei';
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   677
	addFilter:'*.zip' description:'ZIP-Datei'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   678
    self defFilter isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   679
	self defFilter:'*.*'
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   680
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   681
    self open.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   682
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   683
    "Modified: / 26-10-2010 / 18:47:14 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   684
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   685
9668
825bed03b9ed category of:
Claus Gittinger <cg@exept.de>
parents: 9606
diff changeset
   686
!Win32FileDialog methodsFor:'initialization & release'!
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   687
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   688
cleanUp
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   689
    "Private - Free openFileNameStruct."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   690
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   691
    self style:self flags.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   692
    lpstrFilter notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   693
	lpstrFilter free
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   694
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   695
    lpstrFile notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   696
	lpstrFile free
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   697
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   698
    lpstrInitialDir notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   699
	lpstrInitialDir free
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   700
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   701
    lpstrTitle notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   702
	lpstrTitle free
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   703
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   704
    lpstrDefExt notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   705
	lpstrDefExt free
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   706
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   707
    openFileNameStruct := nil
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   708
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   709
    "Modified: / 26-10-2010 / 18:45:33 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   710
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   711
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   712
initialize
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   713
    "Private - Initialize openFileNameStruct"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   714
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   715
    super initialize.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   716
    openFileNameStruct := OpenFilenameStructure new.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   717
    openFileNameStruct lStructSize:openFileNameStruct sizeInBytes.
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   718
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   719
    fileName := String new.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   720
    filters := OrderedCollection new.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   721
    self style:(self class commonDialogConstantAt:'OfnNochangedir')
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   722
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   723
    "Modified: / 27-10-2010 / 10:56:21 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   724
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   725
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   726
!Win32FileDialog methodsFor:'opening'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   727
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   728
asynchronousOpen
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   729
    |rslt sema|
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   730
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   731
    sema := Semaphore new.
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   732
    [
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   733
	[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   734
	    self basicOpen
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   735
	] ensure:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   736
	    sema signal.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   737
	].
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   738
    ] fork.
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   739
    sema wait.
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   740
    ^ rslt
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   741
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   742
    "Created: / 23-01-2011 / 10:59:35 / cg"
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   743
!
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   744
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   745
basicOpen
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
   746
    "Brings up the open file dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   747
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   748
    |rslt openFileNameStructExternalBytes|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   749
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   750
    [
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   751
        self fillStruct.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   752
        parent notNil ifTrue:[
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   753
            openFileNameStruct hwndOwner:parent.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   754
        ].
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   755
        style notNil ifTrue:[
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   756
            openFileNameStruct flags:style
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   757
        ].
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   758
        openFileNameStructExternalBytes := ExternalBytes from:openFileNameStruct asByteArray.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   759
        rslt := OperatingSystem getOpenFilename:openFileNameStructExternalBytes.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   760
        rslt ifTrue:[
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   761
            self getFileName
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   762
        ] ifFalse:[
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   763
            fileName := nil.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   764
            error := OperatingSystem commDlgExtendedError.
16231
68fa0d6c9b66 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16230
diff changeset
   765
            error ~~ 0 ifTrue:[
68fa0d6c9b66 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16230
diff changeset
   766
                self error:('GetOpenFile failed with error: %1' bindWith:error).
68fa0d6c9b66 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16230
diff changeset
   767
            ].
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   768
        ].
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   769
    ] ensure:[
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   770
        openFileNameStructExternalBytes notNil ifTrue:[openFileNameStructExternalBytes free].
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   771
        self cleanUp.
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   772
    ].
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   773
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   774
    "Created: / 23-01-2011 / 10:58:30 / cg"
13923
796bfa9aacd6 class: Win32FileDialog
Claus Gittinger <cg@exept.de>
parents: 13577
diff changeset
   775
    "Modified: / 11-02-2014 / 11:24:23 / cg"
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   776
!
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   777
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   778
open
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   779
    "Brings up the open file dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   780
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   781
    true "false" ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   782
	self synchronousOpen.
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   783
    ] ifFalse:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   784
	self asynchronousOpen.
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   785
    ].
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
   786
    (error notNil and:[ error ~= 0 ]) ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   787
	self error:error
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   788
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   789
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   790
    "Modified: / 23-01-2011 / 11:05:46 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   791
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   792
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   793
openFile
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   794
    "Brings up the default open file dialog.  The title is set to 'Open File'
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   795
     and fileSpec is set to '*.*'."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   796
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   797
    self openFile:'*.*'.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   798
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   799
    "Modified: / 26-10-2010 / 18:47:00 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   800
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   801
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   802
openFile:initialFileName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   803
    "Brings up the default open file dialog.  The title is set to 'Open File'
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   804
     and fileSpec is set to patternString."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   805
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   806
    self title:'Open'.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   807
    initialFileName notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   808
	self initialFileName:initialFileName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   809
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   810
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   811
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   812
	shareAware;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   813
	addAllFilesFilter;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   814
	addFilter:'*.txt' description:'Text Files (*.txt)'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   815
    Smalltalk isStandAloneApp ifFalse:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   816
	self addSmalltalkFileFilters
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   817
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   818
    self defFilter isNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   819
	self defFilter:'*.*'
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   820
    ].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   821
    self open.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   822
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   823
    "Modified: / 26-10-2010 / 18:47:03 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   824
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   825
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   826
openFor:ownerWindow save:isSaveDialog title:titleOrNil inDirectory:dirPathOrNil initialAnswer:initialOrNil filter:filterArrayOrNil extension:extensionOrNil
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   827
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   828
	owner:ownerWindow;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   829
	title:titleOrNil;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   830
	initialFileName:initialOrNil;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   831
	defFilter:extensionOrNil;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   832
	directory:dirPathOrNil.
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   833
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   834
    filterArrayOrNil notNil ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   835
	filterArrayOrNil do:[:each |
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   836
	    self addFilter:each last description:each first
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   837
	].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   838
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   839
    self addAllFilesFilter.
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   840
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   841
"/    self defFilter isNil ifTrue:[ self defFilter: '*.*'].
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   842
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   843
    isSaveDialog ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   844
	self
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   845
	    hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   846
	    overwritePrompt;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   847
	    save.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   848
    ] ifFalse:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   849
	self
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   850
	    hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   851
	    shareAware;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   852
	    open.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   853
    ].
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   854
    ^ self file
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   855
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   856
    "Modified: / 27-10-2010 / 11:10:38 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   857
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   858
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   859
save
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
   860
    "Brings up the save file dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   861
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
   862
    |error rslt openFileNameStructExternalBytes|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   863
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   864
    [
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   865
	self fillStruct.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   866
	parent notNil ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   867
	    openFileNameStruct hwndOwner:parent.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   868
	].
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   869
	style notNil ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   870
	    openFileNameStruct flags:style
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   871
	].
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   872
	openFileNameStructExternalBytes := ExternalBytes
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   873
		    from:openFileNameStruct asByteArray.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   874
	rslt := OperatingSystem getSaveFilename:openFileNameStructExternalBytes.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   875
	rslt ifTrue:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   876
	    self getFileName
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   877
	] ifFalse:[
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   878
	    fileName := nil.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   879
	    error := OperatingSystem commDlgExtendedError.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   880
	].
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   881
    ] ensure:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   882
	openFileNameStructExternalBytes free.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   883
	self cleanUp.
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   884
    ].
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
   885
    (error notNil and:[ error ~= 0 ]) ifTrue:[
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   886
	self error:error
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   887
    ].
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   888
13924
30cff2e06fbf class: Win32FileDialog
Claus Gittinger <cg@exept.de>
parents: 13923
diff changeset
   889
    "Modified: / 11-02-2014 / 21:13:43 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   890
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   891
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   892
saveFile:aString
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   893
    "Brings up the save file dialog with aString as the
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   894
     default name.  The title is set to 'Save File'."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   895
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   896
    self saveTitle:'Save File' fileName:aString
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   897
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   898
    "Modified: / 26-10-2010 / 18:47:32 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   899
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   900
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   901
saveTitle:aTitle fileName:initialFileName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   902
    "Brings up the file save dialog with aTitle and aString
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   903
     as the default name."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   904
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   905
    self
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   906
	title:aTitle;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   907
	initialFileName:initialFileName;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   908
	hideReadonly;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   909
	overwritePrompt;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   910
	addAllFilesFilter;
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   911
	addFilter:'*.txt' description:'Text Files (*.txt)'.
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   912
    self save.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   913
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   914
    "Modified: / 26-10-2010 / 18:47:35 / cg"
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   915
!
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   916
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   917
synchronousOpen
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   918
    "Brings up the open file dialog."
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   919
9698
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   920
    self basicOpen.
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   921
0796b0abbb7b class definition
Claus Gittinger <cg@exept.de>
parents: 9668
diff changeset
   922
    "Modified: / 23-01-2011 / 10:59:20 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   923
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   924
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   925
!Win32FileDialog methodsFor:'private'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   926
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   927
fillStruct
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   928
    "Private - fills the openFileNameStruct"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   929
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   930
    |maxPath lpstrFileInOut|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   931
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   932
    maxPath := 1024.
16228
b65ce693d0e6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16227
diff changeset
   933
    lpstrFileInOut := lpstrFile := ExternalBytes new:maxPath.
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   934
    lpstrFileInOut replaceFrom:1 to:fileName size with:fileName startingAt:1.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   935
8037
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   936
    lpstrFilter := ExternalBytes newNullTerminatedFromString: self filters.
04b0b1939a14 double*AtOffset -> double*
Claus Gittinger <cg@exept.de>
parents: 8015
diff changeset
   937
    lpstrInitialDir := ExternalBytes newNullTerminatedFromString: self directory pathName.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   938
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   939
    openFileNameStruct
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   940
        lpstrFile: lpstrFileInOut address ;
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   941
        nMaxFile: maxPath;
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   942
        lpstrFilter: lpstrFilter address ;
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   943
        nFilterIndex: defFilterIndex ;      "set by filters"
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   944
        lpstrInitialDir: lpstrInitialDir address.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   945
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   946
    defExtension notNil ifTrue: [
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   947
        lpstrDefExt := ExternalBytes newNullTerminatedFromString: defExtension.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   948
        openFileNameStruct lpstrDefExt: lpstrDefExt address].
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   949
16171
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   950
    title notNil ifTrue: [
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   951
        lpstrTitle := ExternalBytes newNullTerminatedFromString: title.
c0c009178dd2 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16170
diff changeset
   952
        openFileNameStruct lpstrTitle: lpstrTitle address ].
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   953
9606
Claus Gittinger <cg@exept.de>
parents: 9598
diff changeset
   954
    "Modified: / 27-10-2010 / 10:56:01 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   955
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   956
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   957
getFileName
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   958
    "Private - get the filename"
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
   959
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   960
    |directory|
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   961
9598
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   962
    self style:self flags.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   963
    fileName := lpstrFile stringAt:1.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   964
    directory := fileName copyFrom:1 to:openFileNameStruct nFileOffset.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   965
    self directory:directory asFilename.
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   966
d9be113eb4f5 comment/format
Claus Gittinger <cg@exept.de>
parents: 9597
diff changeset
   967
    "Modified: / 26-10-2010 / 18:46:45 / cg"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   968
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   969
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   970
!Win32FileDialog::OpenFilenameStructure class methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   971
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   972
fieldNames
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
   973
    ^ #(lStructSize hwndOwner hInstance Flags lpstrFilter lCustData lpstrCustomFilter lpfnHook
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
   974
        lpstrDefExt lpstrFile lpstrFileTitle lpstrInitialDir lpTemplateName
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
   975
        lpstrTitle nFileExtension nFileOffset nFilterIndex nMaxCustFilter nMaxFile
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
   976
        nMaxFileTitle )
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   977
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   978
    "
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   979
     OLEStructure getFieldInfoFor:self
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   980
    "
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   981
!
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   982
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   983
sizeInBytes
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   984
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
   985
        ^ 152
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   986
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   987
        ^ 76
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   988
    ]
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   989
!
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   990
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   991
structureName
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   992
    ^ 'OPENFILENAME'
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   993
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   994
    "
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   995
     OLEStructure getFieldInfoFor:self
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
   996
    "
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   997
! !
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
   998
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
   999
!Win32FileDialog::OpenFilenameStructure class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1000
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1001
documentation
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1002
"
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1003
  definitely needs a rewrite to use inline C code.
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1004
  This is unmaintanable...
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1005
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1006
                                        32bit         64bit
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1007
  typedef struct tagOFNA {
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1008
    DWORD lStructSize;                  4    0        4   0
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1009
    HWND hwndOwner;                     4    4        8   4
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1010
    HINSTANCE hInstance;                4    8        8   12
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1011
    LPCSTR lpstrFilter;                 4    12       8   20
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1012
    LPSTR lpstrCustomFilter;            4    16       8   28
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1013
    DWORD nMaxCustFilter;               4    20       4   36
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1014
    DWORD nFilterIndex;                 4    24       4   40
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1015
    LPSTR lpstrFile;                    4    28       8   44
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1016
    DWORD nMaxFile;                     4    32       4   52
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1017
    LPSTR lpstrFileTitle;               4    36       8   56
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1018
    DWORD nMaxFileTitle;                4    40       4   64
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1019
    LPCSTR lpstrInitialDir;             4    44       8   68
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1020
    LPCSTR lpstrTitle;                  4    48       8   76
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1021
    DWORD Flags;                        4    52       4   84
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1022
    WORD nFileOffset;                   2    56       2   88
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1023
    WORD nFileExtension;                2    58       2   90
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1024
    LPCSTR lpstrDefExt;                 4    60       8   92
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1025
    LPARAM lCustData;                   4    64       8   100
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1026
    LPOFNHOOKPROC lpfnHook;             4    68       8   108
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1027
    LPCSTR lpTemplateName;              4    72       8   116
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1028
    void *pvReserved;                   4    76       8   124
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1029
    DWORD dwReserved;                   4    80       4   132
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1030
    DWORD FlagsEx;                      4    84       4   136
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1031
  } OPENFILENAMEA,*LPOPENFILENAMEA;          88           140
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1032
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1033
"
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1034
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1035
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1036
!Win32FileDialog::OpenFilenameStructure class methodsFor:'instance creation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1037
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1038
new
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1039
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1040
    ^ super new: self sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1041
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1042
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1043
!Win32FileDialog::OpenFilenameStructure methodsFor:'accessing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1044
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1045
flags
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1046
    "Answer the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1047
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1048
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1049
        ^ self unsignedInt32At: 96+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1050
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1051
        ^ self unsignedInt32At: 52+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1052
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1053
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1054
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1055
flags: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1056
    "Set the receiver's flags field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1057
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1058
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1059
        self unsignedInt32At: 96+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1060
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1061
        self unsignedInt32At: 52+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1062
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1063
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1064
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1065
hInstance
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1066
    "Get the receiver's hInstance field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1067
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1068
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1069
        ^ self unsignedInt64At: 16+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1070
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1071
        ^ self unsignedInt32At: 8+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1072
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1073
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1074
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1075
hInstance: anInteger
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1076
    "Set the receiver's hInstance field to the value of anInteger."
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1077
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1078
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1079
        self unsignedInt64At: 16+1 put: anInteger
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1080
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1081
        self unsignedInt32At: 8+1 put: anInteger
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1082
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1083
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1084
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1085
hwndOwner
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1086
    "Get the receiver's hwndOwner field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1087
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1088
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1089
        ^ self unsignedInt64At: 8+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1090
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1091
        ^ self unsignedInt32At: 4+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1092
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1093
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1094
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1095
hwndOwner: anInteger
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1096
    "Set the receiver's hwndOwner field to the value of anInteger."
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1097
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1098
    ExternalAddress pointerSize == 8 ifTrue:[
16227
be844d752234 #BUGFIX
sr
parents: 16171
diff changeset
  1099
        self unsignedInt64At: 8+1 put: anInteger
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1100
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1101
        self unsignedInt32At: 4+1 put: anInteger
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1102
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1103
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1104
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1105
lCustData
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1106
    "Get the receiver's lCustData field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1107
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1108
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1109
        ^ self unsignedInt64At: 112+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1110
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1111
        ^ self unsignedInt32At: 64+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1112
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1113
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1114
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1115
lCustData: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1116
    "Set the receiver's lCustData field as a Smalltalk object."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1117
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1118
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1119
        self unsignedInt64At: 112+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1120
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1121
        self unsignedInt32At: 64+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1122
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1123
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1124
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1125
lStructSize
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1126
    "Get the receiver's lStructSize field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1127
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1128
    ^ self unsignedInt32At: 0+1
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1129
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1130
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1131
lStructSize: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1132
    "Set the receiver's lStructSize field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1133
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1134
    self unsignedInt32At:0+1 put:anObject
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1135
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1136
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1137
lpfnHook
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1138
    "Get the receiver's lpfnHook field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1139
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1140
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1141
        ^ self unsignedInt64At: 120+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1142
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1143
        ^ self unsignedInt32At: 68+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1144
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1145
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1146
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1147
lpfnHook: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1148
    "Set the receiver's lpfnHook field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1149
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1150
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1151
        ^ self unsignedInt64At: 120+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1152
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1153
        ^ self unsignedInt32At: 68+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1154
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1155
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1156
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1157
lpstrCustomFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1158
    "Get the receiver's lpstrCustomFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1159
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1160
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1161
        ^ self unsignedInt64At: 32+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1162
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1163
        ^ self unsignedInt32At: 16+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1164
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1165
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1166
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1167
lpstrCustomFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1168
    "Set the receiver's lpstrCustomFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1169
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1170
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1171
        ^ self unsignedInt64At: 32+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1172
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1173
        ^ self unsignedInt32At: 16+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1174
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1175
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1176
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1177
lpstrDefExt
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1178
    "Get the receiver's lpstrDefExt field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1179
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1180
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1181
        ^ self unsignedInt64At: 104+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1182
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1183
        ^ self unsignedInt32At: 60+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1184
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1185
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1186
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1187
lpstrDefExt: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1188
    "Set the receiver's lpstrDefExt field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1189
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1190
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1191
        ^ self unsignedInt64At: 104+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1192
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1193
        ^ self unsignedInt32At: 60+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1194
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1195
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1196
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1197
lpstrFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1198
    "Get the receiver's lpstrFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1199
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1200
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1201
        ^ self unsignedInt64At: 48+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1202
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1203
        ^ self unsignedInt32At: 28+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1204
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1205
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1206
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1207
lpstrFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1208
    "Set the receiver's lpstrFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1209
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1210
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1211
        ^ self unsignedInt64At: 48+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1212
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1213
        ^ self unsignedInt32At: 28+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1214
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1215
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1216
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1217
lpstrFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1218
    "Get the receiver's lpstrFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1219
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1220
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1221
        ^ self unsignedInt64At: 64+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1222
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1223
        ^ self unsignedInt32At: 36+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1224
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1225
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1226
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1227
lpstrFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1228
    "Set the receiver's lpstrFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1229
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1230
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1231
        ^ self unsignedInt64At: 64+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1232
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1233
        ^ self unsignedInt32At: 36+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1234
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1235
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1236
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1237
lpstrFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1238
    "Get the receiver's lpstrFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1239
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1240
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1241
        ^ self unsignedInt64At: 24+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1242
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1243
        ^ self unsignedInt32At: 12+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1244
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1245
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1246
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1247
lpstrFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1248
    "Set the receiver's lpstrFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1249
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1250
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1251
        ^ self unsignedInt64At: 24+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1252
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1253
        ^ self unsignedInt32At: 12+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1254
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1255
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1256
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1257
lpstrInitialDir
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1258
    "Get the receiver's lpstrInitialDir field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1259
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1260
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1261
        ^ self unsignedInt64At: 80+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1262
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1263
        ^ self unsignedInt32At: 44+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1264
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1265
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1266
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1267
lpstrInitialDir: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1268
    "Set the receiver's lpstrInitialDir field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1269
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1270
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1271
        ^ self unsignedInt64At: 80+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1272
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1273
        ^ self unsignedInt32At: 44+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1274
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1275
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1276
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1277
lpstrTemplateName
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1278
    "Get the receiver's lpstrTemplateName field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1279
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1280
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1281
        ^ self unsignedInt64At: 128+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1282
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1283
        ^ self unsignedInt32At: 72+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1284
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1285
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1286
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1287
lpstrTemplateName: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1288
    "Set the receiver's lpstrTemplateName field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1289
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1290
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1291
        ^ self unsignedInt64At: 128+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1292
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1293
        ^ self unsignedInt32At: 72+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1294
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1295
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1296
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1297
lpstrTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1298
    "Get the receiver's lpstrTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1299
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1300
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1301
        ^ self unsignedInt64At: 88+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1302
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1303
        ^ self unsignedInt32At: 48+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1304
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1305
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1306
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1307
lpstrTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1308
    "Set the receiver's lpstrTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1309
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1310
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1311
        ^ self unsignedInt64At: 88+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1312
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1313
        ^ self unsignedInt32At: 48+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1314
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1315
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1316
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1317
nFileExtension
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1318
    "Get the receiver's nFileExtension field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1319
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1320
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1321
        ^ self unsignedInt16At: 102+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1322
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1323
        ^ self unsignedInt16At: 58+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1324
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1325
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1326
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1327
nFileExtension: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1328
    "Set the receiver's nFileExtension field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1329
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1330
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1331
        ^ self unsignedInt16At: 102+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1332
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1333
        ^ self unsignedInt16At: 58+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1334
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1335
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1336
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1337
nFileOffset
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1338
    "Get the receiver's nFileOffset field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1339
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1340
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1341
        ^ self unsignedInt16At: 100+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1342
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1343
        ^ self unsignedInt16At: 56+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1344
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1345
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1346
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1347
nFileOffset: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1348
    "Set the receiver's nFileOffset field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1349
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1350
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1351
        ^ self unsignedInt16At: 100+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1352
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1353
        ^ self unsignedInt16At: 56+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1354
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1355
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1356
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1357
nFilterIndex
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1358
    "Get the receiver's nFilterIndex field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1359
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1360
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1361
        ^ self unsignedInt32At: 44+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1362
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1363
        ^ self unsignedInt32At: 24+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1364
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1365
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1366
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1367
nFilterIndex: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1368
    "Set the receiver's nFilterIndex field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1369
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1370
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1371
        ^ self unsignedInt32At: 44+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1372
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1373
        ^ self unsignedInt32At: 24+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1374
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1375
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1376
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1377
nMaxCustFilter
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1378
    "Get the receiver's nMaxCustFilter field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1379
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1380
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1381
        ^ self unsignedInt32At: 40+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1382
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1383
        ^ self unsignedInt32At: 20+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1384
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1385
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1386
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1387
nMaxCustFilter: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1388
    "Set the receiver's nMaxCustFilter field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1389
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1390
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1391
        ^ self unsignedInt32At: 40+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1392
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1393
        ^ self unsignedInt32At: 20+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1394
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1395
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1396
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1397
nMaxFile
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1398
    "Get the receiver's nMaxFile field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1399
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1400
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1401
        ^ self unsignedInt32At: 56+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1402
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1403
        ^ self unsignedInt32At: 32+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1404
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1405
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1406
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1407
nMaxFile: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1408
    "Set the receiver's nMaxFile field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1409
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1410
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1411
        ^ self unsignedInt32At: 56+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1412
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1413
        ^ self unsignedInt32At: 32+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1414
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1415
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1416
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1417
nMaxFileTitle
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1418
    "Get the receiver's nMaxFileTitle field."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1419
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1420
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1421
        ^ self unsignedInt32At: 72+1
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1422
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1423
        ^ self unsignedInt32At: 40+1
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1424
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1425
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1426
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1427
nMaxFileTitle: anObject
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1428
    "Set the receiver's nMaxFileTitle field to the value of anObject."
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1429
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1430
    ExternalAddress pointerSize == 8 ifTrue:[
16230
5258eebd6b23 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 16229
diff changeset
  1431
        ^ self unsignedInt32At: 72+1 put: anObject
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1432
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1433
        ^ self unsignedInt32At: 40+1 put: anObject
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1434
    ]
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1435
!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1436
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1437
sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1438
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1439
    ^ self class sizeInBytes
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1440
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1441
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1442
!Win32FileDialog::OpenFilenameStructure methodsFor:'printing'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1443
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1444
printOn: aStream
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1445
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1446
    super printOn: aStream.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1447
    aStream cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1448
    aStream nextPutAll:'flags: ', self flags printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1449
    aStream nextPutAll:'hInstance: ', self hInstance printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1450
    aStream nextPutAll:'hwndOwner: ', self hwndOwner printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1451
    aStream nextPutAll:'lCustData: ', self lCustData printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1452
    aStream nextPutAll:'lpfnHook: ', self lpfnHook printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1453
    aStream nextPutAll:'lpstrCustomFilter: ', self lpstrCustomFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1454
    aStream nextPutAll:'lpstrDefExt: ', self lpstrDefExt printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1455
    aStream nextPutAll:'lpstrFile: ', self lpstrFile printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1456
    aStream nextPutAll:'lpstrFileTitle: ', self lpstrFileTitle printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1457
    aStream nextPutAll:'lpstrFilter: ', self lpstrFilter printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1458
    aStream nextPutAll:'lpstrInitialDir: ', self lpstrInitialDir printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1459
    aStream nextPutAll:'lpstrTemplateName: ', self lpstrTemplateName printString; cr.
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1460
    aStream nextPutAll:'lStructSize: ', self lStructSize printString; cr.
14829
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1461
    aStream nextPutAll:'nFileExtension: ', self nFileExtension printString; cr.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1462
    aStream nextPutAll:'nFileOffset: ', self nFileOffset printString; cr.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1463
    aStream nextPutAll:'nFilterIndex: ', self nFilterIndex printString; cr.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1464
    aStream nextPutAll:'nMaxCustFilter: ', self nMaxCustFilter printString; cr.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1465
    aStream nextPutAll:'nMaxFile: ', self nMaxFile printString; cr.
82b109435616 do not hardcode program files
Claus Gittinger <cg@exept.de>
parents: 13924
diff changeset
  1466
    aStream nextPutAll:'nMaxFileTitle: ', self nMaxFileTitle printString; cr.
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1467
! !
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1468
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1469
!Win32FileDialog class methodsFor:'documentation'!
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1470
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1471
version
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1472
    ^ '$Header$'
9345
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
  1473
!
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
  1474
fa51879ca252 comment/format
Claus Gittinger <cg@exept.de>
parents: 8402
diff changeset
  1475
version_CVS
16169
Claus Gittinger <cg@exept.de>
parents: 14829
diff changeset
  1476
    ^ '$Header$'
8015
4e27ebbd5d79 initial checkin
fm
parents:
diff changeset
  1477
! !
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
  1478
13577
4392e22c957f class: Win32FileDialog
Claus Gittinger <cg@exept.de>
parents: 11948
diff changeset
  1479
9597
Claus Gittinger <cg@exept.de>
parents: 9345
diff changeset
  1480
Win32FileDialog initialize!