コード例 #1
0
 def setup_image_button(image, colnr):
     col = new_pb_column(" ",
                         resizable=False,
                         expand=False,
                         stock_id=image)
     setattr(col, "col_descr", colnr)
     tv.append_column(col)
コード例 #2
0
ファイル: phases_controller.py プロジェクト: tomcat333/PyXRD
    def setup_treeview_col_c_display_color(self, treeview, name, col_descr,
                                           col_index, tv_col_nr):
        def set_pb(column, cell_renderer, tree_model, iter,
                   col_index):  # @ReservedAssignment
            try:
                color = tree_model.get_value(iter, col_index)
            except TypeError:
                pass  # invalid iter
            else:
                color = convert_string_to_gdk_color_int(color)
                phase = tree_model.get_user_data(iter)
                pb, old_color = getattr(phase, "__col_c_pb", (None, None))
                if old_color != color:
                    pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 10,
                                        20)  # @UndefinedVariable
                    pb.fill(color)
                    setattr(phase, "__col_c_pb", (color, pb))
                cell_renderer.set_property('pixbuf', pb)

        treeview.append_column(
            new_pb_column(name,
                          data_func=(set_pb, (col_index, )),
                          resizable=False,
                          expand=False))

        return True
コード例 #3
0
 def setup_image_button(image, colnr):
     col = new_pb_column("",
                         resizable=False,
                         expand=False,
                         stock_id=image)
     col.set_data("colnr", colnr)
     widget.append_column(col)
コード例 #4
0
    def setup_treeview_col_c_display_color(self, treeview, name, col_descr, col_index, tv_col_nr):
        def set_pb(column, cell_renderer, tree_model, iter, col_index): # @ReservedAssignment
            try:
                color = tree_model.get_value(iter, col_index)
            except TypeError:
                pass # invalid iter
            else:
                color = convert_string_to_gdk_color_int(color)
                phase = tree_model.get_user_data(iter)
                pb, old_color = getattr(phase, "__col_c_pb", (None, None))
                if old_color != color:
                    pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 10, 20) # @UndefinedVariable
                    pb.fill(color)
                    setattr(phase, "__col_c_pb", (color, pb))
                cell_renderer.set_property('pixbuf', pb)

        treeview.append_column(new_pb_column(
            name,
            data_func=(set_pb, (col_index,)),
            resizable=False,
            expand=False))

        return True
コード例 #5
0
    def setup_refinables_tree_view(self, store, widget):
        """
            Setup refinables TreeView layout
        """
        widget.set_show_expanders(True)

        if sys.platform == "win32":
            def get_label(column, cell, model, itr, user_data=None):
                ref_prop = model.get_tree_node_object(itr)
                cell.set_property("text", ref_prop.text_title)
                return
            widget.append_column(new_text_column('Name/Prop', xalign=0.0, data_func=get_label))
        else:
            # Labels are parsed for mathtext markup into pb's:
            def get_pb(column, cell, model, itr, user_data=None):
                ref_prop = model.get_tree_node_object(itr)
                try:
                    if not hasattr(ref_prop, "pb") or not ref_prop.pb:
                        ref_prop.pb = create_pb_from_mathtext(
                            ref_prop.title,
                            align='left',
                            weight='medium'
                        )
                    cell.set_property("pixbuf", ref_prop.pb)
                except RuntimeError:
                    logger.warning("An error occured when trying to convert a property title to a PixBuf")
                    raise
                return
            widget.append_column(new_pb_column('Name/Prop', xalign=0.0, data_func=get_pb))

        # Editable floats:
        def get_value(column, cell, model, itr, *args):
            col = column.get_col_attr('markup')
            try:
                value = model.get_value(itr, col)
                value = "%.5f" % value
            except TypeError: value = ""
            cell.set_property("markup", value)
            return
        def on_float_edited(rend, path, new_text, model, col):
            itr = model.get_iter(path)
            try:
                model.set_value(itr, col, float(new_text))
            except ValueError:
                return False
            return True

        def_float_args = {
            "sensitive_col": store.c_refinable,
            "editable_col": store.c_refinable,
            "visible_col": store.c_refinable,
            "data_func": get_value
        }

        widget.append_column(new_text_column(
            "Value", markup_col=store.c_value,
            edited_callback=(
                on_float_edited,
                (store, store.c_value,)
            ), **def_float_args
        ))
        widget.append_column(new_text_column(
            "Min", markup_col=store.c_value_min,
            edited_callback=(
                on_float_edited,
                (store, store.c_value_min,)
            ), **def_float_args
        ))
        widget.append_column(new_text_column(
            "Max", markup_col=store.c_value_max,
            edited_callback=(
                on_float_edited,
                (store, store.c_value_max,)
            ), **def_float_args
        ))

        # The 'refine' checkbox:
        widget.append_column(new_toggle_column(
            "Refine",
            toggled_callback=(self.refine_toggled, (store,)),
            resizable=False,
            expand=False,
            active_col=store.c_refine,
            sensitive_col=store.c_refinable,
            activatable_col=store.c_refinable,
            visible_col=store.c_refinable
        ))
コード例 #6
0
ファイル: controllers.py プロジェクト: mathijs-dumon/PyXRD
 def setup_image_button(image, colnr):
     col = new_pb_column("", resizable=False, expand=False, stock_id=image)
     setattr(col, "colnr", colnr)
     widget.append_column(col)
コード例 #7
0
    def setup_refinables_tree_view(self, store, widget):
        """
            Setup refinables TreeView layout
        """
        widget.set_show_expanders(True)

        if sys.platform == "win32":
            def get_label(column, cell, model, itr, user_data=None):
                ref_prop = model.get_tree_node_object(itr)
                cell.set_property("text", ref_prop.get_text_title())
                return
            widget.append_column(new_text_column('Name/Prop', xalign=0.0, data_func=get_label))
        else:
            # Labels are parsed for mathtext markup into pb's:
            def get_pb(column, cell, model, itr, user_data=None):
                ref_prop = model.get_tree_node_object(itr)
                try:
                    if not hasattr(ref_prop, "pb") or not ref_prop.pb:
                        ref_prop.pb = create_pb_from_mathtext(
                            ref_prop.title,
                            align='left',
                            weight='medium'
                        )
                    cell.set_property("pixbuf", ref_prop.pb)
                except RuntimeError:
                    logger.warning("An error occured when trying to convert a property title to a PixBuf")
                    raise
                return
            widget.append_column(new_pb_column('Name/Prop', xalign=0.0, data_func=get_pb))

        # Editable floats:
        def get_value(column, cell, model, itr, *args):
            col = column.get_col_attr('markup')
            try:
                value = model.get_value(itr, col)
                value = "%.5f" % value
            except TypeError: value = ""
            cell.set_property("markup", value)
            return
        def on_float_edited(rend, path, new_text, model, col):
            itr = model.get_iter(path)
            try:
                model.set_value(itr, col, float(new_text))
            except ValueError:
                return False
            return True

        def_float_args = {
            "sensitive_col": store.c_refinable,
            "editable_col": store.c_refinable,
            "visible_col": store.c_refinable,
            "data_func": get_value
        }

        widget.append_column(new_text_column(
            "Value", markup_col=store.c_value,
            edited_callback=(
                on_float_edited,
                (store, store.c_value,)
            ), **def_float_args
        ))
        widget.append_column(new_text_column(
            "Min", markup_col=store.c_value_min,
            edited_callback=(
                on_float_edited,
                (store, store.c_value_min,)
            ), **def_float_args
        ))
        widget.append_column(new_text_column(
            "Max", markup_col=store.c_value_max,
            edited_callback=(
                on_float_edited,
                (store, store.c_value_max,)
            ), **def_float_args
        ))

        # The 'refine' checkbox:
        widget.append_column(new_toggle_column(
            "Refine",
            toggled_callback=(self.refine_toggled, (store,)),
            resizable=False,
            expand=False,
            active_col=store.c_refine,
            sensitive_col=store.c_refinable,
            activatable_col=store.c_refinable,
            visible_col=store.c_refinable
        ))
コード例 #8
0
 def setup_image_button(image, colnr):
     col = new_pb_column(" ", resizable=False, expand=False, stock_id=image)
     col.set_data("col_descr", colnr)
     tv.append_column(col)