1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
/*
* This file is part of gitg
*
* Copyright (C) 2012 - Jesse van den Kieboom
*
* gitg is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* gitg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with gitg. If not, see <http://www.gnu.org/licenses/>.
*/
namespace GitgExt
{
/**
* gitg UIElement interface.
*
*/
public interface UIElement : Object
{
/**
* The main gitg application interface.
*
* This property is a "construct"
* property and will be automatically set when an instance of the ui element
* object is created.
*/
public abstract GitgExt.Application? application { owned get; construct set; }
/**
* A unique id for the ui element.
*
* Ids in gitg are normally of the form /org/gnome/gitg/...
*/
public abstract string id { owned get; }
/**
* The display name of the ui element.
*
* This should result in a string which can
* be displayed in the gitg UI to identify the element.
*/
public abstract string display_name { owned get; }
/**
* The description of the ui element.
*
* This should result in a string which can
* be displayed in the gitg UI to describe the element.
*/
public abstract string description { owned get; }
/**
* The ui element icon.
*
* If provided, the icon will be used in navigation toolbars
* so that users can switch to the ui element.
*/
public virtual string? icon
{
owned get { return null; }
}
/**
* The ui element widget.
*
* This widget will be embedded in the gitg UI when
* the element is activated.
*/
public virtual Gtk.Widget? widget
{
owned get { return null; }
}
/**
* The ui element shortcut.
*
* If provided, the key to mix with Gdk.ModifierType.MOD1_MASK to enable
* this element
*/
public virtual uint? shortcut
{
owned get { return null; }
}
/**
* Check whether the ui element is available in the current application state.
*
* This method is used by gitg to verify whether or not a particular ui
* element is available given the current state of the application. If the
* element is not available, it will not be shown.
*
*/
public virtual bool available
{
get { return true; }
}
/**
* Check whether the ui element is enabled in the current application state.
*
* This method is used by gitg to verify whether or not a particular ui
* element is enabled (sensitive) given the current state of the application.
*
*/
public virtual bool enabled
{
get { return true; }
}
/**
* Negotiate the order with another UIElement.
*
* This method is used to determine the order in which elements need to
* appear in the UI.
*
* @return -1 if the element should appear before @other, 1 if the
* element should appear after @other and 0 if the order is
* unimportant.
*
*/
public virtual int negotiate_order(UIElement other)
{
return 0;
}
/**
* Activate the UIELement.
*
* This signal is emitted when the UIElement has been activated.
* Implementations can override the default handler to do any necessary
* setup when the ui element is activated.
*/
public virtual signal void activate()
{
}
}
}
// ex: ts=4 noet
|