Exemple #1
0
    def add_outgoing(self, button, listw):
        d = inputdialog.FieldDialog(parent=self.window)
        d.add_field("Local", gtk.Entry())
        d.add_field("Remote", gtk.Entry())
        d.add_field("Station", gtk.Entry())
        while d.run() == gtk.RESPONSE_OK:
            vals = []

            for field, func in [("Local", int), ("Remote", int),
                                ("Station", str)]:
                try:
                    s = d.get_field(field).get_text()
                    if not s:
                        raise Exception("Empty")
                    vals.append(func(s))
                except:
                    ed = gtk.MessageDialog(buttons=gtk.BUTTONS_OK, parent=d)
                    ed.set_property("text", "Invalid value for '%s'" % field)
                    ed.run()
                    ed.destroy()
                    break

            if len(vals) == 3:
                listw.add_item(*tuple(vals))
                break

        d.destroy()
Exemple #2
0
def do_dprs_calculator(initial=""):
    def ev_sym_changed(iconsel, oversel, icons):
        oversel.set_sensitive(icons[iconsel.get_active()][1][0] == "\\")

    d = inputdialog.FieldDialog(title=_("DPRS message"))
    msg = gtk.Entry(13)

    overlays = [chr(x) for x in range(ord(" "), ord("_"))]

    cur = initial
    if cur and cur[-3] == "*" and cur[3] == " ":
        msg.set_text(cur[4:-3])
        dsym = cur[:2]
        deficn = gps.DPRS_TO_APRS.get(dsym, "/#")
        defovr = cur[2]
        if defovr not in overlays:
            print "Overlay %s not in list" % defovr
            defovr = " "
    else:
        deficn = "/#"
        defovr = " "

    icons = []
    for sym in sorted(gps.DPRS_TO_APRS.values()):
        icon = get_icon(sym)
        if icon:
            icons.append((icon, sym))
    iconsel = miscwidgets.make_pixbuf_choice(icons, deficn)

    oversel = miscwidgets.make_choice(overlays, False, defovr)
    iconsel.connect("changed", ev_sym_changed, oversel, icons)
    ev_sym_changed(iconsel, oversel, icons)

    d.add_field(_("Message"), msg)
    d.add_field(_("Icon"), iconsel)
    d.add_field(_("Overlay"), oversel)

    r = d.run()
    aicon = icons[iconsel.get_active()][1]
    mstr = msg.get_text().upper()
    over = oversel.get_active_text()
    d.destroy()
    if r != gtk.RESPONSE_OK:
        return

    dicon = gps.APRS_TO_DPRS[aicon]

    callsign = mainapp.get_mainapp().config.get("user", "callsign")
    string = "%s%s %s" % (dicon, over, mstr)

    check = gps.DPRS_checksum(callsign, string)

    return string + check
Exemple #3
0
def build_image_dialog(filename, image, dlgParent=None):
    d = inputdialog.FieldDialog(title="Send Image",
                                parent=dlgParent)

    def update():
        update_image(filename, d)

    d.add_field(_("Filename"), gtk.Label(os.path.basename(filename)))

    d.sizelabel = gtk.Label("--")
    d.add_field(_("Size"), d.sizelabel)

    d.size = miscwidgets.make_choice(sizes, False, sizes[1])
    d.size.connect("changed", lambda x: update())
    d.add_field(_("Resize to"), d.size)

    quality = gtk.HScale(gtk.Adjustment(50, 1, 100, 10, 10))
    quality.connect("format-value",
                    lambda s,v: "%i" % v)
    quality.connect("change-value", set_quality, d)
    d.add_field(_("Quality"), quality)

    d.preview = gtk.Image()
    d.preview.show()
    sw = gtk.ScrolledWindow()
    sw.add_with_viewport(d.preview)
    sw.set_size_request(320,320)
    d.add_field(_("Preview"), sw, full=True)

    d.set_size_request(400, 450)

    d.image = image
    d.resized = None
    d.quality = 50

    d.update = update
    d.update()

    return d