LicenceBox.st
author Stefan Vogel <sv@exept.de>
Mon, 09 Sep 1996 19:06:47 +0200
changeset 240 f24a0853e754
child 241 687df61a0e84
permissions -rw-r--r--
New class LicenceBox.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
240
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.10.9 on 9-sep-1996 at 18:00:22'                    !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
DialogBox subclass:#LicenceBox
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'accepted destroySemaphore'
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
	classVariableNames:'LicenceRejectSignal'
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	category:'Views-DialogBoxes'
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!LicenceBox  class methodsFor:'documentation'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
documentation
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
    LicenceBox shows a licence text when opened, an returns true,
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
    if the licence has been accepted, false otherwise.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
examples
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
                                                [exBegin]
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
    LicenceRejectSignal handle:[:ex|
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
        Transcript showCR:'Licence rejected'.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
    ] do:[
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
        LicenceBox open.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
        Transcript showCR:'Licence accepted'.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
    ] 
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
                                                [exEnd]
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
history
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
    "Created: 6.9.1996 / 13:29:15 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
    "Modified: 9.9.1996 / 14:53:11 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
!LicenceBox  class methodsFor:'initialization'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
initialize
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    LicenceRejectSignal isNil ifTrue:[
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
        LicenceRejectSignal := ErrorSignal newSignalMayProceed:true.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
        LicenceRejectSignal nameClass:self message:#licenceRejectSignal.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
        LicenceRejectSignal notifierString:'licence rejected by user'.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
    ].
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
    "
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
     self initialize
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
    "
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
!LicenceBox  class methodsFor:'instance creation'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
open
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
    "open myself modal and return true if accepted, false otherwise"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
    ^ super open accepted.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
    "
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
     self open
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
    "
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
    "Modified: 9.9.1996 / 17:52:48 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
!LicenceBox  class methodsFor:'Signal constants'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
licenceRejectSignal
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
    "licence has been rejected by user"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
    ^ LicenceRejectSignal
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
!LicenceBox methodsFor:'accessing'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
accepted
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
    "return accepted"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    79
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    80
    ^ accepted
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    81
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    82
    "Created: 6.9.1996 / 13:24:44 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    83
!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    84
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    85
accepted:something
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    86
    "set accepted"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    87
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    88
    accepted := something.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    89
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    90
    "Created: 6.9.1996 / 13:24:44 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    91
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    92
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    93
!LicenceBox methodsFor:'destroying'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
terminate
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    96
    "this is the close from a windowmanager
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
     (only if UseTransientViews == true).
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    98
     Redefined, since ModalBox keeps the View alive (only hidden)"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    99
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   100
    self destroy.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   101
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   102
    "Created: 9.9.1996 / 15:15:31 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   103
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   104
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   105
!LicenceBox methodsFor:'initialization'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   106
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   107
initialize    
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   108
    |textView|
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   109
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   110
    super initialize.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   111
    accepted := false.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   112
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   113
    (self addTextLabel:(resources string:'Please read the licence terms:')) adjust:#left.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   114
    textView := self addTextBoxOn:nil 
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   115
                        class:HTMLDocumentView
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   116
                        withNumberOfLines:40 
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   117
                        hScrollable:true 
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   118
                        vScrollable:true.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   119
    self width:(textView preferredExtentForLines:40 cols:70) x.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   120
    textView setText:(self licenceText).
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   121
    self addAbortButtonLabelled:(resources string:'reject licence terms').
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   122
    self addOkButtonLabelled:(resources string:'accept licence terms').
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   123
    self abortAction:[self destroy. accepted := false. LicenceRejectSignal raise].
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   124
    self okAction:[self destroy. accepted := true].
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   125
    self stickAtBottomWithVariableHeight:textView.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   126
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   127
    "Modified: 9.9.1996 / 17:52:13 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   128
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   129
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   130
!LicenceBox methodsFor:'private'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   131
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   132
licenceText
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   133
   "get licence text"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   134
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   135
   ^ (resources at:'LICENCEFILE') asFilename readStream contents.
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   136
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   137
    "Created: 6.9.1996 / 12:17:07 / stefan"
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   138
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   139
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   140
!LicenceBox  class methodsFor:'documentation'!
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   141
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   142
version
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   143
    ^ '$Header: /cvs/stx/stx/libwidg2/LicenceBox.st,v 1.1 1996-09-09 17:06:46 stefan Exp $'
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   144
! !
f24a0853e754 New class LicenceBox.
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   145
LicenceBox initialize!