gtk-stream 0.10__py3-none-any.whl → 0.11.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|