WebKitRenderer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 19 Apr 2012 08:35:05 +0000
changeset 30 39fbc84d4033
parent 26 35e0080c5e32
child 31 035449621a0c
permissions -rw-r--r--
- WebKitRenderer added: #KEY_PRESS: #KEY_RELEASE: #SCROLL_HORIZ: #SCROLL_VERT:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libwebkit' }"
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Object subclass:#WebKitRenderer
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     4
	instanceVariableNames:'view pid socket channel'
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
     5
	classVariableNames:'UzblCorePath Debug'
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Views-WebKit'
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    10
PeekableStream subclass:#Channel
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    11
	instanceVariableNames:'socket peekChar buffer'
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    12
	classVariableNames:''
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    13
	poolDictionaries:''
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    14
	privateIn:WebKitRenderer
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    15
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    16
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    18
!WebKitRenderer class methodsFor:'initialization'!
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    19
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    20
initialize
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    21
    "Invoked at system start or when the class is dynamically loaded."
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    22
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    23
    "/ please change as required (and remove this comment)
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    24
25
3afbf7f43e42 Enable debug for JV by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
    25
    Debug := (OperatingSystem getLoginName  = 'jv')
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    26
25
3afbf7f43e42 Enable debug for JV by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
    27
    "Modified: / 11-02-2012 / 20:21:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    28
! !
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    29
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!WebKitRenderer class methodsFor:'instance creation'!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
for: aWebKitView
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    34
    ^self new initializeForView: aWebKitView
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    "Created: / 02-06-2011 / 23:38:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    37
    "Modified: / 06-06-2011 / 10:38:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    40
!WebKitRenderer class methodsFor:'accessing'!
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    41
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    42
debug: aBoolean
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    43
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    44
    Debug := aBoolean
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    45
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    46
    "Created: / 10-06-2011 / 18:40:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    47
!
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    48
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    49
uzblCorePath
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    50
22
547d30334073 Fixes path to WebKitRenderer, initial support for multiple architectures...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 21
diff changeset
    51
    | renderer |
547d30334073 Fixes path to WebKitRenderer, initial support for multiple architectures...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 21
diff changeset
    52
16
ee672c89d1b4 Initalization fixed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    53
    UzblCorePath ifNil:[
22
547d30334073 Fixes path to WebKitRenderer, initial support for multiple architectures...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 21
diff changeset
    54
        renderer := 'WebKitRenderer.' , (OperatingSystem getSystemInfo at:#machine).
547d30334073 Fixes path to WebKitRenderer, initial support for multiple architectures...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 21
diff changeset
    55
        UzblCorePath := ((Smalltalk packageDirectoryForPackageId: 'stx:libwebkit') / renderer ) pathName.
16
ee672c89d1b4 Initalization fixed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    56
    ].
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    57
    ^UzblCorePath
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    58
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    59
    "Created: / 10-06-2011 / 09:56:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22
547d30334073 Fixes path to WebKitRenderer, initial support for multiple architectures...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 21
diff changeset
    60
    "Modified: / 20-06-2011 / 11:27:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    61
!
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    62
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    63
uzblCorePath: aStringOrFilename
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    64
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    65
    UzblCorePath := aStringOrFilename
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    66
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    67
    "Created: / 10-06-2011 / 09:56:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    68
! !
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    69
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    70
!WebKitRenderer class methodsFor:'queries'!
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    71
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    72
isAvailable
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    73
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    74
    ^OperatingSystem isUNIXlike and:
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    75
        [self uzblCorePath asFilename isExecutable]
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    76
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    77
    "Created: / 10-06-2011 / 09:57:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    78
! !
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    79
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    80
!WebKitRenderer methodsFor:'commands'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    81
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    82
setVariable: name to: value
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    83
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    84
    channel ifNil:[^self].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    85
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    86
    channel
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    87
        nextPutAll: #set;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    88
        space;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    89
        nextPutAll: name;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    90
        nextPut:$=;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    91
        nextPutAll: value printString;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    92
        cr
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    93
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    94
    "Created: / 07-06-2011 / 10:21:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    95
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    96
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    97
!WebKitRenderer methodsFor:'event handling'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    98
30
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
    99
KEY_PRESS: event
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   100
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   101
    "Created: / 19-04-2012 / 10:25:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   102
!
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   103
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   104
KEY_RELEASE: event
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   105
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   106
    "Created: / 19-04-2012 / 10:26:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   107
!
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   108
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   109
LOAD_COMMIT: event
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   110
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   111
    view url value ~= event second ifTrue:
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   112
        [view url value: event second].
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   113
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   114
    "Created: / 07-06-2011 / 11:36:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   115
    "Modified: / 07-06-2011 / 19:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   116
!
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   117
26
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   118
PTR_MOVE: event
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   119
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   120
    view buttonMotion: 0 x: event second y: event third
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   121
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   122
    "Created: / 18-02-2012 / 14:31:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   123
!
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   124
30
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   125
SCROLL_HORIZ: event
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   126
    "Nothing to do here, scrolling is handled by UZBL itself"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   127
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   128
    "Created: / 19-04-2012 / 10:24:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   129
!
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   130
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   131
SCROLL_VERT: event
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   132
    "Nothing to do here, scrolling is handled by UZBL itself"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   133
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   134
    "Created: / 19-04-2012 / 10:24:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   135
!
39fbc84d4033 - WebKitRenderer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   136
11
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   137
TITLE_CHANGED: event
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   138
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   139
    event second = '(no title)' ifFalse:
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   140
        [view title value: event second].
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   141
9388b5fb34aa Added support for title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10
diff changeset
   142
    "Created: / 08-06-2011 / 14:14:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   143
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   144
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   145
!WebKitRenderer methodsFor:'event loop'!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   146
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   147
dispatchEvent
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   148
26
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   149
    view sensor pushUserEvent: #dispatchEvent: for:self withArgument: channel nextEvent.
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   150
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   151
    "Created: / 06-06-2011 / 18:13:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   152
    "Modified: / 18-02-2012 / 14:36:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   153
!
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   154
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   155
dispatchEvent: ev
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   156
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   157
    | sym |
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   158
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   159
    (self respondsTo: (sym := (ev first , ':') asSymbol)) ifTrue: [
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   160
        self perform: sym with: ev
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   161
    ] ifFalse: [
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   162
        Debug ifTrue:[
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   163
            Transcript showCR: 'UNKNOWN EVENT: ', ev asArray printString
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   164
        ]
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   165
    ].
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   166
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   167
    "Modified: / 10-06-2011 / 18:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26
35e0080c5e32 WebKitRenderer: events from uzbl are processed asynchnously
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 25
diff changeset
   168
    "Created: / 18-02-2012 / 14:32:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   169
!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   170
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   171
eventLoop
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   172
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   173
    [ channel atEnd ] whileFalse: [
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   174
        self dispatchEvent 
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   175
    ]
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   176
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   177
    "Created: / 06-06-2011 / 18:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   178
    "Modified: / 07-06-2011 / 10:52:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   179
! !
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   180
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   181
!WebKitRenderer methodsFor:'initialization & release'!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   182
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   183
close
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   184
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   185
    "Created: / 06-06-2011 / 18:38:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   186
    "Modified: / 07-06-2011 / 10:32:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   187
!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   188
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   189
init
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   190
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   191
    self                                                            
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   192
        setVariable: #forward_keys to: 1;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   193
        setVariable: #show_status to: 0;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   194
        setVariable: #scrollbars_visible to: 1;
7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   195
        setVariable: #uri to: view url value;
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   196
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   197
        yourself
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   198
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   199
    "Created: / 06-06-2011 / 18:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   200
    "Modified: / 07-06-2011 / 19:57:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   201
!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
initializeForView: aWebKitView
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    view := aWebKitView.
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    "Created: / 02-06-2011 / 23:38:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   210
!WebKitRenderer methodsFor:'private'!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   212
startEventLoop
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   213
    
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   214
    [ 
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   215
        self waitFor; init; eventLoop; close
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   216
    ] fork
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   217
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   218
    "Created: / 06-06-2011 / 17:57:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   219
!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   221
waitFor
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   222
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   223
    socket listenFor: 1.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   224
    channel := Channel on: socket accept.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   225
    socket port asFilename remove.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   226
    socket close.
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   227
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   228
    "Created: / 06-06-2011 / 18:00:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   229
    "Modified: / 07-06-2011 / 10:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   230
! !
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   232
!WebKitRenderer methodsFor:'queries'!
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   233
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   234
isAvailable
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   235
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   236
    ^self class isAvailable
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   237
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   238
    "Created: / 10-06-2011 / 09:58:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   239
!
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   240
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   241
isRunning
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   242
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   243
    ^pid notNil
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   244
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   245
    "Created: / 10-06-2011 / 23:41:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   246
! !
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   247
21
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   248
!WebKitRenderer methodsFor:'renderer API'!
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   249
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   250
render:webKitView1 on:webKitView2 at:aPoint
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   251
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   252
    "Nothing to do here, since my renderer process renders
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   253
     the content"
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   254
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   255
    "Created: / 15-06-2011 / 15:22:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   256
! !
16f7e3dfeb75 WebKitRenderer: added fake render:on:at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   257
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   258
!WebKitRenderer methodsFor:'spawn / terminate'!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   259
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   260
spawn
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   261
    |path uzbl args|
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   263
    path := Filename newTemporary.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   264
    socket := Socket newUNIXserverAt:path pathName.
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   265
    uzbl := self class uzblCorePath.
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   266
    args := (Array 
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   267
                with:uzbl
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   268
                with:'-s'
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   269
                with:view rendererView embeddingWindowId printString
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   270
                with:'--connect-socket=' , path pathName).
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   271
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   272
    self startEventLoop.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   273
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   274
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   275
    pid := OperatingSystem
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   276
     exec: uzbl
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   277
     withArguments: args
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   278
     fork: true.
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    "Created: / 02-06-2011 / 23:40:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
15
f46eba00e7cb - WebKitView now uses bundled uzbl-core
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   281
    "Modified: / 10-06-2011 / 09:59:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   284
terminate
18
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   285
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   286
    pid := nil.
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   287
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
    "Created: / 02-06-2011 / 23:40:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18
92189b67e243 - WebKitView: do not spawn renderer if already running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   289
    "Modified: / 10-06-2011 / 23:41:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   292
!WebKitRenderer::Channel class methodsFor:'instance creation'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   293
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   294
on: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   295
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   296
    ^self basicNew initializeOn: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   297
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   298
    "Created: / 07-06-2011 / 10:44:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   299
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   300
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   301
!WebKitRenderer::Channel methodsFor:'accessing'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   302
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   303
contents
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   304
    "return the entire contents of the stream.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   305
     For a readStream, that is the rest (i.e. upToEnd),
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   306
     for a writeStream, that is the collected data. As we do not know here,
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   307
     what we are, this is the responsibility of a subclass..."
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   308
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   309
    ^ self shouldNotImplement
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   310
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   311
    "Modified: / 07-06-2011 / 10:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   312
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   313
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   314
peekChar
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   315
    ^ peekChar
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   316
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   317
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   318
peekChar:something
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   319
    peekChar := something.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   320
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   321
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   322
!WebKitRenderer::Channel methodsFor:'initialization'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   323
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   324
initializeOn: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   325
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   326
    socket := aReadStream.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   327
    buffer := String new writeStream.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   328
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   329
    "Created: / 07-06-2011 / 10:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   330
    "Modified: / 08-06-2011 / 13:12:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   331
! !
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   332
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   333
!WebKitRenderer::Channel methodsFor:'private'!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   334
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   335
contentsSpecies
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   336
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   337
    ^String
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   338
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   339
    "Created: / 08-06-2011 / 13:19:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   340
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   341
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   342
!WebKitRenderer::Channel methodsFor:'queries'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   343
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   344
isReadable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   345
    "return true, if reading is supported by the recevier.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   346
     This has to be redefined in concrete subclasses."
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   347
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   348
    ^ socket isReadable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   349
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   350
    "Modified: / 07-06-2011 / 10:46:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   351
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   352
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   353
isWritable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   354
    "return true, if writing is supported by the recevier.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   355
     This has to be redefined in concrete subclasses."
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   356
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   357
    ^ socket isWritable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   358
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   359
    "Modified: / 07-06-2011 / 10:46:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   360
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   361
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   362
!WebKitRenderer::Channel methodsFor:'reading'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   363
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   364
expect: aString
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   365
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   366
    | s |
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   367
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   368
    (s := self next: aString size) ~= aString
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   369
        ifTrue:[self error: 'Unexpect data in rendered channel'].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   370
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   371
    "Created: / 07-06-2011 / 10:55:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   372
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   373
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   374
next
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   375
    "return the next element of the stream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   376
     - we do not know here how to do it, it must be redefined in subclass"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   377
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   378
    | char |
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   379
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   380
    ^peekChar isNil ifFalse:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   381
        char := peekChar.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   382
        peekChar := nil.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   383
        char.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   384
    ] ifTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   385
        socket next
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   386
    ]
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   387
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   388
    "Modified: / 08-06-2011 / 13:02:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   389
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   390
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   391
next: n
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   392
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   393
    | nextn |
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   394
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   395
    peekChar isNil ifTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   396
        nextn := socket next: n
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   397
    ] ifFalse:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   398
        nextn := peekChar asString , socket next: n - 1.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   399
        peekChar := nil
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   400
    ].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   401
    ^nextn
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   402
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   403
    "Created: / 07-06-2011 / 11:01:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   404
    "Modified: / 08-06-2011 / 13:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   405
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   406
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   407
nextEvent
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   408
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   409
    | ev arg |
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   410
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   411
    ev := OrderedCollection new: 4.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   412
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   413
    self upTo:$E.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   414
    self expect: 'VENT ['.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   415
    self skipFor:$].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   416
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   417
    ev add: (self upTo: Character space).
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   418
    
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   419
    [ (arg := self nextStringOrSymbolOrNumber) notNil] whileTrue:
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   420
        [ev add: arg].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   421
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   422
    ^ev asArray
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   423
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   424
    "
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   425
        (WebKitRenderer::Channel on: 'EVENT [1234] LOAD_COMMIT ''http://www.smalltalk-x.de''' readStream)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   426
            nextEvent.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   427
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   428
        (WebKitRenderer::Channel on: 'EVENT [1234] TITLE ''This is title''' readStream)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   429
            nextEvent.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   430
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   431
        (WebKitRenderer::Channel on: 'EVENT [1234] TITLE ''rock\''n\''roll''' readStream)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   432
            nextEvent.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   433
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   434
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name str ''xxx''' readStream)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   435
            nextEvent.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   436
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   437
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name int 12' readStream)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   438
            nextEvent.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   439
10
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   440
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name float 1.2
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   441
EVENT [1234] VARIABLE_SET name string ''xxx''' readStream)
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   442
            nextEvent
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   443
        
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   444
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   445
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   446
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   447
    "
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   448
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   449
    "Created: / 07-06-2011 / 10:52:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   450
    "Modified: / 08-06-2011 / 13:45:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   451
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   452
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   453
nextNumberOrSymbol
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   454
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   455
    | contents |
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   456
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   457
    buffer reset.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   458
    buffer nextPut: self next.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   459
    [self atEnd not and:[self peek isAlphaNumeric]] whileTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   460
        buffer nextPut: self next.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   461
    ].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   462
    self peek == $. ifTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   463
        buffer nextPut: self next.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   464
        [self atEnd not and:[self peek isAlphaNumeric]] whileTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   465
            buffer nextPut: self next.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   466
        ]
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   467
    ].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   468
    contents := buffer contents.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   469
    (contents anySatisfy:[:c|c isLetter])
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   470
        ifTrue:[contents := contents asSymbol]
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   471
        ifFalse:[contents := contents asNumber].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   472
    ^contents.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   473
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   474
    "Created: / 08-06-2011 / 13:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   475
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   476
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   477
nextString
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   478
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   479
    | char |
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   480
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   481
    "/eat $'
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   482
    buffer reset.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   483
    self next.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   484
    [self atEnd not and:[(char := self next) ~~ $']] whileTrue:[
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   485
        char == $\ ifTrue:[char := self next].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   486
        buffer nextPut: char.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   487
    ].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   488
    ^buffer contents.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   489
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   490
    "Created: / 08-06-2011 / 13:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   491
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   492
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   493
nextStringOrSymbolOrNumber
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   494
10
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   495
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   496
    socket atEnd ifTrue:[^nil].
c8eeee6c945e Fixes in event reading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
   497
    self peek == Character cr ifTrue:[^nil]. 
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   498
    self skipSeparators.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   499
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   500
    self peek == $' ifTrue:[^self nextString].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   501
    self peek isDigit ifTrue:[^self nextNumberOrSymbol].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   502
    ^self nextSymbol
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   503
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   504
    "Created: / 08-06-2011 / 12:57:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   505
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   506
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   507
nextSymbol
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   508
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   509
    ^super nextSymbol asSymbol
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   510
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   511
    "Created: / 08-06-2011 / 13:20:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   512
!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   513
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   514
peek
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   515
    "return the next element of the stream without advancing (i.e.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   516
     the following send of next will return this element again.)
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   517
     - we do not know here how to do it, it must be redefined in subclass"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   518
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   519
    peekChar ifNil:[peekChar := socket next].
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   520
    ^peekChar.
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   521
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   522
    "Modified: / 08-06-2011 / 13:00:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   523
! !
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   524
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   525
!WebKitRenderer::Channel methodsFor:'reading (old)'!
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   526
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   527
old_nextEvent
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   528
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   529
    | ev |
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   530
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   531
    ev := OrderedCollection new: 4.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   532
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   533
    self upTo:$E.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   534
    self expect: 'VENT ['.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   535
    self skipFor:$].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   536
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   537
    ev add: (self upTo: Character space).
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   538
    
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   539
    [ self old_nextEventArgumentIn: ev ] whileTrue.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   540
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   541
    ^ev asArray
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   542
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   543
    "
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   544
        (WebKitRenderer::Channel on: 'EVENT [1234] LOAD_COMMIT ''http://www.smalltalk-x.de''' readStream)
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   545
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   546
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   547
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name str ''xxx''' readStream)
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   548
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   549
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   550
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name int 12' readStream)
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   551
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   552
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   553
        (WebKitRenderer::Channel on: 'EVENT [1234] VARIABLE_SET name float 1.2' readStream)
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   554
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   555
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   556
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   557
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   558
    "
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   559
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   560
    "Created: / 08-06-2011 / 12:57:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   561
!
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   562
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   563
old_nextEventArgumentIn: event
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   564
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   565
    | s c conv |
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   566
    s := String new writeStream.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   567
    [ socket atEnd not and:[(c := socket next) ~~ Character space and:[ c ~~ Character cr ] ] ] 
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   568
        whileTrue: [ 
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   569
            conv == nil ifTrue: [
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   570
                c == $' ifTrue:[conv := #asString. c := socket next.] ifFalse:[
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   571
                c isDigit ifTrue: [conv := #asNumber] ifFalse:[
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   572
                conv := #asSymbol]]
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   573
            ].
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   574
            (conv == #asNumber and:[c isDigit not and:[c ~~ $.]]) ifTrue:
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   575
                [conv := #asSymbol].
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   576
            s nextPut: c.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   577
    ].
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   578
    conv ifNotNil:[
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   579
        conv = #asString ifTrue:[s skip: -1].
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   580
        event add: (s contents perform: conv).
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   581
    ].
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   582
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   583
    ^c == Character space.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   584
9
267f2990f003 Event reading improved (spaces and escapes in string literals)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   585
    "Created: / 08-06-2011 / 12:47:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   586
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   587
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   588
!WebKitRenderer::Channel methodsFor:'testing'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   589
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   590
atEnd
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   591
    "return true if the end of the stream has been reached;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   592
     - we do not know here how to do it, it must be redefined in subclass"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   593
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   594
    ^ socket atEnd
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   595
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   596
    "Modified: / 07-06-2011 / 10:46:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   597
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   598
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   599
isEmpty
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   600
    "return true, if the contents of the stream is empty"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   601
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   602
    ^ socket isEmpty
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   603
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   604
    "Modified: / 07-06-2011 / 10:46:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   605
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   606
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   607
!WebKitRenderer::Channel methodsFor:'writing'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   608
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   609
cr
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   610
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   611
    ^ socket cr
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   612
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   613
    "Created: / 07-06-2011 / 10:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   614
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   615
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   616
nextPut:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   617
    "put the argument, anObject onto the receiver
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   618
     - we do not know here how to do it, it must be redefined in subclass"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   619
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   620
    ^ socket nextPut:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   621
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   622
    "Modified: / 07-06-2011 / 10:50:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   623
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   624
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   625
nextPutAll:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   626
    "put the argument, anObject onto the receiver
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   627
     - we do not know here how to do it, it must be redefined in subclass"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   628
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   629
    ^ socket nextPutAll:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   630
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   631
    "Created: / 07-06-2011 / 10:51:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   632
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   633
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   634
space
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   635
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   636
    ^ socket space
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   637
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   638
    "Created: / 07-06-2011 / 10:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   639
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   640
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   641
!WebKitRenderer class methodsFor:'documentation'!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
version_SVN
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   644
    ^ '$Id$'
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
! !
17
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   646
47ca84a7375e WebKitRenderer: added Debug class var
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   647
WebKitRenderer initialize!