diff options
author | Stefano Karapetsas <[email protected]> | 2012-11-24 18:14:02 +0100 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2012-11-24 18:14:02 +0100 |
commit | 03beef19aed6291da9093c1fc2dacc147a1bbd72 (patch) | |
tree | dcc71f2dd57db0d8e76d687b8ceb22d757e25413 /mini-commander/src/mini-commander_applet.c | |
parent | 5fe5821ef2b69faee48d0b04f60e9b3b080ce203 (diff) | |
download | mate-applets-03beef19aed6291da9093c1fc2dacc147a1bbd72.tar.bz2 mate-applets-03beef19aed6291da9093c1fc2dacc147a1bbd72.tar.xz |
remove mini-commander applet
Diffstat (limited to 'mini-commander/src/mini-commander_applet.c')
-rw-r--r-- | mini-commander/src/mini-commander_applet.c | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/mini-commander/src/mini-commander_applet.c b/mini-commander/src/mini-commander_applet.c deleted file mode 100644 index 24073c79..00000000 --- a/mini-commander/src/mini-commander_applet.c +++ /dev/null @@ -1,430 +0,0 @@ - /* - * Mini-Commander Applet - * Copyright (C) 1998 Oliver Maruhn <[email protected]>, - * 2002 Sun Microsystems - * - * Authors: Oliver Maruhn <[email protected]>, - * Mark McLoughlin <[email protected]> - * - * This program 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. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <config.h> -#include <string.h> -#include <stdlib.h> - -#include <gdk/gdkkeysyms.h> - - -#include <gtk/gtk.h> - -#include <mate-panel-applet.h> -#include <mateconf/mateconf-client.h> -#include "mini-commander_applet.h" -#include "preferences.h" -#include "command_line.h" -#include "about.h" -#include "help.h" - -#include "browser-mini.xpm" -#include "history-mini.xpm" - -#define COMMANDLINE_BROWSER_STOCK "commandline-browser" -#define COMMANDLINE_HISTORY_STOCK "commandline-history" - -#define COMMANDLINE_DEFAULT_ICON_SIZE 6 - -static gboolean icons_initialized = FALSE; -static GtkIconSize button_icon_size = 0; - -static const GtkActionEntry mini_commander_menu_actions [] = { - { "Props", GTK_STOCK_PROPERTIES, N_("_Preferences"), - NULL, NULL, - G_CALLBACK (mc_show_preferences) }, - { "Help", GTK_STOCK_HELP, N_("_Help"), - NULL, NULL, - G_CALLBACK (show_help) }, - { "About", GTK_STOCK_ABOUT, N_("_About"), - NULL, NULL, - G_CALLBACK (about_box) } -}; - -typedef struct { - char *stock_id; - const char **icon_data; -} CommandLineStockIcon; - -static CommandLineStockIcon items[] = { - { COMMANDLINE_BROWSER_STOCK, browser_mini_xpm }, - { COMMANDLINE_HISTORY_STOCK, history_mini_xpm } -}; - -static void -register_command_line_stock_icons (GtkIconFactory *factory) -{ - gint i; - - for (i = 0; i < G_N_ELEMENTS (items); ++i) { - GtkIconSet *icon_set; - GdkPixbuf *pixbuf; - - pixbuf = gdk_pixbuf_new_from_xpm_data ((items[i].icon_data)); - - icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); - gtk_icon_factory_add (factory, items[i].stock_id, icon_set); - - gtk_icon_set_unref (icon_set); - g_object_unref (G_OBJECT (pixbuf)); - } - -} - -static void -command_line_init_stock_icons (void) -{ - - GtkIconFactory *factory; - - if (icons_initialized) - return; - - factory = gtk_icon_factory_new (); - gtk_icon_factory_add_default (factory); - - register_command_line_stock_icons (factory); - - button_icon_size = gtk_icon_size_register ("mini-commander-icon", - COMMANDLINE_DEFAULT_ICON_SIZE, - COMMANDLINE_DEFAULT_ICON_SIZE); - - icons_initialized = TRUE; - g_object_unref (factory); - -} - -void -set_atk_name_description (GtkWidget *widget, - const char *name, - const char *description) -{ - AtkObject *aobj; - - aobj = gtk_widget_get_accessible (widget); - if (GTK_IS_ACCESSIBLE (aobj) == FALSE) - return; - - atk_object_set_name (aobj, name); - atk_object_set_description (aobj, description); -} - -/* This is a hack around the fact that gtk+ doesn't - * propogate button presses on button2/3. - */ -static gboolean -button_press_hack (GtkWidget *widget, - GdkEventButton *event, - MCData *mc) -{ - if (event->button == 3 || event->button == 2) { - gtk_propagate_event (GTK_WIDGET (mc->applet), (GdkEvent *) event); - return TRUE; - } - - return FALSE; -} - -/* Send button presses on the applet to the entry. This makes Fitts' law work (ie click on the bottom -** most pixel and the key press will be sent to the entry */ -static gboolean -send_button_to_entry_event (GtkWidget *widget, GdkEventButton *event, MCData *mc) -{ - - if (event->button == 1) { - gtk_widget_grab_focus (mc->entry); - return TRUE; - } - return FALSE; - -} - -static gboolean -key_press_cb (GtkWidget *widget, GdkEventKey *event, MCData *mc) -{ - switch (event->keyval) { - case GDK_b: - if (event->state == GDK_CONTROL_MASK) { - mc_show_file_browser (NULL, mc); - return TRUE; - } - break; - case GDK_h: - if (event->state == GDK_CONTROL_MASK) { - mc_show_history (NULL, mc); - return TRUE; - } - break; - default: - break; - } - - return FALSE; - -} - -void -mc_applet_draw (MCData *mc) -{ - GtkWidget *icon; - GtkWidget *button; - GtkWidget *hbox_buttons; - MCPreferences prefs = mc->preferences; - int size_frames = 0; - gchar *command_text = NULL; - - if (mc->entry != NULL) - command_text = g_strdup (gtk_editable_get_chars (GTK_EDITABLE (mc->entry), 0, -1)); - - mc->cmd_line_size_y = mc->preferences.normal_size_y - size_frames; - - if (mc->applet_box) { - gtk_widget_destroy (mc->applet_box); - } - - if ( ((mc->orient == MATE_PANEL_APPLET_ORIENT_LEFT) || (mc->orient == MATE_PANEL_APPLET_ORIENT_RIGHT)) && (prefs.panel_size_x < 36) ) - mc->applet_box = gtk_vbox_new (FALSE, 0); - else - mc->applet_box = gtk_hbox_new (FALSE, 0); - - gtk_container_set_border_width (GTK_CONTAINER (mc->applet_box), 0); - - mc_create_command_entry (mc); - - if (command_text != NULL) { - gtk_entry_set_text (GTK_ENTRY (mc->entry), command_text); - g_free (command_text); - } - - /* hbox for message label and buttons */ - if ((mc->orient == MATE_PANEL_APPLET_ORIENT_LEFT) || (mc->orient == MATE_PANEL_APPLET_ORIENT_RIGHT)) - if (prefs.panel_size_x < 36) - hbox_buttons = gtk_vbox_new (TRUE, 0); - else - hbox_buttons = gtk_hbox_new (TRUE, 0); - else - if (prefs.normal_size_y > 36) - hbox_buttons = gtk_vbox_new (TRUE, 0); - else - hbox_buttons = gtk_hbox_new (TRUE, 0); - - /* add file-browser button */ - button = gtk_button_new (); - - g_signal_connect (button, "clicked", - G_CALLBACK (mc_show_file_browser), mc); - g_signal_connect (button, "button_press_event", - G_CALLBACK (button_press_hack), mc); - - icon = gtk_image_new_from_stock (COMMANDLINE_BROWSER_STOCK, button_icon_size); - gtk_container_add (GTK_CONTAINER (button), icon); - - gtk_widget_set_tooltip_text (button, _("Browser")); - gtk_box_pack_start (GTK_BOX (hbox_buttons), button, TRUE, TRUE, 0); - - set_atk_name_description (button, - _("Browser"), - _("Click this button to start the browser")); - - /* add history button */ - button = gtk_button_new (); - - g_signal_connect (button, "clicked", - G_CALLBACK (mc_show_history), mc); - g_signal_connect (button, "button_press_event", - G_CALLBACK (button_press_hack), mc); - - icon = gtk_image_new_from_stock (COMMANDLINE_HISTORY_STOCK, button_icon_size); - gtk_container_add (GTK_CONTAINER (button), icon); - - gtk_widget_set_tooltip_text (button, _("History")); - gtk_box_pack_end (GTK_BOX (hbox_buttons), button, TRUE, TRUE, 0); - - set_atk_name_description (button, - _("History"), - _("Click this button for the list of previous commands")); - - gtk_box_pack_start (GTK_BOX (mc->applet_box), mc->entry, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (mc->applet_box), hbox_buttons, TRUE, TRUE, 0); - - gtk_container_add (GTK_CONTAINER (mc->applet), mc->applet_box); - - gtk_widget_show_all (mc->applet_box); -} - -static void -mc_destroyed (GtkWidget *widget, - MCData *mc) -{ - MateConfClient *client; - int i; - - client = mateconf_client_get_default (); - for (i = 0; i < MC_NUM_LISTENERS; i++) { - mateconf_client_notify_remove (client, mc->listeners [i]); - mc->listeners [i] = 0; - } - g_object_unref (client); - - mc_macros_free (mc->preferences.macros); - - if (mc->prefs_dialog.dialog) - gtk_widget_destroy (mc->prefs_dialog.dialog); - - if (mc->prefs_dialog.dialog) - g_object_unref (mc->prefs_dialog.macros_store); - - if (mc->file_select) - gtk_widget_destroy (mc->file_select); - - g_free (mc); -} - -static void -mc_orient_changed (MatePanelApplet *applet, - MatePanelAppletOrient orient, - MCData *mc) -{ - mc->orient = orient; - mc_applet_draw (mc); -} - -static void -mc_pixel_size_changed (MatePanelApplet *applet, - GtkAllocation *allocation, - MCData *mc) -{ - if ((mc->orient == MATE_PANEL_APPLET_ORIENT_LEFT) || (mc->orient == MATE_PANEL_APPLET_ORIENT_RIGHT)) { - if (mc->preferences.panel_size_x == allocation->width) - return; - mc->preferences.panel_size_x = allocation->width; - } else { - if (mc->preferences.normal_size_y == allocation->height) - return; - mc->preferences.normal_size_y = allocation->height; - } - - mc_applet_draw (mc); -} - -static gboolean -mini_commander_applet_fill (MatePanelApplet *applet) -{ - MCData *mc; - MateConfClient *client; - GtkActionGroup *action_group; - gchar *ui_path; - - client = mateconf_client_get_default (); - if (mateconf_client_get_bool (client, "/desktop/mate/lockdown/inhibit_command_line", NULL)) { - GtkWidget *error_dialog; - - error_dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - _("Command line has been disabled by your system administrator")); - - gtk_window_set_resizable (GTK_WINDOW (error_dialog), FALSE); - gtk_dialog_set_has_separator (GTK_DIALOG (error_dialog), FALSE); - gtk_window_set_screen (GTK_WINDOW (error_dialog), - gtk_widget_get_screen (GTK_WIDGET (applet))); - gtk_dialog_run (GTK_DIALOG (error_dialog)); - gtk_widget_destroy (error_dialog); - - /* Note that this is only kosher if this is an out of process thing, - which we really are. We really don't need/want this applet when - command line is disabled */ - exit (1); - } - - g_set_application_name (_("Command Line")); - - gtk_window_set_default_icon_name ("mate-mini-commander"); - - mc = g_new0 (MCData, 1); - mc->applet = applet; - - mate_panel_applet_add_preferences (applet, "/schemas/apps/mini-commander/prefs", NULL); - mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); - mc_load_preferences (mc); - command_line_init_stock_icons (); - - g_signal_connect (mc->applet, "change_orient", - G_CALLBACK (mc_orient_changed), mc); - g_signal_connect (mc->applet, "size_allocate", - G_CALLBACK (mc_pixel_size_changed), mc); - - mc->preferences.normal_size_y = mate_panel_applet_get_size (applet); - mc->orient = mate_panel_applet_get_orient (applet); - mc_applet_draw(mc); - gtk_widget_show (GTK_WIDGET (mc->applet)); - - g_signal_connect (mc->applet, "destroy", G_CALLBACK (mc_destroyed), mc); - g_signal_connect (mc->applet, "button_press_event", - G_CALLBACK (send_button_to_entry_event), mc); - g_signal_connect (mc->applet, "key_press_event", - G_CALLBACK (key_press_cb), mc); - - action_group = gtk_action_group_new ("MiniCommander Applet Actions"); - gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); - gtk_action_group_add_actions (action_group, - mini_commander_menu_actions, - G_N_ELEMENTS (mini_commander_menu_actions), - mc); - ui_path = g_build_filename (MC_MENU_UI_DIR, "mini-commander-applet-menu.xml", NULL); - mate_panel_applet_setup_menu_from_file (mc->applet, ui_path, action_group); - - if (mate_panel_applet_get_locked_down (mc->applet)) { - GtkAction *action; - - action = gtk_action_group_get_action (action_group, "Props"); - gtk_action_set_visible (action, FALSE); - } - g_object_unref (action_group); - - set_atk_name_description (GTK_WIDGET (applet), - _("Mini-Commander applet"), - _("This applet adds a command line to the panel")); - - return TRUE; -} - -static gboolean -mini_commander_applet_factory (MatePanelApplet *applet, - const gchar *iid, - gpointer data) -{ - gboolean retval = FALSE; - - if (!strcmp (iid, "MiniCommanderApplet")) - retval = mini_commander_applet_fill(applet); - - return retval; -} - -MATE_PANEL_APPLET_OUT_PROCESS_FACTORY ("MiniCommanderAppletFactory", - PANEL_TYPE_APPLET, - "command-line", - mini_commander_applet_factory, - NULL) |