Module pedoline
Expand source code
#!/usr/bin/env python
from __future__ import absolute_import, print_function
import signal, os, time, sys, subprocess, platform
import ctypes, datetime, sqlite3, warnings, random
import gi; gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Pango
gi.require_version('PangoCairo', '1.0')
from gi.repository import PangoCairo
from pedlib import pedconfig
from pedlib.pedcanv import *
#sys.path.append('..' + os.sep + "pycommon")
from pycommon.pggui import *
from pycommon.pgsimp import *
random.seed()
def genrandrect(maxww, maxhh):
xx = random.randint(0, maxww // 2)
yy = random.randint(0, maxhh // 2)
ww = random.randint(maxww // 8, 3 * maxww // 8)
hh = random.randint(maxhh // 8, 3 * maxhh // 8)
rect = Rectangle( (xx, yy, ww, hh) )
return rect
def genrandcircle(maxww, maxhh):
xx = random.randint(10, maxww // 2)
yy = random.randint(10, maxhh // 2)
ww = 40
for aa in range(18):
ww = random.randint(30, maxww / 2)
if ww < xx and ww < yy:
break
return (xx, yy, ww, ww)
# ------------------------------------------------------------------------
#class pgoline(Gtk.Window):
class pgoline(Gtk.VBox):
def __init__(self):
Gtk.VBox.__init__(self)
self.init = 0
#set_testmode(1)
#self.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse("#444444"))
hbox = Gtk.HBox()
self.lastsel = ""
self.connect("motion-notify-event", self.motion_event)
self.connect("configure-event", self.config_event)
#self.connect("event", self.all_event)
self.data_dir = os.path.expanduser("~/.pyednotes")
try:
if not os.path.isdir(self.data_dir):
os.mkdir(self.data_dir)
except:
print("Cannot make notes data dir")
self.statbox = Gtk.Label(" Idle")
self.statbox.set_xalign(0); self.statbox.set_yalign(0)
#self.vbox = Gtk.VBox()
self.pack_start(xSpacer(), 0, 0, 0)
#self.toolbox = ToolBox(self.toolcb, pedconfig.conf.pedwin)
self.toolbox = ToolBox(self.toolcb, self.get_toplevel())
#self.pack_start(self.toolbox, 0, 0, 2)
self.canvas = Canvas(self, self.statbox)
for aa in range(10):
rstr = randstr(6)
rrr = random.randint(0, 5)
if rrr == 0:
rect = genrandrect(500, 1000)
self.canvas.add_rect(rect, "Rect_" + rstr, randcolstr() )
elif rrr == 1:
rect = genrandrect(500, 1000)
self.canvas.add_romb(rect, "Romb_" + rstr, randcolstr() )
elif rrr == 2:
rect = genrandrect(300, 300)
self.canvas.add_text(rect, "Text_" + rstr, randcolstr() )
elif rrr == 3:
rect = genrandrect(500, 1000)
self.canvas.add_line(rect, "Line_" + rstr, randcolstr() )
elif rrr == 4:
rect = genrandrect(500, 1000)
self.canvas.add_curve(rect, "Curve_" + rstr, randcolstr() )
else:
circ = genrandcircle(500, 500)
self.canvas.add_circle(circ, "Circ_" + rstr, randcolstr() )
#self.canvas.show_objects()
#self.canvas.setsavecb(self.savetext)
hbox2 = xHBox()
hbox2.pack(self.statbox, True)
mbut = MenuButt(("Open", "Save", "Export"), self.main_callb)
hbox2.pack(mbut)
scroll3a = Gtk.ScrolledWindow()
scroll3a.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)
scroll3a.add(self.canvas)
frame5 = Gtk.Frame(); frame5.add(scroll3a)
self.pack_start(frame5, 1, 1, 2)
self.pack_start(hbox2, 0, 0, 2)
#self.add(self.vbox)
#self.pack_start(xSpacer(), 0, 0, 0)
def config_event(self, win, event):
print("config_event", win, event)
def toolcb(self, butt, num):
print("toolsb", num)
def focus_out(self):
self.toolbox.hide()
def focus_in(self):
self.toolbox.show_box(pedconfig.conf.pedwin.mywin)
def switched(self, pageto):
#print("SW page signal", pageto)
if pageto == self:
#print("me")
self.toolbox.show_box(pedconfig.conf.pedwin.mywin)
else:
self.toolbox.hide()
def motion_event(self, win, event):
#print("motion_event", win, event)
if not self.init:
pass
#self.init = True
#self.toolbox.show_box(pedconfig.conf.pedwin.mywin)
def all_event(self, win, event):
if event.type != Gdk.EventType.MOTION_NOTIFY:
print("all_event", win, event)
def letterfilter(self, letter):
#print("letterfilter", letter)
if letter == "All":
print("Erase selection")
else:
aaa = self.sql.getall(letter + "%")
print("all", aaa)
self.treeview2.clear()
for aa in aaa:
self.treeview2.append(aa[2:])
def main_callb(self, text, arg):
#print("main_callb", text, arg)
if arg == 0:
fff = getfilename(parent=self) # "Open File", "Load Annotation", [])
if fff:
print("fff", fff)
pass
def newitem(self, arg, num):
print ("new", arg, num)
self.treeview2.append(("New Item", "", ""))
self.treeview2.sel_last()
pass
def find(self, arg):
print ("find", arg)
aaa = self.sql.getall("%" + self.edit.get_text() + "%")
print("all", aaa)
self.treeview2.clear()
for aa in aaa:
self.treeview2.append(aa[2:])
def savetext(self, txt):
#ddd = self.cal.get_date()
#key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], self.lastsel)
#print("savetext", key, "--", txt)
#self.sql.putdata(key, txt, "", "")
pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % key);
def treechange(self, args):
#ddd = self.cal.get_date()
ddd = datetime.datetime.today()
key = "%d-%d-%d %d:%d %s" % (ddd.year, ddd.month, ddd.day, ddd.hour, ddd.minute, args[0])
self.lastsel = args[0]
print("treechange", key, args)
self.sql.put(key, args[0], args[1], args[2])
pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % self.lastsel);
def treesel(self, args):
print("treesel", args)
self.edview.clear()
#ddd = self.cal.get_date()
#key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], args[0])
#strx = self.sql.getdata(key)
#if strx:
# self.edview.append(strx[0])
self.lastsel = args[0]
def today(self, butt, cal):
ddd = datetime.datetime.today()
#print("date", ddd.year, ddd.month, ddd.day)
#cal.select_month(ddd.month-1, ddd.year)
#cal.select_day(ddd.day)
def demand(self, butt, cal):
ddd = datetime.datetime.today()
#print("demand", ddd.year, ddd.month, ddd.day)
def daysel(self, cal):
return
#print("Day", cal.get_date())
#self.edit.set_text(str(cal.get_date()))
self.treeview2.clear()
for aa in range(8, 20):
#self.treeview2.append((ampmstr(aa), randstr(8), randstr(14)) )
ddd = self.cal.get_date()
key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], ampmstr(aa) )
try:
val = self.sql.get(key)
if val:
#print("val", val)
self.treeview2.append((ampmstr(aa), val[0], val[1], val[2]) )
else:
self.treeview2.append((ampmstr(aa), "", "", "") )
except:
pass
def dayseldouble(self, cal):
#print("Day dbl", cal.get_date())
pass
# -------------------------------------------------------------------
class notesql():
def __init__(self, file):
#self.take = 0
self.errstr = ""
try:
self.conn = sqlite3.connect(file)
except:
print("Cannot open/create db:", file, sys.exc_info())
return
try:
self.c = self.conn.cursor()
# Create table
self.c.execute("create table if not exists notes \
(pri INTEGER PRIMARY KEY, key text, val text, val2 text, val3 text)")
self.c.execute("create index if not exists knotes on notes (key)")
self.c.execute("create index if not exists pnotes on notes (pri)")
self.c.execute("create table if not exists caldata \
(pri INTEGER PRIMARY KEY, key text, val text, val2 text, val3 text)")
self.c.execute("create index if not exists kcaldata on caldata (key)")
self.c.execute("create index if not exists pcaldata on caldata (pri)")
self.c.execute("PRAGMA synchronous=OFF")
# Save (commit) the changes
self.conn.commit()
except:
print("Cannot insert sql data", sys.exc_info())
self.errstr = "Cannot insert sql data" + str(sys.exc_info())
finally:
# We close the cursor, we are done with it
#c.close()
pass
# --------------------------------------------------------------------
# Return None if no data
def get(self, kkk):
try:
#c = self.conn.cursor()
if os.name == "nt":
self.c.execute("select * from notes where key = ?", (kkk,))
else:
self.c.execute("select * from notes indexed by knotes where key = ?", (kkk,))
rr = self.c.fetchone()
except:
print("Cannot get sql data", sys.exc_info())
rr = None
self.errstr = "Cannot get sql data" + str(sys.exc_info())
finally:
#c.close
pass
if rr:
return (rr[2], rr[3], rr[4])
else:
return None
def getdata(self, kkk):
try:
#c = self.conn.cursor()
if os.name == "nt":
self.c.execute("select * from caldata where key = ?", (kkk,))
else:
self.c.execute("select * from caldata indexed by kcaldata where key = ?", (kkk,))
rr = self.c.fetchone()
except:
print("Cannot get sql data", sys.exc_info())
rr = None
self.errstr = "Cannot get sql data" + str(sys.exc_info())
finally:
#c.close
pass
if rr:
return (rr[2], rr[3], rr[4])
else:
return None
# --------------------------------------------------------------------
# Return False if cannot put data
def put(self, key, val, val2, val3):
#got_clock = time.clock()
ret = True
try:
#c = self.conn.cursor()
if os.name == "nt":
self.c.execute("select * from notes where key == ?", (key,))
else:
self.c.execute("select * from notes indexed by knotes where key == ?", (key,))
rr = self.c.fetchall()
if rr == []:
#print "inserting"
self.c.execute("insert into notes (key, val, val2, val3) \
values (?, ?, ?, ?)", (key, val, val2, val3))
else:
#print "updating"
if os.name == "nt":
self.c.execute("update notes \
set val = ? val2 = ?, val3 = ? where key = ?", \
(val, val2, val3, key))
else:
self.c.execute("update notes indexed by knotes \
set val = ?, val2 = ?, val3 = ? where key = ?",\
(val, val2, val3, key))
self.conn.commit()
except:
print("Cannot put sql data", sys.exc_info())
self.errstr = "Cannot put sql data" + str(sys.exc_info())
ret = False
finally:
#c.close
pass
#self.take += time.clock() - got_clock
return ret
# --------------------------------------------------------------------
# Return False if cannot put data
def putdata(self, key, val, val2, val3):
#got_clock = time.clock()
ret = True
try:
#c = self.conn.cursor()
if os.name == "nt":
self.c.execute("select * from caldata where key == ?", (key,))
else:
self.c.execute("select * from caldata indexed by kcaldata where key == ?", (key,))
rr = self.c.fetchall()
if rr == []:
#print "inserting"
self.c.execute("insert into caldata (key, val, val2, val3) \
values (?, ?, ?, ?)", (key, val, val2, val3))
else:
#print "updating"
if os.name == "nt":
self.c.execute("update caldata \
set val = ? val2 = ?, val3 = ? where key = ?", \
(val, val2, val3, key))
else:
self.c.execute("update caldata indexed by kcaldata \
set val = ?, val2 = ?, val3 = ? where key = ?",\
(val, val2, val3, key))
self.conn.commit()
except:
print("Cannot put sql data", sys.exc_info())
self.errstr = "Cannot put sql data" + str(sys.exc_info())
ret = False
finally:
#c.close
pass
#self.take += time.clock() - got_clock
return ret
# --------------------------------------------------------------------
# Get All
def getall(self, strx = "", limit = 100):
#print("getall '" + strx + "'")
try:
#c = self.conn.cursor()
self.c.execute("select * from notes where val like ? limit ?", (strx, limit))
rr = self.c.fetchall()
except:
rr = []
print("Cannot get all sql data", sys.exc_info())
self.errstr = "Cannot get sql data" + str(sys.exc_info())
finally:
#c.close
pass
return rr
# --------------------------------------------------------------------
# Return None if no data
def rmall(self):
print("removing all")
try:
#c = self.conn.cursor()
self.c.execute("delete from notes")
rr = self.c.fetchone()
except:
print("Cannot delete sql data", sys.exc_info())
self.errstr = "Cannot delete sql data" + str(sys.exc_info())
finally:
#c.close
pass
if rr:
return rr[1]
else:
return None
def rmalldata(self):
print("removing all")
try:
#c = self.conn.cursor()
self.c.execute("delete from caldata")
rr = self.c.fetchone()
except:
print("Cannot delete sql data", sys.exc_info())
self.errstr = "Cannot get sql data" + str(sys.exc_info())
finally:
#c.close
pass
if rr:
return rr[1]
else:
return None
# EOF
Functions
def genrandcircle(maxww, maxhh)
-
Expand source code
def genrandcircle(maxww, maxhh): xx = random.randint(10, maxww // 2) yy = random.randint(10, maxhh // 2) ww = 40 for aa in range(18): ww = random.randint(30, maxww / 2) if ww < xx and ww < yy: break return (xx, yy, ww, ww)
def genrandrect(maxww, maxhh)
-
Expand source code
def genrandrect(maxww, maxhh): xx = random.randint(0, maxww // 2) yy = random.randint(0, maxhh // 2) ww = random.randint(maxww // 8, 3 * maxww // 8) hh = random.randint(maxhh // 8, 3 * maxhh // 8) rect = Rectangle( (xx, yy, ww, hh) ) return rect
Classes
class notesql (file)
-
Expand source code
class notesql(): def __init__(self, file): #self.take = 0 self.errstr = "" try: self.conn = sqlite3.connect(file) except: print("Cannot open/create db:", file, sys.exc_info()) return try: self.c = self.conn.cursor() # Create table self.c.execute("create table if not exists notes \ (pri INTEGER PRIMARY KEY, key text, val text, val2 text, val3 text)") self.c.execute("create index if not exists knotes on notes (key)") self.c.execute("create index if not exists pnotes on notes (pri)") self.c.execute("create table if not exists caldata \ (pri INTEGER PRIMARY KEY, key text, val text, val2 text, val3 text)") self.c.execute("create index if not exists kcaldata on caldata (key)") self.c.execute("create index if not exists pcaldata on caldata (pri)") self.c.execute("PRAGMA synchronous=OFF") # Save (commit) the changes self.conn.commit() except: print("Cannot insert sql data", sys.exc_info()) self.errstr = "Cannot insert sql data" + str(sys.exc_info()) finally: # We close the cursor, we are done with it #c.close() pass # -------------------------------------------------------------------- # Return None if no data def get(self, kkk): try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from notes where key = ?", (kkk,)) else: self.c.execute("select * from notes indexed by knotes where key = ?", (kkk,)) rr = self.c.fetchone() except: print("Cannot get sql data", sys.exc_info()) rr = None self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return (rr[2], rr[3], rr[4]) else: return None def getdata(self, kkk): try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from caldata where key = ?", (kkk,)) else: self.c.execute("select * from caldata indexed by kcaldata where key = ?", (kkk,)) rr = self.c.fetchone() except: print("Cannot get sql data", sys.exc_info()) rr = None self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return (rr[2], rr[3], rr[4]) else: return None # -------------------------------------------------------------------- # Return False if cannot put data def put(self, key, val, val2, val3): #got_clock = time.clock() ret = True try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from notes where key == ?", (key,)) else: self.c.execute("select * from notes indexed by knotes where key == ?", (key,)) rr = self.c.fetchall() if rr == []: #print "inserting" self.c.execute("insert into notes (key, val, val2, val3) \ values (?, ?, ?, ?)", (key, val, val2, val3)) else: #print "updating" if os.name == "nt": self.c.execute("update notes \ set val = ? val2 = ?, val3 = ? where key = ?", \ (val, val2, val3, key)) else: self.c.execute("update notes indexed by knotes \ set val = ?, val2 = ?, val3 = ? where key = ?",\ (val, val2, val3, key)) self.conn.commit() except: print("Cannot put sql data", sys.exc_info()) self.errstr = "Cannot put sql data" + str(sys.exc_info()) ret = False finally: #c.close pass #self.take += time.clock() - got_clock return ret # -------------------------------------------------------------------- # Return False if cannot put data def putdata(self, key, val, val2, val3): #got_clock = time.clock() ret = True try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from caldata where key == ?", (key,)) else: self.c.execute("select * from caldata indexed by kcaldata where key == ?", (key,)) rr = self.c.fetchall() if rr == []: #print "inserting" self.c.execute("insert into caldata (key, val, val2, val3) \ values (?, ?, ?, ?)", (key, val, val2, val3)) else: #print "updating" if os.name == "nt": self.c.execute("update caldata \ set val = ? val2 = ?, val3 = ? where key = ?", \ (val, val2, val3, key)) else: self.c.execute("update caldata indexed by kcaldata \ set val = ?, val2 = ?, val3 = ? where key = ?",\ (val, val2, val3, key)) self.conn.commit() except: print("Cannot put sql data", sys.exc_info()) self.errstr = "Cannot put sql data" + str(sys.exc_info()) ret = False finally: #c.close pass #self.take += time.clock() - got_clock return ret # -------------------------------------------------------------------- # Get All def getall(self, strx = "", limit = 100): #print("getall '" + strx + "'") try: #c = self.conn.cursor() self.c.execute("select * from notes where val like ? limit ?", (strx, limit)) rr = self.c.fetchall() except: rr = [] print("Cannot get all sql data", sys.exc_info()) self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass return rr # -------------------------------------------------------------------- # Return None if no data def rmall(self): print("removing all") try: #c = self.conn.cursor() self.c.execute("delete from notes") rr = self.c.fetchone() except: print("Cannot delete sql data", sys.exc_info()) self.errstr = "Cannot delete sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return rr[1] else: return None def rmalldata(self): print("removing all") try: #c = self.conn.cursor() self.c.execute("delete from caldata") rr = self.c.fetchone() except: print("Cannot delete sql data", sys.exc_info()) self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return rr[1] else: return None
Methods
def get(self, kkk)
-
Expand source code
def get(self, kkk): try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from notes where key = ?", (kkk,)) else: self.c.execute("select * from notes indexed by knotes where key = ?", (kkk,)) rr = self.c.fetchone() except: print("Cannot get sql data", sys.exc_info()) rr = None self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return (rr[2], rr[3], rr[4]) else: return None
def getall(self, strx='', limit=100)
-
Expand source code
def getall(self, strx = "", limit = 100): #print("getall '" + strx + "'") try: #c = self.conn.cursor() self.c.execute("select * from notes where val like ? limit ?", (strx, limit)) rr = self.c.fetchall() except: rr = [] print("Cannot get all sql data", sys.exc_info()) self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass return rr
def getdata(self, kkk)
-
Expand source code
def getdata(self, kkk): try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from caldata where key = ?", (kkk,)) else: self.c.execute("select * from caldata indexed by kcaldata where key = ?", (kkk,)) rr = self.c.fetchone() except: print("Cannot get sql data", sys.exc_info()) rr = None self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return (rr[2], rr[3], rr[4]) else: return None
def put(self, key, val, val2, val3)
-
Expand source code
def put(self, key, val, val2, val3): #got_clock = time.clock() ret = True try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from notes where key == ?", (key,)) else: self.c.execute("select * from notes indexed by knotes where key == ?", (key,)) rr = self.c.fetchall() if rr == []: #print "inserting" self.c.execute("insert into notes (key, val, val2, val3) \ values (?, ?, ?, ?)", (key, val, val2, val3)) else: #print "updating" if os.name == "nt": self.c.execute("update notes \ set val = ? val2 = ?, val3 = ? where key = ?", \ (val, val2, val3, key)) else: self.c.execute("update notes indexed by knotes \ set val = ?, val2 = ?, val3 = ? where key = ?",\ (val, val2, val3, key)) self.conn.commit() except: print("Cannot put sql data", sys.exc_info()) self.errstr = "Cannot put sql data" + str(sys.exc_info()) ret = False finally: #c.close pass #self.take += time.clock() - got_clock return ret
def putdata(self, key, val, val2, val3)
-
Expand source code
def putdata(self, key, val, val2, val3): #got_clock = time.clock() ret = True try: #c = self.conn.cursor() if os.name == "nt": self.c.execute("select * from caldata where key == ?", (key,)) else: self.c.execute("select * from caldata indexed by kcaldata where key == ?", (key,)) rr = self.c.fetchall() if rr == []: #print "inserting" self.c.execute("insert into caldata (key, val, val2, val3) \ values (?, ?, ?, ?)", (key, val, val2, val3)) else: #print "updating" if os.name == "nt": self.c.execute("update caldata \ set val = ? val2 = ?, val3 = ? where key = ?", \ (val, val2, val3, key)) else: self.c.execute("update caldata indexed by kcaldata \ set val = ?, val2 = ?, val3 = ? where key = ?",\ (val, val2, val3, key)) self.conn.commit() except: print("Cannot put sql data", sys.exc_info()) self.errstr = "Cannot put sql data" + str(sys.exc_info()) ret = False finally: #c.close pass #self.take += time.clock() - got_clock return ret
def rmall(self)
-
Expand source code
def rmall(self): print("removing all") try: #c = self.conn.cursor() self.c.execute("delete from notes") rr = self.c.fetchone() except: print("Cannot delete sql data", sys.exc_info()) self.errstr = "Cannot delete sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return rr[1] else: return None
def rmalldata(self)
-
Expand source code
def rmalldata(self): print("removing all") try: #c = self.conn.cursor() self.c.execute("delete from caldata") rr = self.c.fetchone() except: print("Cannot delete sql data", sys.exc_info()) self.errstr = "Cannot get sql data" + str(sys.exc_info()) finally: #c.close pass if rr: return rr[1] else: return None
class pgoline
-
:Constructors:
::
VBox(**properties) new(homogeneous:bool, spacing:int) -> Gtk.Widget
Initializer for a GObject based classes with support for property sets through the use of explicit keyword arguments.
Expand source code
class pgoline(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.init = 0 #set_testmode(1) #self.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse("#444444")) hbox = Gtk.HBox() self.lastsel = "" self.connect("motion-notify-event", self.motion_event) self.connect("configure-event", self.config_event) #self.connect("event", self.all_event) self.data_dir = os.path.expanduser("~/.pyednotes") try: if not os.path.isdir(self.data_dir): os.mkdir(self.data_dir) except: print("Cannot make notes data dir") self.statbox = Gtk.Label(" Idle") self.statbox.set_xalign(0); self.statbox.set_yalign(0) #self.vbox = Gtk.VBox() self.pack_start(xSpacer(), 0, 0, 0) #self.toolbox = ToolBox(self.toolcb, pedconfig.conf.pedwin) self.toolbox = ToolBox(self.toolcb, self.get_toplevel()) #self.pack_start(self.toolbox, 0, 0, 2) self.canvas = Canvas(self, self.statbox) for aa in range(10): rstr = randstr(6) rrr = random.randint(0, 5) if rrr == 0: rect = genrandrect(500, 1000) self.canvas.add_rect(rect, "Rect_" + rstr, randcolstr() ) elif rrr == 1: rect = genrandrect(500, 1000) self.canvas.add_romb(rect, "Romb_" + rstr, randcolstr() ) elif rrr == 2: rect = genrandrect(300, 300) self.canvas.add_text(rect, "Text_" + rstr, randcolstr() ) elif rrr == 3: rect = genrandrect(500, 1000) self.canvas.add_line(rect, "Line_" + rstr, randcolstr() ) elif rrr == 4: rect = genrandrect(500, 1000) self.canvas.add_curve(rect, "Curve_" + rstr, randcolstr() ) else: circ = genrandcircle(500, 500) self.canvas.add_circle(circ, "Circ_" + rstr, randcolstr() ) #self.canvas.show_objects() #self.canvas.setsavecb(self.savetext) hbox2 = xHBox() hbox2.pack(self.statbox, True) mbut = MenuButt(("Open", "Save", "Export"), self.main_callb) hbox2.pack(mbut) scroll3a = Gtk.ScrolledWindow() scroll3a.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS) scroll3a.add(self.canvas) frame5 = Gtk.Frame(); frame5.add(scroll3a) self.pack_start(frame5, 1, 1, 2) self.pack_start(hbox2, 0, 0, 2) #self.add(self.vbox) #self.pack_start(xSpacer(), 0, 0, 0) def config_event(self, win, event): print("config_event", win, event) def toolcb(self, butt, num): print("toolsb", num) def focus_out(self): self.toolbox.hide() def focus_in(self): self.toolbox.show_box(pedconfig.conf.pedwin.mywin) def switched(self, pageto): #print("SW page signal", pageto) if pageto == self: #print("me") self.toolbox.show_box(pedconfig.conf.pedwin.mywin) else: self.toolbox.hide() def motion_event(self, win, event): #print("motion_event", win, event) if not self.init: pass #self.init = True #self.toolbox.show_box(pedconfig.conf.pedwin.mywin) def all_event(self, win, event): if event.type != Gdk.EventType.MOTION_NOTIFY: print("all_event", win, event) def letterfilter(self, letter): #print("letterfilter", letter) if letter == "All": print("Erase selection") else: aaa = self.sql.getall(letter + "%") print("all", aaa) self.treeview2.clear() for aa in aaa: self.treeview2.append(aa[2:]) def main_callb(self, text, arg): #print("main_callb", text, arg) if arg == 0: fff = getfilename(parent=self) # "Open File", "Load Annotation", []) if fff: print("fff", fff) pass def newitem(self, arg, num): print ("new", arg, num) self.treeview2.append(("New Item", "", "")) self.treeview2.sel_last() pass def find(self, arg): print ("find", arg) aaa = self.sql.getall("%" + self.edit.get_text() + "%") print("all", aaa) self.treeview2.clear() for aa in aaa: self.treeview2.append(aa[2:]) def savetext(self, txt): #ddd = self.cal.get_date() #key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], self.lastsel) #print("savetext", key, "--", txt) #self.sql.putdata(key, txt, "", "") pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % key); def treechange(self, args): #ddd = self.cal.get_date() ddd = datetime.datetime.today() key = "%d-%d-%d %d:%d %s" % (ddd.year, ddd.month, ddd.day, ddd.hour, ddd.minute, args[0]) self.lastsel = args[0] print("treechange", key, args) self.sql.put(key, args[0], args[1], args[2]) pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % self.lastsel); def treesel(self, args): print("treesel", args) self.edview.clear() #ddd = self.cal.get_date() #key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], args[0]) #strx = self.sql.getdata(key) #if strx: # self.edview.append(strx[0]) self.lastsel = args[0] def today(self, butt, cal): ddd = datetime.datetime.today() #print("date", ddd.year, ddd.month, ddd.day) #cal.select_month(ddd.month-1, ddd.year) #cal.select_day(ddd.day) def demand(self, butt, cal): ddd = datetime.datetime.today() #print("demand", ddd.year, ddd.month, ddd.day) def daysel(self, cal): return #print("Day", cal.get_date()) #self.edit.set_text(str(cal.get_date())) self.treeview2.clear() for aa in range(8, 20): #self.treeview2.append((ampmstr(aa), randstr(8), randstr(14)) ) ddd = self.cal.get_date() key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], ampmstr(aa) ) try: val = self.sql.get(key) if val: #print("val", val) self.treeview2.append((ampmstr(aa), val[0], val[1], val[2]) ) else: self.treeview2.append((ampmstr(aa), "", "", "") ) except: pass def dayseldouble(self, cal): #print("Day dbl", cal.get_date()) pass
Ancestors
- gi.repository.Gtk.VBox
- gi.overrides.Gtk.Box
- gi.repository.Gtk.Box
- gi.overrides.Gtk.Container
- gi.repository.Gtk.Container
- gi.overrides.Gtk.Widget
- gi.repository.Gtk.Widget
- gi.repository.GObject.InitiallyUnowned
- gi.overrides.GObject.Object
- gi.repository.GObject.Object
- gi._gi.GObject
- gi.repository.Atk.ImplementorIface
- gi.repository.Gtk.Buildable
- gi.repository.Gtk.Orientable
- gobject.GInterface
Methods
def all_event(self, win, event)
-
Expand source code
def all_event(self, win, event): if event.type != Gdk.EventType.MOTION_NOTIFY: print("all_event", win, event)
def config_event(self, win, event)
-
Expand source code
def config_event(self, win, event): print("config_event", win, event)
def daysel(self, cal)
-
Expand source code
def daysel(self, cal): return #print("Day", cal.get_date()) #self.edit.set_text(str(cal.get_date())) self.treeview2.clear() for aa in range(8, 20): #self.treeview2.append((ampmstr(aa), randstr(8), randstr(14)) ) ddd = self.cal.get_date() key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], ampmstr(aa) ) try: val = self.sql.get(key) if val: #print("val", val) self.treeview2.append((ampmstr(aa), val[0], val[1], val[2]) ) else: self.treeview2.append((ampmstr(aa), "", "", "") ) except: pass
def dayseldouble(self, cal)
-
Expand source code
def dayseldouble(self, cal): #print("Day dbl", cal.get_date()) pass
def demand(self, butt, cal)
-
Expand source code
def demand(self, butt, cal): ddd = datetime.datetime.today() #print("demand", ddd.year, ddd.month, ddd.day)
def find(self, arg)
-
Expand source code
def find(self, arg): print ("find", arg) aaa = self.sql.getall("%" + self.edit.get_text() + "%") print("all", aaa) self.treeview2.clear() for aa in aaa: self.treeview2.append(aa[2:])
def focus_in(self)
-
Expand source code
def focus_in(self): self.toolbox.show_box(pedconfig.conf.pedwin.mywin)
def focus_out(self)
-
Expand source code
def focus_out(self): self.toolbox.hide()
def letterfilter(self, letter)
-
Expand source code
def letterfilter(self, letter): #print("letterfilter", letter) if letter == "All": print("Erase selection") else: aaa = self.sql.getall(letter + "%") print("all", aaa) self.treeview2.clear() for aa in aaa: self.treeview2.append(aa[2:])
def main_callb(self, text, arg)
-
Expand source code
def main_callb(self, text, arg): #print("main_callb", text, arg) if arg == 0: fff = getfilename(parent=self) # "Open File", "Load Annotation", []) if fff: print("fff", fff) pass
def motion_event(self, win, event)
-
Expand source code
def motion_event(self, win, event): #print("motion_event", win, event) if not self.init: pass #self.init = True #self.toolbox.show_box(pedconfig.conf.pedwin.mywin)
def newitem(self, arg, num)
-
Expand source code
def newitem(self, arg, num): print ("new", arg, num) self.treeview2.append(("New Item", "", "")) self.treeview2.sel_last() pass
def savetext(self, txt)
-
Expand source code
def savetext(self, txt): #ddd = self.cal.get_date() #key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], self.lastsel) #print("savetext", key, "--", txt) #self.sql.putdata(key, txt, "", "") pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % key);
def switched(self, pageto)
-
Expand source code
def switched(self, pageto): #print("SW page signal", pageto) if pageto == self: #print("me") self.toolbox.show_box(pedconfig.conf.pedwin.mywin) else: self.toolbox.hide()
def today(self, butt, cal)
-
Expand source code
def today(self, butt, cal): ddd = datetime.datetime.today() #print("date", ddd.year, ddd.month, ddd.day) #cal.select_month(ddd.month-1, ddd.year) #cal.select_day(ddd.day)
def toolcb(self, butt, num)
-
Expand source code
def toolcb(self, butt, num): print("toolsb", num)
def treechange(self, args)
-
Expand source code
def treechange(self, args): #ddd = self.cal.get_date() ddd = datetime.datetime.today() key = "%d-%d-%d %d:%d %s" % (ddd.year, ddd.month, ddd.day, ddd.hour, ddd.minute, args[0]) self.lastsel = args[0] print("treechange", key, args) self.sql.put(key, args[0], args[1], args[2]) pedconfig.conf.pedwin.update_statusbar("Saved note item for '%s'" % self.lastsel);
def treesel(self, args)
-
Expand source code
def treesel(self, args): print("treesel", args) self.edview.clear() #ddd = self.cal.get_date() #key = "%d-%d-%d %s" % (ddd[0], ddd[1], ddd[2], args[0]) #strx = self.sql.getdata(key) #if strx: # self.edview.append(strx[0]) self.lastsel = args[0]