mysterx: fix private/mxmain hack to avoid cross-module optimization

Using the old extension protocol for MysterX --- plus the hack of
a dummy source module for a kind of portability --- really should
be replaced with an FFI-based approach to the MysterX DLL.
This commit is contained in:
Matthew Flatt 2011-12-21 13:57:16 -07:00
parent ed8e3367d4
commit 5a7f1b15ed

View File

@ -1,575 +1,301 @@
(module mxmain mzscheme #lang racket/base
; dummy entries to make Setup happy (error "mxmain.rkt: you seem to be missing mxmain.dll; you need to build MysterX in plt\\src\\mysterx\\")
; these are the names defined in mxPrims[] in src/mysterx.cxx
(provide (define-syntax provide-dummy
mx-version (syntax-rules ()
block-while-browsers [(_ id) (begin
com-invoke (provide id)
com-set-property! (define id (false/thwart-optimization)))]
com-get-property [(_ id ...) (begin (provide-dummy id) ...)]))
com-get-properties
com-set-properties
com-methods
com-events
com-method-type
com-get-property-type
com-set-property-type
com-event-type
com-help
com-object-type
com-is-a?
com-currency?
com-date?
com-date->date
date->com-date
com-scode?
com-scode->number
number->com-scode
com-currency->number
number->com-currency
com-object?
com-iunknown?
com-register-event-handler
com-unregister-event-handler
com-all-coclasses
com-all-controls
coclass->html
progid->html
cocreate-instance-from-coclass
cocreate-instance-from-progid
com-get-active-object-from-coclass
coclass
progid
set-coclass!
set-coclass-from-progid!
com-object-eq?
com-register-object
com-release-object
com-add-ref
com-ref-count
com-terminate
make-browser
browser-show
navigate
go-back
go-forward
refresh
iconize
restore
current-url
register-navigate-handler
current-document
print-document
document?
document-title
document-insert-html
document-append-html
document-replace-html
document-find-element
document-find-element-by-id-or-name
document-elements-with-tag
document-objects
element-insert-html
element-append-html
element-insert-text
element-append-text
element-replace-html
element-get-html
element-get-text
element-focus
element-selection
element-set-selection!
element-attribute
element-set-attribute!
element-click
element-tag
element-font-family
element-set-font-family!
element-font-style
element-set-font-style!
element-font-variant
element-set-font-variant!
element-font-weight
element-set-font-weight!
element-font
element-set-font!
element-background
element-set-background!
element-background-attachment
element-set-background-attachment!
element-background-image
element-set-background-image!
element-background-repeat
element-set-background-repeat!
element-background-position
element-set-background-position!
element-text-decoration
element-set-text-decoration!
element-text-transform
element-set-text-transform!
element-text-align
element-set-text-align!
element-margin
element-set-margin!
element-padding
element-set-padding!
element-border
element-set-border!
element-border-top
element-set-border-top!
element-border-bottom
element-set-border-bottom!
element-border-left
element-set-border-left!
element-border-right
element-set-border-right!
element-border-color
element-set-border-color!
element-border-width
element-set-border-width!
element-border-style
element-set-border-style!
element-border-top-style
element-set-border-top-style!
element-border-bottom-style
element-set-border-bottom-style!
element-border-left-style
element-set-border-left-style!
element-border-right-style
element-set-border-right-style!
element-style-float
element-set-style-float!
element-clear
element-set-clear!
element-display
element-set-display!
element-visibility
element-set-visibility!
element-list-style-type
element-set-list-style-type!
element-list-style-position
element-set-list-style-position!
element-list-style-image
element-set-list-style-image!
element-list-style
element-set-list-style!
element-position
element-overflow
element-set-overflow!
element-pagebreak-before
element-set-pagebreak-before!
element-pagebreak-after
element-set-pagebreak-after!
element-css-text
element-set-css-text!
element-cursor
element-set-cursor!
element-clip
element-set-clip!
element-filter
element-set-filter!
element-style-string
element-text-decoration-none
element-set-text-decoration-none!
element-text-decoration-underline
element-set-text-decoration-underline!
element-text-decoration-overline
element-set-text-decoration-overline!
element-text-decoration-linethrough
element-set-text-decoration-linethrough!
element-text-decoration-blink
element-set-text-decoration-blink!
element-pixel-top
element-set-pixel-top!
element-pixel-left
element-set-pixel-left!
element-pixel-width
element-set-pixel-width!
element-pixel-height
element-set-pixel-height!
element-pos-top
element-set-pos-top!
element-pos-left
element-set-pos-left!
element-pos-width
element-set-pos-width!
element-pos-height
element-set-pos-height!
element-font-size
element-set-font-size!
element-color
element-set-color!
element-background-color
element-set-background-color!
element-background-position-x
element-set-background-position-x!
element-background-position-y
element-set-background-position-y!
element-letter-spacing
element-set-letter-spacing!
element-vertical-align
element-set-vertical-align!
element-text-indent
element-set-text-indent!
element-line-height
element-set-line-height!
element-margin-top
element-set-margin-top!
element-margin-bottom
element-set-margin-bottom!
element-margin-left
element-set-margin-left!
element-margin-right
element-set-margin-right!
element-padding-top
element-set-padding-top!
element-padding-bottom
element-set-padding-bottom!
element-padding-left
element-set-padding-left!
element-padding-right
element-set-padding-right!
element-border-top-color
element-set-border-top-color!
element-border-bottom-color
element-set-border-bottom-color!
element-border-left-color
element-set-border-left-color!
element-border-right-color
element-set-border-right-color!
element-border-top-width
element-set-border-top-width!
element-border-bottom-width
element-set-border-bottom-width!
element-border-left-width
element-set-border-left-width!
element-border-right-width
element-set-border-right-width!
element-width
element-set-width!
element-height
element-set-height!
element-top
element-set-top!
element-left
element-set-left!
element-z-index
element-set-z-index!
event?
get-event
event-tag
event-id
event-from-tag
event-from-id
event-to-tag
event-to-id
event-keycode
event-shiftkey
event-ctrlkey
event-altkey
event-x
event-y
event-keypress?
event-keydown?
event-keyup?
event-mousedown?
event-mousemove?
event-mouseover?
event-mouseout?
event-mouseup?
event-click?
event-dblclick?
event-error?
block-until-event
process-win-events
release-type-table
com-omit
%%initialize-dotnet-runtime)
(error "mxmain.rkt: you seem to be missing mxmain.dll; you need to build MysterX in plt\\src\\mysterx\\") (define false/thwart-optimization #f)
(set! false/thwart-optimization (lambda () #f))
(define mx-version #f) ;; dummy entries to make Setup happy;
(define block-while-browsers #f) ;; these are the names defined in mxPrims[] in src/mysterx.cxx
(define com-invoke #f)
(define com-set-property! #f) (provide-dummy
(define com-get-property #f) mx-version
(define com-get-properties #f) block-while-browsers
(define com-set-properties #f) com-invoke
(define com-methods #f) com-set-property!
(define com-events #f) com-get-property
(define com-method-type #f) com-get-properties
(define com-get-property-type #f) com-set-properties
(define com-set-property-type #f) com-methods
(define com-event-type #f) com-events
(define com-help #f) com-method-type
(define com-object-type #f) com-get-property-type
(define com-is-a? #f) com-set-property-type
(define com-currency? #f) com-event-type
(define com-date? #f) com-help
(define com-date->date #f) com-object-type
(define date->com-date #f) com-is-a?
(define com-scode? #f) com-currency?
(define com-scode->number #f) com-date?
(define number->com-scode #f) com-date->date
(define com-currency->number #f) date->com-date
(define number->com-currency #f) com-scode?
(define com-object? #f) com-scode->number
(define com-iunknown? #f) number->com-scode
(define com-register-event-handler #f) com-currency->number
(define com-unregister-event-handler #f) number->com-currency
(define com-all-coclasses #f) com-object?
(define com-all-controls #f) com-iunknown?
(define coclass->html #f) com-register-event-handler
(define progid->html #f) com-unregister-event-handler
(define cocreate-instance-from-coclass #f) com-all-coclasses
(define cocreate-instance-from-progid #f) com-all-controls
(define com-get-active-object-from-coclass #f) coclass->html
(define coclass #f) progid->html
(define progid #f) cocreate-instance-from-coclass
(define set-coclass! #f) cocreate-instance-from-progid
(define set-coclass-from-progid! #f) com-get-active-object-from-coclass
(define com-object-eq? #f) coclass
(define com-register-object #f) progid
(define com-release-object #f) set-coclass!
(define com-add-ref #f) set-coclass-from-progid!
(define com-ref-count #f) com-object-eq?
(define com-terminate #f) com-register-object
(define make-browser #f) com-release-object
(define browser-show #f) com-add-ref
(define navigate #f) com-ref-count
(define go-back #f) com-terminate
(define go-forward #f) make-browser
(define refresh #f) browser-show
(define iconize #f) navigate
(define restore #f) go-back
(define current-url #f) go-forward
(define register-navigate-handler #f) refresh
(define current-document #f) iconize
(define print-document #f) restore
(define document? #f) current-url
(define document-title #f) register-navigate-handler
(define document-insert-html #f) current-document
(define document-append-html #f) print-document
(define document-replace-html #f) document?
(define document-find-element #f) document-title
(define document-find-element-by-id-or-name #f) document-insert-html
(define document-elements-with-tag #f) document-append-html
(define document-objects #f) document-replace-html
(define element-insert-html #f) document-find-element
(define element-append-html #f) document-find-element-by-id-or-name
(define element-insert-text #f) document-elements-with-tag
(define element-append-text #f) document-objects
(define element-replace-html #f) element-insert-html
(define element-get-html #f) element-append-html
(define element-get-text #f) element-insert-text
(define element-focus #f) element-append-text
(define element-selection #f) element-replace-html
(define element-set-selection! #f) element-get-html
(define element-attribute #f) element-get-text
(define element-set-attribute! #f) element-focus
(define element-click #f) element-selection
(define element-tag #f) element-set-selection!
(define element-font-family #f) element-attribute
(define element-set-font-family! #f) element-set-attribute!
(define element-font-style #f) element-click
(define element-set-font-style! #f) element-tag
(define element-font-variant #f) element-font-family
(define element-set-font-variant! #f) element-set-font-family!
(define element-font-weight #f) element-font-style
(define element-set-font-weight! #f) element-set-font-style!
(define element-font #f) element-font-variant
(define element-set-font! #f) element-set-font-variant!
(define element-background #f) element-font-weight
(define element-set-background! #f) element-set-font-weight!
(define element-background-attachment #f) element-font
(define element-set-background-attachment! #f) element-set-font!
(define element-background-image #f) element-background
(define element-set-background-image! #f) element-set-background!
(define element-background-repeat #f) element-background-attachment
(define element-set-background-repeat! #f) element-set-background-attachment!
(define element-background-position #f) element-background-image
(define element-set-background-position! #f) element-set-background-image!
(define element-text-decoration #f) element-background-repeat
(define element-set-text-decoration! #f) element-set-background-repeat!
(define element-text-transform #f) element-background-position
(define element-set-text-transform! #f) element-set-background-position!
(define element-text-align #f) element-text-decoration
(define element-set-text-align! #f) element-set-text-decoration!
(define element-margin #f) element-text-transform
(define element-set-margin! #f) element-set-text-transform!
(define element-padding #f) element-text-align
(define element-set-padding! #f) element-set-text-align!
(define element-border #f) element-margin
(define element-set-border! #f) element-set-margin!
(define element-border-top #f) element-padding
(define element-set-border-top! #f) element-set-padding!
(define element-border-bottom #f) element-border
(define element-set-border-bottom! #f) element-set-border!
(define element-border-left #f) element-border-top
(define element-set-border-left! #f) element-set-border-top!
(define element-border-right #f) element-border-bottom
(define element-set-border-right! #f) element-set-border-bottom!
(define element-border-color #f) element-border-left
(define element-set-border-color! #f) element-set-border-left!
(define element-border-width #f) element-border-right
(define element-set-border-width! #f) element-set-border-right!
(define element-border-style #f) element-border-color
(define element-set-border-style! #f) element-set-border-color!
(define element-border-top-style #f) element-border-width
(define element-set-border-top-style! #f) element-set-border-width!
(define element-border-bottom-style #f) element-border-style
(define element-set-border-bottom-style! #f) element-set-border-style!
(define element-border-left-style #f) element-border-top-style
(define element-set-border-left-style! #f) element-set-border-top-style!
(define element-border-right-style #f) element-border-bottom-style
(define element-set-border-right-style! #f) element-set-border-bottom-style!
(define element-style-float #f) element-border-left-style
(define element-set-style-float! #f) element-set-border-left-style!
(define element-clear #f) element-border-right-style
(define element-set-clear! #f) element-set-border-right-style!
(define element-display #f) element-style-float
(define element-set-display! #f) element-set-style-float!
(define element-visibility #f) element-clear
(define element-set-visibility! #f) element-set-clear!
(define element-list-style-type #f) element-display
(define element-set-list-style-type! #f) element-set-display!
(define element-list-style-position #f) element-visibility
(define element-set-list-style-position! #f) element-set-visibility!
(define element-list-style-image #f) element-list-style-type
(define element-set-list-style-image! #f) element-set-list-style-type!
(define element-list-style #f) element-list-style-position
(define element-set-list-style! #f) element-set-list-style-position!
(define element-position #f) element-list-style-image
(define element-overflow #f) element-set-list-style-image!
(define element-set-overflow! #f) element-list-style
(define element-pagebreak-before #f) element-set-list-style!
(define element-set-pagebreak-before! #f) element-position
(define element-pagebreak-after #f) element-overflow
(define element-set-pagebreak-after! #f) element-set-overflow!
(define element-css-text #f) element-pagebreak-before
(define element-set-css-text! #f) element-set-pagebreak-before!
(define element-cursor #f) element-pagebreak-after
(define element-set-cursor! #f) element-set-pagebreak-after!
(define element-clip #f) element-css-text
(define element-set-clip! #f) element-set-css-text!
(define element-filter #f) element-cursor
(define element-set-filter! #f) element-set-cursor!
(define element-style-string #f) element-clip
(define element-text-decoration-none #f) element-set-clip!
(define element-set-text-decoration-none! #f) element-filter
(define element-text-decoration-underline #f) element-set-filter!
(define element-set-text-decoration-underline! #f) element-style-string
(define element-text-decoration-overline #f) element-text-decoration-none
(define element-set-text-decoration-overline! #f) element-set-text-decoration-none!
(define element-text-decoration-linethrough #f) element-text-decoration-underline
(define element-set-text-decoration-linethrough! #f) element-set-text-decoration-underline!
(define element-text-decoration-blink #f) element-text-decoration-overline
(define element-set-text-decoration-blink! #f) element-set-text-decoration-overline!
(define element-pixel-top #f) element-text-decoration-linethrough
(define element-set-pixel-top! #f) element-set-text-decoration-linethrough!
(define element-pixel-left #f) element-text-decoration-blink
(define element-set-pixel-left! #f) element-set-text-decoration-blink!
(define element-pixel-width #f) element-pixel-top
(define element-set-pixel-width! #f) element-set-pixel-top!
(define element-pixel-height #f) element-pixel-left
(define element-set-pixel-height! #f) element-set-pixel-left!
(define element-pos-top #f) element-pixel-width
(define element-set-pos-top! #f) element-set-pixel-width!
(define element-pos-left #f) element-pixel-height
(define element-set-pos-left! #f) element-set-pixel-height!
(define element-pos-width #f) element-pos-top
(define element-set-pos-width! #f) element-set-pos-top!
(define element-pos-height #f) element-pos-left
(define element-set-pos-height! #f) element-set-pos-left!
(define element-font-size #f) element-pos-width
(define element-set-font-size! #f) element-set-pos-width!
(define element-color #f) element-pos-height
(define element-set-color! #f) element-set-pos-height!
(define element-background-color #f) element-font-size
(define element-set-background-color! #f) element-set-font-size!
(define element-background-position-x #f) element-color
(define element-set-background-position-x! #f) element-set-color!
(define element-background-position-y #f) element-background-color
(define element-set-background-position-y! #f) element-set-background-color!
(define element-letter-spacing #f) element-background-position-x
(define element-set-letter-spacing! #f) element-set-background-position-x!
(define element-vertical-align #f) element-background-position-y
(define element-set-vertical-align! #f) element-set-background-position-y!
(define element-text-indent #f) element-letter-spacing
(define element-set-text-indent! #f) element-set-letter-spacing!
(define element-line-height #f) element-vertical-align
(define element-set-line-height! #f) element-set-vertical-align!
(define element-margin-top #f) element-text-indent
(define element-set-margin-top! #f) element-set-text-indent!
(define element-margin-bottom #f) element-line-height
(define element-set-margin-bottom! #f) element-set-line-height!
(define element-margin-left #f) element-margin-top
(define element-set-margin-left! #f) element-set-margin-top!
(define element-margin-right #f) element-margin-bottom
(define element-set-margin-right! #f) element-set-margin-bottom!
(define element-padding-top #f) element-margin-left
(define element-set-padding-top! #f) element-set-margin-left!
(define element-padding-bottom #f) element-margin-right
(define element-set-padding-bottom! #f) element-set-margin-right!
(define element-padding-left #f) element-padding-top
(define element-set-padding-left! #f) element-set-padding-top!
(define element-padding-right #f) element-padding-bottom
(define element-set-padding-right! #f) element-set-padding-bottom!
(define element-border-top-color #f) element-padding-left
(define element-set-border-top-color! #f) element-set-padding-left!
(define element-border-bottom-color #f) element-padding-right
(define element-set-border-bottom-color! #f) element-set-padding-right!
(define element-border-left-color #f) element-border-top-color
(define element-set-border-left-color! #f) element-set-border-top-color!
(define element-border-right-color #f) element-border-bottom-color
(define element-set-border-right-color! #f) element-set-border-bottom-color!
(define element-border-top-width #f) element-border-left-color
(define element-set-border-top-width! #f) element-set-border-left-color!
(define element-border-bottom-width #f) element-border-right-color
(define element-set-border-bottom-width! #f) element-set-border-right-color!
(define element-border-left-width #f) element-border-top-width
(define element-set-border-left-width! #f) element-set-border-top-width!
(define element-border-right-width #f) element-border-bottom-width
(define element-set-border-right-width! #f) element-set-border-bottom-width!
(define element-width #f) element-border-left-width
(define element-set-width! #f) element-set-border-left-width!
(define element-height #f) element-border-right-width
(define element-set-height! #f) element-set-border-right-width!
(define element-top #f) element-width
(define element-set-top! #f) element-set-width!
(define element-left #f) element-height
(define element-set-left! #f) element-set-height!
(define element-z-index #f) element-top
(define element-set-z-index! #f) element-set-top!
(define event? #f) element-left
(define get-event #f) element-set-left!
(define event-tag #f) element-z-index
(define event-id #f) element-set-z-index!
(define event-from-tag #f) event?
(define event-from-id #f) get-event
(define event-to-tag #f) event-tag
(define event-to-id #f) event-id
(define event-keycode #f) event-from-tag
(define event-shiftkey #f) event-from-id
(define event-ctrlkey #f) event-to-tag
(define event-altkey #f) event-to-id
(define event-x #f) event-keycode
(define event-y #f) event-shiftkey
(define event-keypress? #f) event-ctrlkey
(define event-keydown? #f) event-altkey
(define event-keyup? #f) event-x
(define event-mousedown? #f) event-y
(define event-mousemove? #f) event-keypress?
(define event-mouseover? #f) event-keydown?
(define event-mouseout? #f) event-keyup?
(define event-mouseup? #f) event-mousedown?
(define event-click? #f) event-mousemove?
(define event-dblclick? #f) event-mouseover?
(define event-error? #f) event-mouseout?
(define block-until-event #f) event-mouseup?
(define process-win-events #f) event-click?
(define release-type-table #f) event-dblclick?
(define com-omit #f) event-error?
(define %%initialize-dotnet-runtime #f)) block-until-event
process-win-events
release-type-table
com-omit
%%initialize-dotnet-runtime)