--- a/.hgtags Fri Jan 15 13:12:52 2016 +0000
+++ b/.hgtags Sat Jan 16 10:41:12 2016 +0000
@@ -1,74 +1,75 @@
-03a3787770ed27f4484a4050c0b02b9f659ab80c expecco_1_7_1rc1
-03a3787770ed27f4484a4050c0b02b9f659ab80c expecco_1_7_1rc2
-03a3787770ed27f4484a4050c0b02b9f659ab80c expecco_1_7_1rc3
-03a3787770ed27f4484a4050c0b02b9f659ab80c expecco_1_7_1rc4
-070d3c13e766f1d9f99e3f6ae298c6b6e49e7900 expeccoNET_1_8_0_0
-155ee74fe15dffd3bcfd19a002e26e1eb87d693b expecco_2_7_5
-155ee74fe15dffd3bcfd19a002e26e1eb87d693b expecco_2_7_5a
-2274e8f6c28e375df1e03768afc73a57e608caa3 rel5_4_6
-22a0f066793d7f509cdb3aacf895abea2a73cd2e expecco_1_7_0b1
-22a0f066793d7f509cdb3aacf895abea2a73cd2e expecco_1_7_0b2
-22a0f066793d7f509cdb3aacf895abea2a73cd2e expecco_1_7_0b3
-22a0f066793d7f509cdb3aacf895abea2a73cd2e expecco_1_7_0rc1
-22dc37288c1454293ffec7cf32ff8f3e45fb5dd1 rel3_6_1
-2467d35b9a6c650e0dc1c15fae0be3cba04c21c2 expeccoNET_1_4_0rc1
-2467d35b9a6c650e0dc1c15fae0be3cba04c21c2 expecco_1_7_0rc5
-2d635ff574062f6d21c3a08120148ea06f080ec6 expeccoNET_1_6_0_0
-302ab06d71109826aeb478377e545fe342acc792 rel5_2_1
-313dc2dc2b7bd457c58fcc6fa775122bfaccfc1b expecco_2_6_2
+0411397ef0a2498ec8272c18a44f9452f4e44313 rel4_1_7
+0411397ef0a2498ec8272c18a44f9452f4e44313 release
+08e3afdffc2b1395544ec29047e1c22fe1970f0b expecco_2_2_0
+08e3afdffc2b1395544ec29047e1c22fe1970f0b expecco_2_2_5
+0a09fd78eb548312ea9859bc7d94221d809baaa1 rel5_2_1
+0e03635f5ced635c5f6c9dcaa13702c1bfc0fea5 stable_expecco_sel
+1ab5dc7d479627c3fe8b4e48bf09a55a10cede6e rel5_1_3
+1ab5dc7d479627c3fe8b4e48bf09a55a10cede6e stx_513
+250f9f98b4076066ff1b9287375e5c29b702227e expecco_1_3_4
+28f95648e3cc876a3f1d81f9809905f91d8fe1f0 expecco_ALM_1_9_5
+28f95648e3cc876a3f1d81f9809905f91d8fe1f0 expecco_ALM_1_9_6
48ab2466447a3f12bcae5382f541479b5a8c94ec rel2_10_8_5
-49341ed1183072bfa539ccc3c8e8b062f4e9cd87 rel4_1_7
-49341ed1183072bfa539ccc3c8e8b062f4e9cd87 release
-4936edfc2eee0ea089247da7072dec7180221302 rel3_6_4
-4b9a49eceadca74fa05819ff8e27d49598c00c0d expecco_2_6_0
-4b9a49eceadca74fa05819ff8e27d49598c00c0d expecco_2_6_0_45_windows_final
-4b9a49eceadca74fa05819ff8e27d49598c00c0d expecco_2_6_0_49_windows_final
-4b9a49eceadca74fa05819ff8e27d49598c00c0d expecco_2_6_1
-50b3429eb6b401f3593326b3331699d506099a68 expeccoNET_1_7_0_0
-62bfe8d8fb4dc406a54041f1027abeb930ebbc23 rel3_4_1_1
-62bfe8d8fb4dc406a54041f1027abeb930ebbc23 rel3_4_1_2
-636df82ad7dd269b8bbd6479b1c7f21641525264 expeccoNET_1_5_1rc1
-6a48150110bed4aa7e8d98fa7f0af57cd0b47fbe expecco_2_6_0rc1
-6af2a4dea174fcfc0dcbae5e110b7a78249376eb expecco_2_2_0
-6af2a4dea174fcfc0dcbae5e110b7a78249376eb expecco_2_2_5
-6dc84e11433a420b9369937a4470c6a06e488406 rel5_1_4
-702df7addef9923d540dd7eaf43cdc258ba623c1 rel4_1_3_1
-7228edcc3fa0dec357a1031668915dd52a8f18a2 expecco_2_4_0
-7228edcc3fa0dec357a1031668915dd52a8f18a2 expecco_2_4_1
-838535cc8240d0b03578169b4352454f27230316 expecco_2_5_1
-84e3a54e32ef4ef332394ba96fa537faacf023b4 expeccoNET_1_6_8_0
-852001cc6bd5f6a91249d43a973bbe6ca4707b6b expeccoNET_1_5_0rc1
-852001cc6bd5f6a91249d43a973bbe6ca4707b6b expecco_1_8_2rc1
-8edcf98752714da6a4363bfa403300e0e96b6e35 expecco_ALM_1_9_5
-8edcf98752714da6a4363bfa403300e0e96b6e35 expecco_ALM_1_9_6
+4dea21fbacee469c6f0a79021662486d5b2b877f rel3_6_4
+51c444bfe5aeba5196e667b3c3834a96c27ca1f1 rel3_6_1
+532a328a9e0ec5da47acb16cdfeebebeed480c14 expecco_1_9_1_iX
+58b910fe451351b6f40e4ef2e5706a1f4ac486d7 expeccoALM_1_9_0_1
+5cbf651bb214a2028e31d36a9d89eb2ed18e6f18 expecco_1_5_0
+5ea9411aaac82ef8a744a3dcdacb10d47f5523a2 expecco_1_7_1rc1
+5ea9411aaac82ef8a744a3dcdacb10d47f5523a2 expecco_1_7_1rc2
+5ea9411aaac82ef8a744a3dcdacb10d47f5523a2 expecco_1_7_1rc3
+5ea9411aaac82ef8a744a3dcdacb10d47f5523a2 expecco_1_7_1rc4
+6674ba919908484b162812b8c271fa7a22d073f4 stable
+68183511e7efcb8caf7496c45d56d82648e8add4 rel5_4_6
+692abf4d8c299424fad2a04231e113b8a5e735ee rel3-1-2
+6abf010fa92f965266006d3fff30f9607aa4b19a expecco_2_5_1
+6cd0b3929aa2dfcedb66229f19dd6a454ea95cb3 expeccoNET_1_5_0rc1
+6cd0b3929aa2dfcedb66229f19dd6a454ea95cb3 expecco_1_8_2rc1
+72343b2ef436fb0631dbc7a13998d6a3ff01bc37 expecco_1_7_2rc1
+7579c3a3a9b44ba0ba860bce21102f7b5ad649ca rel5_2_8
+78122284aa8ba6215d47c594e97a91464bb43147 expecco_2_6_0rc1
+7fadc047104c3b47827ffd476f354b21cdc5ced1 expecco_2_7_0
+7fadc047104c3b47827ffd476f354b21cdc5ced1 expecco_2_7_0_49
+802ad52f18a5bc4c280a41b1bf2d84b8e2cbcc9f expeccoNET_1_5_1rc1
+8221d2e915df579ffa5cdd990b3e596649747390 expecco_2_0_0
+8221d2e915df579ffa5cdd990b3e596649747390 expecco_2_0_0_0
+845bd5d2523c7c3bcc0539addd5cb35b8c58e776 rel4_1_3_1
+84e3a54e32ef4ef332394ba96fa537faacf023b4 expeccoNET_1_6_0_0
+8aec4c5fbf5b46c42db226217dfde5a36924f20d rel5_1_4
+8b337debed52779702726cf657d19c7bdc548508 expecco_1_0_3
+915f6fa47e091bcc68e943ff1dac7086aaa92cb9 expecco_2_4_0
+915f6fa47e091bcc68e943ff1dac7086aaa92cb9 expecco_2_4_1
+963aca43a321fdf6deffafa9a7d45c307fe7c3c0 expecco_ALM_1_9_7
+99f6704c0369f001c1ce2c1ed45ee6f232a415bd expeccoNET_1_4_0rc1
+99f6704c0369f001c1ce2c1ed45ee6f232a415bd expecco_1_7_0rc5
+9b59aafa16d248acc05fc37ecee6682e52bd9c3c expecco_1_8_0rc1
9d5cc59863e8c340851b14cf5993539eb6e5f317 rel2_10_8_6_last2
-a720a0edb5c71b2d6491e7b84da573fdc3a8cbbc expecco_1_7_0rc3
-aa775e90e539c31a61486c912d48d505bd3447aa expecco_1_6_0
-aa775e90e539c31a61486c912d48d505bd3447aa expecco_1_6_0rc5
-abed5a47e5457b66c655488b2bb9365ad1f76f68 rel3_4_3_1
-abf6fd1bc139d4bf2dcc20c0d9b9dd3dc127d015 rel3-1-2
-ac2b55f9a0ab073bc9879d13f9c80c497856d196 expecco_1_9_1_iX
-afd194220f54e0511644c524993fba9e00b184e5 expecco_2_5_0
-b5138d0a00beeef72d52d522397f317cf9ee5244 expecco_2_8_0
-b7d2f3fe5055a4f05d7612a665aecf6f50e7c7d1 expecco_1_5_0
-bc837fdacd461d14710e5b0c2d6571e89209b448 accessability
-c0f052e4f41424a557457ec6ee8acaeb2c3305a8 expeccoALM_1_9_0_1
-c4319600989e6c97585a84244e1ee52edbc832c6 rel5_2_8
-c504c98aaa492af3128570070ceaaab4dd934821 expecco_1_0_3
-c51c31744560d3a09300327d8b7e0ff66c8e404b rel5_1_3
-c51c31744560d3a09300327d8b7e0ff66c8e404b stx_513
-cf030b296e2118331050b100b251b73692f9a7bf expecco_2_7_1
-d2d772832f991835c77f5d74c55bf5e8c2fe1c02 stx_6_2_2
-d4818ca736835b4bbf55caf33b7e6f91763a0ffd expecco_2_1_0
-d793a43a8860ec3140d2b75a13453611ed2bf0bd expecco_2_7_0
-d793a43a8860ec3140d2b75a13453611ed2bf0bd expecco_2_7_0_49
-da507ebdf37d9511a63ac81d4816b3ae671e3d16 stable_expecco_sel
+a257aa6878ac44d97cb3ab314e09e8373a426826 accessability
+a335a284cf82e8476b8a5983f990a9d44be232d7 expecco_1_6_0
+a335a284cf82e8476b8a5983f990a9d44be232d7 expecco_1_6_0rc5
+a83bdc0dba68b8b9be3827e61adccf9b7e42daf2 stx_6_2_2
+aacb0c4d8dc034920ffbd618d7b023e17f9e6d84 expecco_2_5_0
+af2b69a16e0470761314b6347e1092631551391a expecco_1_7_0b1
+af2b69a16e0470761314b6347e1092631551391a expecco_1_7_0b2
+af2b69a16e0470761314b6347e1092631551391a expecco_1_7_0b3
+af2b69a16e0470761314b6347e1092631551391a expecco_1_7_0rc1
+b314d59c1654059bc0ca641723b74c526cc997f5 expeccoNET_1_7_0_0
+b956bec8751b8f510bd2a49648d076f37ff4ef49 expecco_1_7_0rc3
+b9e63b8565c102cdacb0383482cdfcf01d66084e expecco_2_7_1
+bb65b4154f8131bd7868307934b33a74e23e77a7 expeccoNET_1_8_0_0
+bf524e69869d19a7e3e33e6b7624d8cf0b160b28 expecco_1_7_0rc8
+c5204a7261c1cfdef202bf34da8af0d17a35477a expecco_2_7_5
+c5204a7261c1cfdef202bf34da8af0d17a35477a expecco_2_7_5a
db1c1a8e0384ee00c721cebb795639489d59c2e8 rel2_10_8_6_last_before_vmData_change
-e0f4bf68e26aec58fb9c015c100d2fbe36139a13 expecco_1_3_4
-e3b9d046915df4867646a0f397f80ac5862a425c rel5_2_2
-e3c5f00861e12878d3be0ffab788097eb06b340a expecco_1_7_0rc8
-ec0aed04e61fd3745bf1a7447e3e676e53becd4a expecco_1_7_2rc1
-f293d37675b542aa16dfeecf6fbf0ea23e7b04f8 expecco_2_0_0
-f293d37675b542aa16dfeecf6fbf0ea23e7b04f8 expecco_2_0_0_0
-fd554490f4e755ba4aa1c099d44c69084c116831 expecco_1_8_0rc1
-fe119476cba35e1c2d763da2bec8968edcadf882 stable
+df82e28ca88236402c737fe5a3606cd689836532 expecco_2_1_0
+e12757d015753c1a1124b536d83f41c043d9fff6 rel3_4_1_1
+e12757d015753c1a1124b536d83f41c043d9fff6 rel3_4_1_2
+e492b99bfa39278f794507b477e0c284c2f8939e expecco_2_6_0
+e492b99bfa39278f794507b477e0c284c2f8939e expecco_2_6_0_45_windows_final
+e492b99bfa39278f794507b477e0c284c2f8939e expecco_2_6_0_49_windows_final
+e492b99bfa39278f794507b477e0c284c2f8939e expecco_2_6_1
+e6736a82809fc1e187dea347f06b35ef0fc6db2f expecco_2_6_2
+f33247cf79b9ad991bf8ff87e874d85571fa368d expecco_2_8_0
+f98873e4d965107b2849700efa3b438444c80dbe expeccoNET_1_6_8_0
+fbd05e92d50601c98440de540b3ad0c703eee00a rel3_4_3_1
+fcfa161492ae2872be77e679c257aec090a4f477 rel5_2_2
--- a/CheckBox.st Fri Jan 15 13:12:52 2016 +0000
+++ b/CheckBox.st Sat Jan 16 10:41:12 2016 +0000
@@ -11,6 +11,8 @@
"
"{ Package: 'stx:libwidg2' }"
+"{ NameSpace: Smalltalk }"
+
HorizontalPanelView subclass:#CheckBox
instanceVariableNames:'toggleView labelView labelForegroundColor
disabledLabelForegroundColor disabledLabelEtchedForegroundColor
@@ -885,7 +887,8 @@
nativeWindowType
"return a symbol describing my native window type
- (may be used internally by the device as a native window creation hint)"
+ (may be used internally by the device as a native window creation hint,
+ if the device supports native windows)"
^ #CheckBox
@@ -944,10 +947,10 @@
!CheckBox class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/CheckBox.st,v 1.91 2014-12-03 23:49:16 cg Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg2/CheckBox.st,v 1.91 2014-12-03 23:49:16 cg Exp $'
+ ^ '$Header$'
! !
--- a/DoWhatIMeanSupport.st Fri Jan 15 13:12:52 2016 +0000
+++ b/DoWhatIMeanSupport.st Sat Jan 16 10:41:12 2016 +0000
@@ -1478,8 +1478,8 @@
(although not yet fully implemented, non-local rewrite procedures may and will be added in the future
For example, in many situations, both a completion of a unary selector before the cursor,
or adding another keyword part after the cursor is possible.
- Thus, this provides a list of completions PLUS a list of edit operations (as per completion), to
- perform the completion.
+ Thus, this provides a list of completions PLUS a list of edit operations (as per completion),
+ to perform the completion.
The caller has to open a dialog, providing the suggestions, and perform the corresponding edit operation.
An additional array containing a textual description for each suggestion is also provided, which could
be shown as info or appended to the suggestions (such as 'complete variable', 'complete keyword', etc.
@@ -1521,14 +1521,23 @@
partialSource := source copyTo:crsrPos.
methodOrNilArg isNil ifTrue:[
+ (partialSource endsWith:Character cr) ifTrue:[
+ partialSource := partialSource copyButLast.
+ ].
"/ first try parsing the current cursor line.
"/ this helps doIts in a workspace, where additional garbage is often before the actual expression to be evaluated
(i := partialSource lastIndexOf:Character cr) ~~ 0 ifTrue:[
"/ because cursorPositions and node-positions are required elsewhere to be correct,
"/ I cannot just snip off the line and parse that one alone (later corrections will do so at wrong position).
- "/ Instead, create a copy of the whole source, with the stuff before the cursor lne being blanked out.
+ "/ Instead, create a copy of the whole source, with the stuff before the cursor line being blanked out.
+ "/ However, because somewhere else, we fetch characters from the codeView using the index,
+ "/ we must preserve the line structure (i.e. keep crs).
cursorLineSource := partialSource copy.
- cursorLineSource from:1 to:i put:Character space.
+ 1 to:i do:[:pos |
+ (cursorLineSource at:pos) ~= Character cr ifTrue:[
+ cursorLineSource at:pos put:Character space.
+ ]
+ ].
self
tryCodeCompletionWithSource:cursorLineSource nodeInterval:interval
at:crsrPos mustBeExpression:true
@@ -1560,7 +1569,7 @@
^ self.
].
- "/ then try parsing the whole source (from beginning up to the cursor)
+ "/ then try parsing the whole source
self
tryCodeCompletionWithSource:source nodeInterval:interval
at:crsrPos mustBeExpression:false
--- a/ImageView.st Fri Jan 15 13:12:52 2016 +0000
+++ b/ImageView.st Sat Jan 16 10:41:12 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
@@ -97,7 +95,9 @@
!ImageView class methodsFor:'initialization'!
initialize
- DoNotMagnifyQuery := QuerySignal new defaultAnswer:false.
+ DoNotMagnifyQuery isNil ifTrue:[
+ DoNotMagnifyQuery := QuerySignal new defaultAnswer:false.
+ ].
! !
!ImageView class methodsFor:'menu specs'!
@@ -718,11 +718,11 @@
!ImageView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/ImageView.st,v 1.83 2015-04-24 12:10:43 stefan Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg2/ImageView.st,v 1.83 2015-04-24 12:10:43 stefan Exp $'
+ ^ '$Header$'
! !
--- a/ListModelView.st Fri Jan 15 13:12:52 2016 +0000
+++ b/ListModelView.st Sat Jan 16 10:41:12 2016 +0000
@@ -158,8 +158,10 @@
initialize
"setup the signals
"
- StopRedrawSignal := Notification newSignalMayProceed:true.
- StopRedrawSignal nameClass:self message:#stopRedrawSignal.
+ StopRedrawSignal isNil ifTrue:[
+ StopRedrawSignal := Notification newSignalMayProceed:true.
+ StopRedrawSignal nameClass:self message:#stopRedrawSignal.
+ ].
! !
!ListModelView class methodsFor:'Signal constants'!
--- a/Make.proto Fri Jan 15 13:12:52 2016 +0000
+++ b/Make.proto Sat Jan 16 10:41:12 2016 +0000
@@ -176,6 +176,7 @@
$(OUTDIR)TabulatorSpecification.$(O) TabulatorSpecification.$(H): TabulatorSpecification.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
$(OUTDIR)TerminalView.$(O) TerminalView.$(H): TerminalView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
$(OUTDIR)TextBox.$(O) TextBox.$(H): TextBox.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/ModalBox.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/StandardSystemView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/DialogBox.$(H) $(INCLUDE_TOP)/stx/libwidg/EnterBox.$(H) $(STCHDR)
+$(OUTDIR)ThumbWheel.$(O) ThumbWheel.$(H): ThumbWheel.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(STCHDR)
$(OUTDIR)TreeItem.$(O) TreeItem.$(H): TreeItem.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)UpDownButton.$(O) UpDownButton.$(H): UpDownButton.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(STCHDR)
$(OUTDIR)ViewScroller.$(O) ViewScroller.$(H): ViewScroller.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(STCHDR)
--- a/Make.spec Fri Jan 15 13:12:52 2016 +0000
+++ b/Make.spec Sat Jan 16 10:41:12 2016 +0000
@@ -102,6 +102,7 @@
TabulatorSpecification \
TerminalView \
TextBox \
+ ThumbWheel \
TreeItem \
UpDownButton \
ViewScroller \
@@ -192,6 +193,7 @@
$(OUTDIR_SLASH)TabulatorSpecification.$(O) \
$(OUTDIR_SLASH)TerminalView.$(O) \
$(OUTDIR_SLASH)TextBox.$(O) \
+ $(OUTDIR_SLASH)ThumbWheel.$(O) \
$(OUTDIR_SLASH)TreeItem.$(O) \
$(OUTDIR_SLASH)UpDownButton.$(O) \
$(OUTDIR_SLASH)ViewScroller.$(O) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ThumbWheel.st Sat Jan 16 10:41:12 2016 +0000
@@ -0,0 +1,771 @@
+"
+ COPYRIGHT (c) 1996 by eXept Software AG / Claus Gittinger
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'stx:libwidg2' }"
+
+View subclass:#ThumbWheel
+ instanceVariableNames:'orientation synchronousOperation thumbPosition thumbColor
+ thumbShadowColor thumbLightColor thumbEnteredColor tallyLevel
+ tallyAngle rangeStart rangeEnd rangeStep angleRange
+ unitsPerRotation entered press pressPos scrollAction
+ endlessRotation startMoveAction endMoveAction keyboardStep'
+ classVariableNames:'DefaultViewBackground DefaultThumbColor DefaultThumbShadowColor
+ DefaultThumbLightColor DefaultTallyMarks DefaultTallyLevel
+ DefaultLevel DefaultBorderWidth'
+ poolDictionaries:''
+ category:'Views-Interactors'
+!
+
+!ThumbWheel class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996 by eXept Software AG / Claus Gittinger
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+
+
+
+!
+
+documentation
+"
+ A thumbWheel is like a slider, but looks different ...
+ ThumbWheels are useful with 3D applications, to control
+ things like rotation, translation and magnification.
+
+ [author:]
+ Claus Gittinger
+
+ [see also:]
+ Slider ScrollBar StepSlider
+"
+!
+
+examples
+"
+ basic setup:
+ [exBegin]
+ |top wheel|
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel := ThumbWheel in:top.
+ wheel orientation:#vertical.
+ wheel level:1.
+
+ wheel origin:0.0@0.0; extent:(wheel preferredExtent).
+
+ top open.
+ [exEnd]
+
+ two of them:
+ [exBegin]
+ |top wheel1 wheel2|
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel1 := ThumbWheel in:top.
+ wheel1 orientation:#vertical.
+ wheel1 level:1.
+
+ wheel1 origin:0.0@0.0; extent:(wheel1 preferredExtent).
+
+ wheel2 := ThumbWheel in:top.
+ wheel2 orientation:#horizontal.
+ wheel2 level:1.
+
+ wheel2 origin:0.0@1.0; extent:(wheel2 preferredExtent).
+ wheel2 topInset:(wheel2 preferredExtent y negated).
+ wheel2 bottomInset:(wheel2 preferredExtent y).
+ top open.
+ [exEnd]
+
+ performing an action:
+ [exBegin]
+ |top wheel|
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel := ThumbWheel in:top.
+ wheel orientation:#vertical.
+ wheel level:1.
+
+ wheel origin:0.0@0.0; extent:(wheel preferredExtent).
+ wheel scrollAction:[:value | Transcript showCR:value rounded].
+ top open.
+ [exEnd]
+ operating on a model:
+ [exBegin]
+ |top wheel model|
+
+ model := ValueHolder new.
+ model
+ onChangeSend:#value
+ to:[Transcript show:'value now: '; showCR:model value rounded].
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel := ThumbWheel in:top.
+ wheel orientation:#vertical.
+ wheel level:1.
+
+ wheel origin:0.0@0.0; extent:(wheel preferredExtent).
+ wheel model:model.
+ top open.
+ [exEnd]
+ endless rotation:
+ [exBegin]
+ |top wheel model|
+
+ model := ValueHolder new.
+ model
+ onChangeSend:#value
+ to:[Transcript show:'value now: '; showCR:model value rounded].
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel := ThumbWheel in:top.
+ wheel orientation:#vertical.
+ wheel level:1.
+ wheel endlessRotation:true.
+
+ wheel origin:0.0@0.0; extent:(wheel preferredExtent).
+ wheel model:model.
+ top open.
+ [exEnd]
+ concrete example:
+ [exBegin]
+ |top wheel1 wheel2 image magX magY hHolder vHolder imageView|
+
+ magX := magY := 1.
+
+ hHolder := ValueHolder new.
+ hHolder
+ onChangeSend:#value
+ to:[
+ magX := hHolder value * 2 / 360.
+ magX = 0 ifTrue:[magX := 0.01].
+ Transcript show:'magX now '; showCR:magX.
+ imageView clear.
+ imageView magnification:magX@magY].
+
+ vHolder := ValueHolder new.
+ vHolder
+ onChangeSend:#value
+ to:[
+ magY := vHolder value * 2 / 360.
+ magY = 0 ifTrue:[magY := 0.01].
+ Transcript show:'magY now '; showCR:magY.
+ imageView clear.
+ imageView magnification:magX@magY].
+
+ top := StandardSystemView new.
+ top extent:200@200.
+
+ wheel1 := ThumbWheel in:top.
+ wheel1 orientation:#vertical.
+ wheel1 level:1.
+ wheel1 origin:0.0@0.0; extent:(wheel1 preferredExtent).
+ wheel1 model:vHolder.
+
+ wheel2 := ThumbWheel in:top.
+ wheel2 orientation:#horizontal.
+ wheel2 level:1.
+ wheel2 origin:0.0@1.0; extent:(wheel2 preferredExtent).
+ wheel2 topInset:(wheel2 preferredExtent y negated).
+ wheel2 bottomInset:(wheel2 preferredExtent y).
+ wheel2 model:hHolder.
+
+ imageView := ImageEditView in:top.
+ imageView level:1.
+ imageView origin:0.0@0.0 corner:1.0@1.0.
+ imageView leftInset:(wheel1 preferredExtent x).
+ imageView bottomInset:(wheel2 preferredExtent y).
+ imageView image:(Image fromFile:'bitmaps/garfield.gif').
+ top open.
+ [exEnd]
+
+"
+! !
+
+!ThumbWheel methodsFor:'accessing'!
+
+keyboardStep
+ "return the scrollers keyboard step. If non-nil,
+ thats the stepping value used with cursorUp/cursorDown keys.
+ (not used with Scrollers, but provided for subclasses)"
+
+ ^ keyboardStep
+
+!
+
+keyboardStep:aNumber
+ "set the scrollers keyboard step. If non-nil,
+ thats the stepping value used with cursorUp/cursorDown keys.
+ (not used with Scrollers, but provided for subclasses)"
+
+ keyboardStep := aNumber
+
+!
+
+start
+ "return the wheels range minimum."
+
+ ^ rangeStart
+
+ "Created: 1.4.1997 / 12:30:04 / cg"
+ "Modified: 1.4.1997 / 12:52:31 / cg"
+!
+
+start:aNumber
+ "set the wheels range minimum."
+
+ rangeStart := aNumber
+
+ "Created: 1.4.1997 / 12:30:54 / cg"
+ "Modified: 1.4.1997 / 12:52:36 / cg"
+!
+
+start:start stop:stop
+ "set the wheels range minimum."
+
+ rangeStart := start.
+ rangeEnd := stop.
+
+ "Modified: / 1.4.1997 / 12:52:36 / cg"
+ "Created: / 23.1.1998 / 15:06:04 / cg"
+!
+
+step
+ "return the wheels range step."
+
+ ^ rangeStep
+
+ "Created: 1.4.1997 / 12:30:15 / cg"
+ "Modified: 1.4.1997 / 12:53:05 / cg"
+!
+
+step:aNumber
+ "set the wheels range step."
+
+ rangeStep := aNumber
+
+ "Created: 1.4.1997 / 12:30:32 / cg"
+ "Modified: 1.4.1997 / 12:52:49 / cg"
+!
+
+stop
+ "return the wheels range end."
+
+ ^ rangeEnd
+
+ "Created: 1.4.1997 / 12:30:09 / cg"
+ "Modified: 1.4.1997 / 12:52:59 / cg"
+!
+
+stop:aNumber
+ "set the wheels range end."
+
+ rangeEnd := aNumber
+
+ "Created: 1.4.1997 / 12:30:47 / cg"
+ "Modified: 1.4.1997 / 12:52:54 / cg"
+!
+
+thumbOrigin:pos
+ "same as thumbPosition (for protocol compatibility with sliders)"
+
+ self thumbPosition:pos
+
+ "Created: / 21.4.1998 / 20:57:20 / cg"
+ "Modified: / 21.4.1998 / 20:58:43 / cg"
+!
+
+thumbPosition
+ "sreturn the position"
+
+ ^ thumbPosition
+
+ "Created: / 21.4.1998 / 20:58:15 / cg"
+!
+
+thumbPosition:pos
+ "set the wheels position; the argument should be in the start..stop
+ interval."
+
+ |newPos delta|
+
+ delta := (rangeEnd-rangeStart).
+
+ newPos := pos.
+ endlessRotation ifTrue:[
+ [newPos < rangeStart] whileTrue:[
+ newPos := newPos + delta
+ ].
+ [newPos > rangeEnd] whileTrue:[
+ newPos := newPos - delta
+ ].
+ ].
+ newPos := (newPos max:rangeStart) min:rangeEnd.
+
+ rangeStep notNil ifTrue:[
+ newPos := newPos roundTo:rangeStep.
+ rangeStep isInteger ifTrue:[
+ newPos := newPos asInteger
+ ]
+ ].
+
+ newPos ~= thumbPosition ifTrue:[
+ thumbPosition := newPos.
+ shown ifTrue:[
+ self invalidate.
+ ]
+ ].
+
+ "Created: / 27.9.1996 / 18:10:57 / cg"
+ "Modified: / 6.6.1998 / 23:29:28 / cg"
+! !
+
+!ThumbWheel methodsFor:'accessing-behavior'!
+
+endMoveAction
+ "set the endMoveAction, a block which is evaluated when the wheel
+ stops to move (i.e. the user releases the mouse).
+ The default is nil (i.e. no action)"
+
+ ^ endMoveAction
+
+ "Created: / 18.8.1998 / 16:29:40 / cg"
+ "Modified: / 18.8.1998 / 16:31:41 / cg"
+!
+
+endMoveAction:aBlock
+ "set the endMoveAction, a block which is evaluated when the wheel
+ stops to move (i.e. the user releases the mouse)."
+
+ endMoveAction := aBlock.
+
+ "Created: / 18.8.1998 / 16:30:40 / cg"
+!
+
+endlessRotation:aBoolean
+ "if true, rotation wraps and endless rotation is permitted.
+ If false (the default), rotation ends at rangeStart/rangeEnd."
+
+ endlessRotation := aBoolean
+
+ "Created: / 5.2.1998 / 22:20:28 / cg"
+!
+
+scrollAction
+ "return the scrollAction, a block which is evaluated when the wheel
+ is turned (i.e. for every change)."
+
+ ^ scrollAction
+
+ "Modified: / 18.8.1998 / 16:31:59 / cg"
+!
+
+scrollAction:aBlock
+ "set the scrollAction, a block which is evaluated when the wheel
+ is turned (i.e. for every change)."
+
+ scrollAction := aBlock.
+
+ "Modified: / 18.8.1998 / 16:31:52 / cg"
+!
+
+startMoveAction
+ "return the startMoveAction, a block which is evaluated when the wheel
+ starts to turn (i.e. the user clicks on it).
+ The default is nil (i.e. no action)"
+
+ ^ startMoveAction
+
+ "Created: / 18.8.1998 / 16:29:36 / cg"
+ "Modified: / 18.8.1998 / 16:31:16 / cg"
+!
+
+startMoveAction:aBlock
+ "set the startMoveAction, a block which is evaluated when the wheel
+ starts to turn (i.e. the user clicks on it)."
+
+ startMoveAction := aBlock.
+
+ "Modified: / 18.8.1998 / 16:30:53 / cg"
+! !
+
+!ThumbWheel methodsFor:'accessing-look'!
+
+orientation
+ "return the wheels orientation; #horizontal or #vertical"
+
+ ^ orientation
+
+ "Created: 1.4.1997 / 12:29:46 / cg"
+!
+
+orientation:aSymbol
+ "set the wheels orientation; the argument may be one of
+ #horizontal or #vertical"
+
+ orientation := aSymbol.
+ shown ifTrue:[
+ self invalidate
+ ]
+
+ "Created: 27.9.1996 / 16:02:14 / cg"
+ "Modified: 1.4.1997 / 12:50:22 / cg"
+! !
+
+!ThumbWheel methodsFor:'drawing'!
+
+redrawX:x y:y width:w height:h
+ "redraw the thumbWheel.
+ Q: is it worth the effort - or should we simply use some bitmap ?"
+
+ |halfHeight y0 y1 halfWidth x0 x1 thumbColor|
+
+ halfHeight := height // 2.
+ halfWidth := width // 2.
+ y0 := 4.
+ y1 := height - 4.
+ x0 := 4.
+ x1 := width - 4.
+
+ self paint:viewBackground. "/ View defaultViewBackgroundColor.
+ self fillRectangleX:x y:y width:w height:h.
+
+ thumbColor := View defaultViewBackgroundColor.
+ thumbColor ~= viewBackground ifTrue:[
+ self paint:thumbColor.
+ orientation == #vertical ifTrue:[
+ self fillRectangleX:3 y:y0 width:width-6 height:height-8.
+ ] ifFalse:[
+ self fillRectangleX:x0 y:3 width:width-8 height:height-6.
+ ]
+ ].
+
+ ((thumbPosition truncateTo:tallyAngle))
+ to:((thumbPosition + angleRange truncateTo:tallyAngle)+tallyAngle) by:tallyAngle do:[:a |
+ |yT pA xT d|
+
+ pA := a - thumbPosition.
+ d := (pA degreesToRadians cos).
+ yT := halfHeight + (d * (halfHeight - 4)) - 1.
+ xT := halfWidth + (d * (halfWidth - 4)) - 1.
+
+ xT := xT min:x1.
+ yT := yT min:y1.
+
+ (pA > (angleRange * 7 // 8)) ifTrue:[
+ self paint:shadowColor
+ ] ifFalse:[
+ self paint:Color black.
+ ].
+
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:3 y:yT toX:width-4 y:yT.
+ ] ifFalse:[
+ self displayLineFromX:xT y:3 toX:xT y:height-4.
+ ].
+
+ (pA between:(angleRange * 4 // 8) and:(angleRange * 7 // 8)) ifTrue:[
+ self paint:Color white.
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:3 y:yT-1 toX:width-5 y:yT-1.
+ ] ifFalse:[
+ self displayLineFromX:xT-1 y:3 toX:xT-1 y:height-5.
+ ].
+
+ (pA between:(angleRange * 4 // 8) and:(angleRange * 6 // 8)) ifTrue:[
+ self paint:Color white.
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:3 y:yT-2 toX:width-5 y:yT-2.
+ ] ifFalse:[
+ self displayLineFromX:xT-2 y:3 toX:xT-2 y:height-5.
+ ]
+ ]
+ ]
+ ].
+
+ self paint:Color white. "/lightColor.
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:2 y:y0 toX:2 y:y1.
+ ] ifFalse:[
+ self displayLineFromX:x0 y:2 toX:x1 y:2.
+ ].
+
+ self paint:shadowColor.
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:width-4 y:y0 toX:width-4 y:y1.
+ ] ifFalse:[
+ self displayLineFromX:x0 y:height-4 toX:x1 y:height-4.
+ ].
+ self displayLineFromX:width-4 y:y0-1 toX:width-4 y:y1+1.
+
+ orientation == #vertical ifTrue:[
+ self displayLineFromX:width-4 y:y0 toX:width-4 y:y1.
+ ] ifFalse:[
+ self displayLineFromX:x0 y:height-4 toX:x1 y:height-4.
+ ].
+
+ "Created: / 27.9.1996 / 16:04:49 / cg"
+ "Modified: / 6.6.1998 / 23:30:38 / cg"
+! !
+
+!ThumbWheel methodsFor:'events'!
+
+buttonMotion:state x:x y:y
+ |deltaY deltaX d oldPos newPos|
+
+ (state == 0 or:[press isNil]) ifTrue:[
+ ^ self
+ ].
+ deltaY := y - press y.
+ deltaX := x - press x.
+
+ "/scale acc. to angleRange
+ orientation == #vertical ifTrue:[
+ d := deltaY / height * angleRange.
+ ] ifFalse:[
+ d := deltaX / width * angleRange
+ ].
+ rangeStep notNil ifTrue:[
+ d := d * (rangeStep * 3)
+ ].
+
+ oldPos := thumbPosition.
+ newPos := pressPos + d.
+
+"/ newPos > rangeEnd ifTrue:[
+"/ newPos := rangeEnd
+"/ ].
+"/ newPos < rangeStart ifTrue:[
+"/ newPos := rangeStart
+"/ ].
+
+ newPos ~= oldPos ifTrue:[
+ self thumbPosition:newPos.
+ self repairDamage.
+
+ synchronousOperation ifTrue: [
+ self tellOthers.
+ ].
+ ].
+
+ "Created: / 27.9.1996 / 17:38:57 / cg"
+ "Modified: / 16.6.1998 / 10:24:40 / cg"
+!
+
+buttonPress:button x:x y:y
+ press := x@y.
+
+ "/ fetch the current value; to avoid a jump.
+ model notNil ifTrue:[
+ thumbPosition := (model value ? 0).
+ ].
+ pressPos := thumbPosition.
+ startMoveAction notNil ifTrue:[
+ startMoveAction value
+ ].
+
+ "Created: / 27.9.1996 / 17:37:57 / cg"
+ "Modified: / 18.8.1998 / 16:32:21 / cg"
+!
+
+buttonRelease:button x:x y:y
+ synchronousOperation ifFalse: [
+ self tellOthers.
+ ].
+ endMoveAction notNil ifTrue:[
+ endMoveAction value
+ ].
+
+ "Created: / 27.9.1996 / 18:13:35 / cg"
+ "Modified: / 18.8.1998 / 16:32:30 / cg"
+!
+
+keyPress:key x:x y:y
+ <resource: #keyboard (#CursorRight #CursorUp #CursorLeft #CursorDown #+ #-)>
+
+ |step|
+
+ step := self verticalScrollStep.
+
+ (key == #CursorRight
+ or:[key == #CursorDown
+ or:[key == $+]]) ifTrue:[
+ self scrollStep:step.
+ ^ self
+ ].
+
+ (key == #CursorLeft
+ or:[key == #CursorUp
+ or:[key == $-]]) ifTrue:[
+ self scrollStep:step negated.
+ ^ self
+ ].
+
+ super keyPress:key x:x y:y
+
+ "Modified: / 21.4.1998 / 20:49:32 / cg"
+ "Created: / 21.4.1998 / 20:55:29 / cg"
+!
+
+sizeChanged:how
+ super sizeChanged:how.
+ shown ifTrue:[
+ self invalidate
+ ]
+
+ "Created: / 18.4.1998 / 02:36:04 / cg"
+ "Modified: / 18.4.1998 / 14:10:16 / cg"
+!
+
+update:something with:aParameter from:changedObject
+ "handle update from a model (if any)"
+
+ (changedObject == model
+ "and:[something == aspectMsg]") ifTrue:[
+ self thumbPosition:(model value ? 0).
+ ^ self
+ ].
+ super update:something with:aParameter from:changedObject
+
+ "Modified: / 16.6.1998 / 10:25:42 / cg"
+! !
+
+!ThumbWheel methodsFor:'forced scroll'!
+
+scrollDown:amountToScroll
+ "compatibility with SimpleView. This allows mouse wheel actions on Scrollers
+ Note: this is used for horizontal scrollers, too (scrollRight)"
+
+ self scrollStep:amountToScroll
+!
+
+scrollStep:delta
+ "step by some delta"
+
+ |oldOrg newOrg|
+
+ oldOrg := thumbPosition.
+ newOrg := ((oldOrg + delta) max:rangeStart) min:rangeEnd.
+ oldOrg ~= newOrg ifTrue:[
+ self thumbOrigin:newOrg.
+ self tellOthers.
+ ]
+
+ "Created: / 21.4.1998 / 20:56:15 / cg"
+ "Modified: / 21.4.1998 / 20:59:25 / cg"
+!
+
+scrollUp:amountToScroll
+ "compatibility with SimpleView. This allows mouse wheel actions on Scrollers
+ Note: this is used for horizontal scrollers, too (scrollLeft)"
+
+ self scrollStep:amountToScroll negated
+! !
+
+!ThumbWheel methodsFor:'initialization'!
+
+initialize
+ "initialize - setup instvars from defaults"
+
+ super initialize.
+
+ orientation isNil ifTrue:[orientation := #vertical].
+
+ entered := false.
+ synchronousOperation := true.
+ endlessRotation := false.
+
+ thumbPosition := 0.
+
+ rangeStart := 0.
+ rangeEnd := 360.
+ rangeStep := nil. "/ meaning: arbitrary precision
+
+ angleRange := 150. "/ 180 degrees are visible
+ tallyAngle := 10. "/ tally every 10 degrees
+ unitsPerRotation := 360.
+
+ "Modified: / 5.2.1998 / 22:20:39 / cg"
+! !
+
+!ThumbWheel methodsFor:'private'!
+
+tellOthers
+ "notify others of a change"
+
+ "
+ the ST/X way of notifying scrolls
+ "
+ scrollAction notNil ifTrue:[
+ scrollAction value:thumbPosition
+ ].
+ "
+ the ST-80 way of notifying scrolls
+ "
+ self sendChangeMessageWith:thumbPosition.
+ self changed:#scrollerPosition.
+
+ "Created: 27.9.1996 / 18:14:02 / cg"
+ "Modified: 28.5.1997 / 16:04:16 / cg"
+! !
+
+!ThumbWheel methodsFor:'queries'!
+
+preferredExtent
+ "return a useful default extent"
+
+ |ppmm|
+
+ preferredExtent isNil ifTrue:[
+ ppmm := self graphicsDevice pixelPerMillimeter.
+ orientation == #vertical ifTrue:[
+ preferredExtent := (ppmm * (5 @ 30)) rounded
+ ] ifFalse:[
+ preferredExtent := (ppmm * (30 @ 5)) rounded
+ ].
+ ].
+
+ ^ preferredExtent
+
+ "Modified: 28.5.1997 / 16:03:55 / cg"
+!
+
+verticalScrollStep
+ "mouse wheel: scroll step
+ Note: this is used for horizontal scrollers, too"
+
+ ^ keyboardStep ? (rangeEnd - rangeStart / 10)
+! !
+
+!ThumbWheel class methodsFor:'documentation'!
+
+version
+ ^ '$Header$'
+! !
--- a/bc.mak Fri Jan 15 13:12:52 2016 +0000
+++ b/bc.mak Sat Jan 16 10:41:12 2016 +0000
@@ -126,6 +126,7 @@
$(OUTDIR)TabulatorSpecification.$(O) TabulatorSpecification.$(H): TabulatorSpecification.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
$(OUTDIR)TerminalView.$(O) TerminalView.$(H): TerminalView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
$(OUTDIR)TextBox.$(O) TextBox.$(H): TextBox.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\DialogBox.$(H) $(INCLUDE_TOP)\stx\libwidg\EnterBox.$(H) $(STCHDR)
+$(OUTDIR)ThumbWheel.$(O) ThumbWheel.$(H): ThumbWheel.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(STCHDR)
$(OUTDIR)TreeItem.$(O) TreeItem.$(H): TreeItem.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)UpDownButton.$(O) UpDownButton.$(H): UpDownButton.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(STCHDR)
$(OUTDIR)ViewScroller.$(O) ViewScroller.$(H): ViewScroller.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(STCHDR)
--- a/bmake.bat Fri Jan 15 13:12:52 2016 +0000
+++ b/bmake.bat Sat Jan 16 10:41:12 2016 +0000
@@ -4,9 +4,7 @@
@REM do not edit - automatically generated from ProjectDefinition
@REM -------
@SET DEFINES=
-@REM Kludge got Mercurial, cannot be implemented in Borland make
-@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
-@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
make.exe -N -f bc.mak %DEFINES% %*
--- a/libInit.cc Fri Jan 15 13:12:52 2016 +0000
+++ b/libInit.cc Sat Jan 16 10:41:12 2016 +0000
@@ -78,6 +78,7 @@
_TabulatorSpecification_Init(pass,__pRT__,snd);
_TerminalView_Init(pass,__pRT__,snd);
_TextBox_Init(pass,__pRT__,snd);
+_ThumbWheel_Init(pass,__pRT__,snd);
_TreeItem_Init(pass,__pRT__,snd);
_UpDownButton_Init(pass,__pRT__,snd);
_ViewScroller_Init(pass,__pRT__,snd);
--- a/libwidg2.rc Fri Jan 15 13:12:52 2016 +0000
+++ b/libwidg2.rc Sat Jan 16 10:41:12 2016 +0000
@@ -3,7 +3,7 @@
// automagically generated from the projectDefinition: stx_libwidg2.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,1,52
+ FILEVERSION 6,2,1,56
PRODUCTVERSION 6,2,5,0
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "eXept Software AG\0"
VALUE "FileDescription", "Smalltalk/X Additional Widgets (LIB)\0"
- VALUE "FileVersion", "6.2.1.52\0"
+ VALUE "FileVersion", "6.2.1.56\0"
VALUE "InternalName", "stx:libwidg2\0"
- VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
+ VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 2012\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.5.0\0"
- VALUE "ProductDate", "Fri, 01 May 2015 14:41:38 GMT\0"
+ VALUE "ProductDate", "Fri, 15 Jan 2016 19:51:07 GMT\0"
END
END
--- a/mingwmake.bat Fri Jan 15 13:12:52 2016 +0000
+++ b/mingwmake.bat Sat Jan 16 10:41:12 2016 +0000
@@ -4,9 +4,6 @@
@REM do not edit - automatically generated from ProjectDefinition
@REM -------
@SET DEFINES=
-@REM Kludge got Mercurial, cannot be implemented in Borland make
-@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
-@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
@pushd ..\rules
@call find_mingw.bat
--- a/stx_libwidg2.st Fri Jan 15 13:12:52 2016 +0000
+++ b/stx_libwidg2.st Sat Jan 16 10:41:12 2016 +0000
@@ -71,6 +71,8 @@
#'stx:goodies/refactoryBrowser/parser' "RBParser - referenced by DoWhatIMeanSupport class>>findNodeForInterval:in: "
#'stx:libcomp' "Parser - referenced by DoWhatIMeanSupport class>>codeCompletionForMessage:inClass:codeView: "
#'stx:libhtml' "HTMLDocumentView - referenced by LicenceBox>>initialize "
+ #'stx:goodies/refactoryBrowser/browser' "RefactoryTyper - referenced by DoWhatIMeanSupport>>codeCompletionForMessage:inClass:instance:context:codeView:"
+ #'stx:libboss' "ObsoleteObject - referenced by DoWhatIMeanSupport>>codeCompletionForMessage:inClass:instance:context:codeView:"
)
!
@@ -102,7 +104,6 @@
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:goodies/refactoryBrowser/browser' "RefactoryTyper - referenced by DoWhatIMeanSupport>>codeCompletionForMessage:inClass:instance:context:codeView:"
#'stx:libui' "ComboBoxSpec - referenced by ComboBoxView>>specClass"
)
!
@@ -194,6 +195,7 @@
TabulatorSpecification
TerminalView
TextBox
+ ThumbWheel
TreeItem
UpDownButton
ViewScroller