Index: sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py
===================================================================
--- sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py	(revision 8c347a61193367bd8a75b5a9949e34a45f6b9385)
+++ sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py	(revision 263618802fb1a08d227765060cac94917cb4268d)
@@ -25,4 +25,5 @@
 from sans.guiframe.events import StatusEvent 
 from sans.guiframe.events import NewPlotEvent
+from sans.guiframe.events import NewColorEvent
 from sans.guiframe.events import SlicerEvent
 from sans.guiframe.events import PanelOnFocusEvent
@@ -38,4 +39,40 @@
 BIN_WIDTH = 1
 
+class SizeDialog(wx.Dialog):
+    def __init__(self, parent, id, title):
+        wx.Dialog.__init__(self, parent, id, title, size=(300, 175))
+
+        #panel = wx.Panel(self, -1)
+        
+        mainbox = wx.BoxSizer(wx.VERTICAL)
+        vbox = wx.BoxSizer(wx.VERTICAL)
+        textbox = wx.BoxSizer(wx.HORIZONTAL)
+        
+        text1 = "Enter in a custom size (float values > 0 accepted)"
+        msg = wx.StaticText(self, -1, text1,(30,15), style=wx.ALIGN_CENTRE)
+        msg.SetLabel(text1)
+        self.myTxtCtrl = wx.TextCtrl(self, -1, '', (100, 50))
+        
+        textbox.Add(self.myTxtCtrl, flag=wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 
+                 border=10, proportion=2)
+        vbox.Add(msg, flag=wx.ALL, border=10, proportion=1)
+        vbox.Add(textbox, flag=wx.EXPAND|wx.TOP|wx.BOTTOM|wx.ADJUST_MINSIZE,
+                 border=10)
+    
+        hbox = wx.BoxSizer(wx.HORIZONTAL)
+        okButton = wx.Button(self,wx.ID_OK, 'OK', size=(70, 30))
+        closeButton = wx.Button(self,wx.ID_CANCEL, 'Close', size=(70, 30))
+        hbox.Add(okButton, wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 
+                 border=10)
+        hbox.Add(closeButton, wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 
+                 border=10)
+        
+        mainbox.Add(vbox, flag=wx.ALL, border=10)
+        mainbox.Add(hbox, flag=wx.EXPAND|wx.TOP|wx.BOTTOM|wx.ADJUST_MINSIZE, 
+                    border=10)
+        self.SetSizer(mainbox)
+    
+    def getText(self):
+        return self.myTxtCtrl.GetValue()
 
 class ModelPanel1D(PlotPanel, PanelBase):
@@ -68,4 +105,6 @@
         self._menu_add_ids = []
         self._symbol_labels = self.get_symbol_label()
+        self._color_labels = self.get_color_label()
+        self.currColorIndex = ""
       
         self.hide_menu = None
@@ -121,4 +160,23 @@
         i += 1
         _labels['Line'] = i
+        return _labels
+    
+    def get_color_label(self):
+        """
+        Associates label to a specific color
+        """
+        _labels = {}
+        i = 0
+        _labels['Blue'] = i
+        i += 1
+        _labels['Green'] = i
+        i += 1
+        _labels['Red'] = i
+        i += 1
+        _labels['Cyan'] = i
+        i += 1
+        _labels['Magenta'] = i
+        i += 1
+        _labels['Yellow'] = i
         return _labels
 
@@ -333,4 +391,5 @@
                     self._slicerpop.Append(id, '&Freeze', 'Freeze')
                     wx.EVT_MENU(self, id, self.onFreeze)
+                
                 symbol_menu = wx.Menu()
                 for label in self._symbol_labels:
@@ -340,4 +399,25 @@
                 id = wx.NewId()
                 self._slicerpop.AppendMenu(id,'&Modify Symbol',  symbol_menu)
+                
+                color_menu = wx.Menu()
+                for label in self._color_labels:
+                    id = wx.NewId()
+                    color_menu.Append(id, str(label), str(label))
+                    wx.EVT_MENU(self, id, self.onChangeColor)
+                id = wx.NewId()
+                self._slicerpop.AppendMenu(id, '&Modify Symbol Color', color_menu)
+                
+                
+                size_menu = wx.Menu()
+                for i in range(10):
+                    id = wx.NewId()
+                    size_menu.Append(id, str(i), str(i))
+                    wx.EVT_MENU(self, id, self.onChangeSize)
+                id = wx.NewId()
+                size_menu.Append(id, '&Custom', 'Custom')
+                wx.EVT_MENU(self, id, self.onChangeSize)
+                id = wx.NewId()
+                self._slicerpop.AppendMenu(id, '&Modify Symbol Size', size_menu)
+                
                 self._slicerpop.AppendSeparator()
     
@@ -374,5 +454,46 @@
         plot = self.plots[self.graph.selected_plottable]
         self.parent.onfreeze([plot.id])
-        
+    
+    def onChangeColor(self, event):
+        """
+        Changes the color of the graph when selected
+        """
+        menu = event.GetEventObject()
+        id = event.GetId()
+        label =  menu.GetLabel(id)
+        selected_plot = self.plots[self.graph.selected_plottable]
+        selected_plot.custom_color = self._color_labels[label]
+        ## Set the view scale for all plots
+        self._onEVT_FUNC_PROPERTY()
+        ## render the graph
+        #self.graph.render(self)
+        #self.subplot.figure.canvas.draw_idle()
+        print "PARENT: ", self.parent
+        wx.PostEvent(self.parent,
+                      NewColorEvent(color=selected_plot.custom_color,
+                                             id=selected_plot.id))
+    
+    def onChangeSize(self, event):
+        
+        menu = event.GetEventObject()
+        id = event.GetId()
+        label =  menu.GetLabel(id)
+        selected_plot = self.plots[self.graph.selected_plottable]
+        
+        if label == "&Custom":
+            sizedial = SizeDialog(None, -1, 'Change Marker Size')
+            if sizedial.ShowModal() == wx.ID_OK:
+                label = sizedial.getText()
+            sizedial.Destroy()
+
+        selected_plot.marker_size = int(label)
+        self._onEVT_FUNC_PROPERTY()
+        ## Set the view scale for all plots
+        
+        ## render the graph
+        #self.graph.render(self)
+        #self.subplot.figure.canvas.draw_idle()
+
+    
     def onChangeSymbol(self, event):
         """
@@ -388,4 +509,6 @@
         #self.graph.render(self)
         #self.subplot.figure.canvas.draw_idle()
+        
+        
         
     def _onsaveTXT(self, path):
