@@ -935,166 +935,6 @@ def trigger(self, sender, event, data=None):
935
935
self .window .present ()
936
936
937
937
938
- class DialogLineprops (object ):
939
- """
940
- A GUI dialog for controlling lineprops
941
- """
942
- signals = (
943
- 'on_combobox_lineprops_changed' ,
944
- 'on_combobox_linestyle_changed' ,
945
- 'on_combobox_marker_changed' ,
946
- 'on_colorbutton_linestyle_color_set' ,
947
- 'on_colorbutton_markerface_color_set' ,
948
- 'on_dialog_lineprops_okbutton_clicked' ,
949
- 'on_dialog_lineprops_cancelbutton_clicked' ,
950
- )
951
-
952
- linestyles = [ls for ls in lines .Line2D .lineStyles if ls .strip ()]
953
- linestyled = dict ([ (s ,i ) for i ,s in enumerate (linestyles )])
954
-
955
-
956
- markers = [m for m in lines .Line2D .markers if cbook .is_string_like (m )]
957
-
958
- markerd = dict ([(s ,i ) for i ,s in enumerate (markers )])
959
-
960
- def __init__ (self , lines ):
961
- import Gtk .glade
962
-
963
- datadir = matplotlib .get_data_path ()
964
- gladefile = os .path .join (datadir , 'lineprops.glade' )
965
- if not os .path .exists (gladefile ):
966
- raise IOError ('Could not find gladefile lineprops.glade in %s' % datadir )
967
-
968
- self ._inited = False
969
- self ._updateson = True # suppress updates when setting widgets manually
970
- self .wtree = Gtk .glade .XML (gladefile , 'dialog_lineprops' )
971
- self .wtree .signal_autoconnect (dict ([(s , getattr (self , s )) for s in self .signals ]))
972
-
973
- self .dlg = self .wtree .get_widget ('dialog_lineprops' )
974
-
975
- self .lines = lines
976
-
977
- cbox = self .wtree .get_widget ('combobox_lineprops' )
978
- cbox .set_active (0 )
979
- self .cbox_lineprops = cbox
980
-
981
- cbox = self .wtree .get_widget ('combobox_linestyles' )
982
- for ls in self .linestyles :
983
- cbox .append_text (ls )
984
- cbox .set_active (0 )
985
- self .cbox_linestyles = cbox
986
-
987
- cbox = self .wtree .get_widget ('combobox_markers' )
988
- for m in self .markers :
989
- cbox .append_text (m )
990
- cbox .set_active (0 )
991
- self .cbox_markers = cbox
992
- self ._lastcnt = 0
993
- self ._inited = True
994
-
995
-
996
- def show (self ):
997
- 'populate the combo box'
998
- self ._updateson = False
999
- # flush the old
1000
- cbox = self .cbox_lineprops
1001
- for i in range (self ._lastcnt - 1 ,- 1 ,- 1 ):
1002
- cbox .remove_text (i )
1003
-
1004
- # add the new
1005
- for line in self .lines :
1006
- cbox .append_text (line .get_label ())
1007
- cbox .set_active (0 )
1008
-
1009
- self ._updateson = True
1010
- self ._lastcnt = len (self .lines )
1011
- self .dlg .show ()
1012
-
1013
- def get_active_line (self ):
1014
- 'get the active line'
1015
- ind = self .cbox_lineprops .get_active ()
1016
- line = self .lines [ind ]
1017
- return line
1018
-
1019
- def get_active_linestyle (self ):
1020
- 'get the active lineinestyle'
1021
- ind = self .cbox_linestyles .get_active ()
1022
- ls = self .linestyles [ind ]
1023
- return ls
1024
-
1025
- def get_active_marker (self ):
1026
- 'get the active lineinestyle'
1027
- ind = self .cbox_markers .get_active ()
1028
- m = self .markers [ind ]
1029
- return m
1030
-
1031
- def _update (self ):
1032
- 'update the active line props from the widgets'
1033
- if not self ._inited or not self ._updateson : return
1034
- line = self .get_active_line ()
1035
- ls = self .get_active_linestyle ()
1036
- marker = self .get_active_marker ()
1037
- line .set_linestyle (ls )
1038
- line .set_marker (marker )
1039
-
1040
- button = self .wtree .get_widget ('colorbutton_linestyle' )
1041
- color = button .get_color ()
1042
- r , g , b = [val / 65535. for val in (color .red , color .green , color .blue )]
1043
- line .set_color ((r ,g ,b ))
1044
-
1045
- button = self .wtree .get_widget ('colorbutton_markerface' )
1046
- color = button .get_color ()
1047
- r , g , b = [val / 65535. for val in (color .red , color .green , color .blue )]
1048
- line .set_markerfacecolor ((r ,g ,b ))
1049
-
1050
- line .figure .canvas .draw ()
1051
-
1052
- def on_combobox_lineprops_changed (self , item ):
1053
- 'update the widgets from the active line'
1054
- if not self ._inited : return
1055
- self ._updateson = False
1056
- line = self .get_active_line ()
1057
-
1058
- ls = line .get_linestyle ()
1059
- if ls is None : ls = 'None'
1060
- self .cbox_linestyles .set_active (self .linestyled [ls ])
1061
-
1062
- marker = line .get_marker ()
1063
- if marker is None : marker = 'None'
1064
- self .cbox_markers .set_active (self .markerd [marker ])
1065
-
1066
- r ,g ,b = colorConverter .to_rgb (line .get_color ())
1067
- color = Gdk .Color (* [int (val * 65535 ) for val in (r ,g ,b )])
1068
- button = self .wtree .get_widget ('colorbutton_linestyle' )
1069
- button .set_color (color )
1070
-
1071
- r ,g ,b = colorConverter .to_rgb (line .get_markerfacecolor ())
1072
- color = Gdk .Color (* [int (val * 65535 ) for val in (r ,g ,b )])
1073
- button = self .wtree .get_widget ('colorbutton_markerface' )
1074
- button .set_color (color )
1075
- self ._updateson = True
1076
-
1077
- def on_combobox_linestyle_changed (self , item ):
1078
- self ._update ()
1079
-
1080
- def on_combobox_marker_changed (self , item ):
1081
- self ._update ()
1082
-
1083
- def on_colorbutton_linestyle_color_set (self , button ):
1084
- self ._update ()
1085
-
1086
- def on_colorbutton_markerface_color_set (self , button ):
1087
- 'called colorbutton marker clicked'
1088
- self ._update ()
1089
-
1090
- def on_dialog_lineprops_okbutton_clicked (self , button ):
1091
- self ._update ()
1092
- self .dlg .hide ()
1093
-
1094
- def on_dialog_lineprops_cancelbutton_clicked (self , button ):
1095
- self .dlg .hide ()
1096
-
1097
-
1098
938
# Define the file to use as the GTk icon
1099
939
if sys .platform == 'win32' :
1100
940
icon_filename = 'matplotlib.png'
0 commit comments