pyvguicom 1.0.0__py3-none-any.whl → 1.1.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.
Potentially problematic release.
This version of pyvguicom might be problematic. Click here for more details.
- pyvguicom/__init__.py +1 -0
- pyvguicom/browsewin.py +10 -11
- pyvguicom/custwidg.py +110 -0
- pyvguicom/pgbox.py +59 -118
- pyvguicom/pgbutt.py +3 -2
- pyvguicom/pgentry.py +183 -22
- pyvguicom/pggui.py +239 -55
- pyvguicom/pgsel.py +441 -0
- pyvguicom/pgsimp.py +34 -265
- pyvguicom/pgtests.py +128 -0
- pyvguicom/pgtextview.py +0 -1
- pyvguicom/pgutils.py +391 -405
- pyvguicom/pgwkit.py +36 -27
- pyvguicom/testbutt.py +27 -25
- pyvguicom/testcust.py +49 -0
- pyvguicom/testentry.py +105 -0
- pyvguicom/testgui.py +125 -0
- pyvguicom/testlettsel.py +98 -0
- pyvguicom/testmsgs.py +142 -0
- pyvguicom/testnums.py +7 -12
- pyvguicom/testroot.py +7 -6
- pyvguicom/testsimple.py +24 -29
- pyvguicom/testtests.py +79 -0
- pyvguicom/testtextv.py +5 -14
- pyvguicom/testutils.py +139 -0
- {pyvguicom-1.0.0.dist-info → pyvguicom-1.1.1.dist-info}/METADATA +11 -5
- pyvguicom-1.1.1.dist-info/RECORD +32 -0
- pyvguicom/sutil.py +0 -344
- pyvguicom-1.0.0.dist-info/RECORD +0 -23
- {pyvguicom-1.0.0.dist-info → pyvguicom-1.1.1.dist-info}/WHEEL +0 -0
- {pyvguicom-1.0.0.dist-info → pyvguicom-1.1.1.dist-info}/top_level.txt +0 -0
pyvguicom/pgentry.py
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
|
|
3
|
-
from __future__ import absolute_import
|
|
4
|
-
from __future__ import print_function
|
|
5
|
-
|
|
6
3
|
import sys, traceback, os, time, warnings
|
|
7
4
|
|
|
8
5
|
import gi
|
|
@@ -12,6 +9,56 @@ from gi.repository import Gdk
|
|
|
12
9
|
from gi.repository import GObject
|
|
13
10
|
from gi.repository import GLib
|
|
14
11
|
|
|
12
|
+
import pgutils, pggui, pgtextview
|
|
13
|
+
|
|
14
|
+
def wrap(cont):
|
|
15
|
+
fr = Gtk.Frame()
|
|
16
|
+
sc = Gtk.ScrolledWindow()
|
|
17
|
+
sc.set_hexpand(True)
|
|
18
|
+
sc.set_vexpand(True)
|
|
19
|
+
sc.add(cont)
|
|
20
|
+
fr.add(sc)
|
|
21
|
+
return fr, cont
|
|
22
|
+
|
|
23
|
+
class Entryx(Gtk.Entry):
|
|
24
|
+
|
|
25
|
+
def __init__(self, noemit = False):
|
|
26
|
+
super(Entryx).__init__()
|
|
27
|
+
Gtk.Entry.__init__(self)
|
|
28
|
+
self.noemit = noemit # do not emit move next on enter
|
|
29
|
+
self.connect("key-press-event", self.key_press_event)
|
|
30
|
+
|
|
31
|
+
def set_noemit(self, flag):
|
|
32
|
+
self.noemit = flag
|
|
33
|
+
|
|
34
|
+
def set_gray(self, flag):
|
|
35
|
+
if flag:
|
|
36
|
+
self.set_editable(False);
|
|
37
|
+
style = self.get_style_context()
|
|
38
|
+
color = style.get_background_color(Gtk.StateFlags.NORMAL)
|
|
39
|
+
color2 = Gdk.RGBA(color.red-.1, color.green-.1, color.blue-.1)
|
|
40
|
+
self.override_background_color(Gtk.StateFlags.NORMAL, color2)
|
|
41
|
+
else:
|
|
42
|
+
self.set_editable(True);
|
|
43
|
+
style = self.get_style_context()
|
|
44
|
+
color = style.get_background_color(Gtk.StateFlags.NORMAL)
|
|
45
|
+
self.override_background_color(Gtk.StateFlags.NORMAL, color)
|
|
46
|
+
|
|
47
|
+
def key_press_event(self, arg1, event):
|
|
48
|
+
#print("keypress", event.keyval)
|
|
49
|
+
if event.keyval == Gdk.KEY_Tab or event.keyval == Gdk.KEY_ISO_Left_Tab:
|
|
50
|
+
#print("tab keypress ", event.keyval, event.state)
|
|
51
|
+
if event.state & Gdk.ModifierType.SHIFT_MASK:
|
|
52
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_BACKWARD)
|
|
53
|
+
else:
|
|
54
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_FORWARD)
|
|
55
|
+
return True
|
|
56
|
+
|
|
57
|
+
if event.keyval == Gdk.KEY_Return:
|
|
58
|
+
if not self.noemit:
|
|
59
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_FORWARD)
|
|
60
|
+
return True
|
|
61
|
+
|
|
15
62
|
# Expects two tuples of stuff
|
|
16
63
|
# labtext, labname, tip, defval = None:
|
|
17
64
|
|
|
@@ -26,7 +73,7 @@ def entryquad(arr, vbox, entry1, entry2):
|
|
|
26
73
|
hbox2.pack_start(lab1, False, 0, 0)
|
|
27
74
|
lab1a = Gtk.Label(label=" ")
|
|
28
75
|
hbox2.pack_start(lab1a, False, 0, 0)
|
|
29
|
-
headx =
|
|
76
|
+
headx = Entryx(); headx.set_width_chars(33)
|
|
30
77
|
lab1.set_mnemonic_widget(headx)
|
|
31
78
|
|
|
32
79
|
if entry1[3] != None:
|
|
@@ -43,7 +90,7 @@ def entryquad(arr, vbox, entry1, entry2):
|
|
|
43
90
|
hbox2.pack_start(lab2, False, 0, 0)
|
|
44
91
|
lab1b = Gtk.Label(label=" ")
|
|
45
92
|
hbox2.pack_start(lab1b, False, 0, 0)
|
|
46
|
-
headx2 =
|
|
93
|
+
headx2 = Entryx(); headx2.set_width_chars(33)
|
|
47
94
|
lab2.set_mnemonic_widget(headx2)
|
|
48
95
|
if entry2[3] != None:
|
|
49
96
|
headx2.set_text(entry2[3][entry2[1]])
|
|
@@ -52,7 +99,7 @@ def entryquad(arr, vbox, entry1, entry2):
|
|
|
52
99
|
hbox2.pack_start(lab3b, False, 0, 0)
|
|
53
100
|
arr.append((entry2[1], headx2))
|
|
54
101
|
|
|
55
|
-
#self.
|
|
102
|
+
#self.ySpacer(vbox)
|
|
56
103
|
vbox.pack_start(hbox2, True, True, 0)
|
|
57
104
|
return lab1, lab2
|
|
58
105
|
|
|
@@ -79,7 +126,7 @@ def entrypair(vbox, labtext, labname, tip, defval = None):
|
|
|
79
126
|
hbox2.pack_start(lab3, False, 0, 0)
|
|
80
127
|
arr.append((labname, headx))
|
|
81
128
|
|
|
82
|
-
|
|
129
|
+
pggui.ySpacer(vbox)
|
|
83
130
|
vbox.pack_start(hbox2, False, 0, 0)
|
|
84
131
|
lab1.set_tooltip_text(tip)
|
|
85
132
|
|
|
@@ -88,7 +135,7 @@ def entrypair(vbox, labtext, labname, tip, defval = None):
|
|
|
88
135
|
def textviewpair(arr, vbox, labtext, labname, tip, defval=None, expand=False):
|
|
89
136
|
|
|
90
137
|
hbox2 = Gtk.HBox();
|
|
91
|
-
|
|
138
|
+
pggui.xSpacer(hbox2)
|
|
92
139
|
|
|
93
140
|
lab2a = Gtk.Label(label=" ")
|
|
94
141
|
hbox2.pack_start(lab2a, False , 0, 0)
|
|
@@ -103,16 +150,141 @@ def textviewpair(arr, vbox, labtext, labname, tip, defval=None, expand=False):
|
|
|
103
150
|
|
|
104
151
|
lab2.set_mnemonic_widget(sw.textx)
|
|
105
152
|
|
|
106
|
-
|
|
153
|
+
pggui.xSpacer(hbox2)
|
|
107
154
|
hbox2.pack_start(sw, True, True, 0)
|
|
108
|
-
|
|
109
|
-
|
|
155
|
+
pggui.xSpacer(hbox2)
|
|
156
|
+
pggui.ySpacer(vbox)
|
|
110
157
|
|
|
111
158
|
lab2b = Gtk.Label(label=" ")
|
|
112
159
|
hbox2.pack_start(lab2b, False , 0, 0)
|
|
113
160
|
vbox.pack_start(hbox2, True, True, 0)
|
|
114
161
|
return lab2
|
|
115
162
|
|
|
163
|
+
def gridquad(gridx, left, top, entry1, entry2, butt = None):
|
|
164
|
+
lab1 = Gtk.Label.new_with_mnemonic(entry1[0] + " ")
|
|
165
|
+
lab1.set_alignment(1, 0)
|
|
166
|
+
lab1.set_tooltip_text(entry1[2])
|
|
167
|
+
gridx.attach(lab1, left, top, 1, 1)
|
|
168
|
+
|
|
169
|
+
headx = Entryx();
|
|
170
|
+
lab1.set_mnemonic_widget(headx)
|
|
171
|
+
headx.set_width_chars(20)
|
|
172
|
+
if entry1[3] != None:
|
|
173
|
+
headx.set_text(entry1[3])
|
|
174
|
+
gridx.attach(headx, left+1, top, 1, 1)
|
|
175
|
+
|
|
176
|
+
lab2 = Gtk.Label.new_with_mnemonic(" " + entry2[0] + " ")
|
|
177
|
+
lab2.set_alignment(1, 0)
|
|
178
|
+
lab2.set_tooltip_text(entry2[2])
|
|
179
|
+
gridx.attach(lab2, left+2, top, 1, 1)
|
|
180
|
+
|
|
181
|
+
headx2 = Entryx();
|
|
182
|
+
lab2.set_mnemonic_widget(headx2)
|
|
183
|
+
|
|
184
|
+
headx2.set_width_chars(20)
|
|
185
|
+
if entry2[3] != None:
|
|
186
|
+
headx2.set_text(entry2[3])
|
|
187
|
+
gridx.attach(headx2, left+3, top, 1, 1)
|
|
188
|
+
if butt:
|
|
189
|
+
gridx.attach(butt, left+4, top, 1, 1)
|
|
190
|
+
return headx, headx2
|
|
191
|
+
|
|
192
|
+
def griddouble(gridx, left, top, entry1, buttx = None):
|
|
193
|
+
lab1 = Gtk.Label.new_with_mnemonic(entry1[0] + " ")
|
|
194
|
+
lab1.set_alignment(1, 0)
|
|
195
|
+
lab1.set_tooltip_text(entry1[2])
|
|
196
|
+
gridx.attach(lab1, left, top, 1, 1)
|
|
197
|
+
|
|
198
|
+
headx = Entryx();
|
|
199
|
+
lab1.set_mnemonic_widget(headx)
|
|
200
|
+
headx.set_width_chars(40)
|
|
201
|
+
if entry1[3] != None:
|
|
202
|
+
headx.set_text(entry1[3])
|
|
203
|
+
gridx.attach(headx, left+1, top, 2, 1)
|
|
204
|
+
if buttx:
|
|
205
|
+
gridx.attach(buttx, left+3, top, 1, 1)
|
|
206
|
+
return headx
|
|
207
|
+
|
|
208
|
+
class TextViewx(Gtk.TextView):
|
|
209
|
+
|
|
210
|
+
''' Override textview for simple deployment '''
|
|
211
|
+
|
|
212
|
+
def __init__(self):
|
|
213
|
+
super(TextViewx).__init__()
|
|
214
|
+
GObject.GObject.__init__(self)
|
|
215
|
+
self.buffer = Gtk.TextBuffer()
|
|
216
|
+
self.set_buffer(self.buffer)
|
|
217
|
+
self.single_line = False
|
|
218
|
+
self.connect("key-press-event", self.key_press_event)
|
|
219
|
+
|
|
220
|
+
def key_press_event(self, arg1, event):
|
|
221
|
+
|
|
222
|
+
''' Override tabs '''
|
|
223
|
+
|
|
224
|
+
if event.keyval == Gdk.KEY_Tab or event.keyval == Gdk.KEY_ISO_Left_Tab:
|
|
225
|
+
#print("tab keypress ", event.keyval, event.state)
|
|
226
|
+
if event.state & Gdk.ModifierType.SHIFT_MASK:
|
|
227
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_BACKWARD)
|
|
228
|
+
else:
|
|
229
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_FORWARD)
|
|
230
|
+
return True
|
|
231
|
+
|
|
232
|
+
# If reached last line, TAB it
|
|
233
|
+
if event.keyval == Gdk.KEY_Down:
|
|
234
|
+
pos = self.buffer.get_property("cursor-position")
|
|
235
|
+
#print("Down", pos)
|
|
236
|
+
#print(self.buffer.list_properties())
|
|
237
|
+
sss = self.buffer.get_start_iter()
|
|
238
|
+
eee = self.buffer.get_end_iter()
|
|
239
|
+
textx = self.buffer.get_text(sss, eee, True)
|
|
240
|
+
if pos == len(textx):
|
|
241
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_FORWARD)
|
|
242
|
+
return True
|
|
243
|
+
|
|
244
|
+
# If reached first line, TAB it
|
|
245
|
+
if event.keyval == Gdk.KEY_Up:
|
|
246
|
+
# Are we at the beginning:
|
|
247
|
+
pos = self.buffer.get_property("cursor-position")
|
|
248
|
+
#print("Up", pos)
|
|
249
|
+
if pos == 0:
|
|
250
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_BACKWARD)
|
|
251
|
+
return True
|
|
252
|
+
|
|
253
|
+
if event.keyval == Gdk.KEY_Return:
|
|
254
|
+
if event.state & Gdk.ModifierType.SHIFT_MASK:
|
|
255
|
+
#print("keypress shift ", event)
|
|
256
|
+
self.emit("move-focus", Gtk.DirectionType.TAB_FORWARD)
|
|
257
|
+
return True
|
|
258
|
+
|
|
259
|
+
def get_text(self):
|
|
260
|
+
startt = self.buffer.get_start_iter()
|
|
261
|
+
endd = self.buffer.get_end_iter()
|
|
262
|
+
return self.buffer.get_text(startt, endd, False)
|
|
263
|
+
|
|
264
|
+
def set_text(self, txt, eventx = False):
|
|
265
|
+
if eventx:
|
|
266
|
+
self.check_saved()
|
|
267
|
+
startt = self.buffer.get_start_iter()
|
|
268
|
+
endd = self.buffer.get_end_iter()
|
|
269
|
+
self.buffer.delete(startt, endd)
|
|
270
|
+
self.buffer.insert(startt, txt)
|
|
271
|
+
self.buffer.set_modified(True)
|
|
272
|
+
|
|
273
|
+
def gridsingle(gridx, left, top, entry1):
|
|
274
|
+
lab1 = Gtk.Label.new_with_mnemonic(entry1[0] + " ")
|
|
275
|
+
lab1.set_alignment(1, 0)
|
|
276
|
+
lab1.set_tooltip_text(entry1[2])
|
|
277
|
+
gridx.attach(lab1, left, top, 1, 1)
|
|
278
|
+
|
|
279
|
+
headx, cont = wrap(TextViewx())
|
|
280
|
+
lab1.set_mnemonic_widget(cont)
|
|
281
|
+
|
|
282
|
+
if entry1[3] != None:
|
|
283
|
+
headx.set_text(entry1[3])
|
|
284
|
+
gridx.attach(headx, left+1, top, 3, 1)
|
|
285
|
+
|
|
286
|
+
return cont
|
|
287
|
+
|
|
116
288
|
def scrolledtext(arr, name, body = None):
|
|
117
289
|
textx = Gtk.TextView();
|
|
118
290
|
textx.set_border_width(4)
|
|
@@ -129,7 +301,6 @@ def scrolledtext(arr, name, body = None):
|
|
|
129
301
|
sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
|
|
130
302
|
return sw
|
|
131
303
|
|
|
132
|
-
|
|
133
304
|
def imgbutt(imgfile, txt, func, win):
|
|
134
305
|
hbb = Gtk.HBox(); vbb = Gtk.VBox(); ic = Gtk.Image();
|
|
135
306
|
ic.set_from_file(imgfile)
|
|
@@ -152,14 +323,4 @@ def imgbutt(imgfile, txt, func, win):
|
|
|
152
323
|
|
|
153
324
|
return hbb
|
|
154
325
|
|
|
155
|
-
# --------------------------------------------------------------------
|
|
156
|
-
|
|
157
|
-
def spacer(hbox, xstr = " ", expand = False):
|
|
158
|
-
lab = Gtk.Label(label=xstr)
|
|
159
|
-
hbox.pack_start(lab, expand, 0, 0)
|
|
160
|
-
|
|
161
|
-
def vspacer(vbox, xstr = " ", expand = False):
|
|
162
|
-
lab = Gtk.Label(label=xstr)
|
|
163
|
-
vbox.pack_start(lab, expand , 0, 0)
|
|
164
|
-
|
|
165
326
|
# eof
|