WebKitRenderer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 07 Jun 2011 18:31:33 +0000
changeset 6 14d6a7489a64
parent 5 fd7b79a506cf
child 7 765e41c1aa8c
permissions -rw-r--r--
Fixes in event handling
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'
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
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
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    11
	instanceVariableNames:'socket'
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
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!WebKitRenderer class methodsFor:'instance creation'!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
for: aWebKitView
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    22
    ^self new initializeForView: aWebKitView
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    "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
    25
    "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
    26
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    28
!WebKitRenderer methodsFor:'commands'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    29
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    30
setVariable: name to: value
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    31
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    32
    channel ifNil:[^self].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    33
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    34
    channel
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    35
        nextPutAll: #set;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    36
        space;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    37
        nextPutAll: name;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    38
        nextPut:$=;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    39
        nextPutAll: value printString;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    40
        cr
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    41
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    42
    "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
    43
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    44
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    45
!WebKitRenderer methodsFor:'event handling'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    46
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    47
LOAD_COMMIT: event
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    48
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
    49
    view url value ~= event second ifTrue:
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
    50
        [view url value: event second].
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    51
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    52
    "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
    53
    "Modified: / 07-06-2011 / 19:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    54
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    55
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    56
!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
    57
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    58
dispatchEvent
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    59
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    60
    | ev sym |
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    61
    ev := channel nextEvent.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    62
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    63
    (self respondsTo: (sym := (ev first , ':') asSymbol))
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    64
        ifTrue:[self perform: sym with: ev]
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    65
        ifFalse:[Transcript showCR: 'UNKNOWN EVENT: ', ev asArray printString].
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    66
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    67
    "Created: / 06-06-2011 / 18:13:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    68
    "Modified: / 07-06-2011 / 11:35:34 / 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
    69
!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    70
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    71
eventLoop
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    72
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    73
    [ 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
    74
        self dispatchEvent 
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    75
    ]
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    76
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    77
    "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
    78
    "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
    79
! !
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    80
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    81
!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
    82
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    83
close
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    84
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    85
    "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
    86
    "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
    87
!
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    88
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    89
init
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    90
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    91
    self                                                            
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    92
        setVariable: #forward_keys to: 1;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    93
        setVariable: #show_status to: 0;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    94
        setVariable: #scrollbars_visible to: 1;
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    95
        setVariable: #url to: view url value;
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
        yourself
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    98
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    99
    "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
   100
    "Modified: / 07-06-2011 / 10:26:08 / 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
   101
!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
initializeForView: aWebKitView
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    view := aWebKitView.
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    "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
   108
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   110
!WebKitRenderer methodsFor:'private'!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   112
startEventLoop
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   113
    
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   114
    [ 
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   115
        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
   116
    ] fork
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   117
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   118
    "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
   119
!
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   121
waitFor
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   122
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   123
    socket listenFor: 1.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   124
    channel := Channel on: socket accept.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   125
    socket port asFilename remove.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   126
    socket close.
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   127
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   128
    "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
   129
    "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
   130
! !
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   132
!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
   133
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   134
spawn
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   135
    |path uzbl args|
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   137
    path := Filename newTemporary.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   138
    socket := Socket newUNIXserverAt:path pathName.
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   139
    uzbl := '/home/jv/work/uzbl/uzbl-core'.
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   140
    args := (Array 
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   141
                with:'/home/jv/work/uzbl/uzbl-core'
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   142
                with:'-s'
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   143
                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
   144
                with:'--connect-socket=' , path pathName).
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   145
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   146
    self startEventLoop.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   147
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   148
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   149
    pid := OperatingSystem
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   150
     exec: uzbl
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   151
     withArguments: args
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   152
     fork: true.
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    "Created: / 02-06-2011 / 23:40:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   155
    "Modified: / 07-06-2011 / 10:32:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
3
32456ba40192 Starts uzbl process and connects to its control socket
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   158
terminate
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    "Created: / 02-06-2011 / 23:40:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
! !
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   162
!WebKitRenderer::Channel class methodsFor:'instance creation'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   163
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   164
on: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   165
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   166
    ^self basicNew initializeOn: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   167
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   168
    "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
   169
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   170
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   171
!WebKitRenderer::Channel methodsFor:'accessing'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   172
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   173
contents
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   174
    "return the entire contents of the stream.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   175
     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
   176
     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
   177
     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
   178
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   179
    ^ self shouldNotImplement
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   180
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   181
    "Modified: / 07-06-2011 / 10:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   182
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   183
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   184
!WebKitRenderer::Channel methodsFor:'initialization'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   185
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   186
initializeOn: aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   187
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   188
    socket := aReadStream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   189
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   190
    "Created: / 07-06-2011 / 10:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   191
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   192
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   193
!WebKitRenderer::Channel methodsFor:'queries'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   194
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   195
isReadable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   196
    "return true, if reading is supported by the recevier.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   197
     This has to be redefined in concrete subclasses."
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   198
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   199
    ^ socket isReadable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   200
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   201
    "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
   202
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   203
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   204
isWritable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   205
    "return true, if writing is supported by the recevier.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   206
     This has to be redefined in concrete subclasses."
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   207
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   208
    ^ socket isWritable
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   209
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   210
    "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
   211
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   212
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   213
!WebKitRenderer::Channel methodsFor:'reading'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   214
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   215
expect: aString
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   216
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   217
    | s |
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   218
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   219
    (s := self next: aString size) ~= aString
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   220
        ifTrue:[self error: 'Unexpect data in rendered channel'].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   221
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   222
    "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
   223
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   224
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   225
next
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   226
    "return the next element of the stream
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   227
     - 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
   228
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   229
    ^ socket next
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   230
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   231
    "Modified: / 07-06-2011 / 10:46:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   232
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   233
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   234
next: n
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   235
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   236
    ^ socket next: n
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   237
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   238
    "Created: / 07-06-2011 / 11:01:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   239
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   240
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   241
nextEvent
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   242
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   243
    | ev |
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   244
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   245
    ev := OrderedCollection new: 4.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   246
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   247
    self upTo:$E.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   248
    self expect: 'VENT ['.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   249
    self skipFor:$].
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   250
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   251
    ev add: (self upTo: Character space).
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   252
    
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   253
    [ self nextEventArgumentIn: ev ] whileTrue.
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   254
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   255
    ^ev asArray
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   256
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   257
    "
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   258
        (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
   259
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   260
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   261
        (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
   262
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   263
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   264
        (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
   265
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   266
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   267
        (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
   268
            nextEvent.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   269
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   270
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   271
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   272
    "
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   273
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   274
    "Created: / 07-06-2011 / 10:52:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   275
    "Modified: / 07-06-2011 / 19:26:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   276
!
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   277
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   278
nextEventArgumentIn: event
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   279
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   280
    | s c conv |
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   281
    s := String new writeStream.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   282
    [ 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
   283
        whileTrue: [ 
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   284
            conv == nil ifTrue: [
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   285
                c == $' ifTrue:[conv := #asString. c := socket next.] ifFalse:[
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   286
                c isDigit ifTrue: [conv := #asNumber] ifFalse:[
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   287
                conv := #asSymbol]]
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   288
            ].
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   289
            (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
   290
                [conv := #asSymbol].
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   291
            s nextPut: c.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   292
    ].
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   293
    conv ifNotNil:[
6
14d6a7489a64 Fixes in event handling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   294
        conv = #asString ifTrue:[s skip: -1].
5
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   295
        event add: (s contents perform: conv).
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   296
    ].
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   297
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   298
    ^c == Character space.
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   299
fd7b79a506cf Event parsing improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   300
    "Created: / 07-06-2011 / 19:01:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   301
!
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
peek
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   304
    "return the next element of the stream without advancing (i.e.
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   305
     the following send of next will return this element again.)
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   306
     - 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
   307
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   308
    ^ self shouldImplement
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   309
!
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
skipFor: obj
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   312
    ^ socket skipFor: obj
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   313
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   314
    "Created: / 07-06-2011 / 11:03:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   315
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   316
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   317
upTo: obj
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   318
    ^ socket upTo: obj
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   319
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   320
    "Created: / 07-06-2011 / 11:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   323
!WebKitRenderer::Channel methodsFor:'testing'!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   324
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   325
atEnd
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   326
    "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
   327
     - 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
   328
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   329
    ^ socket atEnd
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   330
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   331
    "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
   332
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   333
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   334
isEmpty
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   335
    "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
   336
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   337
    ^ socket isEmpty
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   338
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   339
    "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
   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:'writing'!
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
cr
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   345
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   346
    ^ socket cr
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
    "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
   349
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   350
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   351
nextPut:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   352
    "put the argument, anObject onto the receiver
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   353
     - 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
   354
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   355
    ^ socket nextPut:anObject
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
    "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
   358
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   359
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   360
nextPutAll:anObject
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   361
    "put the argument, anObject onto the receiver
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   362
     - 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
   363
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   364
    ^ socket nextPutAll:anObject
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
    "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
   367
!
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   368
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   369
space
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
    ^ socket space
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
    "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
   374
! !
385102f5bf00 Simple event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   375
2
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
!WebKitRenderer class methodsFor:'documentation'!
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
version_SVN
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
    ^ '$Id$'
7e604e6f195e Minor refactoring...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
! !