This file is indexed.

/usr/share/astk/ihm_main.tcl is in code-aster-gui 1.13.1-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
#########################################################################
# COPYRIGHT (C) 2003         EDF R&D              WWW.CODE-ASTER.ORG    #
#                                                                       #
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR         #
# MODIFY IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS        #
# PUBLISHED BY THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE    #
# LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.                       #
# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,       #
# BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF        #
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      #
# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              #
#                                                                       #
# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     #
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO : EDF R&D CODE_ASTER,       #
#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        #
#########################################################################

# $Id: ihm_main.tcl 2881 2007-03-20 12:30:18Z courtois $

# construction de la fenetre principale de l'interface
#################################################################
proc astk_princ { { REINI "INI" } } {
# message de mise à jour
   set client_vers "00.00.00"
   if { [regexp {([0-9]+)\.([0-9]+)\.([0-9]+)} $astk::astk_version mat1 i1 i2 i3] } {
      set client_vers [format "%02d.%02d.%02d" $i1 $i2 $i3]
   }
   if { $astk::config(-1,flag_maj) != $client_vers } {
      if { $ashare::origine != "from_salome" } {
         tk_messageBox -title [ashare::mess ihm 138] -message [ashare::mess ihm 242] -type ok -icon info
      }
      set astk::config(-1,flag_maj) $client_vers
      ashare::save_prefs
   }

# fenetre principale
   ashare::pointeur off

    # Titre de la fenetre + menu + creation de la frame complete + icon
    set_titre
    set_icon
    # on fixe la taille de la fenetre
#if_not_resizable   wm resizable . 0 0
   wm protocol . WM_DELETE_WINDOW { quitter }

    pack [frame $astk::ihm(menu) -relief raised -bd 0 -background $astk::ihm(couleur,menu_background)] -fill x -side top -anchor nw
    pack [frame .fen -relief raised -bd 0] -fill both -expand 1 -anchor nw
       grid [frame $astk::ihm(fenetre) -relief raised -bd 1] -row 0 -column 0 -sticky nsew
       grid [frame $astk::ihm(satellite) -relief raised -bd 1] -row 0 -column 1 -sticky nsw
       grid [frame $astk::ihm(status) -relief raised -bd 0] -row 1 -columnspan 2 -sticky nsew
   grid columnconfigure .fen 0 -weight 1
   grid rowconfigure .fen 0 -weight 1

#      pack [frame $astk::ihm(fenetre) -relief raised -bd 1] -side left -fill both -expand 1 -anchor nw
#      pack [frame $astk::ihm(satellite) -relief raised -bd 1] -fill y -expand 1 -anchor nw
#   pack [frame $astk::ihm(status) -relief raised -bd 0] -fill x -anchor s -expand 1
#    pack [panedwindow .fen -orient horizontal] -expand 1 -fill both -anchor nw
#      .fen add [frame $astk::ihm(fenetre) -relief raised -bd 0]
#       .fen add [frame $astk::ihm(satellite) -relief raised -bd 0]

    # barre de menu
   create_popup $astk::ihm(popup)
    create_menu $astk::ihm(menu)

    # frame "satellite"
    affiche_satellite

   # etat, aide...
   affiche_status

    # il est nécessaire d'afficher l'onglet en dernier car c'est lui qui bride
    # la taille de la fenetre
    pack [frame $astk::ihm(fenetre).onglet] -anchor w
    # creation et initialisation des onglets
    init_onglet

    # lecture du profil initial ou export
    if { $astk::ihm(profil_ini) != "" } {
        ouvrir $astk::ihm(serv_ini) $astk::ihm(profil_ini)
      set astk::ihm(profil_ini) ""
    } elseif { $astk::ihm(export_ini) != "" } {
        import_from "astk_serv" -1 $astk::ihm(export_ini) "non" "oui"
      set astk::ihm(export_ini) ""
    } else {
       # pour le demarrage
       affiche_onglet $astk::profil(onglet_actif)
    }

   # cree la liste des noeuds, des versions, choix batch/interactif...
   maj_sat

   # fenetre init
   catch {destroy .fen_about}
   catch {destroy $astk::ihm(asjob)}
   show_fen $astk::ihm(asjob)
   
   # affichage
   ashare::pointeur on
   update idletasks
   wm deiconify .
   ashare::trace_geom astk .
}

# raffraichir la fenetre principale de l'interface
#################################################################
proc raffr_princ { } {
   global ongsel
# sous-onglets sélectionnés
   for {set i 1} {$i <= $astk::ihm(nbongM)} {incr i} {
      for {set j 1} {$j <= $astk::ihm(nbong,$i)} {incr j} {
         if { $ongsel($i) == $astk::ihm(tit,$i,$j) } {
            set ongsel($i) $j
         }
      }
   }
# réinitialisation du nom des onglets
   def_onglet
   for {set i 1} {$i <= $astk::ihm(nbongM)} {incr i} {
      set ongsel($i) $astk::ihm(tit,$i,$ongsel($i))
   }
# détruit les fenêtres filles et ouvre de nouveau asjob s'il existait
   set iasj [winfo exists $astk::ihm(asjob)]
# ne pas détruire les classes BWidgets
#   eval destroy [winfo children .]
   set lw [winfo children .]
   for {set i 0} {$i < [llength $lw]} {incr i} {
      set ww [lindex $lw $i]
      if { [string match ".#BWidget*" $ww] == 0 } {
         destroy $ww
      }
   }
# réaffichage
   astk_princ DETR
   if { $iasj } {
      show_fen $astk::ihm(asjob) force
   }
   raise .
}

# change le thème de couleur (voir init_couleur pour les thèmes)
#################################################################
proc change_couleur { theme } {
   set astk::ihm(style,couleur) $theme
   set astk::config(-1,couleur) $theme
   set astk::config(-1,theme) $theme
   ashare::save_prefs
   init_couleur
   init_icon $theme
   raffr_princ
}

# permet de changer les couleurs à la main
#################################################################
proc perso_couleur { } {
   global tmp_coul
# récupère les couleurs actuelles
   set old_coul $astk::ihm(style,couleur)
   set astk::ihm(style,couleur) perso
   init_couleur "ras"
   set lmv [array get astk::ihm]
   set nbl [expr [llength $lmv] / 2]
   set lmcle [list]
   set lcoul [list]
   set nn 0
   for {set i 0} {$i < $nbl} {incr i} {
      set k  [expr $i * 2]
      set k1 [expr $k + 1]
      if { [regexp {^couleur,(.*)} [lindex $lmv $k] mat1 mcle] } {
         incr nn
         lappend lmcle $mcle
         lappend lcoul [lindex $lmv $k1]
      }
   }
   set lmcle [lsort $lmcle]
# fenetre
   set fen .fen_coul
   catch {destroy $fen}
   toplevel $fen
   wm withdraw $fen
   wm transient $fen .
   wm title $fen [ashare::mess ihm 328]

   pack [frame $fen.liste -relief solid -bd 1]

# boucle sur les couleurs
   for {set i 0} {$i < $nn} {incr i} {
      set mcle [lindex $lmcle $i]
      set tmp_coul($mcle) $astk::ihm(couleur,$mcle)
      if { $mcle != "foreground" } {
         set fgc $astk::ihm(couleur,foreground)
      } else {
         set fgc $astk::ihm(couleur,entry_background)
      }
      pack [frame $fen.liste.l_$i -relief solid -bd 0] -anchor w
      label $fen.liste.l_$i.lbl -font $astk::ihm(font,lab) -text $mcle -width 35 -anchor w
      button $fen.liste.l_$i.butt -width 30 -font $astk::ihm(font,val) -text [ashare::mess ihm 329] \
         -fg $fgc \
         -bg $astk::ihm(couleur,$mcle) \
         -command "choix_couleur $mcle $fen $fen.liste.l_$i.butt"
      pack $fen.liste.l_$i.lbl $fen.liste.l_$i.butt -pady 3 -side left
   }

# ok
   pack [frame $fen.valid -relief solid -bd 0]
   button $fen.valid.annuler -font $astk::ihm(font,labbout) -text [ashare::mess ihm 85] \
      -bg $astk::ihm(couleur,annul) \
      -command "set astk::ihm(style,couleur) $old_coul ; init_couleur ras ; destroy $fen"
   button $fen.valid.ok -font $astk::ihm(font,labbout) -text "Ok" \
      -bg $astk::ihm(couleur,valid) \
      -command "set astk::ihm(style,couleur) $old_coul ; init_couleur ras ; accept_couleur ; destroy $fen"
   pack $fen.valid.ok $fen.valid.annuler -side left -padx 10 -pady 5
   
   wm deiconify $fen
}

# choisit une couleur
#################################################################
proc choix_couleur { mcle fen w } {
   global tmp_coul
   set tmp_coul($mcle) [tk_chooseColor -title "Choose a color" -parent $fen \
       -initialcolor $astk::ihm(couleur,$mcle)]
   if { $tmp_coul($mcle) != "" } {
      $w configure -bg $tmp_coul($mcle)
   }
}

# accepte les couleurs
#################################################################
proc accept_couleur { } {
   global tmp_coul
   set id [open $astk::fic_color w]
   puts $id "# AUTOMATICALLY GENERATED - DO NOT EDIT !"
   puts $id "astkrc_version : $ashare::astkrc_version"
   puts $id "#"
   set lmv [array get tmp_coul]
   set nbl [expr [llength $lmv] / 2]
   for {set i 0} {$i < $nbl} {incr i} {
      set k  [expr $i * 2]
      set k1 [expr $k + 1]
      set mcle [lindex $lmv $k]
      set astk::ihm(couleur,$mcle) $tmp_coul($mcle)
      puts $id "$mcle : $tmp_coul($mcle)"
   }
   close $id
   if { $astk::ihm(style,couleur) == "perso" } {
      change_couleur perso
   }
}

# choix des polices
#################################################################
proc change_font { } {
# fenetre
   set fen .fen_font
   catch {destroy $fen}
   toplevel $fen
   wm withdraw $fen
   wm transient $fen .
   wm title $fen [ashare::mess ihm 331]

   pack [frame $fen.liste -relief solid -bd 1] -padx 10 -pady 10

   set lf $astk::ihm(style,fontlist)
   set lm $astk::ihm(style,fontlist_label)
   for {set i 0} {$i < [llength $lf]} {incr i} {
      set ff [lindex $lf $i]
      set msg [ashare::mess ihm [lindex $lm $i]]
      button $fen.liste.$ff -font $astk::ihm(style,font_$ff) -text $msg \
         -command "choix_font $fen $ff"
      grid $fen.liste.$ff -row $i -column 0 -sticky ew -padx 5 -pady 5
   }

# ok
   pack [frame $fen.valid -relief solid -bd 0]
   button $fen.valid.ok -font $astk::ihm(font,labbout) -text "Ok" \
      -bg $astk::ihm(couleur,valid) \
      -command "destroy $fen"
   pack $fen.valid.ok -side left -padx 10 -pady 5

   ashare::centre_fen $fen .
   wm deiconify $fen
}

# sélection d'une police
# groupe = main, fixe
#################################################################
proc choix_font { parent groupe } {
   set newfont [SelectFont .fontdlg -parent $parent -font $astk::ihm(style,font_$groupe)]
   if { $newfont != "" } {
      if { $ashare::dbg >= 4 } {
         ashare::log "<DEBUG> Font : $newfont"
      }
      set astk::ihm(style,font_$groupe) $newfont
      init_font
      ashare::save_prefs
      destroy $parent
      raffr_princ
   }
}