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
  
150
  
151
  
152
  
153
  
154
  
155
  
156
  
157
  
158
  
159
  
160
  
161
  
/* -*- C -*- */ 
require gtk24; 
 
class GTK2.Action; 
inherit G.Object; 
 
//! Properties: 
//! GTK2.ActionGroup action-group 
//! int hide-if-empty 
//! int is-important 
//! string label 
//! string name 
//! int sensitive 
//! string short-label 
//! string stock-id 
//! string tooltip 
//! int visible 
//! int visible-horizontal 
require gtk26; 
//! int visible-overflown 
endrequire; 
//! int visible-vertical 
 
signal activate; 
 
void create(string|mapping(string:mixed) name_or_props, ?string label, 
            ?string tooltip, ?string stock_id) 
//! Creates a new object. 
{ 
  pgtk2_verify_not_inited(); 
  pgtk2_verify_setup(); 
  if (args>0 && TYPEOF(Pike_sp[-args]) == PIKE_T_STRING) { 
    char *name, *stock_id=NULL; 
    struct pike_string *label=NULL,*tooltip=NULL; 
    gchar *label2=NULL, *tooltip2=NULL; 
    GtkAction *ga; 
    get_all_args(NULL,args,"%s.%t%t%s",&name,&label,&tooltip,&stock_id); 
    if(label) { 
      ref_push_string(label); 
      f_string_to_utf8(1); 
      label2 = GSTR0(Pike_sp[-1].u.string); 
    } 
    if(tooltip) { 
      ref_push_string(tooltip); 
      f_string_to_utf8(1); 
      tooltip2 = GSTR0(Pike_sp[-1].u.string); 
    } 
    ga=gtk_action_new(name,label2,tooltip2,stock_id); 
    if(tooltip) pop_stack(); 
    if(label) pop_stack(); 
    THIS->obj=G_OBJECT(ga); 
  } else { 
    INIT_WITH_PROPS(GTK_TYPE_ACTION); 
  } 
  pgtk2_pop_n_elems(args); 
  pgtk2__init_this_object(); 
} 
 
string get_name(); 
//! Returns the name of the action. 
 
int is_sensitive(); 
//! Returns whether the action is effectively sensitive. 
 
int get_sensitive(); 
//! Returns whether the action itself is sensitive.  Note that this doesn't 
//! necessarily mean effective sensitivity. 
 
require gtk26; 
void set_sensitive(int setting); 
//! Sets the sensitive property. 
endrequire; 
 
int is_visible(); 
//! Returns whether the action is effectively visible. 
 
int get_visible(); 
//! Returns whether the action itself is visible. 
 
require gtk26; 
void set_visible(int setting); 
//! Sets the visible property. 
endrequire; 
 
void activate(); 
//! Emits the "activate" signal, if it isn't insensitive. 
 
+GTK2.Widget create_icon(int icon_size); 
//! This function is intended for use by action implementations to create 
//! icons displayed in the proxy widgets.  One of CONST(GTK_ICON_SIZE_). 
 
+GTK2.Widget create_menu_item(); 
//! Creates a menu item widget that proxies for the action. 
 
+GTK2.Widget create_tool_item(); 
//! Creates a toolbar item widget that proxies for the action. 
 
require gtk212; 
+GTK2.Widget create_menu(); 
//! If this action provides a W(Menu) widget as a submenu for the menu item  
//! or the toolbar item it creates, this function returns an instance of  
//! that menu. 
endrequire; 
 
void connect_proxy(GTK2.Widget proxy); 
//! Connects a widget to an action object as a proxy.  Synchronises various 
//! properties of the action with the widget (such as label text, icon, 
//! tooltip, etc), and attaches a callback so that the action gets activated 
//! when the proxy widget does. 
 
void disconnect_proxy(GTK2.Widget proxy); 
//! Disconnects a proxy widget.  Does not destroy the widget. 
 
array(GTK2.Widget) get_proxies() 
//! Returns the proxy widgets. 
{ 
  pgtk2_verify_inited(); 
  pgtk2_pop_n_elems(args); 
  { 
    GSList *gl; 
    int i=0; 
    gl=gtk_action_get_proxies(GTK_ACTION(THIS->obj)); 
    while (gl) { 
      push_gobject(gl->data); 
      g_object_ref(gl->data); 
      i++; 
      gl=g_slist_next(gl); 
    } 
    f_aggregate(i); 
  } 
} 
 
void connect_accelerator(); 
//! Installs the accelerator if this action widget has an accel path and group. 
 
void disconnect_accelerator(); 
//! Undoes the effect of one call to connect_accelerator(). 
 
void block_activate_from(GTK2.Widget proxy); 
//! Disables calls to the activate() function by signals on the proxy. This is 
//! used to break notification loops for things like check or radio actions. 
 
void unblock_activate_from(GTK2.Widget proxy); 
//! Re-enables calls to the activate() function. 
 
require gtk26; 
string get_accel_path(); 
//! Returns the accel path for this action. 
endrequire; 
 
void set_accel_path(string accel_path); 
//! Sets the accel path for this action.  All proxy widgets associated with 
//! this action will have this accel path, so that their accelerators are 
//! consistent. 
 
void set_accel_group(GTK2.AccelGroup group); 
//! Sets the GTK2.AccelGroup in which the accelerator for this action will be 
//! installed. 
 
endrequire;