 def show_keyb(self, obj, data=None):
        self.active_ctrl = obj
        self.keyb = self.builder.get_object('keyboard')
        self.entry = self.builder.get_object('entry1')
        self.entry.modify_font(pango.FontDescription("courier 42"))
        resp = self.keyb.run()

    def keyb_prev_click(self, obj, data=None):
        self.entry.set_text(self.active_ctrl.get_text())

    def keyb_number_click(self, obj, data=None):
        data = self.entry.get_text()
        data = data + obj.get_label()
        if data[-2:] in [ '/2', '/4', '/8']:
            v = data[:-2].split('.')
            if len(v) == 2:
                data = '%6.3f'%(float(v[0]) + float(v[1]) / float(data[-1:]))
            elif len(v) == 1:
                data = '%6.3f'%(float(v[0]) / float(data[-1:]))
        elif data[-3:] in [ '/16', '/32', '/64']:
            v = data[:-3].split('.')
            if len(v) == 2:
                data = '%6.3f'%(float(v[0]) + float(v[1]) / float(data[-2:]))
            elif len(v) == 1:
                data = '%6.3f'%(float(v[0]) / float(data[-2:]))
        self.entry.set_text(data)

    def keyb_pm_click(self, obj, data=None):
        data = self.entry.get_text()
        if data[0] == '-':
            data = data[1:]
        else:
            data = '-' + data
        self.entry.set_text(data) 

    def keyb_convert_click(self, obj, data=None):
        v = float(self.entry.get_text())
        op = obj.get_label()
        if op == 'in->mm':
            v = v * 25.4
        elif op == 'mm->in':
            v = v / 25.4
        elif op == 'tpi->pitch':
            v = 25.4 / v
        elif op == 'pitch->tpi':
            v = 25.4 / v
        self.entry.set_text('%6.4f'%v)

    def keyb_del_click(self, obj, data=None):
        data = self.entry.get_text()
        data = data[:-1]
        self.entry.set_text(data)

    def keyb_clear_click(self, obj, data=None):
        self.entry.set_text('')

    def keyb_cancel_click(self, obj, data=None):
        self.keyb.hide()

    def keyb_ok_click(self, obj, data=None):
        if self.entry.get_text() != '':
            self.active_ctrl.set_value(float(self.entry.get_text()))
        self.keyb.hide()

