2
// Copyright (C) 2009 GNOME Do
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
19
using System.Collections.Generic;
29
using Docky.Utilities;
31
namespace Docky.Interface
35
public class ActionDockItem : AbstractDockItem
38
Do.Universe.Item target_item;
41
get { return action.Icon; }
44
public ActionDockItem(Act action, Do.Universe.Item targetItem)
47
this.target_item = targetItem;
48
SetText (action.Name);
51
protected override Pixbuf GetSurfacePixbuf (int size)
53
Gdk.Pixbuf pbuf = IconProvider.PixbufFromIconName (Icon, size);
54
if (pbuf.Height != size && pbuf.Width != size) {
55
double scale = (double)DockPreferences.FullIconSize / Math.Max (pbuf.Width, pbuf.Height);
56
Gdk.Pixbuf temp = pbuf.ScaleSimple ((int) (pbuf.Width * scale), (int) (pbuf.Height * scale), InterpType.Bilinear);
64
public override void Clicked (uint button, ModifierType state, Gdk.Point position)
67
Services.Core.PerformActionOnItem (action, target_item);
70
base.Clicked (button, state, position);