Changeset 732 for trunk


Ignore:
Timestamp:
02/13/07 12:52:32 (13 years ago)
Author:
htanaka
Message:

fix #940 toolbar can contain buttons produced by plugin now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XinhaCore.js

    r731 r732  
    759759    sid = id; 
    760760  } 
    761  
    762   for ( i = 0; !exists && !found && i < toolbar.length; ++i ) 
     761   
     762  for ( i = 0; i < toolbar.length; ++i ) { 
     763    a = toolbar[i]; 
     764    for ( j = 0; j < a.length; ++j ) { 
     765      // check if button/select box exists 
     766      if ( a[j] == sid ) { 
     767        return; // cancel to add elements if same button already exists 
     768      } 
     769    } 
     770  } 
     771   
     772 
     773  for ( i = 0; !found && i < toolbar.length; ++i ) 
    763774  { 
    764775    a = toolbar[i]; 
    765776    for ( j = 0; !found && j < a.length; ++j ) 
    766777    { 
    767       // check if button/select box exists 
    768       if ( a[i] == sid ) 
    769       {  
    770         exists = true; 
    771         break; 
    772       } 
    773778      if ( whereIsArray ) 
    774779      { 
     
    804809  } 
    805810 
    806   if ( !exists ) 
    807   { 
    808     //if check found any other as the first button 
    809     if ( !found && whereIsArray ) 
     811  //if check found any other as the first button 
     812  if ( !found && whereIsArray ) 
     813  {  
     814    if ( where.length != whereLength ) 
     815    { 
     816      j = whereJ; 
     817      a = toolbar[whereI]; 
     818      found = true; 
     819    } 
     820  } 
     821  if ( found ) 
     822  { 
     823    // replace the found button 
     824    if ( position === 0 ) 
     825    { 
     826      if ( idIsArray) 
     827      { 
     828        a[j] = id[id.length-1]; 
     829        for ( i = id.length-1; --i >= 0; ) 
     830        { 
     831          a.splice(j, 0, id[i]); 
     832        } 
     833      } 
     834      else 
     835      { 
     836        a[j] = id; 
     837      } 
     838    } 
     839    else 
    810840    {  
    811       if ( where.length != whereLength ) 
    812       { 
    813         j = whereJ; 
    814         a = toolbar[whereI]; 
    815         found = true; 
    816       } 
    817     } 
    818     if ( found ) 
    819     { 
    820       // replace the found button 
    821       if ( position === 0 ) 
    822       { 
    823         if ( idIsArray) 
    824         { 
    825           a[j] = id[id.length-1]; 
    826           for ( i = id.length-1; --i >= 0; ) 
    827           { 
    828             a.splice(j, 0, id[i]); 
    829           } 
    830         } 
    831         else 
    832         { 
    833           a[j] = id; 
    834         } 
    835       } 
    836       else 
    837       {  
    838         // insert before/after the found button 
    839         if ( position < 0 ) 
    840         { 
    841           j = j + position + 1; //correct position before 
    842         } 
    843         else if ( position > 0 ) 
    844         { 
    845           j = j + position; //correct posion after 
    846         } 
    847         if ( idIsArray ) 
    848         { 
    849           for ( i = id.length; --i >= 0; ) 
    850           { 
    851             a.splice(j, 0, id[i]); 
    852           } 
    853         } 
    854         else 
    855         { 
    856           a.splice(j, 0, id); 
    857         } 
    858       } 
    859     } 
    860     else 
    861     { 
    862       // no button found 
    863       toolbar[0].splice(0, 0, "separator"); 
    864       if ( idIsArray) 
     841      // insert before/after the found button 
     842      if ( position < 0 ) 
     843      { 
     844        j = j + position + 1; //correct position before 
     845      } 
     846      else if ( position > 0 ) 
     847      { 
     848        j = j + position; //correct posion after 
     849      } 
     850      if ( idIsArray ) 
    865851      { 
    866852        for ( i = id.length; --i >= 0; ) 
    867853        { 
    868           toolbar[0].splice(0, 0, id[i]); 
     854          a.splice(j, 0, id[i]); 
    869855        } 
    870856      } 
    871857      else 
    872858      { 
    873         toolbar[0].splice(0, 0, id); 
    874       } 
     859        a.splice(j, 0, id); 
     860      } 
     861    } 
     862  } 
     863  else 
     864  { 
     865    // no button found 
     866    toolbar[0].splice(0, 0, "separator"); 
     867    if ( idIsArray) 
     868    { 
     869      for ( i = id.length; --i >= 0; ) 
     870      { 
     871        toolbar[0].splice(0, 0, id[i]); 
     872      } 
     873    } 
     874    else 
     875    { 
     876      toolbar[0].splice(0, 0, id); 
    875877    } 
    876878  } 
Note: See TracChangeset for help on using the changeset viewer.