]> SALOME platform Git repositories - tools/eficas.git/blobdiff - Editeur/widgets.py
Salome HOME
PN
[tools/eficas.git] / Editeur / widgets.py
index 3568dd4f089839b3f4b837b65ac5c621f80a6c46..4f8ab2c5491bd4ff2518fe7a9fe54a64d208dab2 100644 (file)
@@ -83,12 +83,13 @@ class Fenetre :
         self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10)
         self.zone_texte.configure(yscrollcommand=self.scroll_v.set)
         # définition des boutons
-        self.but_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit)
+        self.but_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit,default='active')
         self.but_save = Button(self.frame_boutons,text = "sauver",command = self.save)
         self.but_quit.place(relx=0.4,rely=0.5,anchor='center')
         self.but_save.place(relx=0.6,rely=0.5,anchor='center')
         # affichage du texte
         self.affiche_texte(self.texte)
+       self.zone_texte.config(state=DISABLED)
         centerwindow(self.fenetre)
         self.fenetre.deiconify()
 
@@ -543,7 +544,12 @@ class Formulaire:
             if len(item[0])>length_maxi : length_maxi = len(item[0])
         window = self.fenetre.interior()
         for item in self.items :
-            label,nature,nom_var,defaut = item
+           if len(item) == 4 :
+               label,nature,nom_var,defaut = item
+              chaine="Yes" 
+              chaine2="No"
+           else :
+               label,nature,nom_var,defaut,chaine,chaine2 = item
             # création de la frame
             fr_item = Frame(window,height=40,width=700)
             fr_item.pack(side='top',fill='x',expand=1)
@@ -562,8 +568,8 @@ class Formulaire:
                 setattr(self,'item_'+nom_var,var)
                 var.set(defaut)
                 # création du radiobouton
-                rb1 = Radiobutton(fr_item,text='OUI',variable=var,value='OUI')
-                rb2 = Radiobutton(fr_item,text='NON',variable=var,value='NON')
+                rb1 = Radiobutton(fr_item,text=chaine,variable=var,value='OUI')
+                rb2 = Radiobutton(fr_item,text=chaine2,variable=var,value='NON')
                 rb1.place(relx=0.65,rely=0.5,anchor='center')
                 rb2.place(relx=0.80,rely=0.5,anchor='center')
                 self.widgets.append((rb1,rb2))
@@ -768,7 +774,9 @@ class ListeChoix :
               label.bind("<Return>",lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitemsurligne(x,l,c))
               label.bind("<KP_Enter>",lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitemsurligne(x,l,c))
           label.bind("<Key-Right>",lambda e,s=self,x=objet,l=label : s.selectNextItem(x,l))
+          label.bind("<Key-Down>",lambda e, s=self,x=objet,l=label : s.selectNextItem(x,l))
           label.bind("<Key-Left>" ,lambda e,s=self,x=objet,l=label  : s.selectPrevItem(x,l))
+          label.bind("<Key-Up>" ,lambda e,s=self,x=objet,l=label  : s.selectPrevItem(x,l))
           if self.active == 'oui':
               label.bind(self.liste_commandes[0][0],lambda e,s=self,c=self.liste_commandes[0][1],x=objet,l=label : s.selectitem(x,l,c))
               label.bind(self.liste_commandes[1][0],lambda e,s=self,c=self.liste_commandes[1][1],x=objet,l=label : s.deselectitem(l,x,c))
@@ -782,6 +790,7 @@ class ListeChoix :
 
         self.MCbox.config(state=DISABLED)
         self.selection = None
+        self.dontselect=0
         for event,callback in self.liste_commandes:
             if event == "<Enter>":
                self.selection=None,None,callback
@@ -817,7 +826,7 @@ class ListeChoix :
         except AsException,e:
            raison=str(e)
            showerror(raison.split('\n')[0],raison)
-        
+
     def selectNextItem(self,mot,label):
         index=self.liste.index(mot)
         indexsuivant=index+1
@@ -827,7 +836,8 @@ class ListeChoix :
         labelsuivant=self.dico_labels[motsuivant]
         index = self.MCbox.index(labelsuivant)
         self.MCbox.see(index)
-        self.selectitem(motsuivant,labelsuivant,self.selection[2],)
+        self.selectthis(motsuivant,labelsuivant,self.selection[2],)
+        self.dontselect=1
            
     def selectPrevItem(self,mot,label):
         index=self.liste.index(mot)
@@ -836,11 +846,10 @@ class ListeChoix :
         labelprec=self.dico_labels[motprec]
         index = self.MCbox.index(labelprec)
         self.MCbox.see(index)
-        self.selectitem(motprec,labelprec,self.selection[2],)
+        self.selectthis(motprec,labelprec,self.selection[2],)
+        self.dontselect=1
         
-    def selectitem(self,mot,label,commande) :
-        """ Met l'item sélectionné (représenté par son label) en surbrillance
-            et lance la commande associée au double-clic"""
+    def selectthis(self,mot,label,commande) :
        self.clear_marque()
         if self.selection != None :
             self.deselectitem(self.selection[1],self.selection[0],self.selection[2],)
@@ -849,6 +858,14 @@ class ListeChoix :
         self.arg_selected = mot
         if commande : commande(mot)
 
+    def selectitem(self,mot,label,commande) :
+        """ Met l'item sélectionné (représenté par son label) en surbrillance
+            et lance la commande associée au double-clic"""
+        if self.dontselect:
+           self.dontselect=0
+           return
+        self.selectthis(mot,label,commande)
+
     def highlightitem(self,label) :
         """ Met l'item représenté par son label en surbrillance """
         label.focus_set()
@@ -870,7 +887,10 @@ class ListeChoix :
         return lign
 
     def remove_selected_item(self):
-        index=self.MCbox.index(self.selection[1])
+       try :
+           index=self.MCbox.index(self.selection[1])
+       except :
+           index=self.MCbox.index(self.dico_labels[self.arg_selected] )
         lign,col=map(int,string.split(index,'.'))
         del self.liste[lign-1]
         self.affiche_liste()
@@ -1191,6 +1211,7 @@ class ListeChoixParGroupes(ListeChoix) :
 
         self.MCbox.config(state=DISABLED)
         self.selection = None
+        self.dontselect=0
         for event,callback in self.liste_commandes:
             if event == "<Enter>":
                self.selection=None,None,callback
@@ -1214,7 +1235,8 @@ class ListeChoixParGroupes(ListeChoix) :
         labelsuivant=self.dico_labels[co]
         index = self.MCbox.index(labelsuivant)
         self.MCbox.see(index)
-        self.selectitem(co,labelsuivant,self.selection[2],)
+        self.selectthis(co,labelsuivant,self.selection[2],)
+        self.dontselect=1
 
     def selectNextItem(self,mot,label,callback,group,cmd):
         g=self.liste_groupes.index(group)
@@ -1234,7 +1256,8 @@ class ListeChoixParGroupes(ListeChoix) :
         labelsuivant=self.dico_labels[co]
         index = self.MCbox.index(labelsuivant)
         self.MCbox.see(index)
-        self.selectitem(co,labelsuivant,self.selection[2],)
+        self.selectthis(co,labelsuivant,self.selection[2],)
+        self.dontselect=1
 
     def entry_changed(self,event=None):
         """