示例#1
0
            private Gtk.Image GetIcon(MenuIcons icon)
            {
                if (Duplicati.Library.Utility.Utility.IsClientOSX)
                    return null;

                if (!_icons.ContainsKey(icon))
                {
                    switch(icon)
                    {
                    case MenuIcons.None:
                        _icons[icon] = null;
                        break;
                    case MenuIcons.Pause:
                        _icons[icon] = ImageToGtk(ImageLoader.Pause);
                        break;
                    case MenuIcons.Quit:
                        _icons[icon] = ImageToGtk(ImageLoader.CloseMenuIcon);
                        break;
                    case MenuIcons.Resume:
                        _icons[icon] = ImageToGtk(ImageLoader.Play);
                        break;
                    case MenuIcons.Status:
                        _icons[icon] = ImageToGtk(ImageLoader.StatusMenuIcon);
                        break;
                    default:
                        _icons[icon] = null;
                        break;
                    }
                }
                
                return _icons[icon];
            }
示例#2
0
            public MenuItemWrapper(string text, MenuIcons icon, Action callback, IList <IMenuItem> subitems)
            {
                if (text == "-")
                {
                    m_menu = new ToolStripSeparator();
                }
                else
                {
                    m_menu = new ToolStripMenuItem(text);
                    if (icon != MenuIcons.None)
                    {
                        m_menu.Image = GetIcon(icon);
                    }

                    if (callback != null)
                    {
                        m_callback    = callback;
                        m_menu.Click += OnMenuClick;
                    }

                    if (subitems != null && subitems.Count > 0)
                    {
                        foreach (var itm in subitems)
                        {
                            ((ToolStripMenuItem)m_menu).DropDownItems.Add(((MenuItemWrapper)itm).MenuItem);
                        }
                    }
                }
            }
示例#3
0
 public MenuItemWrapper(string text, MenuIcons icon, System.Action callback, IList<IMenuItem> subitems)
 {
     if (text == "-")
         m_item = new SeparatorMenuItem();
     else
     {
         m_item = new ImageMenuItem(text);
         if (!Duplicati.Library.Utility.Utility.IsClientOSX)
             if (icon != MenuIcons.None) {
                 ((ImageMenuItem)m_item).Image = GetIcon(icon);
                 
                 //TODO: Not sure we should do this, it overrides policy?
                 m_item.ExposeEvent += DrawImageMenuItemImage;
             }
         
         if (subitems != null && subitems.Count > 0)
         {
             Menu s = new Menu();
             foreach(var sm in subitems)
                 s.Add(((MenuItemWrapper)sm).m_item);
             
             m_item.Submenu = s;
         }
         
         if (callback != null)
         {
             m_item.Activated += ClickHandler;
             m_callback = callback;
         }
     }
 }
示例#4
0
 public void SetIcon(MenuIcons icon)
 {
     if (this.Icon != icon)
     {
         this.Icon = icon;
         m_parent.UpdateMenu(this);
     }
 }
示例#5
0
 private System.Drawing.Image GetIcon(MenuIcons icon)
 {
     switch(icon)
     {
     case MenuIcons.Pause:
         return ImageLoader.Pause;
     case MenuIcons.Quit:
         return ImageLoader.CloseMenuIcon;
     case MenuIcons.Resume:
         return ImageLoader.Play;
     case MenuIcons.Status:
         return ImageLoader.StatusMenuIcon;
     case MenuIcons.None:
     default:
         return null;
     }
 }
示例#6
0
 private System.Drawing.Image GetIcon(MenuIcons icon)
 {
     switch(icon)
     {
     case MenuIcons.Pause:
         return ImageLoader.Pause;
     case MenuIcons.Quit:
         return ImageLoader.CloseMenuIcon;
     case MenuIcons.Resume:
         return ImageLoader.Play;
     case MenuIcons.Status:
         return ImageLoader.StatusMenuIcon;
     case MenuIcons.None:
     default:
         return null;
     }
 }
示例#7
0
            private Gtk.Image GetIcon(MenuIcons icon)
            {
                if (!_icons.ContainsKey(icon))
                {
                    _icons[icon] = null;

                    var filename = GetFilenameForIcon(icon);
                    if (filename != null)
                    {
                        filename = System.IO.Path.Combine(m_svgfolder, System.IO.Path.ChangeExtension(filename, ".svg"));
                        if (System.IO.File.Exists(filename))
                        {
                            _icons[icon] = new Gtk.Image(filename);
                        }
                    }
                }

                return(_icons[icon]);
            }
示例#8
0
            private string GetFilenameForIcon(MenuIcons icon)
            {
                switch (icon)
                {
                case MenuIcons.Pause:
                    return("context_menu_pause");

                case MenuIcons.Quit:
                    return("context_menu_quit");

                case MenuIcons.Resume:
                    return("context_menu_resume");

                case MenuIcons.Status:
                    return("context_menu_open");

                default:
                    return(null);
                }
            }
示例#9
0
 public MenuItemWrapper(string text, MenuIcons icon, Action callback, IList<IMenuItem> subitems)
 {
     if (text == "-")
         m_menu = new ToolStripSeparator();
     else
     {
         m_menu = new ToolStripMenuItem(text);
         if (icon != MenuIcons.None)
             m_menu.Image = GetIcon(icon);
         
         if (callback != null)
         {
             m_callback = callback;
             m_menu.Click += OnMenuClick;
         }
         
         if (subitems != null && subitems.Count > 0)
             foreach(var itm in subitems)
                 ((ToolStripMenuItem)m_menu).DropDownItems.Add(((MenuItemWrapper)itm).MenuItem);
     }
 }
示例#10
0
            private Gtk.Image GetIcon(MenuIcons icon)
            {
                if (Duplicati.Library.Utility.Utility.IsClientOSX)
                {
                    return(null);
                }

                if (!_icons.ContainsKey(icon))
                {
                    switch (icon)
                    {
                    case MenuIcons.None:
                        _icons[icon] = null;
                        break;

                    case MenuIcons.Pause:
                        _icons[icon] = ImageToGtk(ImageLoader.Pause);
                        break;

                    case MenuIcons.Quit:
                        _icons[icon] = ImageToGtk(ImageLoader.CloseMenuIcon);
                        break;

                    case MenuIcons.Resume:
                        _icons[icon] = ImageToGtk(ImageLoader.Play);
                        break;

                    case MenuIcons.Status:
                        _icons[icon] = ImageToGtk(ImageLoader.StatusMenuIcon);
                        break;

                    default:
                        _icons[icon] = null;
                        break;
                    }
                }

                return(_icons[icon]);
            }
示例#11
0
            public MenuItemWrapper(string text, MenuIcons icon, System.Action callback, IList <IMenuItem> subitems)
            {
                if (text == "-")
                {
                    m_item = new SeparatorMenuItem();
                }
                else
                {
                    m_item = new ImageMenuItem(text);
                    if (!Platform.IsClientOSX)
                    {
                        if (icon != MenuIcons.None)
                        {
                            ((ImageMenuItem)m_item).Image = GetIcon(icon);

                            // On some (older versions) of GDK, this hack is required
                            //m_item.ExposeEvent += DrawImageMenuItemImage;
                        }
                    }

                    if (subitems != null && subitems.Count > 0)
                    {
                        Menu s = new Menu();
                        foreach (var sm in subitems)
                        {
                            s.Add(((MenuItemWrapper)sm).m_item);
                        }

                        m_item.Submenu = s;
                    }

                    if (callback != null)
                    {
                        m_item.Activated += ClickHandler;
                        m_callback        = callback;
                    }
                }
            }
示例#12
0
            public MenuItemWrapper(string text, MenuIcons icon, System.Action callback, IList <IMenuItem> subitems)
            {
                if (text == "-")
                {
                    m_item = new SeparatorMenuItem();
                }
                else
                {
                    m_item = new ImageMenuItem(text);
                    if (!Duplicati.Library.Utility.Utility.IsClientOSX)
                    {
                        if (icon != MenuIcons.None)
                        {
                            ((ImageMenuItem)m_item).Image = GetIcon(icon);

                            //TODO: Not sure we should do this, it overrides policy?
                            m_item.ExposeEvent += DrawImageMenuItemImage;
                        }
                    }

                    if (subitems != null && subitems.Count > 0)
                    {
                        Menu s = new Menu();
                        foreach (var sm in subitems)
                        {
                            s.Add(((MenuItemWrapper)sm).m_item);
                        }

                        m_item.Submenu = s;
                    }

                    if (callback != null)
                    {
                        m_item.Activated += ClickHandler;
                        m_callback        = callback;
                    }
                }
            }
示例#13
0
 public void SetIcon(MenuIcons icon)
 {
     ((ImageMenuItem)m_item).Image = GetIcon(icon);
 }
示例#14
0
 protected override IMenuItem CreateMenuItem(string text, MenuIcons icon, System.Action callback, IList <IMenuItem> subitems)
 {
     return(new MenuItemWrapper(text, icon, callback, subitems));
 }
 public MenuViewModel()
 {
     Icons = new MenuIcons();
 }
示例#16
0
 protected override IMenuItem CreateMenuItem (string text, MenuIcons icon, System.Action callback, IList<IMenuItem> subitems)
 {
     return new MenuItemWrapper(text, icon, callback, subitems);   
 }
示例#17
0
 public void SetIcon(MenuIcons icons)
 {
     // Do nothing.  Implementation needed for IMenuItem interface.
 }
 public MenuViewModel()
 {
     Icons = new MenuIcons();
 }
示例#19
0
 protected abstract IMenuItem CreateMenuItem(string text, MenuIcons icon, Action callback, IList <IMenuItem> subitems);
示例#20
0
 protected abstract IMenuItem CreateMenuItem(string text, MenuIcons icon, Action callback, IList<IMenuItem> subitems);
示例#21
0
 public void SetIcon(MenuIcons icon)
 {
     m_menu.Image = GetIcon(icon);
 }