class_docstr: A Manager for tabs of the table panel.
  
  Attributes
  ----------
  
  tab_ui : TabUI
      Underlying FURY TabUI object.
class_docstr_tok: ["A","Manager","for","tabs","of","the","table","panel",".","Attributes","--","--","--","--","--","tab_ui",":","TabUI","Underlying","FURY","TabUI","object","."]
code: def __init__(self, tabs, win_size, synchronize_slices=False):
      num_tabs = len(tabs)
      self._tabs = tabs
      self._synchronize_slices = synchronize_slices
  
      win_width, _win_height = win_size
  
      self._tab_size = (1280, 240)
      x_pad = np.rint((win_width - self._tab_size[0]) / 2)
  
      self._active_tab_id = num_tabs - 1
  
      self._tab_ui = ui.TabUI(
          position=(x_pad, 5),
          size=self._tab_size,
          nb_tabs=num_tabs,
          active_color=(1, 1, 1),
          inactive_color=(0.5, 0.5, 0.5),
          draggable=True,
          startup_tab_id=self._active_tab_id,
      )
  
      self._tab_ui.on_change = self._tab_selected
  
      self.tab_changed = lambda actors: None
      slices_tabs = list(
          filter(
              lambda x: x.__class__.__name__ == "SlicesTab", self._tabs
          )
      )
      if not self._synchronize_slices and slices_tabs:
          msg = (
              "Images are of different dimensions, "
              + "synchronization of slices will not work"
          )
          warnings.warn(msg)
  
      for tab_id, tab in enumerate(tabs):
          self._tab_ui.tabs[tab_id].title = " " + tab.name
          self._tab_ui.tabs[tab_id].title_font_size = 18
          tab.build(tab_id, self._tab_ui)
          if tab.__class__.__name__ == "SlicesTab":
              tab.on_slice_change = self.synchronize_slices
              self._render_tab_elements(tab_id, tab.elements)
  
imports: from typing import Any
  from dataclasses import dataclass
  import warnings
  from abc import ABC, abstractmethod
  import numpy
  from dipy.utils.optpkg import optional_package
label_desc: Use image node_id 1 to create a new TabManager object  with example: obj = TabManager(tabs, win_size, synchronize_slices)