gtk-stream 0.10__py3-none-any.whl → 0.11.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gtk_stream/_version.py +2 -2
- gtk_stream/application.py +42 -18
- gtk_stream/documents/__init__.py +1 -0
- gtk_stream/documents/classes/Button.py +4 -3
- gtk_stream/documents/classes/Document.py +7 -1
- gtk_stream/documents/classes/Dropdown.py +7 -3
- gtk_stream/documents/classes/Entry.py +4 -2
- gtk_stream/documents/classes/Scale.py +30 -0
- gtk_stream/documents/classes/Switch.py +4 -4
- gtk_stream/parser.py +40 -82
- gtk_stream/properties.py +16 -1
- {gtk_stream-0.10.dist-info → gtk_stream-0.11.1.dist-info}/METADATA +1 -1
- gtk_stream-0.11.1.dist-info/RECORD +31 -0
- gtk_stream-0.10.dist-info/RECORD +0 -30
- {gtk_stream-0.10.dist-info → gtk_stream-0.11.1.dist-info}/WHEEL +0 -0
- {gtk_stream-0.10.dist-info → gtk_stream-0.11.1.dist-info}/entry_points.txt +0 -0
- {gtk_stream-0.10.dist-info → gtk_stream-0.11.1.dist-info}/top_level.txt +0 -0
gtk_stream/_version.py
CHANGED
gtk_stream/application.py
CHANGED
@@ -19,14 +19,33 @@ from . import Gtk, GLib, Gdk
|
|
19
19
|
from .common import printEvent
|
20
20
|
from .properties import parse_property, get_prop_type, set_parse_prop
|
21
21
|
|
22
|
-
|
22
|
+
class _Object:
|
23
|
+
pass
|
24
|
+
|
25
|
+
def app_message(name, store = None):
|
23
26
|
"""A decorator for methods that are both called from the pilot
|
24
27
|
application and need access to the gtk main thread"""
|
25
|
-
def
|
26
|
-
def
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
def app_message_f(f):
|
29
|
+
def ret(self, *args, **kwargs):
|
30
|
+
def cb():
|
31
|
+
f(self, *args, **kwargs)
|
32
|
+
self.run_when_idle(cb)
|
33
|
+
ret.__tag_name__ = name
|
34
|
+
ret.__store__ = store
|
35
|
+
return ret
|
36
|
+
return app_message_f
|
37
|
+
|
38
|
+
def single_store():
|
39
|
+
store = _Object()
|
40
|
+
def setChild(child):
|
41
|
+
store.child = child
|
42
|
+
return (lambda: store.child, setChild, None)
|
43
|
+
def multiple_store():
|
44
|
+
children = []
|
45
|
+
return (lambda: children, children.append, None)
|
46
|
+
def style_store():
|
47
|
+
style = []
|
48
|
+
return (lambda: " ".join(style),None, style.append)
|
30
49
|
|
31
50
|
class GtkStreamApp(Gtk.Application):
|
32
51
|
def __init__(self, logger, name = None, **kwargs):
|
@@ -57,7 +76,7 @@ class GtkStreamApp(Gtk.Application):
|
|
57
76
|
if id is not None:
|
58
77
|
self.namedWidgets[id] = w
|
59
78
|
|
60
|
-
@
|
79
|
+
@app_message('file-dialog')
|
61
80
|
def openFileDialog(self, id, parent):
|
62
81
|
dialog = Gtk.FileDialog()
|
63
82
|
dialog.props.modal = True
|
@@ -72,45 +91,50 @@ class GtkStreamApp(Gtk.Application):
|
|
72
91
|
|
73
92
|
dialog.open(parent = self.namedWindows[parent], callback = on_choose)
|
74
93
|
|
75
|
-
@
|
94
|
+
@app_message('window', single_store)
|
76
95
|
def newWindow(self, document, id, **attrs):
|
77
96
|
win = Gtk.Window(application=self)
|
78
97
|
for (attr_name, attr_val) in attrs.items():
|
98
|
+
self.logger.debug("Setting attr '%s' on window", attr_name)
|
79
99
|
set_parse_prop(self, win, attr_name, attr_val)
|
80
100
|
self.namedWindows[id] = win
|
81
101
|
win.set_child(document.render())
|
82
102
|
win.connect('close-request', printEvent(self.logger, 'close-request', id))
|
83
103
|
win.present()
|
84
104
|
|
85
|
-
@
|
105
|
+
@app_message('style', style_store)
|
86
106
|
def addStyle(self, style):
|
87
107
|
provider = Gtk.CssProvider()
|
88
108
|
provider.load_from_data(style)
|
89
109
|
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
90
110
|
|
91
|
-
@
|
111
|
+
@app_message('add-icon-path')
|
92
112
|
def addIconPath(self, path):
|
93
113
|
theme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default())
|
94
114
|
theme.add_search_path(path)
|
95
115
|
|
96
|
-
@
|
116
|
+
@app_message('close-window')
|
97
117
|
def closeWindow(self, id):
|
98
118
|
self.namedWindows[id].close()
|
99
119
|
|
100
|
-
@
|
120
|
+
@app_message('remove')
|
101
121
|
def removeWidget(self, id):
|
102
122
|
w = self.namedWidgets[id]
|
103
123
|
w.get_parent().remove(w)
|
104
124
|
|
105
|
-
@
|
106
|
-
def
|
107
|
-
|
108
|
-
|
125
|
+
@app_message('insert', multiple_store)
|
126
|
+
def insertWidgets(self, documents, into):
|
127
|
+
for doc in documents:
|
128
|
+
self.insertWidget(doc, into)
|
129
|
+
|
130
|
+
def insertWidget(self, document, into):
|
131
|
+
if into in self.namedWidgets:
|
132
|
+
w = self.namedWidgets[into]
|
109
133
|
w.insert_child(document)
|
110
134
|
else:
|
111
|
-
raise Exception(f"Error: unknown widget id '{
|
135
|
+
raise Exception(f"Error: unknown widget id '{into}'")
|
112
136
|
|
113
|
-
@
|
137
|
+
@app_message('set-prop')
|
114
138
|
def setProp(self, id, name, value):
|
115
139
|
w = self.namedWidgets[id]
|
116
140
|
w.set_property(name, parse_property(get_prop_type(w.__class__, name), value)(self))
|
gtk_stream/documents/__init__.py
CHANGED
@@ -6,6 +6,7 @@ from .classes.ProgressBar import ProgressBar
|
|
6
6
|
from .classes.Separator import Separator
|
7
7
|
|
8
8
|
from .classes.Button import Button, LinkButton
|
9
|
+
from .classes.Scale import Scale
|
9
10
|
from .classes.Dropdown import Dropdown, Item
|
10
11
|
from .classes.Switch import Switch
|
11
12
|
from .classes.Entry import Entry
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
|
17
17
|
from ... import Gtk
|
18
|
-
from ...common import printEvent
|
19
18
|
from .. import Document
|
20
19
|
|
21
20
|
class Button(Document):
|
@@ -24,7 +23,7 @@ class Button(Document):
|
|
24
23
|
super().__init__(app, id = id, **kwargs)
|
25
24
|
def render_raw(self):
|
26
25
|
button = Gtk.Button()
|
27
|
-
|
26
|
+
self.connect_event(button, 'clicked', 'clicked')
|
28
27
|
return button
|
29
28
|
def insert_child(self, w, d):
|
30
29
|
w.set_child(d.render())
|
@@ -35,7 +34,9 @@ class LinkButton(Button):
|
|
35
34
|
super().__init__(app, id=id, **kwargs)
|
36
35
|
def render_raw(self):
|
37
36
|
button = Gtk.LinkButton()
|
38
|
-
|
37
|
+
self.connect_event(
|
38
|
+
button, 'activate-link', 'clicked',
|
39
|
+
retval = True)
|
39
40
|
return button
|
40
41
|
def insert_child(self, w, d):
|
41
42
|
w.set_child(d.render())
|
@@ -15,15 +15,21 @@
|
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
|
17
17
|
from ...properties import parse_property, get_prop_type
|
18
|
+
from ...common import printEvent
|
18
19
|
|
19
20
|
class Document:
|
20
21
|
__g_class__ = None
|
21
22
|
def __init__(self, app, id = None, **attrs):
|
22
23
|
self.id = id
|
23
24
|
self.app = app
|
24
|
-
self.props = {
|
25
|
+
self.props = {
|
26
|
+
attr: parse_property(get_prop_type(self.__g_class__, attr), val)
|
27
|
+
for (attr, val) in attrs.items()
|
28
|
+
}
|
25
29
|
self.children = []
|
26
30
|
|
31
|
+
def connect_event(self, w, event, name, **printEvent_kwargs):
|
32
|
+
w.connect(event, printEvent(self.app.logger, name, self.id, **printEvent_kwargs))
|
27
33
|
def add_child(self, child):
|
28
34
|
self.children.append(child)
|
29
35
|
|
@@ -16,7 +16,6 @@
|
|
16
16
|
|
17
17
|
from ... import Gtk, Gio, GObject
|
18
18
|
from .. import Document
|
19
|
-
from ...common import printEvent
|
20
19
|
|
21
20
|
class Item(Document):
|
22
21
|
def __init__(self, app, value, **kwargs):
|
@@ -57,9 +56,14 @@ class Dropdown(Document):
|
|
57
56
|
factory.connect("setup", on_list_setup)
|
58
57
|
factory.connect("bind", on_list_bind)
|
59
58
|
|
60
|
-
ret = Gtk.DropDown(
|
59
|
+
ret = Gtk.DropDown(
|
60
|
+
model=model,
|
61
|
+
expression=Gtk.PropertyExpression.new(_ItemObject, None, 'item_value'),
|
62
|
+
factory=factory)
|
61
63
|
|
62
|
-
|
64
|
+
self.connect_event(
|
65
|
+
ret, 'notify::selected-item', 'selected',
|
66
|
+
get_data = lambda w,_: w.get_selected_item().value)
|
63
67
|
return ret
|
64
68
|
def insert_child(self, w, d):
|
65
69
|
pass
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
|
17
17
|
from ... import Gtk
|
18
|
-
from ...common import printEvent
|
19
18
|
from .. import Document
|
20
19
|
|
21
20
|
class Entry(Document):
|
@@ -24,5 +23,8 @@ class Entry(Document):
|
|
24
23
|
super().__init__(app, id = id, **kwargs)
|
25
24
|
def render_raw(self):
|
26
25
|
entry = Gtk.Entry()
|
27
|
-
|
26
|
+
self.connect_event(
|
27
|
+
entry, 'changed', 'changed',
|
28
|
+
get_data = lambda _: entry.get_text()
|
29
|
+
)
|
28
30
|
return entry
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Gtk-Stream : A stream-based GUI protocol
|
2
|
+
# Copyright (C) 2024 Marc Coiffier
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
from ... import Gtk
|
18
|
+
from .. import Document
|
19
|
+
|
20
|
+
class Scale(Document):
|
21
|
+
__g_class__ = Gtk.Scale
|
22
|
+
def __init__(self, app, id, **kwargs):
|
23
|
+
super().__init__(app, id = id, **kwargs)
|
24
|
+
def render_raw(self):
|
25
|
+
scale = Gtk.Scale()
|
26
|
+
self.connect_event(
|
27
|
+
scale, 'value-changed', 'changed',
|
28
|
+
get_data = lambda _: str(scale.get_value())
|
29
|
+
)
|
30
|
+
return scale
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
|
17
17
|
from ... import Gtk
|
18
|
-
from ...common import printEvent
|
19
18
|
from .. import Document
|
20
19
|
from ...properties import parse_property
|
21
20
|
|
@@ -26,7 +25,8 @@ class Switch(Document):
|
|
26
25
|
self.managed = parse_property('gboolean', managed)(app)
|
27
26
|
def render_raw(self):
|
28
27
|
ret = Gtk.Switch()
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
self.connect_event(
|
29
|
+
ret, 'state-set', 'switch',
|
30
|
+
retval = self.managed,
|
31
|
+
get_data = lambda _,state: "on" if state else "off")
|
32
32
|
return ret
|
gtk_stream/parser.py
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
# You should have received a copy of the GNU General Public License
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
|
17
|
+
import functools
|
17
18
|
import threading
|
18
19
|
import signal
|
19
20
|
import sys
|
@@ -24,9 +25,6 @@ from . import documents as docs
|
|
24
25
|
|
25
26
|
from .application import GtkStreamApp
|
26
27
|
|
27
|
-
class _Object:
|
28
|
-
pass
|
29
|
-
|
30
28
|
WIDGET_DOCUMENTS = {
|
31
29
|
'progress-bar' : docs.ProgressBar,
|
32
30
|
'label' : docs.Label,
|
@@ -49,7 +47,9 @@ WIDGET_DOCUMENTS = {
|
|
49
47
|
'stack' : docs.Stack,
|
50
48
|
'flow-box' : docs.FlowBox,
|
51
49
|
'flow-box-prepend': docs.FlowBoxPrepend,
|
52
|
-
'entry' : docs.Entry
|
50
|
+
'entry' : docs.Entry,
|
51
|
+
'scale' : docs.Scale
|
52
|
+
|
53
53
|
}
|
54
54
|
|
55
55
|
class GtkStreamXMLHandler(sax.ContentHandler):
|
@@ -109,90 +109,48 @@ class GtkStreamXMLHandler(sax.ContentHandler):
|
|
109
109
|
self.quit_application()
|
110
110
|
signal.signal(signal.SIGINT, on_sigint)
|
111
111
|
|
112
|
+
# Get all messages directly from the application
|
113
|
+
# class. This allows defining new messages without
|
114
|
+
# touching the parser
|
115
|
+
self.messages = {
|
116
|
+
f.__tag_name__: self.startMessage(functools.partial(f,self.app), f.__store__)
|
117
|
+
for f in GtkStreamApp.__dict__.values()
|
118
|
+
if hasattr(f, '__tag_name__')
|
119
|
+
}
|
120
|
+
self.logger.debug("Messages: %s", self.messages)
|
121
|
+
|
112
122
|
self.transition_enter = self.transE_message
|
113
123
|
self.transition_leave = self.transL_tag('application', self.transE_final, self.transL_final)
|
114
124
|
case _:
|
115
125
|
raise Exception("Error: expected 'application' tag")
|
116
|
-
def transE_message(self, name, attrs):
|
117
|
-
leave_parent = self.transition_leave
|
118
|
-
match name:
|
119
|
-
case 'style':
|
120
|
-
style = _Object()
|
121
|
-
style.chars = []
|
122
|
-
def onchars(s):
|
123
|
-
style.chars.append(s)
|
124
|
-
def leave():
|
125
|
-
self.transition_chars = self.ignore_chars
|
126
|
-
self.app.addStyle(" ".join(style.chars))
|
127
|
-
self.transition_chars = onchars
|
128
|
-
self.transition_enter = self.transE_final
|
129
|
-
self.transition_leave = self.transL_tag('style', self.transE_message, leave_parent, leave)
|
130
|
-
|
131
|
-
case 'add-icon-path':
|
132
|
-
if 'path' in attrs:
|
133
|
-
def leave():
|
134
|
-
self.app.addIconPath(attrs['path'])
|
135
|
-
self.transition_enter = self.transE_final
|
136
|
-
self.transition_leave = self.transL_tag('add-icon-path', self.transE_message, leave_parent, leave)
|
137
|
-
|
138
|
-
case 'window':
|
139
|
-
if 'id' in attrs:
|
140
|
-
store = _Object()
|
141
|
-
def leave():
|
142
|
-
self.app.newWindow(store.child, **attrs)
|
143
|
-
def setChild(c):
|
144
|
-
store.child = c
|
145
|
-
self.transition_enter = self.transE_addChild(setChild)
|
146
|
-
self.transition_leave = self.transL_tag('window', self.transE_message, leave_parent, leave)
|
147
|
-
else:
|
148
|
-
raise Exception("Error: expected attribute 'id' in 'window' tag")
|
149
|
-
|
150
|
-
case 'file-dialog':
|
151
|
-
id = attrs.get('id')
|
152
|
-
parent = attrs.get('parent')
|
153
|
-
if id != None and parent != None:
|
154
|
-
self.app.openFileDialog(id, parent)
|
155
|
-
self.transition_enter = self.transE_final
|
156
|
-
self.transition_leave = self.transL_tag('file-dialog', self.transE_message, leave_parent)
|
157
|
-
else:
|
158
|
-
raise Exception("Error: expected 'id' and 'parent' attributes on 'file-chooser'")
|
159
|
-
|
160
|
-
case 'close-window':
|
161
|
-
if 'id' in attrs:
|
162
|
-
def leave():
|
163
|
-
self.app.closeWindow(attrs['id'])
|
164
|
-
self.transition_enter = self.transE_final
|
165
|
-
self.transition_leave = self.transL_tag('close-window', self.transE_message, leave_parent, leave)
|
166
|
-
else:
|
167
|
-
raise Exception("Error: expected 'id' attribute in 'close-window' tag")
|
168
126
|
|
169
|
-
|
170
|
-
|
127
|
+
def startMessage(self, f, child = None):
|
128
|
+
if child != None:
|
129
|
+
def ret(name,attrs):
|
130
|
+
getC, setC, setChars = child()
|
131
|
+
old_chars = self.transition_chars
|
132
|
+
def leave():
|
133
|
+
if setChars != None:
|
134
|
+
self.transition_chars = old_chars
|
135
|
+
f(getC(),**attrs)
|
136
|
+
if setChars != None:
|
137
|
+
self.transition_chars = setChars
|
138
|
+
self.transition_enter = self.transE_addChild(setC)
|
139
|
+
self.transition_leave = self.transL_tag(name, self.transE_message, self.transition_leave, leave)
|
140
|
+
else:
|
141
|
+
def ret(name, attrs):
|
142
|
+
def leave():
|
143
|
+
f(**attrs)
|
171
144
|
self.transition_enter = self.transE_final
|
172
|
-
self.transition_leave = self.transL_tag(
|
173
|
-
|
174
|
-
case 'insert':
|
175
|
-
if 'into' in attrs:
|
176
|
-
children = []
|
177
|
-
def leave():
|
178
|
-
for child in children:
|
179
|
-
self.app.insertWidget(attrs['into'], child)
|
180
|
-
self.transition_enter = self.transE_addChild(lambda child: children.append(child))
|
181
|
-
self.transition_leave = self.transL_tag('insert', self.transE_message, leave_parent, leave)
|
182
|
-
else:
|
183
|
-
raise Exception("Expected 'to' attribute of 'append' message")
|
184
|
-
|
185
|
-
case 'remove':
|
186
|
-
if 'id' in attrs:
|
187
|
-
def leave():
|
188
|
-
self.app.removeWidget(attrs['id'])
|
189
|
-
self.transition_enter = self.transE_final
|
190
|
-
self.transition_leave = self.transL_tag('remove', self.transE_message, leave_parent, leave)
|
191
|
-
else:
|
192
|
-
raise Exception("Expected 'id' attribute of 'remove' message")
|
145
|
+
self.transition_leave = self.transL_tag(name, self.transE_message, self.transition_leave, leave)
|
146
|
+
return ret
|
193
147
|
|
194
|
-
|
195
|
-
|
148
|
+
def transE_message(self, name, attrs):
|
149
|
+
start = self.messages.get(name)
|
150
|
+
if start != None:
|
151
|
+
start(name,attrs)
|
152
|
+
else:
|
153
|
+
raise Exception(f"Error: unknown message '{name}'")
|
196
154
|
|
197
155
|
def transE_addChild(self, addChild):
|
198
156
|
def ret(name, attrs):
|
@@ -204,7 +162,7 @@ class GtkStreamXMLHandler(sax.ContentHandler):
|
|
204
162
|
self.transition_enter = self.transE_addChild(lambda child: doc.add_child(child))
|
205
163
|
self.transition_leave = self.transL_tag(name, self.transE_addChild(addChild), leave_parent)
|
206
164
|
else:
|
207
|
-
raise Exception(f"Error: Unknown widget {name}")
|
165
|
+
raise Exception(f"Error: Unknown widget type '{name}'")
|
208
166
|
return ret
|
209
167
|
|
210
168
|
def characters(self, s):
|
gtk_stream/properties.py
CHANGED
@@ -36,11 +36,24 @@ def _parse_searchMode_property(val):
|
|
36
36
|
return _const(Gtk.StringFilterMatchMode.SUBSTRING)
|
37
37
|
case _:
|
38
38
|
return _const(Gtk.StringFilterMatchMode.PREFIX)
|
39
|
+
def _parse_adjustment_property(val):
|
40
|
+
adj = Gtk.Adjustment()
|
41
|
+
start, end, *rest = val.split(':')
|
42
|
+
adj.set_lower(int(start))
|
43
|
+
adj.set_upper(int(end))
|
44
|
+
if len(rest) > 0:
|
45
|
+
default = rest[0]
|
46
|
+
else:
|
47
|
+
default = start
|
48
|
+
adj.set_value(int(default))
|
49
|
+
return _const(adj)
|
39
50
|
def _parse_css_classes_property(val):
|
40
51
|
return _const(val.split())
|
41
52
|
def _parse_widget_property(val):
|
42
53
|
return lambda app: app.namedWidgets[val]
|
43
|
-
|
54
|
+
def _parse_window_property(val):
|
55
|
+
return lambda app: app.namedWindows[val]
|
56
|
+
|
44
57
|
_PARSE_TYPE_PROPERTY = {
|
45
58
|
'GStrv' : _parse_css_classes_property,
|
46
59
|
'GtkOrientation' : _parse_orientation_property,
|
@@ -50,6 +63,8 @@ _PARSE_TYPE_PROPERTY = {
|
|
50
63
|
'gboolean' : _parse_boolean_property,
|
51
64
|
'GtkStringFilterMatchMode' : _parse_searchMode_property,
|
52
65
|
'GtkWidget' : _parse_widget_property,
|
66
|
+
'GtkWindow' : _parse_window_property,
|
67
|
+
'GtkAdjustment' : _parse_adjustment_property,
|
53
68
|
'gchararray' : _const,
|
54
69
|
}
|
55
70
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
gtk_stream/__init__.py,sha256=y6JLknVFexWrSo_Zl7-TXrPR6EQ5XVMeFO1bUzLN9Lg,98
|
2
|
+
gtk_stream/_version.py,sha256=GfnRHfD9z98AbNAoXaNE50CPUnbpEikyDWn-_mn0J2Q,413
|
3
|
+
gtk_stream/application.py,sha256=uFquTXCV0fbGlSURBmjrg9BK3Enf9N0_WKX6Lv-5Fko,4993
|
4
|
+
gtk_stream/command_line.py,sha256=Ej4mmPiuYjr5-1JrvjGK0BDitKUCfVEI9uHp1p_FAr4,1520
|
5
|
+
gtk_stream/common.py,sha256=xdscxYgBg_Ux6iyk26gB-AMSgoUIqlZUPgso5YS_gKE,2106
|
6
|
+
gtk_stream/parser.py,sha256=LOCGoTT_L5Qf29YJ2wFfTYLHtH0al-QjpFWf9HEHYxU,6561
|
7
|
+
gtk_stream/properties.py,sha256=Pgu59t3K-SkHXCZzkrk2DU8ODtjOhkZmf7dLqDYiDqc,3116
|
8
|
+
gtk_stream/documents/__init__.py,sha256=T9mIonSi9DWrpXQzbjq0s0TPU0hB7HylfhMA20OfWIg,831
|
9
|
+
gtk_stream/documents/classes/Box.py,sha256=d01o2-JQ3-k0VjvvY8E7mly-u_f1v1NqYz1IDjHZLUo,1381
|
10
|
+
gtk_stream/documents/classes/Button.py,sha256=21bVI7DUWmiusboxdsimTgcqKtLqzQydhS9ifIt4R64,1512
|
11
|
+
gtk_stream/documents/classes/Document.py,sha256=eZ-nT62UfO_ZUsxOR89hFLiBzpxMuNlbcjdZ4yJIzZo,2356
|
12
|
+
gtk_stream/documents/classes/Dropdown.py,sha256=8fIUX1HCWIjUfKLPy9NYsW6OskhkontoNDTsCZ7qKxw,2446
|
13
|
+
gtk_stream/documents/classes/Entry.py,sha256=KcBwjSu4tI30bQxPlSFSLPxFEUbTaqAdoAzd0XSQciY,1112
|
14
|
+
gtk_stream/documents/classes/FlowBox.py,sha256=UoVYS2j_osOV-IgbVoaqluTBCiaXus5dq2e9qhAu2Xo,1225
|
15
|
+
gtk_stream/documents/classes/Frame.py,sha256=zAZvsT-YTZMijsgk7p0YVf6siAmFoCCSXouZo9XDpsA,1222
|
16
|
+
gtk_stream/documents/classes/Grid.py,sha256=jDJ9U1GJZ45hi1VvPsCwFILN7CwEkgjqYqhTzMdtX9o,1249
|
17
|
+
gtk_stream/documents/classes/Label.py,sha256=bBNBTvGs6fM8uLf4EDb2Ro8FmCeS27cnU1Ao-44nRYs,1023
|
18
|
+
gtk_stream/documents/classes/Paned.py,sha256=q1goKJMWBg1d3hS0eanPBxzBqLB-Pz5hUnH9N-RXXh8,1392
|
19
|
+
gtk_stream/documents/classes/Picture.py,sha256=QCLQNuQxfXmaasd-bPgXxJZYyc1e1DQkLdxCZ39gvlI,1251
|
20
|
+
gtk_stream/documents/classes/ProgressBar.py,sha256=NPJtP3qaKiZUEAYEHZk4FEoWSFn2KVorI2SVb8cDnW0,966
|
21
|
+
gtk_stream/documents/classes/Scale.py,sha256=6rW6sBCdpPaqgDEGUPZi5UR8CT3bPmaZQqXXhnl-oaw,1124
|
22
|
+
gtk_stream/documents/classes/ScrolledWindow.py,sha256=WaTPgz6GBC-hjH83SQT2OGUdCapHAgO3xEmSMJZ8q70,1041
|
23
|
+
gtk_stream/documents/classes/Separator.py,sha256=uw_EgAKs_6pNA8nrOLzruIlJfk4uaogB0p_jeoY0PHM,960
|
24
|
+
gtk_stream/documents/classes/Stack.py,sha256=YA6NDzZL2u4Ko8GXtx8Or-jEWGMCEw2cC1HNkAMRw-8,1030
|
25
|
+
gtk_stream/documents/classes/Switch.py,sha256=jQVuxqS9Pmpp1ymB_dbJPxasJNpm4e35ry0JYPHdAsk,1275
|
26
|
+
gtk_stream/documents/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
+
gtk_stream-0.11.1.dist-info/METADATA,sha256=iwqbihyKY2PV24joIWUqAAt6D8npjUmm6T4GVOFCD4I,807
|
28
|
+
gtk_stream-0.11.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
29
|
+
gtk_stream-0.11.1.dist-info/entry_points.txt,sha256=PmhKTb4MMQM6dN2HJcoDSMI8L0lZIFIlFn-BgdfPDpo,60
|
30
|
+
gtk_stream-0.11.1.dist-info/top_level.txt,sha256=vE9zfHGe9Ke7FSe0wBK2WYJI-BpcQNu6xDC3Cu5O8rQ,11
|
31
|
+
gtk_stream-0.11.1.dist-info/RECORD,,
|
gtk_stream-0.10.dist-info/RECORD
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
gtk_stream/__init__.py,sha256=y6JLknVFexWrSo_Zl7-TXrPR6EQ5XVMeFO1bUzLN9Lg,98
|
2
|
-
gtk_stream/_version.py,sha256=wg35lkz1DoondiGS1z7m4ZtbxPvMGnIj2qR4wzIH4-U,408
|
3
|
-
gtk_stream/application.py,sha256=s-2A8JSSIum9QDo35oxri-10OLg5BUIfTKS0FZDQd6A,4114
|
4
|
-
gtk_stream/command_line.py,sha256=Ej4mmPiuYjr5-1JrvjGK0BDitKUCfVEI9uHp1p_FAr4,1520
|
5
|
-
gtk_stream/common.py,sha256=xdscxYgBg_Ux6iyk26gB-AMSgoUIqlZUPgso5YS_gKE,2106
|
6
|
-
gtk_stream/parser.py,sha256=rcZtH0T5s6ttVXvbHZjX2hBoasWNbtDR5LEa8yiHUj4,8772
|
7
|
-
gtk_stream/properties.py,sha256=oCG4EIMWS4WdKY4YzQZzllddoIY33GvnbgvMG3C5Muo,2630
|
8
|
-
gtk_stream/documents/__init__.py,sha256=MVqnPXrTuoKyUHJ41jgqbFr3VA5JWfI6QFfXAIE6DuQ,789
|
9
|
-
gtk_stream/documents/classes/Box.py,sha256=d01o2-JQ3-k0VjvvY8E7mly-u_f1v1NqYz1IDjHZLUo,1381
|
10
|
-
gtk_stream/documents/classes/Button.py,sha256=0Cs5DOt-FoDVLWIktJHuH6OasI58TNI0Gs3uIKJDj2o,1563
|
11
|
-
gtk_stream/documents/classes/Document.py,sha256=drWy-2HzgmpxSmRR27uIydlTJbaYTiRJPWwpELXrGSk,2135
|
12
|
-
gtk_stream/documents/classes/Dropdown.py,sha256=1azU_iHbr_-099wj0_TDfDfZ5xKyh9xLFd5GvbNMw14,2443
|
13
|
-
gtk_stream/documents/classes/Entry.py,sha256=MuhoUMAKKSj24KA77VCqBtedE_lStMrXvR-3wB9amSw,1137
|
14
|
-
gtk_stream/documents/classes/FlowBox.py,sha256=UoVYS2j_osOV-IgbVoaqluTBCiaXus5dq2e9qhAu2Xo,1225
|
15
|
-
gtk_stream/documents/classes/Frame.py,sha256=zAZvsT-YTZMijsgk7p0YVf6siAmFoCCSXouZo9XDpsA,1222
|
16
|
-
gtk_stream/documents/classes/Grid.py,sha256=jDJ9U1GJZ45hi1VvPsCwFILN7CwEkgjqYqhTzMdtX9o,1249
|
17
|
-
gtk_stream/documents/classes/Label.py,sha256=bBNBTvGs6fM8uLf4EDb2Ro8FmCeS27cnU1Ao-44nRYs,1023
|
18
|
-
gtk_stream/documents/classes/Paned.py,sha256=q1goKJMWBg1d3hS0eanPBxzBqLB-Pz5hUnH9N-RXXh8,1392
|
19
|
-
gtk_stream/documents/classes/Picture.py,sha256=QCLQNuQxfXmaasd-bPgXxJZYyc1e1DQkLdxCZ39gvlI,1251
|
20
|
-
gtk_stream/documents/classes/ProgressBar.py,sha256=NPJtP3qaKiZUEAYEHZk4FEoWSFn2KVorI2SVb8cDnW0,966
|
21
|
-
gtk_stream/documents/classes/ScrolledWindow.py,sha256=WaTPgz6GBC-hjH83SQT2OGUdCapHAgO3xEmSMJZ8q70,1041
|
22
|
-
gtk_stream/documents/classes/Separator.py,sha256=uw_EgAKs_6pNA8nrOLzruIlJfk4uaogB0p_jeoY0PHM,960
|
23
|
-
gtk_stream/documents/classes/Stack.py,sha256=YA6NDzZL2u4Ko8GXtx8Or-jEWGMCEw2cC1HNkAMRw-8,1030
|
24
|
-
gtk_stream/documents/classes/Switch.py,sha256=OLCWWNeVyNrk4Tu3JDe64FqsLhedh3dDzKDKne2CyDw,1382
|
25
|
-
gtk_stream/documents/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
gtk_stream-0.10.dist-info/METADATA,sha256=Tmq513moUwqczsg1EYEh0-eBcz-SJs3gTVAXUHGlt_Y,805
|
27
|
-
gtk_stream-0.10.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
28
|
-
gtk_stream-0.10.dist-info/entry_points.txt,sha256=PmhKTb4MMQM6dN2HJcoDSMI8L0lZIFIlFn-BgdfPDpo,60
|
29
|
-
gtk_stream-0.10.dist-info/top_level.txt,sha256=vE9zfHGe9Ke7FSe0wBK2WYJI-BpcQNu6xDC3Cu5O8rQ,11
|
30
|
-
gtk_stream-0.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|