Changeset 0ce076c in tol for tolbase/lib


Ignore:
Timestamp:
Mar 26, 2010, 10:41:45 AM (17 years ago)
Author:
Jorge Pérez <josp.jorge@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
38ac796
Parents:
465c1d5
Message:

closes #885, se hace un despliegue mas inteligente de las opciones de
instancias de clase intentando minimizar el numero de clicks.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2064 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tolbase/lib/toltk/tolinspe.tcl

    r465c1d5 r0ce076c  
    21252125            }
    21262126            NameBlock {
    2127               if { [ llength $options_selected(NameBlock) ] } {
     2127              set sel_length [ llength $options_selected(NameBlock) ]
     2128              if { $sel_length } {
    21282129                set idx_current [ lsearch $vars_selected $node_act ]
    2129                 foreach mi [ TolGui_GetMenuEntries \
    2130                                  $options_selected(NameBlock) $idx_current ] {
     2130                set all_nb_options \
     2131                    [ TolGui_GetMenuEntries \
     2132                          $options_selected(NameBlock) $idx_current ]
     2133                set num_options [ llength $all_nb_options ]
     2134                foreach mi $all_nb_options {
    21312135                  set _cname [ lindex $mi 0 ]
    21322136                  set cname [ string map [ list @ "" . _ ] $_cname ]
    … …  
    21362140                  set mclass $data_menu(main).cls$cname
    21372141                  if { ![ winfo exists $mclass ] } {
    2138                     menu $data_menu(main).cls$cname -tearoff 0
     2142                    menu $mclass -tearoff 0
    21392143                  } else {
    21402144                    $mclass delete 0 end
    21412145                  }
    2142                   $data_menu(main) add cascade -label $cname -menu $mclass
     2146                  if { $num_options > 1 } {
     2147                    $data_menu(main) add cascade -label $cname -menu $mclass
     2148                    set target_menu $mclass
     2149                  } else {
     2150                    set target_menu $data_menu(main)
     2151                  }
    21432152                  foreach inst_entry $entries {
    21442153                    foreach { label single group } $inst_entry break
    2145                     $mclass add command -label "$label $ninst" \
     2154                    set opt_label \
     2155                        "$label [ expr { $sel_length>1 ? $ninst : {} } ]"
     2156                    $target_menu add command -label $opt_label \
    21462157                        -command [ list TolGui_InvokeMethod \
    21472158                                       $single $obj_addr ]
    21482159                    if { $group ne "" && [ llength $instances ] > 1 } {
    21492160                      # hay una funcion que se aplica a toda la seleccion
    2150                       $mclass add command -label "$label All" \
     2161                      $target_menu add command -label "$label All" \
    21512162                          -command [ list TolGui_InvokeGroup \
    21522163                                         $_cname $group $instances ]
Note: See TracChangeset for help on using the changeset viewer.