radiobrowser.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:chirp_fork 作者: mach327 项目源码 文件源码
def _tree_click(self, view, event):
        if event.button != 1:
            return

        index = [0]

        def pack(widget, pos):
            self._display.attach(widget, pos, pos + 1, index[0], index[0] + 1,
                                 xoptions=gtk.FILL, yoptions=0)

        def next_row():
            index[0] += 1

        def abandon(child):
            self._display.remove(child)

        pathinfo = view.get_path_at_pos(int(event.x), int(event.y))
        path = pathinfo[0]
        iter = self._store.get_iter(path)
        name, obj = self._store.get(iter, 0, 1)

        self._display.foreach(abandon)

        for name, item in obj.items():
            if item.size() % 8 == 0:
                name = '<b>%s</b> <small>(%s %i bytes)</small>' % (
                    name, bitwise_type(classname(item)), item.size() / 8)
            else:
                name = '<b>%s</b> <small>(%s %i bits)</small>' % (
                    name, bitwise_type(classname(item)), item.size())
            l = gtk.Label(name + "   ")
            l.set_use_markup(True)
            l.show()
            pack(l, 0)

            if (isinstance(item, bitwise.intDataElement) or
                    isinstance(item, bitwise.bcdDataElement)):
                e = IntegerEditor(item)
            elif (isinstance(item, bitwise.arrayDataElement) and
                  isinstance(item[0], bitwise.bcdDataElement)):
                e = BCDArrayEditor(item)
            elif (isinstance(item, bitwise.arrayDataElement) and
                  isinstance(item[0], bitwise.charDataElement)):
                e = CharArrayEditor(item)
            else:
                e = OtherEditor(item)
            e.show()
            pack(e, 1)
            next_row()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号