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/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 = Gtk.Entry(); headx.set_width_chars(33)
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 = Gtk.Entry(); headx2.set_width_chars(33)
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.vspacer(vbox)
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
- vspacer(vbox)
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
- spacer(hbox2)
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
- spacer(hbox2)
153
+ pggui.xSpacer(hbox2)
107
154
  hbox2.pack_start(sw, True, True, 0)
108
- spacer(hbox2)
109
- vspacer(vbox)
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