summary refs log tree commit diff stats
path: root/doc/pydoc/ranger.ext.accumulator.html
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-04-07 00:57:26 +0200
committerhut <hut@lavabit.com>2010-04-07 00:57:26 +0200
commit26aa5c8e7272105a15b9cc7cbbfb0ca789701d55 (patch)
tree59db9debbecce56fcc275686a3d89d156590e129 /doc/pydoc/ranger.ext.accumulator.html
parent43d4c88cfae47d1726a2ab9ad78d16bbbedc9a9a (diff)
downloadranger-26aa5c8e7272105a15b9cc7cbbfb0ca789701d55.tar.gz
make clean: fixed
Diffstat (limited to 'doc/pydoc/ranger.ext.accumulator.html')
0 files changed, 0 insertions, 0 deletions
lame the previous revision' href='/akkartik/mu/blame/html/074keyboard.mu.html?h=main&id=fedebaf5dbc1b39347ad3e3a1580fa0190c320b6'>^
672e3e50 ^
90560d71 ^

672e3e50 ^










dbe12410 ^

672e3e50 ^
dbe12410 ^



90560d71 ^
dbe12410 ^








90560d71 ^




dbe12410 ^
d44123ca ^
dbe12410 ^
d44123ca ^
672e3e50 ^
dbe12410 ^
762b099e ^
4fe9f5e8 ^

9570363a ^
4fe9f5e8 ^
9570363a ^

65361948 ^
672e3e50 ^
dbe12410 ^
762b099e ^
dbe12410 ^
672e3e50 ^
9570363a ^
4fe9f5e8 ^

672e3e50 ^
9570363a ^


4fe9f5e8 ^
9570363a ^
672e3e50 ^
9570363a ^


672e3e50 ^
90560d71 ^
dbe12410 ^
9570363a ^
65361948 ^
672e3e50 ^
dbe12410 ^



762b099e ^
dbe12410 ^
9570363a ^


4fe9f5e8 ^
9570363a ^

65361948 ^

c5ffb6e1 ^
762b099e ^
dbe12410 ^
d44123ca ^

65361948 ^
9570363a ^





d44123ca ^
65361948 ^
9570363a ^
65361948 ^
dbe12410 ^

762b099e ^
dbe12410 ^

9570363a ^

dbe12410 ^
9570363a ^
dbe12410 ^
d5d908dd ^


762b099e ^
d5d908dd ^

9570363a ^
d5d908dd ^
9570363a ^
d5d908dd ^

9570363a ^
d5d908dd ^
672e3e50 ^



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149



                                                                                          
                                 






                                                                                         

                                                                                                 
                        
                             

                             
                            

                              










                               

                                                                                                         
 



                                                                                                  
                     








                                                                                           




                        
                   
              
                          
 
 
                                                       
                                           

                                                                                                                                       
                                                                                       
                                                                                                                       

                                                                              
 
 
                                                 
                                           
                                                                                                    
                                  
                                                 

                                                                                                                    
                                    


                                                                                 
                                                                                                         
                                                                                                                                                                                    
                                    


                                                                                                                                                                                  
                                  
                                                                                                   
                                                                                       
                                                                                                                                                 
 
 



                                                                                                         
                                           
                                                                                                  


                                                                                                                                                                
                                                                                                                    

                                                                                                                                                                                                                         

 
                                                           
                                           
                                                                                                  

                                                                                                       
                                  





                                                                                                           
                                       
                                  
                                                                                                                                                                                                                     
 

                                                     
                                           

                                                                                                  

                                                                                    
                                  
                                                                                                 
 


                                                                                                          
                                           

                                                                                                  
                                                       
                                                                                  
                                                                              

                                                                      
                                             
 



                                     
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Mu - 074console.mu</title>
<meta name="Generator" content="Vim/7.4">
<meta name="plugin-version" content="vim7.4_v1">
<meta name="syntax" content="none">
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy=">
<meta name="colorscheme" content="minimal">
<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #eeeeee; background-color: #080808; }
body { font-family: monospace; color: #eeeeee; background-color: #080808; }
* { font-size: 1.05em; }
.muRecipe { color: #ff8700; }
.Comment { color: #9090ff; }
.Constant { color: #00a0a0; }
.Special { color: #ff6060; }
.Delimiter { color: #a04060; }
.muControl { color: #c0a020; }
-->
</style>

<script type='text/javascript'>
<!--

-->
</script>
</head>
<body>
<pre id='vimCodeElement'>
<span class="Comment"># Wrappers around interaction primitives that take a potentially fake object</span>
<span class="Comment"># and are thus easier to test.</span>

exclusive-container event [
  text:character
  keycode:number  <span class="Comment"># keys on keyboard without a unicode representation</span>
  touch:touch-event  <span class="Comment"># mouse, track ball, etc.</span>
  resize:resize-event
  <span class="Comment"># update the assume-console handler if you add more variants</span>
]

container touch-event [
  type:number
  row:number
  column:number
]

container resize-event [
  width:number
  height:number
]

container console [
  index:number
  data:address:array:event
]

<span class="muRecipe">recipe</span> new-fake-console [
  <span class="Constant">local-scope</span>
  result:address:console<span class="Special"> &lt;- </span>new <span class="Constant">console:type</span>
  buf:address:address:array:character<span class="Special"> &lt;- </span>get-address *result, <span class="Constant">data:offset</span>
  *buf<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  idx:address:number<span class="Special"> &lt;- </span>get-address *result, <span class="Constant">index:offset</span>
  *idx<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>
  <span class="muControl">reply</span> result
]

<span class="muRecipe">recipe</span> read-event [
  <span class="Constant">local-scope</span>
  x:address:console<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  <span class="Delimiter">{</span>
    <span class="muControl">break-unless</span> x
    idx:address:number<span class="Special"> &lt;- </span>get-address *x, <span class="Constant">index:offset</span>
    buf:address:array:event<span class="Special"> &lt;- </span>get *x, <span class="Constant">data:offset</span>
    <span class="Delimiter">{</span>
      max:number<span class="Special"> &lt;- </span>length *buf
      done?:boolean<span class="Special"> &lt;- </span>greater-or-equal *idx, max
      <span class="muControl">break-unless</span> done?
      dummy:address:event<span class="Special"> &lt;- </span>new <span class="Constant">event:type</span>
      <span class="muControl">reply</span> *dummy, x/same-as-ingredient:<span class="Constant">0</span>, <span class="Constant">1/found</span>, <span class="Constant">1/quit</span>
    <span class="Delimiter">}</span>
    result:event<span class="Special"> &lt;- </span>index *buf, *idx
    *idx<span class="Special"> &lt;- </span>add *idx, <span class="Constant">1</span>
    <span class="muControl">reply</span> result, x/same-as-ingredient:<span class="Constant">0</span>, <span class="Constant">1/found</span>, <span class="Constant">0/quit</span>
  <span class="Delimiter">}</span>
  switch  <span class="Comment"># real event source is infrequent; avoid polling it too much</span>
  result:event, found?:boolean<span class="Special"> &lt;- </span>check-for-interaction
  <span class="muControl">reply</span> result, x/same-as-ingredient:<span class="Constant">0</span>, found?, <span class="Constant">0/quit</span>
]

<span class="Comment"># variant of read-event for just keyboard events. Discards everything that</span>
<span class="Comment"># isn't unicode, so no arrow keys, page-up/page-down, etc. But you still get</span>
<span class="Comment"># newlines, tabs, ctrl-d..</span>
<span class="muRecipe">recipe</span> read-key [
  <span class="Constant">local-scope</span>
  console:address<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  x:event, console, found?:boolean, quit?:boolean<span class="Special"> &lt;- </span>read-event console
  <span class="muControl">reply-if</span> quit?, <span class="Constant">0</span>, console/same-as-ingredient:<span class="Constant">0</span>, found?, quit?
  <span class="muControl">reply-unless</span> found?, <span class="Constant">0</span>, console/same-as-ingredient:<span class="Constant">0</span>, found?, quit?
  c:address:character<span class="Special"> &lt;- </span>maybe-convert x, <span class="Constant">text:variant</span>
  <span class="muControl">reply-unless</span> c, <span class="Constant">0</span>, console/same-as-ingredient:<span class="Constant">0</span>, <span class="Constant">0/found</span>, <span class="Constant">0/quit</span>
  <span class="muControl">reply</span> *c, console/same-as-ingredient:<span class="Constant">0</span>, <span class="Constant">1/found</span>, <span class="Constant">0/quit</span>
]

<span class="muRecipe">recipe</span> send-keys-to-channel [
  <span class="Constant">local-scope</span>
  console:address<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  chan:address:channel<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  screen:address<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  <span class="Delimiter">{</span>
    c:character, console, found?:boolean, quit?:boolean<span class="Special"> &lt;- </span>read-key console
    <span class="muControl">loop-unless</span> found?
    <span class="muControl">break-if</span> quit?
    assert c, <span class="Constant">[invalid event, expected text]</span>
    screen<span class="Special"> &lt;- </span>print-character screen, c
    chan<span class="Special"> &lt;- </span>write chan, c
    <span class="muControl">loop</span>
  <span class="Delimiter">}</span>
  <span class="muControl">reply</span> console/same-as-ingredient:<span class="Constant">0</span>, chan/same-as-ingredient:<span class="Constant">1</span>, screen/same-as-ingredient:<span class="Constant">2</span>
]

<span class="muRecipe">recipe</span> wait-for-event [
  <span class="Constant">local-scope</span>
  console:address<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  <span class="Delimiter">{</span>
    _, console, found?:boolean<span class="Special"> &lt;- </span>read-event console
    <span class="muControl">loop-unless</span> found?
  <span class="Delimiter">}</span>
  <span class="muControl">reply</span> console/same-as-ingredient:<span class="Constant">0</span>
]

<span class="Comment"># use this helper to skip rendering if there's lots of other events queued up</span>
<span class="muRecipe">recipe</span> has-more-events? [
  <span class="Constant">local-scope</span>
  console:address<span class="Special"> &lt;- </span><span class="Constant">next-ingredient</span>
  <span class="Delimiter">{</span>
    <span class="muControl">break-unless</span> console
    <span class="Comment"># fake consoles should be plenty fast; never skip</span>
    <span class="muControl">reply</span> <span class="Constant">0/false</span>
  <span class="Delimiter">}</span>
  result:boolean<span class="Special"> &lt;- </span>interactions-left?
  <span class="muControl">reply</span> result
]
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->