49
47
GtkWidget *selector;
50
GtkWidget *about_dialog;
52
49
PanelAppletOrient orient;
56
window_menu_help (GtkAction *action,
57
WindowMenu *window_menu)
59
wncklet_display_help (window_menu->applet, "user-guide",
60
"panel-windowselector", WINDOW_MENU_ICON);
64
window_menu_about (GtkAction *action,
65
WindowMenu *window_menu)
67
static const char *authors[] = {
68
"Mark McLoughlin <mark@skynet.ie>",
69
"George Lebl <jirka@5z.com>",
70
"Jacob Berkman <jacob@helixcode.com>",
73
const char *documenters [] = {
74
"Sun GNOME Documentation Team <gdocteam@sun.com>",
77
const char *translator_credits = _("translator-credits");
79
wncklet_display_about (window_menu->applet, &window_menu->about_dialog,
81
"Copyright \xc2\xa9 2003 Sun Microsystems, Inc.\n"
82
"Copyright \xc2\xa9 2001 Free Software Foundation, Inc.\n"
83
"Copyright \xc2\xa9 2000 Helix Code, Inc.",
84
_("The Window Selector shows a list of all windows in a menu and lets you browse them."),
93
static const GtkActionEntry window_menu_actions [] =
95
{ "WindowMenuHelp", GTK_STOCK_HELP, N_("_Help"),
97
G_CALLBACK (window_menu_help) },
98
{ "WindowMenuAbout", GTK_STOCK_ABOUT, N_("_About"),
100
G_CALLBACK (window_menu_about) }
104
53
window_menu_destroy (GtkWidget *widget,
105
54
WindowMenu *window_menu)
107
if (window_menu->about_dialog) {
108
gtk_widget_destroy (window_menu->about_dialog);
109
window_menu->about_dialog = NULL;
112
56
g_free (window_menu);
116
window_menu_on_expose (GtkWidget *widget,
117
GdkEventExpose *event,
60
window_menu_on_draw (GtkWidget *widget,
120
WindowMenu *window_menu = data;
122
if (gtk_widget_has_focus (window_menu->applet))
123
gtk_paint_focus (gtk_widget_get_style (widget),
124
gtk_widget_get_window (widget),
125
gtk_widget_get_state (widget),
64
GtkStyleContext *context;
66
WindowMenu *window_menu = data;
68
if (!gtk_widget_has_focus (window_menu->applet))
71
state = gtk_widget_get_state_flags (widget);
72
context = gtk_widget_get_style_context (widget);
73
gtk_style_context_save (context);
74
gtk_style_context_set_state (context, state);
77
gtk_render_focus (context, cr,
79
gtk_widget_get_allocated_width (widget),
80
gtk_widget_get_allocated_height (widget));
83
gtk_style_context_restore (context);
133
88
static inline void
134
89
force_no_focus_padding (GtkWidget *widget)
136
gboolean first_time = TRUE;
91
GtkCssProvider *provider;
139
gtk_rc_parse_string ("\n"
140
" style \"window-menu-applet-button-style\"\n"
142
" GtkWidget::focus-line-width=0\n"
143
" GtkWidget::focus-padding=0\n"
146
" widget \"*.window-menu-applet-button\" style \"window-menu-applet-button-style\"\n"
93
provider = gtk_css_provider_new ();
94
gtk_css_provider_load_from_data (provider,
95
"#window-menu-applet-button {\n"
96
" border-width: 0px;\n"
97
" -GtkWidget-focus-line-width: 0px;\n"
98
" -GtkWidget-focus-padding: 0px;\n"
101
gtk_style_context_add_provider (gtk_widget_get_style_context (widget),
102
GTK_STYLE_PROVIDER (provider),
103
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
104
g_object_unref (provider);
151
106
gtk_widget_set_name (widget, "window-menu-applet-button");
253
210
g_signal_connect (window_menu->applet, "destroy",
254
211
G_CALLBACK (window_menu_destroy), window_menu);
256
action_group = gtk_action_group_new ("WindowMenu Applet Actions");
257
gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
258
gtk_action_group_add_actions (action_group,
260
G_N_ELEMENTS (window_menu_actions),
262
ui_path = g_build_filename (WNCK_MENU_UI_DIR, "window-menu-menu.xml", NULL);
263
panel_applet_setup_menu_from_file (applet, ui_path, action_group);
265
g_object_unref (action_group);
267
213
window_menu->selector = wnck_selector_new ();
268
214
gtk_container_add (GTK_CONTAINER (window_menu->applet),
269
215
window_menu->selector);
280
226
G_CALLBACK (gtk_widget_queue_draw), window_menu);
281
227
g_signal_connect_after (G_OBJECT (window_menu->applet), "focus-out-event",
282
228
G_CALLBACK (gtk_widget_queue_draw), window_menu);
283
g_signal_connect_after (G_OBJECT (window_menu->selector), "expose-event",
284
G_CALLBACK (window_menu_on_expose), window_menu);
229
g_signal_connect_after (G_OBJECT (window_menu->selector), "draw",
230
G_CALLBACK (window_menu_on_draw), window_menu);
286
232
g_signal_connect (G_OBJECT (window_menu->selector), "button_press_event",
287
233
G_CALLBACK (filter_button_press), window_menu);