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