예제 #1
0
파일: city.py 프로젝트: over2sd/minette
def initCmile(self, fileid, tabs, ar, ctalts):
    global cities
    data = {}
    scroll = self.get_parent()
    try:
        data = cities.get(fileid)
    except KeyError as e:
        print "initSmile: An error occurred accessing %s: %s" % (fileid, e)
        return
    row = gtk.HBox()
    row.show()
    self.pack_start(row, False, False, 2)
    mileadd = gtk.Button("New Milestone")
    mileadd.show()
    mileadd.set_alignment(0.75, 0.05)
    row.pack_start(mileadd, 0, 0, 5)
    dhead = gtk.Label("Date")
    dhead.show()
    dhead.set_width_chars(8)
    row.pack_start(dhead, 1, 1, 2)
    ehead = gtk.Label("Event")
    ehead.show()
    ehead.set_width_chars(18)
    row.pack_start(ehead, 1, 1, 2)
    row.show_all()
    row2 = gtk.VBox()
    row2.show()
    self.pack_start(row2, 1, 1, 2)
    boxwidth = self.size_request()[0]
    if not cities[fileid]["info"].get("m"):
        cities[fileid]["info"]["m"] = {}
    r = cities[fileid]["info"].get("m")
    if not cities[fileid]["info"]["m"].get("events"):
        cities[fileid]["info"]["m"]["events"] = {}
    mileadd.connect("clicked", addMilestone, scroll, row2, cities.get(fileid), fileid, "info", "m", boxwidth)
    if r.get("events"):
        for i in sorted(r["events"]):
            #      showMile(row2,r,i,fileid,relid)

            # def showMile(row2,r,i,fileid,relid):
            events = r["events"][i]
            #  print str(events)
            if events.get("date") and events.get("event"):
                rowmile = gtk.HBox()
                rowmile.show()
                blank = gtk.Label()
                blank.show()
                blank.set_width_chars(12)
                rowmile.pack_start(blank, 0, 0, 2)
                d = gtk.Entry()
                d.show()
                d.set_width_chars(12)
                d.set_text(events["date"][0])
                data = cities.get(fileid)
                activateInfoEntry(d, ar, ctalts, scroll, data, fileid, "m", 3, ["events", i, "date"])
                rowmile.pack_start(d, 1, 1, 2)
                placeCalendarButton(data, rowmile, d, [fileid, "m", "events", i, "date"], ctalts, counter=ar)
                e = gtk.Entry()
                e.show()
                e.set_width_chars(18)
                e.set_text(events["event"][0])
                activateInfoEntry(e, ar, ctalts, scroll, data, fileid, "m", 3, ["events", i, "event"])
                rowmile.pack_start(e, 1, 1, 2)
                row2.pack_start(rowmile, 0, 0, 2)
    pass
    el = gtk.Label("End of record")
    el.show()
    el.set_alignment(1, 1)
    self.pack_start(el, 0, 0, 3)
예제 #2
0
파일: city.py 프로젝트: over2sd/minette
def initCinfo(self, fileid, tabs, ar, ctalts):
    data = {}
    scroll = self.get_parent()
    try:
        data = cities.get(fileid)
    except KeyError as e:
        print "initCinfo: An error occurred accessing %s: %s" % (fileid, e)
        return
    scroll = self.get_parent()
    label = gtk.Label("City:")
    label.set_alignment(0, 0)
    label.show()
    self.pack_start(label, 0, 0, 1)
    self.s1 = gtk.HSeparator()
    self.pack_start(self.s1, False, False, 2)
    self.s1.show()
    name = buildarow(scroll, "Name:", data, fileid, "name", ar, ctalts)
    self.pack_start(name, 0, 0, 2)
    state = buildStateRow(scroll, data, fileid)
    self.pack_start(state, 0, 0, 2)
    row = gtk.HBox()
    row.show()
    path = ["info", "start"]
    label = gtk.Label("Start Date:")
    label.show()
    row.pack_start(label, False, False, 2)
    start = gtk.Entry(25)
    start.show()
    start.set_text(getInf(data, path))
    activateInfoEntry(start, ar, ctalts, scroll, data, fileid, "start")
    row.pack_start(start, True, True, 2)
    path2 = [fileid, "info"]
    path2.append(path[-1])
    placeCalendarButton(data, row, start, path2, ctalts, counter=ar)
    label = gtk.Label("Cue:")
    label.show()
    row.pack_start(label, False, False, 2)
    scue = gtk.Entry(25)
    scue.show()
    path[1] = "scue"
    scue.set_text(getInf(data, path))
    activateInfoEntry(scue, ar, ctalts, scroll, data, fileid, "scue")
    row.pack_start(scue, True, True, 2)
    self.pack_start(row, False, False, 2)
    row = gtk.HBox()
    row.show()
    label = gtk.Label("End Date:")
    label.show()
    row.pack_start(label, False, False, 2)
    end = gtk.Entry(25)
    end.show()
    path[1] = "end"
    end.set_text(getInf(data, path))
    activateInfoEntry(end, ar, ctalts, scroll, data, fileid, "end")
    row.pack_start(end, True, True, 2)
    path2 = [fileid, "info"]
    path2.append(path[-1])
    placeCalendarButton(data, row, end, path2, ctalts, counter=ar)
    label = gtk.Label("Cue:")
    label.show()
    row.pack_start(label, False, False, 2)
    ecue = gtk.Entry(25)
    ecue.show()
    path[1] = "ecue"
    ecue.set_text(getInf(data, path))
    activateInfoEntry(ecue, ar, ctalts, scroll, data, fileid, "ecue")
    row.pack_start(ecue, True, True, 2)
    self.pack_start(row, False, False, 2)
    self.aspects = buildaspectrow(scroll, cities.get(fileid), fileid, ar, ctalts)  # ,display = 0)
    self.add(self.aspects)
    """
	Population
	Major products/industries
	Major landmarks (list?)
	Primary power
	Secondary powers
	Demographics/Main race
	Districts (notebox)
	History?
"""
    self.notebox = gtk.VBox()
    self.notebox.show()
    self.pack_start(self.notebox, True, False, 2)
    label = gtk.Label("Places")
    label.set_alignment(0, 0)
    label.show()
    self.notebox.pack_start(label, 0, 0, 1)
    s1 = gtk.HSeparator()
    self.notebox.pack_start(s1, False, False, 2)
    s1.show()
    box = gtk.HBox()
    box.show()
    addbut = gtk.Button("Register Place")
    image = gtk.Image()
    image.set_from_file("img/add.png")
    image.show()
    addbut.set_image(image)
    addbut.show()
    path = ["info", "places"]
    state = validateFileid(getInf(data, ["info", "statefile"], ""))
    cityname = getInf(data, ["info", "name"], "")
    cityplaces = getInf(data, path, {})
    for l in cityplaces.keys():
        fi = l
        name = getInf(cityplaces, [l, "name"], "")
        pushLoc(state, "", fileid, cityname, fi, name)
    lbook = getPlacesIn(fileid)
    addbut.connect(
        "clicked", choosePlace, self.notebox, tabs, scroll, data, fileid, ar, ctalts, "Register in %s..." % cityname
    )
    box.pack_end(addbut, False, False, 1)
    self.notebox.pack_start(box, False, False, 1)
    for l in sorted(lbook.keys()):
        if l != "_name":
            newplace = False
            if l not in cityplaces.keys():
                newplace = True
                pushPlace(fileid, l, lbook[l])
            packPlace(self.notebox, scroll, data, fileid, l, lbook[l], tabs, newplace)
    el = gtk.Label("End of record")
    el.show()
    el.set_alignment(1, 1)
    self.pack_start(el, 0, 0, 3)
예제 #3
0
파일: place.py 프로젝트: over2sd/minette
def initLinfo(self, fileid,ar,plalts):
  data = {}
  scroll = self.get_parent()
  try:
    data = places.get(fileid)
  except KeyError as e:
    print "initLinfo: An error occurred accessing %s: %s" % (fileid,e)
    return
  scroll = self.get_parent()
  self.namelabelbox = gtk.HBox()
  self.namelabelbox.show()
  label = gtk.Label("Place:")
  label.set_alignment(0,0)
  label.show()
  self.namelabelbox.pack_start(label,1,1,2)
  self.pack_start(self.namelabelbox)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  name = buildarow(scroll,"Name:",data,fileid,'name',ar,plalts)
  self.pack_start(name,0,0,2)
  commonname = buildarow(scroll,"Common Name:",data,fileid,'commonname',ar,plalts)
  self.pack_start(commonname,0,0,2)
  if commonname.e.get_text() == "" and name.e.get_text() != "":
    commonname.e.set_text(name.e.get_text())
    commonname.e.emit("focus-out-event",gtk.gdk.Event(gtk.gdk.FOCUS_CHANGE))
  row = gtk.HBox()
  row.show()
  path = ["info","start"]
  label = gtk.Label("Start Date:")
  label.show()
  row.pack_start(label,False,False,2)
  start = gtk.Entry(25)
  start.show()
  start.set_text(getInf(data,path))
  activateInfoEntry(start,ar,plalts,scroll,data,fileid,"start")
  row.pack_start(start,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,start,path2,plalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  scue = gtk.Entry(25)
  scue.show()
  path[1] = "scue"
  scue.set_text(getInf(data,path))
  activateInfoEntry(scue,ar,plalts,scroll,data,fileid,"scue")
  row.pack_start(scue,True,True,2)
  self.pack_start(row,False,False,2)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("End Date:")
  label.show()
  row.pack_start(label,False,False,2)
  end = gtk.Entry(25)
  end.show()
  path[1] = "end"
  end.set_text(getInf(data,path))
  activateInfoEntry(end,ar,plalts,scroll,data,fileid,"end")
  row.pack_start(end,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,end,path2,plalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  ecue = gtk.Entry(25)
  ecue.show()
  path[1] = "ecue"
  ecue.set_text(getInf(data,path))
  activateInfoEntry(ecue,ar,plalts,scroll,data,fileid,"ecue")
  row.pack_start(ecue,True,True,2)
  self.pack_start(row,False,False,2)
  self.aspects = buildaspectrow(scroll,places.get(fileid),fileid,ar,plalts) # ,display = 0)
  self.add(self.aspects)
  label = gtk.Label("Stories")
  label.set_alignment(0,0)
  label.show()
  self.pack_start(label,False,False,2)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  self.stories = buildarow(scroll,"Stories:",data,fileid,'stories',ar,plalts,2)
  self.pack_start(self.stories,False,False,2)
  self.mention = buildarow(scroll,"First Mentions:",data,fileid,'mention',ar,plalts)
  self.pack_start(self.mention,False,False,2)
  self.l7 = gtk.Label("Specifications")
  self.l7.set_alignment(0,1)
  self.l7.show()
  self.pack_start(self.l7,False,False,2)
  self.s2 = gtk.HSeparator()
  self.pack_start(self.s2,False,False,2)
  self.s2.show()
  self.desc = buildarow(scroll,"Description:",data,fileid,'desc',ar,plalts)
  self.pack_start(self.desc,False,False,2)
  self.address = buildarow(scroll,"Address:",data,fileid,'address',ar,plalts)
  self.pack_start(self.address,False,False,2)
  self.location = buildLocRow(data,fileid)
  self.pack_start(self.location,False,False,2)
  label = gtk.Label("Notes")
  label.set_alignment(0,0)
  label.show()
  self.pack_start(label,False,False,2)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  notebox = gtk.VBox()
  notebox.show()
  self.pack_start(notebox,True,True,2)
  newbut = gtk.Button("Add a note")
  newbut.show()
  image = gtk.Image()
  image.set_from_file("img/add.png")
  newbut.set_image(image)
  newbut.connect("clicked",addNote,scroll,ar,plalts,notebox,fileid)
  box = gtk.HBox()
  box.show()
  box.pack_end(newbut,0,0,2)
  label = gtk.Label("Date")
  label.show()
  box.pack_end(label,0,0,2)
  label = gtk.Label("Note")
  label.show()
  box.pack_end(label,1,1,2)
  notebox.pack_start(box,0,0,2)
  notes = data.get("info")
  if notes: notes = notes.get("notes")
  if notes:
    for i in sorted(notes.keys()):
      dval = notes[i].get("date")
      cval = notes[i].get("content")
      if dval: dval = dval[0]
      if cval: cval = cval[0]
      if dval and cval: addNote(self,scroll,notebox,fileid,dval,cval,i)
  el = gtk.Label("End of record")
  el.show()
  el.set_alignment(1,1)
  self.pack_start(el,0,0,3)
예제 #4
0
파일: person.py 프로젝트: over2sd/minette
def listRel(self,r,fileid,relid,scroll,psalts,target = None):
  if not r.get("related"): return
  name = r['related'][0]
  if not r.get("cat"):
    print "empty category! Attempting to find...",
    x = getCat(relid)
    if x is not None:
      r['cat'] = x
      print r
    else:
      print "Not found!\nTo repair, open %s manually, and then reload %s." % (relid,fileid)
      return
    print '\n',
  cat = r['cat'][0]
  displayFunc = None
  if cat == "person":  displayFunc = displayPerson
  elif cat == "place": displayFunc = place.displayPlace
  else:
    print "Invalid category '%s' at listRel:%d!" % (cat,lineno())
    return
  if not target: target = self.get_parent().get_parent().get_parent().get_parent() #Which is better?
  namebutton = gtk.Button(relid)
  namebutton.connect("clicked",displayFunc,relid,target) # passing the target or figuring it from parentage?
  ### TODO: displayPerson? what about places/orgs?
  row1 = gtk.HBox()
  self.pack_start(row1,0,0,2)
  row1.pack_start(namebutton,1,1,2)
  row1.show()
  namebutton.show()
  namebutton.set_alignment(0.75,0.05)
  namebutton.set_size_request(int(self.size_request()[0] * 0.20),10)
  namelabel = gtk.Label("Name: ")
  namelabel.show()
  row1.pack_start(namelabel,0,0,2)
  namelabel.set_width_chars(6)
  nameentry = gtk.Entry()
  nameentry.show()
  nameentry.set_text(name)
  activateRelEntry(nameentry,psalts,scroll,people.get(fileid),fileid,relid,"related")
  row1.pack_start(nameentry,1,1)
  txt = r.get("relation")
  if txt is None:
    r['relation'] = ["",False]
    txt = ["",False]
  relation = gtk.Label(txt[0])
  relation.show()
  relation.set_width_chars(8)
  row1.pack_start(relation,1,1)
  relset = gtk.Button("Set")
  relset.show()
  relset.set_alignment(0.5,0.5)
  relset.set_size_request(36,24)
  data = people.get(relid,None)
  genderR = ""
  if data: genderR = getInf(data,["info","gender"])
  if not genderR or genderR == "":
    p = loadPerson(relid)
    genderR = p[0].get("gender",['N',False])
    genderR = genderR[0]
  genderP = getInf(people.get(fileid),["info","gender"])
  relset.connect("clicked",selectConnectionP,relation,fileid,relid,name,cat,genderR,genderP)
  row1.pack_start(relset,0,0,5)
  row2 = gtk.HBox()
  self.pack_start(row2,0,0,2)
  row2.show()
  mileadd = gtk.Button("New Milestone")
  mileadd.show()
  mileadd.set_alignment(0.75,0.05)
#  mileadd.set_size_request(int(self.size_request()[0] * 0.30),24)
  row2.pack_start(mileadd,0,0,5)
  dhead = gtk.Label("Date")
  dhead.show()
  dhead.set_width_chars(8)
  row2.pack_start(dhead,1,1,2)
  ehead = gtk.Label("Event")
  ehead.show()
  ehead.set_width_chars(18)
  row2.pack_start(ehead,1,1,2)
  row2.show_all()
  row3 = gtk.VBox()
  row3.show()
  self.pack_start(row3,0,0,2)
  boxwidth = self.size_request()[0]
  mileadd.connect("clicked",addMilestone,scroll,row3,people.get(fileid),fileid,"relat",relid,boxwidth)
  if r.get("events"):
    for i in r['events']:
#      showMile(row3,r,i,fileid,relid)

#def showMile(row3,r,i,fileid,relid):
      events = r['events'][i]
#  print str(events)
      if events.get("date") and events.get("event"):
        rowmile = gtk.HBox()
        rowmile.show()
        blank = gtk.Label()
        blank.show()
        blank.set_width_chars(12)
        rowmile.pack_start(blank,0,0,2)
        d = gtk.Entry()
        d.show()
        d.set_width_chars(12)
        d.set_text(events['date'][0])
        data = people.get(fileid)
        activateRelEntry(d,psalts,scroll,data,fileid,relid,"date",i)
        rowmile.pack_start(d,1,1,2)
        placeCalendarButton(data,rowmile,d,[fileid,"relat",relid,"events",i,"date"],psalts,counter=ar)
        e = gtk.Entry()
        e.show()
        e.set_width_chars(18)
        e.set_text(events['event'][0])
        activateRelEntry(e,psalts,scroll,data,fileid,relid,"event",i)
        rowmile.pack_start(e,1,1,2)
        row3.add(rowmile)
예제 #5
0
파일: options.py 프로젝트: over2sd/minette
def optionSetter(caller,parent = "?",canskip = True):
  global config
  global status
  options = {}
  factor = 0.80
  if parent == "?":
    parent = mainWin
    print "parent: %s" % parent
  title = "Setting Options"
  optbox = gtk.Dialog(title,parent,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_APPLY,gtk.RESPONSE_APPLY,gtk.STOCK_OK,gtk.RESPONSE_OK))
  if not canskip: optbox.get_action_area().get_children()[2].set_sensitive(False) # buttons seem to number right to left
  applyBut = optbox.get_action_area().get_children()[1]
  applyBut.set_sensitive(False)
#  optbox.get_action_area().get_children()[0].set_sensitive(False)
  if not config.get("nowindowstore"):
    optbox.set_geometry_hints(None,int(config['size'][0] * factor),int(config['size'][1] * (factor - 0.05)))
#  optbox.set_decorated(False)
  sw = gtk.VBox()
  sw.show()
  sw.set_border_width(10)
  scroll = gtk.ScrolledWindow()
  scroll.show()
  scroll.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC)
  scroll.add_with_viewport(sw)
  optbox.vbox.add(scroll)
  rf = config['realmfile']
  if rf == "": rf = "<unspecified>"
  label = gtk.Label("Realm-specific Options for %s" % rf)
  label.show()
  sw.pack_start(label,False,False,7)
  row = gtk.HBox()
  label = gtk.Label("Name of this realm/setting/world: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("realmname","Unnamed Realm"))
  optbox.set_title("Setting Options - %s" % e.get_text())
  e.connect("changed",setOpt,None,options,"realmname",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  sw.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("Realm Directory: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("realmdir",""))
  e.connect("changed",setOpt,None,options,"realmdir",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  sw.pack_start(row)
  cb = gtk.CheckButton("Family name comes first (Eastern style names)")
  cb.set_active(config.get("familyfirst",False))
  cb.connect("toggled",setOpt,None,options,"familyfirst",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Use middle/maiden names")
  cb.set_active(config.get("usemiddle",True))
  cb.connect("toggled",setOpt,None,options,"usemiddle",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)

  sqlbox = gtk.Frame("SQL Options")
  xmlbox = gtk.Frame("XML Options")
  formats = ["xml","sql"]
  forms = [("informat","Input format"),("outformat","Output format")]
  for key in forms:
    label = key[1]
    key = key[0]
    group = None
    row = gtk.HBox()
    row.show()
    label = gtk.Label("%s:" % label)
    label.show()
    row.pack_start(label,False,False,2)
    c = gtk.combo_box_new_text()
    selected = -1
    options[key] = config.get(key,"xml")
    i = 0
    for f in formats:
      if f == options.get(key): selected = i
      c.append_text(f)
      i += 1
    c.set_active(selected)
    c.connect("changed",setOpt,None,options,key,3)
    c.connect("changed",mayApply,applyBut)
    c.connect("changed",toggleBoxes,None,sqlbox,xmlbox,options)
    c.connect("move-active",setOpt,options,key,3)
    c.connect("move-active",toggleBoxes,sqlbox,xmlbox,options)
    c.connect("focus",scrollOnTab,scroll)
    c.connect("focus-in-event",scrollOnTab,scroll)
    c.show()
    row.pack_start(c,False,False,2)
    sw.pack_start(row)
  sw.pack_start(sqlbox)
  sw.pack_start(xmlbox)
  toggleBoxes(None,None,sqlbox,xmlbox,options)
  xb = gtk.VBox()
  xb.show()
  xmlbox.add(xb)
  sb = gtk.VBox()
  sb.show()
  sqlbox.add(sb)
####### SQL box options
  label = gtk.Label("SQL input/output is not yet implemented.\nPlease use XML for the time being.")
  label.show()
  sb.pack_start(label)
####### XML box options
  cb = gtk.CheckButton("Include empty tags when saving XML files")
  cb.set_active(config.get("printemptyXMLtags",False))
  cb.connect("toggled",setOpt,None,options,"printemptyXMLtags",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  xb.pack_start(cb)
  row = gtk.HBox()
  label = gtk.Label("DTDs are found in this directory: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("dtddir",""))
  e.connect("changed",setOpt,None,options,"dtddir",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  xb.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("URL for DTD in XML files: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("dtdurl",""))
  e.connect("changed",setOpt,None,options,"dtdurl",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  xb.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("URL for XSL files in XML: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("xslurl",""))
  e.connect("changed",setOpt,None,options,"xslurl",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  xb.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("Century assumed for 2-digit years: ")
  test = gtk.Label("Test dates:")
  test.show()
  a = gtk.Adjustment(int(config.get("century",1900)/100),-499,500)
  s1 = gtk.SpinButton(a,1.0,0)
  s1.set_increments(1,10)
  s1.show()
  s1.connect("value-changed",setOpt,None,options,"century",5)
  s1.connect("value-changed",mayApply,applyBut)
  s1.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(s1,False,False,2)
  label = gtk.Label("Split year: ")
  label.show()
  a = gtk.Adjustment(int(config.get("centbreak",77)),0,99)
  s2 = gtk.SpinButton(a,1.0,0)
  s2.set_increments(1,10)
  s2.show()
  s2.connect("value-changed",setOpt,None,options,"centbreak",4)
  s2.connect("value-changed",mayApply,applyBut)
  s2.connect("focus-in-event",scrollOnTab,scroll)
  row.pack_start(label,False,False,2)
  row.pack_start(s2,True,True,2)
  setDates(None,s1,s2,test)
  s2.connect("value-changed",setDates,s1,s2,test)
  s1.connect("value-changed",setDates,s1,s2,test)
  sw.pack_start(row)
  sw.pack_start(test,True,True,2)

  cb = gtk.CheckButton("Show only calculated date")
  cb.set_active(config.get("hideage",True))
  cb.connect("toggled",setOpt,None,options,"hideage",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  row = gtk.HBox()
  label = gtk.Label("Date for age calculations: ")
  label.show()
  e = gtk.Entry()
  e.set_text(config.get("agedate","06/08/10b"))
  e.connect("changed",setOpt,None,options,"agedate",2)
  e.connect("changed",mayApply,applyBut)
  e.show()
  row.show()
  row.pack_start(label,0,0,2)
  row.pack_start(e,1,1,2)
  placeCalendarButton(None,row,e,None,[],nomark=True)
  sw.pack_start(row,0,0,2)
  row = gtk.HBox()
  label = gtk.Label("Expert: Style for dates in this realm: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("datestyle","%y/%m/%db"))
  e.connect("changed",setOpt,None,options,"datestyle",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("focus-in-event",scrollOnTab,scroll)
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  sw.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("Background color for a changed field: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("altcolor","#FFFFFF"))
  e.connect("changed",setOpt,None,options,"altcolor",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("changed",setBack,e,gtk.STATE_NORMAL)
  setBack(None,e,gtk.STATE_NORMAL)
  e.connect("focus-in-event",scrollOnTab,scroll)
  b = gtk.Button("Choose Color")
  b.connect("clicked",selColor,e)
  b.show()
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  row.pack_start(b,False,False,2)
  sw.pack_start(row)
  row = gtk.HBox()
  label = gtk.Label("Background color for a changed field after save: ")
  e = gtk.Entry()
  e.show()
  e.set_text(config.get("savecolor","#FFFFFF"))
  e.connect("changed",setOpt,None,options,"savecolor",2)
  e.connect("changed",mayApply,applyBut)
  e.connect("changed",setBack,e,gtk.STATE_NORMAL)
  setBack(None,e,gtk.STATE_NORMAL)
  e.connect("focus-in-event",scrollOnTab,scroll)
  b = gtk.Button("Choose Color")
  b.connect("clicked",selColor,e)
  b.show()
  row.show()
  label.show()
  row.pack_start(label,False,False,2)
  row.pack_start(e,True,True,2)
  row.pack_start(b,False,False,2)
  sw.pack_start(row)
  cb = gtk.CheckButton("Use list files for this realm")
  cb.set_active(config.get("uselistfile",True))
  cb.connect("toggled",setOpt,None,options,"uselistfile",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Use only realm-defined relationships, not free text")
  cb.set_active(config.get("specialrelsonly",True))
  cb.connect("toggled",setOpt,None,options,"specialrelsonly",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("Story List Format:")
  label.show()
  row.pack_start(label,False,False,2)
  c = gtk.combo_box_new_text()
  selected = -1
  options["showstories"] = config.get("showstories","idlist")
  i = 0
  formats = ["idlist","titlelist"]
  for f in formats:
    if f == options.get("showstories"): selected = i
    c.append_text(f)
    i += 1
  c.set_active(selected)
  c.connect("changed",setOpt,None,options,"showstories",3)
  c.connect("changed",mayApply,applyBut)
  c.connect("move-active",setOpt,options,"showstories",3)
  c.connect("move-active",mayApply,applyBut)
  c.connect("focus",scrollOnTab,scroll)
  c.connect("focus-in-event",scrollOnTab,scroll)
  c.show()
  row.pack_start(c,False,False,2)
  sw.pack_start(row)
  cb = gtk.CheckButton("If only one story, set default Story List value")
  cb.set_active(config.get("defaultstory",True))
  cb.connect("toggled",setOpt,None,options,"defaultstory",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)

####### >>>>>>>

  label = gtk.Label("Program-wide Options")
  label.show()
  sw.pack_start(label,False,False,7)

  cb = gtk.CheckButton("Don't store window size/position")
  cb.set_active(config.get("nowindowstore",False))
  cb.connect("toggled",setOpt,None,options,"nowindowstore",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Accept realm-specific options in the config file")
  cb.set_active(config.get("rlmincfg",False))
  cb.connect("toggled",setOpt,None,options,"rlmincfg",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Opening a new person file at startup")
  cb.set_active(config.get("startnewperson",False))
  cb.connect("toggled",setOpt,None,options,"startnewperson",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Allow opening duplicate tabs")
  cb.set_active(config.get("duplicatetabs",False))
  cb.connect("toggled",setOpt,None,options,"duplicatetabs",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  cb = gtk.CheckButton("Save the active realm file on exit")
  cb.set_active(config.get("saverealm",False))
  cb.connect("toggled",setOpt,None,options,"saverealm",1)
  cb.connect("toggled",mayApply,applyBut)
  cb.connect("focus-in-event",scrollOnTab,scroll)
  cb.show()
  sw.pack_start(cb)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("Load this realm automatically:")
  label.show()
  row.pack_start(label,False,False,2)
  d = gtk.Label()
  d.set_text(config.get("loadrealm",""))
  d.show()
  row.pack_start(d,True,True,2)
  but = gtk.Button("Select Realm")
  but.connect("clicked",chooseRealm,d,options)
  but.connect("clicked",mayApply,applyBut)
  but.show()
  row.pack_start(but,False,False,2)
  sw.pack_start(row)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("Likerealm handling:")
  label.show()
  row.pack_start(label,False,False,2)
  c = gtk.combo_box_new_text()
  selected = -1
  options["matchlike"] = config.get("matchlike",2)
  i = 0
  formats = ["Keep likerealm and track which options are from where","Keep likerealm and save only options that differ","Save all options and omit likerealm"]
  for f in formats:
    if i == options.get("matchlike"): selected = i
    c.append_text(f)
    i += 1
  if selected != -1:
    c.set_active(selected)
  c.connect("changed",setOpt,None,options,"matchlike",1)
  c.connect("changed",mayApply,applyBut)
  c.connect("move-active",setOpt,options,"matchlike",1)
  c.connect("move-active",mayApply,applyBut)
  c.connect("focus",scrollOnTab,scroll)
  c.connect("focus-in-event",scrollOnTab,scroll)
  c.show()
  row.pack_start(c,False,False,2)
  sw.pack_start(row)
  resp = 0
  while resp not in [-6,-5]:
    resp = optbox.run()
    if resp == -10:
      t = "Options applied."
      print t
      status.push(0,t)
      copyOpts(options)
      if options.get("realmname") is not None: updateTitle()
      options = {}
      optbox.set_title("Setting Options - %s" % config.get("realmname","Unnamed Realm"))
      applyBut.set_sensitive(False)
    if resp == -6:
      t = "Cancelled"
      print t
      status.push(0,t)
      optbox.destroy()
      return
    elif resp == -5:
      t = "Options accepted."
      print t
      status.push(0,t)
      optbox.destroy()
      copyOpts(options)
      if options.get("realmname") is not None: updateTitle()
#  saveConfig()
#  saveRealm()
  return
예제 #6
0
파일: state.py 프로젝트: over2sd/minette
def initSinfo(self, fileid,tabs,ar,stalts):
  global states
  data = {}
  scroll = self.get_parent()
  try:
    data = states.get(fileid)
  except KeyError as e:
    print "initSinfo: An error occurred accessing %s: %s" % (fileid,e)
    return
  label = gtk.Label("General")
  label.set_alignment(0,0)
  label.show()
  self.pack_start(label,0,0,1)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  name = buildarow(scroll,"Name:",data,fileid,'name',ar,stalts)
  self.pack_start(name,0,0,2)
  row = gtk.HBox()
  row.show()
  path = ["info","start"]
  label = gtk.Label("Start Date:")
  label.show()
  row.pack_start(label,False,False,2)
  start = gtk.Entry(25)
  start.show()
  start.set_text(getInf(data,path))
  activateInfoEntry(start,ar,stalts,scroll,data,fileid,"start")
  row.pack_start(start,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,start,path2,stalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  scue = gtk.Entry(25)
  scue.show()
  path[1] = "scue"
  scue.set_text(getInf(data,path))
  activateInfoEntry(scue,ar,stalts,scroll,data,fileid,"scue")
  row.pack_start(scue,True,True,2)
  self.pack_start(row,False,False,2)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("End Date:")
  label.show()
  row.pack_start(label,False,False,2)
  end = gtk.Entry(25)
  end.show()
  path[1] = "end"
  end.set_text(getInf(data,path))
  activateInfoEntry(end,ar,stalts,scroll,data,fileid,"end")
  row.pack_start(end,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,end,path2,stalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  ecue = gtk.Entry(25)
  ecue.show()
  path[1] = "ecue"
  ecue.set_text(getInf(data,path))
  activateInfoEntry(ecue,ar,stalts,scroll,data,fileid,"ecue")
  row.pack_start(ecue,True,True,2)
  self.pack_start(row,False,False,2)
  '''
	Vitals:
		State (i.e., empire, kingdom, republic, grand tribe)
		Adjective (Florida businesses)
		People (Floridians)
		Head of state (Governor)
		Capital (Tallahassee)
		Population
		Major resources
	Politics:
		Capital governance
		Foreign relations
		Organization (general)
	Culture
		Expected behaviors
		Rumors
	History
	Geography
	Economy
	Demographics
'''
  self.aspects = buildaspectrow(scroll,states.get(fileid),fileid,ar,stalts) # ,display = 0)
  self.add(self.aspects)
  self.notebox = gtk.VBox()
  self.notebox.show()
  self.pack_start(self.notebox,True,False,2)
  label = gtk.Label("Cities")
  label.set_alignment(0,0)
  label.show()
  self.notebox.pack_start(label,0,0,1)
  s1 = gtk.HSeparator()
  self.notebox.pack_start(s1,False,False,2)
  s1.show()
  box = gtk.HBox()
  box.show()
  addbut = gtk.Button("Register City")
  image = gtk.Image()
  image.set_from_file("img/add.png")
  image.show()
  addbut.set_image(image)
  addbut.show()
  path = ["info","cities"]
  statename = getInf(data,["info","name"],"")
  statecities = getInf(data,path,{})
  for c in statecities.keys():
    fi = c
    cityname = getInf(statecities,[fi,"name"],"")
    pushLoc(fileid,statename,fi,cityname)
  cbook = getCitiesIn(fileid)
  addbut.connect("clicked",chooseCity,self.notebox,tabs,scroll,data,fileid,ar,stalts,"Register in %s..." % statename)
  box.pack_end(addbut,False,False,1)
  self.notebox.pack_start(box,False,False,1)
  for c in sorted(cbook.keys()):
    if c != "_name":
      newcity = False
      cityname = cbook[c].get('_name',cbook.get(c,None))
      if c not in statecities.keys():
        newcity = True
        pushCity(fileid,c,cityname)
      if cityname is not None:
        packCity(self.notebox,scroll,data,fileid,c,cityname,tabs,newcity,ar,stalts)
      else:
        common.say("Error getting cityname.")
  el = gtk.Label("End of record")
  el.show()
  el.set_alignment(1,1)
  self.pack_start(el,0,0,3)