summary refs log tree commit diff stats
path: root/doc/pydoc/ranger.shared.settings.html
blob: ddee912db52505697136b96f2a29480abe18ec67 (plain) (blame)
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module ranger.shared.settings</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.shared.html"><font color="#ffffff">shared</font></a>.settings</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/code/ranger/ranger/shared/settings.py">/home/hut/code/ranger/ranger/shared/settings.py</a></font></td></tr></table>
    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
#<br>
#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
#<br>
#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
#<br>
#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">SettingsAware</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>(<a href="builtins.html#object">builtins.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingObject">SettingObject</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SettingObject">class <strong>SettingObject</strong></a>(<a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>)</font></td></tr>
    
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="ranger.shared.settings.html#SettingObject">SettingObject</a></dd>
<dd><a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="SettingObject-__getattr__"><strong>__getattr__</strong></a>(self, name)</dt></dl>

<dl><dt><a name="SettingObject-__getitem__"><strong>__getitem__</strong></a> = <a href="#SettingObject-__getattr__">__getattr__</a>(self, name)</dt></dl>

<dl><dt><a name="SettingObject-__init__"><strong>__init__</strong></a>(self)</dt></dl>

<dl><dt><a name="SettingObject-__iter__"><strong>__iter__</strong></a>(self)</dt></dl>

<dl><dt><a name="SettingObject-__setattr__"><strong>__setattr__</strong></a>(self, name, value)</dt></dl>

<dl><dt><a name="SettingObject-__setitem__"><strong>__setitem__</strong></a> = <a href="#SettingObject-__setattr__">__setattr__</a>(self, name, value)</dt></dl>

<dl><dt><a name="SettingObject-types_of"><strong>types_of</strong></a>(self, name)</dt></dl>

<hr>
Methods inherited from <a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>:<br>
<dl><dt><a name="SettingObject-signal_bind"><strong>signal_bind</strong></a>(self, signal_name, function, priority<font color="#909090">=0.5</font>, weak<font color="#909090">=False</font>)</dt></dl>

<dl><dt><a name="SettingObject-signal_clear"><strong>signal_clear</strong></a> = __init__(self)</dt></dl>

<dl><dt><a name="SettingObject-signal_emit"><strong>signal_emit</strong></a>(self, signal_name, **kw)</dt></dl>

<dl><dt><a name="SettingObject-signal_unbind"><strong>signal_unbind</strong></a>(self, signal_handler)</dt></dl>

<hr>
Data descriptors inherited from <a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SettingsAware">class <strong>SettingsAware</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>#&nbsp;--&nbsp;globalize&nbsp;the&nbsp;settings&nbsp;--<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>settings</strong> = {}</dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>ALLOWED_SETTINGS</strong> = {'autosave_bookmarks': &lt;class 'bool'&gt;, 'collapse_preview': &lt;class 'bool'&gt;, 'colorscheme': &lt;class 'str'&gt;, 'colorscheme_overlay': (&lt;class 'NoneType'&gt;, &lt;class 'function'&gt;), 'column_ratios': (&lt;class 'tuple'&gt;, &lt;class 'list'&gt;, &lt;class 'set'&gt;), 'dirname_in_tabs': &lt;class 'bool'&gt;, 'display_size_in_main_column': &lt;class 'bool'&gt;, 'display_size_in_status_bar': &lt;class 'bool'&gt;, 'draw_bookmark_borders': &lt;class 'bool'&gt;, 'draw_borders': &lt;class 'bool'&gt;, ...}</td></tr></table>
</body></html>
ar curr/ebx: int <- _read-pgm-buffer buf, x, y, width curr <- add error _write-pgm-buffer buf, x, y, width, curr } fn _read-pgm-buffer _buf: (addr array int), x: int, y: int, width: int -> _/ebx: int { var buf/esi: (addr array int) <- copy _buf var idx/ecx: int <- copy y idx <- multiply width idx <- add x #? psd "i", idx, 5/fg, x, y var result-a/eax: (addr int) <- index buf, idx return *result-a } fn _write-pgm-buffer _buf: (addr array int), x: int, y: int, width: int, val: int { var buf/esi: (addr array int) <- copy _buf var idx/ecx: int <- copy y idx <- multiply width idx <- add x #? draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, idx, 7/fg 0/bg #? move-cursor-to-left-margin-of-next-line 0/screen var src/eax: int <- copy val var dest-a/edi: (addr int) <- index buf, idx copy-to *dest-a, src } fn _read-pgm-byte-buffer _buf: (addr array byte), x: int, y: int, width: int -> _/eax: byte { var buf/esi: (addr array byte) <- copy _buf var idx/ecx: int <- copy y idx <- multiply width idx <- add x var result-a/eax: (addr byte) <- index buf, idx var result/eax: byte <- copy-byte *result-a return result } fn _write-pgm-byte-buffer _buf: (addr array byte), x: int, y: int, width: int, val: byte { var buf/esi: (addr array byte) <- copy _buf var idx/ecx: int <- copy y idx <- multiply width idx <- add x var src/eax: byte <- copy val var dest-a/edi: (addr byte) <- index buf, idx copy-byte-to *dest-a, src } fn show-errors buf: (addr array int), width: int, height: int, x: int, y: int { compare y, 1 { break-if-= return } compare x, 0 { break-if-= return } var y/edx: int <- copy 0 { compare y, height break-if->= var x/ecx: int <- copy 0 { compare x, width break-if->= var error/ebx: int <- _read-pgm-buffer buf, x, y, width psd "e", error, 5/fg, x, y x <- increment loop } move-cursor-to-left-margin-of-next-line 0/screen y <- increment loop } } fn psd s: (addr array byte), d: int, fg: int, x: int, y: int { #? { #? compare y, 3 #? break-if-= #? return #? } #? { #? compare x, 4 #? break-if-< #? return #? } draw-text-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, s, 7/fg 0/bg draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, d, fg 0/bg } # import a color ascii "pixmap" (each pixel consists of 3 shades of r/g/b from 0 to 255) fn initialize-image-from-ppm _self: (addr image), in: (addr stream byte) { var self/esi: (addr image) <- copy _self var curr-word-storage: slice var curr-word/ecx: (addr slice) <- address curr-word-storage # load width, height next-word in, curr-word var tmp/eax: int <- parse-decimal-int-from-slice curr-word var width/edx: int <- copy tmp next-word in, curr-word tmp <- parse-decimal-int-from-slice curr-word var height/ebx: int <- copy tmp next-word in, curr-word # check color levels { tmp <- parse-decimal-int-from-slice curr-word compare tmp, 0xff break-if-= abort "initialize-image-from-ppm: supports exactly 255 levels per rgb channel" } var dest/edi: (addr int) <- get self, max copy-to *dest, tmp # save width, height dest <- get self, width copy-to *dest, width dest <- get self, height copy-to *dest, height # initialize data var capacity/edx: int <- copy width capacity <- multiply height # . multiply by 3 for the r/g/b channels var tmp/eax: int <- copy capacity tmp <- shift-left 1 capacity <- add tmp # var data-ah/edi: (addr handle array byte) <- get self, data populate data-ah, capacity var _data/eax: (addr array byte) <- lookup *data-ah var data/edi: (addr array byte) <- copy _data var i/ebx: int <- copy 0 { compare i, capacity break-if->= next-word in, curr-word var src/eax: int <- parse-decimal-int-from-slice curr-word { var dest/ecx: (addr byte) <- index data, i copy-byte-to *dest, src } i <- increment loop } } # import a color ascii "pixmap" (each pixel consists of 3 shades of r/g/b from 0 to 255) fn render-ppm-image screen: (addr screen), _img: (addr image), xmin: int, ymin: int, width: int, height: int { var img/esi: (addr image) <- copy _img # yratio = height/img->height var img-height-a/eax: (addr int) <- get img, height var img-height/xmm0: float <- convert *img-height-a var yratio/xmm1: float <- convert height yratio <- divide img-height # xratio = width/img->width var img-width-a/eax: (addr int) <- get img, width var img-width/ebx: int <- copy *img-width-a var img-width-f/xmm0: float <- convert img-width var xratio/xmm2: float <- convert width xratio <- divide img-width-f # esi = img->data var img-data-ah/eax: (addr handle array byte) <- get img, data var _img-data/eax: (addr array byte) <- lookup *img-data-ah var img-data/esi: (addr array byte) <- copy _img-data var len/edi: int <- length img-data # var one/eax: int <- copy 1 var one-f/xmm3: float <- convert one var width-f/xmm4: float <- convert width var height-f/xmm5: float <- convert height var zero/eax: int <- copy 0 var zero-f/xmm0: float <- convert zero var y/xmm6: float <- copy zero-f set-cursor-position 0/screen, 0x20/x 0x20/y { compare y, height-f break-if-float>= var imgy-f/xmm5: float <- copy y imgy-f <- divide yratio var imgy/edx: int <- truncate imgy-f var x/xmm7: float <- copy zero-f { compare x, width-f break-if-float>= var imgx-f/xmm5: float <- copy x imgx-f <- divide xratio var imgx/ecx: int <- truncate imgx-f var idx/eax: int <- copy imgy idx <- multiply img-width idx <- add imgx # . multiply by 3 for the r/g/b channels { var tmp/ecx: int <- copy idx tmp <- shift-left 1 idx <- add tmp } # error info in case we rounded wrong and 'index' will fail bounds-check compare idx, len { break-if-< set-cursor-position 0/screen, 0x20/x 0x20/y draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, imgx, 3/fg 0/bg draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, imgy, 4/fg 0/bg draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, idx, 5/fg 0/bg } # r channel var r: int { var src-a/eax: (addr byte) <- index img-data, idx var src/eax: byte <- copy-byte *src-a copy-to r, src } idx <- increment # g channel var g: int { var src-a/eax: (addr byte) <- index img-data, idx var src/eax: byte <- copy-byte *src-a copy-to g, src } idx <- increment # b channel var b: int { var src-a/eax: (addr byte) <- index img-data, idx var src/eax: byte <- copy-byte *src-a copy-to b, src } idx <- increment # color-int = nearest-hsl(r, g, b) var color-int: int { var h/ecx: int <- copy 0 var s/edx: int <- copy 0 var l/ebx: int <- copy 0 h, s, l <- hsl r, g, b var tmp/eax: int <- nearest-color-euclidean-hsl h, s, l copy-to color-int, tmp } # var screenx/ecx: int <- convert x screenx <- add xmin var screeny/edx: int <- convert y screeny <- add ymin pixel screen, screenx, screeny, color-int x <- add one-f loop } y <- add one-f loop } }