summaryrefslogtreecommitdiff
path: root/mini-commander/src
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2012-11-24 18:14:02 +0100
committerStefano Karapetsas <[email protected]>2012-11-24 18:14:02 +0100
commit03beef19aed6291da9093c1fc2dacc147a1bbd72 (patch)
treedcc71f2dd57db0d8e76d687b8ceb22d757e25413 /mini-commander/src
parent5fe5821ef2b69faee48d0b04f60e9b3b080ce203 (diff)
downloadmate-applets-03beef19aed6291da9093c1fc2dacc147a1bbd72.tar.bz2
mate-applets-03beef19aed6291da9093c1fc2dacc147a1bbd72.tar.xz
remove mini-commander applet
Diffstat (limited to 'mini-commander/src')
-rw-r--r--mini-commander/src/Makefile.am115
-rw-r--r--mini-commander/src/about.c56
-rw-r--r--mini-commander/src/about.h4
-rw-r--r--mini-commander/src/browser-mini.xpm11
-rw-r--r--mini-commander/src/cmd_completion.c246
-rw-r--r--mini-commander/src/cmd_completion.h34
-rw-r--r--mini-commander/src/command_line.c598
-rw-r--r--mini-commander/src/command_line.h41
-rw-r--r--mini-commander/src/exec.c93
-rw-r--r--mini-commander/src/exec.h35
-rw-r--r--mini-commander/src/help.c42
-rw-r--r--mini-commander/src/help.h4
-rw-r--r--mini-commander/src/history-mini.xpm11
-rw-r--r--mini-commander/src/history.c144
-rw-r--r--mini-commander/src/history.h6
-rw-r--r--mini-commander/src/macro.c155
-rw-r--r--mini-commander/src/macro.h42
-rw-r--r--mini-commander/src/mate-mini-commander.pngbin703 -> 0 bytes
-rw-r--r--mini-commander/src/mc-default-macros.h65
-rw-r--r--mini-commander/src/mc-install-default-macros.c179
-rw-r--r--mini-commander/src/mini-commander-applet-menu.xml4
-rw-r--r--mini-commander/src/mini-commander-global.schemas.in31
-rw-r--r--mini-commander/src/mini-commander.schemas.in193
-rw-r--r--mini-commander/src/mini-commander.ui713
-rw-r--r--mini-commander/src/mini-commander_applet.c430
-rw-r--r--mini-commander/src/mini-commander_applet.h72
-rw-r--r--mini-commander/src/org.mate.applets.MiniCommanderApplet.mate-panel-applet.in.in16
-rw-r--r--mini-commander/src/org.mate.panel.applet.MiniCommanderAppletFactory.service.in3
-rw-r--r--mini-commander/src/preferences.c1128
-rw-r--r--mini-commander/src/preferences.h109
30 files changed, 0 insertions, 4580 deletions
diff --git a/mini-commander/src/Makefile.am b/mini-commander/src/Makefile.am
deleted file mode 100644
index 1eace378..00000000
--- a/mini-commander/src/Makefile.am
+++ /dev/null
@@ -1,115 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-INCLUDES = \
- -I. \
- -I$(srcdir) \
- -DMC_MENU_UI_DIR=\""$(uidir)"\" \
- $(MATE_APPLETS3_CFLAGS) \
- $(WARN_CFLAGS) \
- $(MATE_INCLUDEDIR)
-
-libexec_PROGRAMS = mini_commander_applet
-
-tooldir = $(libexecdir)/mate-applets
-tool_PROGRAMS = mc-install-default-macros
-
-mini_commander_applet_SOURCES = \
- about.c \
- about.h \
- cmd_completion.c \
- cmd_completion.h \
- command_line.c \
- command_line.h \
- exec.c \
- exec.h \
- mini-commander_applet.c \
- mini-commander_applet.h \
- help.c \
- help.h \
- history.c \
- history.h \
- macro.c \
- macro.h \
- preferences.c \
- preferences.h \
- mc-default-macros.h
-
-mini_commander_applet_LDADD = \
- $(MATE_APPLETS3_LIBS)
-
-mc_install_default_macros_SOURCES = \
- mc-install-default-macros.c \
- mc-default-macros.h
-
-mc_install_default_macros_LDADD = \
- $(MATE_APPLETS_LIBS)
-
-builder_DATA = mini-commander.ui
-
-BITMAPS = \
- browser-mini.xpm \
- history-mini.xpm
-
-desktop_iconsdir = $(iconsdir)/hicolor/48x48/apps
-desktop_icons_DATA = mate-mini-commander.png
-
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(iconsdir)/hicolor
-install-data-hook: update-icon-cache
-uninstall-hook: update-icon-cache
-update-icon-cache:
- @-if test -z "$(DESTDIR)"; then \
- echo "Updating Gtk icon cache."; \
- $(gtk_update_icon_cache); \
- else \
- echo "*** Icon cache not updated. After (un)install, run this:"; \
- echo "*** $(gtk_update_icon_cache)"; \
- fi
-
-appletdir = $(datadir)/mate-panel/applets
-applet_in_files = org.mate.applets.MiniCommanderApplet.mate-panel-applet.in
-applet_DATA = $(applet_in_files:.mate-panel-applet.in=.mate-panel-applet)
-
-$(applet_in_files): $(applet_in_files).in Makefile
- $(AM_V_GEN)sed \
- -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
- -e "s|\@VERSION\@|$(PACKAGE_VERSION)|" \
- $< > $@
-
-%.mate-panel-applet: %.mate-panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
-
-servicedir = $(datadir)/dbus-1/services
-service_in_files = org.mate.panel.applet.MiniCommanderAppletFactory.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-org.mate.panel.applet.MiniCommanderAppletFactory.service: $(service_in_files)
- $(AM_V_GEN)sed \
- -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
- $< > $@
-
-CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA)
-
-schemasdir = @MATECONF_SCHEMA_FILE_DIR@
-schemas_in_files = mini-commander.schemas.in mini-commander-global.schemas.in
-schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
-
-@INTLTOOL_SCHEMAS_RULE@
-
-uidir = $(datadir)/mate-2.0/ui
-ui_DATA = mini-commander-applet-menu.xml
-
-if MATECONF_SCHEMAS_INSTALL
-install-data-local:
- MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(schemas_DATA) ;
- MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(top_builddir)/mini-commander/src/mc-install-default-macros
-endif
-
-EXTRA_DIST = \
- org.mate.applets.MiniCommanderApplet.mate-panel-applet.in.in \
- $(service_in_files) \
- $(desktop_icons_DATA) \
- $(BITMAPS) \
- $(ui_DATA) \
- $(builder_DATA) \
- $(schemas_in_files)
-
--include $(top_srcdir)/git.mk
diff --git a/mini-commander/src/about.c b/mini-commander/src/about.c
deleted file mode 100644
index 8cd224f0..00000000
--- a/mini-commander/src/about.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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 <glib.h>
-#include <gtk/gtk.h>
-
-#include "about.h"
-
-void about_box (GtkAction *action,
- MCData *mcdata)
-{
- static const gchar *authors[] = {
- "Oliver Maruhn <[email protected]>",
- "Mark McLoughlin <[email protected]>",
- NULL
- };
-
- const gchar *documenters[] = {
- "Dan Mueth <[email protected]>",
- "Oliver Maruhn <[email protected]>",
- "Sun MATE Documentation Team <[email protected]>",
- NULL
- };
-
- gtk_show_about_dialog (NULL,
- "version", VERSION,
- "copyright", "\xc2\xa9 1998-2005 Oliver Maruhn and others",
- "comments", _("This MATE applet adds a command line to "
- "the panel. It features command completion, "
- "command history, and changeable macros."),
- "authors", authors,
- "documenters", documenters,
- "translator-credits", _("translator-credits"),
- "logo-icon-name", "mate-mini-commander",
- NULL);
-}
diff --git a/mini-commander/src/about.h b/mini-commander/src/about.h
deleted file mode 100644
index 875ea62d..00000000
--- a/mini-commander/src/about.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "mini-commander_applet.h"
-
-void about_box (GtkAction *action,
- MCData *mcdata);
diff --git a/mini-commander/src/browser-mini.xpm b/mini-commander/src/browser-mini.xpm
deleted file mode 100644
index 6fb6b7fb..00000000
--- a/mini-commander/src/browser-mini.xpm
+++ /dev/null
@@ -1,11 +0,0 @@
-/* XPM */
-static const char * browser_mini_xpm[] = {
-"7 6 2 1",
-" c NONE",
-". c #000000000000",
-" ... ",
-" ..... ",
-" ..... ",
-" ..... ",
-" ... ",
-" "};
diff --git a/mini-commander/src/cmd_completion.c b/mini-commander/src/cmd_completion.c
deleted file mode 100644
index a59f6f2a..00000000
--- a/mini-commander/src/cmd_completion.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-
-/*
- If you expect tons of C code for command completion then you will
- probably be astonished...
-
- These routines have probably to be rewritten in future. But they
- should work on every system with a bash-alike shell.
-*/
-
-#include <config.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <mate-panel-applet.h>
-
-#include <sys/stat.h>
-#include <dirent.h>
-
-#include "cmd_completion.h"
-#include "preferences.h"
-#include "macro.h"
-
-
-static GList* cmdc( char* );
-static void process_dir( const gchar* );
-static void cleanup( void );
-static gint g_list_str_cmp( gconstpointer, gconstpointer );
-
-/* global declaration so g_atexit() can reference it to free it.
- * (not strictly necessary).
- */
-static GList *path_elements = NULL;
-
-void
-mc_cmd_completion (MCData *mc,
- char *cmd)
-{
- char buffer[MC_MAX_COMMAND_LENGTH] = "";
- char largest_possible_completion[MC_MAX_COMMAND_LENGTH] = "";
- int num_whitespaces, i, pos;
-
- GList *possible_completions_list = NULL;
- GList *completion_element;
-
-
- if(strlen(cmd) == 0)
- {
- return;
- }
-
- num_whitespaces = mc_macro_prefix_len_wspace (mc, cmd) - mc_macro_prefix_len (mc, cmd);
- possible_completions_list = cmdc(cmd + mc_macro_prefix_len_wspace (mc, cmd));
-
- /* get first possible completion */
- completion_element = g_list_first(possible_completions_list);
- if(completion_element)
- strcpy(largest_possible_completion, (char *) completion_element->data);
- else
- strcpy(largest_possible_completion, "");
-
- /* get the rest */
- while((completion_element = g_list_next(completion_element)))
- {
- strcpy(buffer, (char *) completion_element->data);
- pos = 0;
- while(largest_possible_completion[pos] != '\000'
- && buffer[pos] != '\000'
- && strncmp(largest_possible_completion, buffer, pos + 1) == 0)
- pos++;
- strncpy(largest_possible_completion, buffer, pos);
- /* strncpy does not add \000 to the end */
- largest_possible_completion[pos] = '\000';
- }
-
- if(strlen(largest_possible_completion) > 0)
- {
- if(mc_macro_get_prefix(mc, cmd) != NULL)
- strcpy(cmd, mc_macro_get_prefix(mc, cmd));
- else
- strcpy(cmd, "");
-
- /* fill up the whitespaces */
- for(i = 0; i < num_whitespaces; i++)
- strcat(cmd, " ");
-
- strcat(cmd, largest_possible_completion);
- }
-}
-
-/*
- * cmdc() -- command completion function.
- *
- * cmdc takes a char* and returns a GList* of possible completions.
- *
- * Initial version by Travis Hume <[email protected]>.
- *
- */
-static GList *
-cmdc( char *s )
-{
- GCompletion *completion = NULL;
- GList *ret_list = NULL;
- static GHashTable *path_hash = NULL;
- static char *path = NULL;
- gchar *path_elem;
- struct stat buf;
- static gboolean inited = FALSE;
- gpointer hash_key = NULL;
-
-
- /*
- * Only want to build the GCompletion once. At some point I'd like to add
- * code to refresh the GCompletion, either at a regular interval, or when
- * there is a completion failure, ...
- *
- */
- if(!inited)
- {
- /* Make a local copy of the path variable. Otherwise the path
- environment variable would be modified. */
- path = (char *) malloc(sizeof(char) * (strlen(getenv("PATH")) + 1));
- strcpy(path, getenv("PATH"));
-
- path_hash = g_hash_table_new( g_str_hash, g_str_equal );
-
- for( path_elem = strtok( path, ":" ); path_elem;
- path_elem = strtok( NULL, ":" ))
- {
- if( stat( path_elem, &buf ))
- continue;
-
- if( buf.st_mode & S_IFDIR )
- {
- /* keep a hash of processed paths, to avoid reprocessing
- * dupped path entries.
- */
- hash_key = g_hash_table_lookup( path_hash, path_elem );
- if( hash_key )
- continue; /* duplicate $PATH entry */
- else
- {
- g_hash_table_insert(
- path_hash, (gpointer)path_elem, (gpointer)path_elem );
-
- process_dir( path_elem );
- }
- }
- }
-
- /* atexit() we want to free the completion. */
- g_atexit( cleanup );
-
- inited = TRUE;
- }
-
- completion = g_completion_new( NULL );
- g_completion_add_items( completion, path_elements );
- ret_list = g_list_copy( g_completion_complete( completion, s, NULL ));
- g_completion_free( completion );
-
- return g_list_sort( ret_list, (GCompareFunc)g_list_str_cmp );
-}
-
-
-/*
- * Compare function to return a sorted completion.
- */
-static gint
-g_list_str_cmp( gconstpointer a, gconstpointer b )
-{
- return( strcmp( (char *)a, (char *)b ));
-}
-
-
-
-/*
- * Reads directory entries and adds non-dir, executable files
- * to the GCompletion.
- * Initial version by Travis Hume <[email protected]>.
- */
-static void
-process_dir( const char *d )
-{
- DIR *dir;
- struct dirent *de;
- struct stat buf;
- gpointer data;
- gchar *path_str;
-
-
- if( (dir = opendir( d )) == NULL )
- return;
-
- while( (de = readdir( dir )) != NULL )
- {
- if( strcmp( de->d_name, "." ) == 0 || strcmp( de->d_name, "..") == 0)
- continue;
-
- path_str = (gchar *)g_malloc( strlen( d ) + 1 + strlen( de->d_name ) + 1);
- strcpy( path_str, d );
- strcat( path_str, "/" );
- strcat( path_str, de->d_name );
- if( stat( path_str, &buf ) != 0)
- continue;
- g_free( (gpointer)path_str );
-
- if( S_ISDIR( buf.st_mode ) )
- continue;
-
- data = g_malloc( strlen( (gchar *)de->d_name ) + 1 );
- strcpy( (gchar *)data, (gchar *)(de->d_name) );
- if( buf.st_mode & S_IXUSR )
- path_elements = g_list_append( path_elements, data );
- }
- closedir( dir );
-}
-
-
-/*
- * cleanup() -- free the memory used by the GCompletion.
- */
-static void
-cleanup( void )
-{
- g_list_free( path_elements );
-}
diff --git a/mini-commander/src/cmd_completion.h b/mini-commander/src/cmd_completion.h
deleted file mode 100644
index e1bd925a..00000000
--- a/mini-commander/src/cmd_completion.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-#ifndef __CMD_COMPLETION_H__
-#define __CMD_COMPLETION_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#include "mini-commander_applet.h"
-
-void mc_cmd_completion (MCData *mc, char *cmd);
-
-G_END_DECLS
-
-#endif /* __CMD_COMPLETION_H__ */
diff --git a/mini-commander/src/command_line.c b/mini-commander/src/command_line.c
deleted file mode 100644
index 004a897d..00000000
--- a/mini-commander/src/command_line.c
+++ /dev/null
@@ -1,598 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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 "mini-commander_applet.h"
-#include "command_line.h"
-#include "preferences.h"
-#include "exec.h"
-#include "cmd_completion.h"
-#include "history.h"
-
-static gint file_browser_response_signal(GtkWidget *widget, gint response, gpointer mc_data);
-static gint history_popup_clicked_cb(GtkWidget *widget, gpointer data);
-static gint history_popup_clicked_inside_cb(GtkWidget *widget, gpointer data);
-static gchar* history_auto_complete(GtkWidget *widget, GdkEventKey *event);
-
-
-static int history_position = MC_HISTORY_LIST_LENGTH;
-static gchar *browsed_folder = NULL;
-
-static gboolean
-button_press_cb (GtkEntry *entry,
- GdkEventButton *event,
- MCData *mc)
-{
- const gchar *str;
-
- mate_panel_applet_request_focus (mc->applet, event->time);
-
- if (mc->error) {
- mc->error = FALSE;
- str = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
- gtk_entry_set_text (entry, (gchar *) str + 3);
- }
- return FALSE;
-}
-
-static gboolean
-command_key_event (GtkEntry *entry,
- GdkEventKey *event,
- MCData *mc)
-{
- guint key = event->keyval;
- char *command;
- static char current_command[MC_MAX_COMMAND_LENGTH];
- char buffer[MC_MAX_COMMAND_LENGTH];
- gboolean propagate_event = TRUE;
- const gchar *str;
-
- if (mc->error) {
- mc->error = FALSE;
- str = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
- gtk_entry_set_text (entry, (gchar *) str + 3);
- gtk_editable_set_position (GTK_EDITABLE (entry), strlen (str));
- }
- if(key == GDK_Tab
- || key == GDK_KP_Tab
- || key == GDK_ISO_Left_Tab)
- {
- if(event->state == GDK_CONTROL_MASK)
- {
- /*
- * Move focus to the next widget (browser) button.
- */
- gtk_widget_child_focus (GTK_WIDGET (mc->applet), GTK_DIR_TAB_FORWARD);
- propagate_event = FALSE;
- }
- else if(event->state != GDK_SHIFT_MASK)
- {
- /* tab key pressed */
- strcpy(buffer, (char *) gtk_entry_get_text(GTK_ENTRY(entry)));
- mc_cmd_completion (mc, buffer);
- gtk_entry_set_text(GTK_ENTRY(entry), (gchar *) buffer);
-
- propagate_event = FALSE;
- }
- }
- else if(key == GDK_Up
- || key == GDK_KP_Up
- || key == GDK_ISO_Move_Line_Up
- || key == GDK_Pointer_Up)
- {
- /* up key pressed */
- if(history_position == MC_HISTORY_LIST_LENGTH)
- {
- /* store current command line */
- strcpy(current_command, (char *) gtk_entry_get_text(entry));
- }
- if(history_position > 0 && exists_history_entry(history_position - 1))
- {
- gtk_entry_set_text(entry, (gchar *) get_history_entry(--history_position));
- }
-
- propagate_event = FALSE;
- }
- else if(key == GDK_Down
- || key == GDK_KP_Down
- || key == GDK_ISO_Move_Line_Down
- || key == GDK_Pointer_Down)
- {
- /* down key pressed */
- if(history_position < MC_HISTORY_LIST_LENGTH - 1)
- {
- gtk_entry_set_text(entry, (gchar *) get_history_entry(++history_position));
- }
- else if(history_position == MC_HISTORY_LIST_LENGTH - 1)
- {
- gtk_entry_set_text(entry, (gchar *) current_command);
- ++history_position;
- }
-
- propagate_event = FALSE;
- }
- else if(key == GDK_Return
- || key == GDK_KP_Enter
- || key == GDK_ISO_Enter
- || key == GDK_3270_Enter)
- {
- /* enter pressed -> exec command */
- command = (char *) malloc(sizeof(char) * MC_MAX_COMMAND_LENGTH);
- strcpy(command, (char *) gtk_entry_get_text(entry));
- mc_exec_command(mc, command);
-
- history_position = MC_HISTORY_LIST_LENGTH;
- free(command);
-
- strcpy(current_command, "");
- propagate_event = FALSE;
- }
- else if (mc->preferences.auto_complete_history && key >= GDK_space && key <= GDK_asciitilde )
- {
- char *completed_command;
- gint current_position = gtk_editable_get_position(GTK_EDITABLE(entry));
-
- if(current_position != 0)
- {
- gtk_editable_delete_text( GTK_EDITABLE(entry), current_position, -1 );
- completed_command = history_auto_complete(GTK_WIDGET (entry), event);
-
- if(completed_command != NULL)
- {
- gtk_entry_set_text(entry, completed_command);
- gtk_editable_set_position(GTK_EDITABLE(entry), current_position + 1);
- propagate_event = FALSE;
- }
- }
- }
-
- return !propagate_event;
-}
-
-static gint
-history_popup_clicked_cb(GtkWidget *widget, gpointer data)
-{
- gdk_pointer_ungrab(GDK_CURRENT_TIME);
- gdk_keyboard_ungrab(GDK_CURRENT_TIME);
- gtk_grab_remove(GTK_WIDGET(widget));
- gtk_widget_destroy(GTK_WIDGET(widget));
- widget = NULL;
-
- /* go on */
- return (FALSE);
-}
-
-static gint
-history_popup_clicked_inside_cb(GtkWidget *widget, gpointer data)
-{
- /* eat signal (prevent that popup will be destroyed) */
- return(TRUE);
-}
-
-static gboolean
-history_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data)
-{
- if (event->keyval == GDK_Escape) {
- gdk_pointer_ungrab(GDK_CURRENT_TIME);
- gdk_keyboard_ungrab(GDK_CURRENT_TIME);
- gtk_grab_remove(GTK_WIDGET(widget));
- gtk_widget_destroy(GTK_WIDGET(widget));
- widget = NULL;
- }
-
- return FALSE;
-
-}
-
-static gboolean
-history_list_key_press_cb (GtkWidget *widget,
- GdkEventKey *event,
- MCData *mc)
-{
- GtkTreeView *tree = g_object_get_data (G_OBJECT (mc->applet), "tree");
- GtkTreeIter iter;
- GtkTreeModel *model;
- gchar *command;
-
- switch (event->keyval) {
- case GDK_KP_Enter:
- case GDK_ISO_Enter:
- case GDK_3270_Enter:
- case GDK_Return:
- case GDK_space:
- case GDK_KP_Space:
- if ((event->state & GDK_CONTROL_MASK) &&
- (event->keyval == GDK_space || event->keyval == GDK_KP_Space))
- break;
-
- if (!gtk_tree_selection_get_selected (gtk_tree_view_get_selection (tree),
- &model,
- &iter))
- return FALSE;
- gtk_tree_model_get (GTK_TREE_MODEL (model), &iter,
- 0, &command, -1);
- mc_exec_command (mc, command);
- g_free (command);
- gtk_widget_destroy(GTK_WIDGET(widget->parent->parent->parent));
-
- return TRUE;
-
- default:
- break;
- }
-
- return FALSE;
-}
-
-static gboolean
-history_list_button_press_cb (GtkWidget *widget,
- GdkEventButton *event,
- MCData *mc)
-{
- GtkTreeView *tree = g_object_get_data (G_OBJECT (mc->applet), "tree");
- GtkTreeIter iter;
- GtkTreeModel *model;
- gchar *command;
-
- if (event->type == GDK_2BUTTON_PRESS) {
- if (!gtk_tree_selection_get_selected (gtk_tree_view_get_selection (tree),
- &model,
- &iter))
- return FALSE;
- gtk_tree_model_get (GTK_TREE_MODEL (model), &iter,
- 0, &command, -1);
- mc_exec_command(mc, command);
- g_free (command);
- gtk_widget_destroy(GTK_WIDGET(widget->parent->parent->parent));
-
- return TRUE;
- }
-
- return FALSE;
-}
-
-int
-mc_show_history (GtkWidget *widget,
- MCData *mc)
-{
- GtkWidget *window;
- GtkWidget *frame;
- GtkWidget *scrolled_window;
- GtkListStore *store;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkWidget *treeview;
- GtkCellRenderer *cell_renderer;
- GtkTreeViewColumn *column;
- GtkRequisition req;
- gchar *command_list[1];
- int i, j;
- gint x, y, width, height, screen_width, screen_height;
-
- /* count commands stored in history list */
- for(i = 0, j = 0; i < MC_HISTORY_LIST_LENGTH; i++)
- if(exists_history_entry(i))
- j++;
-
- window = gtk_window_new(GTK_WINDOW_POPUP);
- gtk_window_set_screen (GTK_WINDOW (window),
- gtk_widget_get_screen (GTK_WIDGET (mc->applet)));
- gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
- gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_COMBO);
- /* cb */
- g_signal_connect_after(GTK_OBJECT(window),
- "button_press_event",
- G_CALLBACK(history_popup_clicked_cb),
- NULL);
- g_signal_connect_after (G_OBJECT (window), "key_press_event",
- G_CALLBACK (history_key_press_cb), NULL);
-
- /* size */
- gtk_widget_set_size_request(GTK_WIDGET(window), 200, 350);
-
-
- /* frame */
- frame = gtk_frame_new(NULL);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT);
- gtk_widget_show(frame);
- gtk_container_add(GTK_CONTAINER(window), frame);
-
- /* scrollbars */
- /* create scrolled window to put the Gtk_list widget inside */
- scrolled_window=gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- g_signal_connect(GTK_OBJECT(scrolled_window),
- "button_press_event",
- G_CALLBACK(history_popup_clicked_inside_cb),
- NULL);
- gtk_container_add(GTK_CONTAINER(frame), scrolled_window);
- gtk_container_set_border_width (GTK_CONTAINER(scrolled_window), 2);
- gtk_widget_show(scrolled_window);
-
- store = gtk_list_store_new (1, G_TYPE_STRING);
-
- /* add history entries to list */
- if (j == 0) {
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,0, _("No items in history"), -1);
- }
- else {
- for(i = 0; i < MC_HISTORY_LIST_LENGTH; i++)
- {
- if(exists_history_entry(i))
- {
- command_list[0] = get_history_entry(i);
- gtk_list_store_prepend (store, &iter);
- gtk_list_store_set (store, &iter,0,command_list[0],-1);
- }
- }
- }
- model = GTK_TREE_MODEL(store);
- treeview = gtk_tree_view_new_with_model (model);
- g_object_set_data (G_OBJECT (mc->applet), "tree", treeview);
- cell_renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (NULL, cell_renderer,
- "text", 0, NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
- if (j == 0) {
- gtk_tree_selection_set_mode( (GtkTreeSelection *)gtk_tree_view_get_selection
- (GTK_TREE_VIEW (treeview)),
- GTK_SELECTION_NONE);
- }
- else {
- gtk_tree_selection_set_mode( (GtkTreeSelection *)gtk_tree_view_get_selection
- (GTK_TREE_VIEW (treeview)),
- GTK_SELECTION_SINGLE);
- g_signal_connect (G_OBJECT (treeview), "button_press_event",
- G_CALLBACK (history_list_button_press_cb), mc);
- g_signal_connect (G_OBJECT (treeview), "key_press_event",
- G_CALLBACK (history_list_key_press_cb), mc);
- }
-
- g_object_unref (G_OBJECT (model));
- gtk_container_add(GTK_CONTAINER(scrolled_window),treeview);
- gtk_widget_show (treeview);
-
- gtk_widget_size_request (window, &req);
- gdk_window_get_origin (GTK_WIDGET (mc->applet)->window, &x, &y);
- gdk_window_get_geometry (GTK_WIDGET (mc->applet)->window, NULL, NULL,
- &width, &height, NULL);
-
- switch (mate_panel_applet_get_orient (mc->applet)) {
- case MATE_PANEL_APPLET_ORIENT_DOWN:
- y += height;
- break;
- case MATE_PANEL_APPLET_ORIENT_UP:
- y -= req.height;
- break;
- case MATE_PANEL_APPLET_ORIENT_LEFT:
- x -= req.width;
- break;
- case MATE_PANEL_APPLET_ORIENT_RIGHT:
- x += width;
- break;
- }
-
- screen_width = gdk_screen_width ();
- screen_height = gdk_screen_height ();
- x = CLAMP (x - 2, 0, MAX (0, screen_width - req.width));
- y = CLAMP (y - 2, 0, MAX (0, screen_height - req.height));
- gtk_window_move (GTK_WINDOW (window), x, y);
- gtk_widget_show(window);
-
- /* grab focus */
- gdk_pointer_grab (window->window,
- TRUE,
- GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_ENTER_NOTIFY_MASK
- | GDK_LEAVE_NOTIFY_MASK
- | GDK_POINTER_MOTION_MASK,
- NULL,
- NULL,
- GDK_CURRENT_TIME);
- gdk_keyboard_grab (window->window, TRUE, GDK_CURRENT_TIME);
- gtk_grab_add(window);
- gtk_widget_grab_focus (treeview);
-
- return FALSE;
-}
-
-static gint
-file_browser_response_signal(GtkWidget *widget, gint response, gpointer mc_data)
-{
- MCData *mc = mc_data;
- gchar *filename;
-
- if (response == GTK_RESPONSE_OK) {
-
- filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(mc->file_select));
-
- if (filename != NULL) {
- if (browsed_folder)
- g_free (browsed_folder);
-
- browsed_folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(mc->file_select));
-
- mc_exec_command(mc, filename);
- g_free(filename);
- }
- }
-
- /* destroy file select dialog */
- gtk_widget_destroy (mc->file_select);
- mc->file_select = NULL;
-
- /* go on */
- return FALSE;
-}
-
-int
-mc_show_file_browser (GtkWidget *widget,
- MCData *mc)
-{
- if(mc->file_select && GTK_WIDGET_VISIBLE(mc->file_select)) {
- gtk_window_present (GTK_WINDOW (mc->file_select));
- return TRUE;
- }
-
- /* build file select dialog */
- mc->file_select = gtk_file_chooser_dialog_new((gchar *) _("Start program"),
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_EXECUTE, GTK_RESPONSE_OK,
- NULL);
-
- g_signal_connect(G_OBJECT(mc->file_select),
- "response",
- G_CALLBACK(file_browser_response_signal),
- mc);
-
- /* set path to last selected path */
- if (browsed_folder)
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(mc->file_select),
- (gchar *) browsed_folder);
-
- /* Set as modal */
- gtk_window_set_modal(GTK_WINDOW(mc->file_select),TRUE);
-
- gtk_window_set_screen (GTK_WINDOW (mc->file_select),
- gtk_widget_get_screen (GTK_WIDGET (mc->applet)));
- gtk_window_set_position (GTK_WINDOW (mc->file_select), GTK_WIN_POS_CENTER);
-
- gtk_widget_show(mc->file_select);
-
- return FALSE;
-}
-
-void
-mc_create_command_entry (MCData *mc)
-{
- mc->entry = gtk_entry_new ();
- gtk_entry_set_max_length (GTK_ENTRY (mc->entry), MC_MAX_COMMAND_LENGTH);
-
- g_signal_connect (mc->entry, "key_press_event",
- G_CALLBACK (command_key_event), mc);
-
- g_signal_connect (mc->entry, "button_press_event",
- G_CALLBACK (button_press_cb), mc);
-
- if (!mc->preferences.show_default_theme)
- {
- gtk_widget_set_name (mc->entry, "minicommander-applet-entry");
- mc_command_update_entry_color (mc);
- }
- else
- gtk_widget_set_name (mc->entry,
- "minicommander-applet-entry-default");
-
- mc_command_update_entry_size (mc);
-
- set_atk_name_description (mc->entry,
- _("Command line"),
- _("Type a command here and Mate will execute it for you"));
-}
-
-void
-mc_command_update_entry_color (MCData *mc)
-{
- GdkColor fg;
- GdkColor bg;
- char *rc_string;
-
- fg.red = mc->preferences.cmd_line_color_fg_r;
- fg.green = mc->preferences.cmd_line_color_fg_g;
- fg.blue = mc->preferences.cmd_line_color_fg_b;
-
- /* FIXME: wish we had an API for this, see bug #79585 */
- rc_string = g_strdup_printf (
- "\n"
- " style \"minicommander-applet-entry-style\"\n"
- " {\n"
- " GtkWidget::cursor-color=\"#%04x%04x%04x\"\n"
- " }\n"
- " widget \"*.minicommander-applet-entry\" "
- "style \"minicommander-applet-entry-style\"\n"
- "\n",
- fg.red, fg.green, fg.blue);
- gtk_rc_parse_string (rc_string);
- g_free (rc_string);
-
- gtk_widget_modify_text (mc->entry, GTK_STATE_NORMAL, &fg);
- gtk_widget_modify_text (mc->entry, GTK_STATE_PRELIGHT, &fg);
-
- bg.red = mc->preferences.cmd_line_color_bg_r;
- bg.green = mc->preferences.cmd_line_color_bg_g;
- bg.blue = mc->preferences.cmd_line_color_bg_b;
-
- gtk_widget_modify_base (mc->entry, GTK_STATE_NORMAL, &bg);
- gtk_widget_modify_base (mc->entry, GTK_STATE_PRELIGHT, &bg);
-}
-
-void
-mc_command_update_entry_size (MCData *mc)
-{
- int size_x = -1;
-
- size_x = mc->preferences.normal_size_x - 17;
- if ((mc->orient == MATE_PANEL_APPLET_ORIENT_LEFT) || (mc->orient == MATE_PANEL_APPLET_ORIENT_RIGHT)) {
- size_x = MIN(size_x, mc->preferences.panel_size_x - 17);
- gtk_widget_set_size_request (GTK_WIDGET (mc->entry), size_x, -1);
- } else {
- gtk_widget_set_size_request (GTK_WIDGET (mc->entry), size_x, mc->preferences.normal_size_y+2);
- }
-}
-
-
-/* Thanks to Halfline <[email protected]> for his initial version
- of history_auto_complete */
-gchar *
-history_auto_complete(GtkWidget *widget, GdkEventKey *event)
-{
- gchar current_command[MC_MAX_COMMAND_LENGTH];
- gchar* completed_command;
- int i;
-
- g_snprintf(current_command, sizeof(current_command), "%s%s",
- gtk_entry_get_text(GTK_ENTRY(widget)), event->string);
- for(i = MC_HISTORY_LIST_LENGTH - 1; i >= 0; i--)
- {
- if(!exists_history_entry(i))
- break;
- completed_command = get_history_entry(i);
- if(!strncmp(completed_command, current_command, strlen(current_command)))
- return completed_command;
- }
-
- return NULL;
-}
diff --git a/mini-commander/src/command_line.h b/mini-commander/src/command_line.h
deleted file mode 100644
index de2483f7..00000000
--- a/mini-commander/src/command_line.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-
-#ifndef __COMMAND_LINE_H__
-#define __COMMAND_LINE_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#include "mini-commander_applet.h"
-
-void mc_create_command_entry (MCData *mc);
-int mc_show_history (GtkWidget *widget,
- MCData *mc);
-int mc_show_file_browser (GtkWidget *widget,
- MCData *mc);
-void mc_command_update_entry_color (MCData *mc);
-void mc_command_update_entry_size (MCData *mc);
-
-G_END_DECLS
-
-#endif /* __COMMAND_LINE_H__ */
diff --git a/mini-commander/src/exec.c b/mini-commander/src/exec.c
deleted file mode 100644
index fef9a5d3..00000000
--- a/mini-commander/src/exec.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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 <glib.h>
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-#include <mateconf/mateconf-client.h>
-
-#include "exec.h"
-#include "macro.h"
-#include "preferences.h"
-#include "history.h"
-
-#define KEY_AUDIBLE_BELL "/apps/marco/general/audible_bell"
-
-static void beep (void);
-
-void
-mc_exec_command (MCData *mc,
- const char *cmd)
-{
- GError *error = NULL;
- char command [1000];
- char **argv = NULL;
- gchar *str;
-
- strncpy (command, cmd, sizeof (command));
- command [sizeof (command) - 1] = '\0';
-
- mc_macro_expand_command (mc, command);
-
- if (!g_shell_parse_argv (command, NULL, &argv, &error)) {
- if (error != NULL) {
- g_error_free (error);
- error = NULL;
- }
-
- return;
- }
-
- if(!gdk_spawn_on_screen (gtk_widget_get_screen (GTK_WIDGET (mc->applet)),
- g_get_home_dir (), argv, NULL,
- G_SPAWN_SEARCH_PATH,
- NULL, NULL, NULL,
- &error)) {
- str = g_strconcat ("(?)", command, NULL);
- gtk_entry_set_text (GTK_ENTRY (mc->entry), str);
- //gtk_editable_set_position (GTK_EDITABLE (mc->entry), 0);
- mc->error = TRUE;
- beep ();
- g_free (str);
- } else {
- gtk_entry_set_text (GTK_ENTRY (mc->entry), (gchar *) "");
- append_history_entry (mc, cmd, FALSE);
- }
- g_strfreev (argv);
-
- if (error != NULL)
- g_error_free (error);
-}
-
-static void beep (void)
-{
- MateConfClient *default_client;
- gboolean audible_bell_set;
-
- default_client = mateconf_client_get_default ();
- audible_bell_set = mateconf_client_get_bool (default_client, KEY_AUDIBLE_BELL, NULL);
- if (audible_bell_set) {
- gdk_beep ();
- }
-}
diff --git a/mini-commander/src/exec.h b/mini-commander/src/exec.h
deleted file mode 100644
index 537e159f..00000000
--- a/mini-commander/src/exec.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-#ifndef __EXEC_H__
-#define __EXEC_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#include "mini-commander_applet.h"
-
-void mc_exec_command (MCData *mc,
- const char *cmd);
-
-G_END_DECLS
-
-#endif /* __EXEC_H__ */
diff --git a/mini-commander/src/help.c b/mini-commander/src/help.c
deleted file mode 100644
index c187d1e2..00000000
--- a/mini-commander/src/help.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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 "help.h"
-
-void
-show_help (GtkAction *action,
- MCData *mcdata)
-{
- GError *error = NULL;
-
- gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (mcdata->applet)),
- "command-line",
- gtk_get_current_event_time (),
- &error);
-
- if (error) { /* FIXME: this error needs to be seen by the user */
- g_warning ("help error: %s\n", error->message);
- g_error_free (error);
- error = NULL;
- }
-}
diff --git a/mini-commander/src/help.h b/mini-commander/src/help.h
deleted file mode 100644
index 495984ab..00000000
--- a/mini-commander/src/help.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "mini-commander_applet.h"
-
-void show_help (GtkAction *action,
- MCData *mcdata);
diff --git a/mini-commander/src/history-mini.xpm b/mini-commander/src/history-mini.xpm
deleted file mode 100644
index b7ad65eb..00000000
--- a/mini-commander/src/history-mini.xpm
+++ /dev/null
@@ -1,11 +0,0 @@
-/* XPM */
-static const char * history_mini_xpm[] = {
-"7 6 2 1",
-" c NONE",
-". c #000000000000",
-" ",
-".......",
-" ..... ",
-" ... ",
-" . ",
-" "};
diff --git a/mini-commander/src/history.c b/mini-commander/src/history.c
deleted file mode 100644
index ba24a609..00000000
--- a/mini-commander/src/history.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-
-/* Actually the command history is a simple list. So, I guess this
- here could also be done with the list routines of glib. */
-
-#include <config.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <mateconf/mateconf.h>
-#include <mate-panel-applet.h>
-#include <mate-panel-applet-mateconf.h>
-
-#include "history.h"
-#include "preferences.h"
-
-static char *history_command[MC_HISTORY_LIST_LENGTH];
-static void delete_history_entry(int element_number);
-
-
-int
-exists_history_entry(int pos)
-{
- return(history_command[pos] != NULL);
-}
-
-char *
-get_history_entry(int pos)
-{
- return(history_command[pos]);
-}
-
-void
-set_history_entry(int pos, char * entry)
-{
- if(history_command[pos] != NULL)
- free(history_command[pos]);
- history_command[pos] = (char *)malloc(sizeof(char) * (strlen(entry) + 1));
- strcpy(history_command[pos], entry);
-}
-
-/* load_history indicates whether the history list is being loaded at startup.
-** If true then don't save the new entries with mateconf (since they are being read
-** using mateconf
-*/
-void
-append_history_entry(MCData *mcdata, const char * entry, gboolean load_history)
-{
- MatePanelApplet *applet = mcdata->applet;
- MateConfValue *history;
- GSList *list = NULL;
- int pos, i;
-
- /* remove older dupes */
- for(pos = 0; pos <= MC_HISTORY_LIST_LENGTH - 1; pos++)
- {
- if(exists_history_entry(pos) && strcmp(entry, history_command[pos]) == 0)
- /* dupe found */
- delete_history_entry(pos);
- }
-
- /* delete oldest entry */
- if(history_command[0] != NULL)
- free(history_command[0]);
-
- /* move entries */
- for(pos = 0; pos < MC_HISTORY_LIST_LENGTH - 1; pos++)
- {
- history_command[pos] = history_command[pos+1];
- /* printf("%s\n", history_command[pos]); */
- }
-
- /* append entry */
- history_command[MC_HISTORY_LIST_LENGTH - 1] = (char *)malloc(sizeof(char) * (strlen(entry) + 1));
- strcpy(history_command[MC_HISTORY_LIST_LENGTH - 1], entry);
-
- if (load_history)
- return;
-
- /* If not writable, just keeps the history around for this session */
- if ( ! mc_key_writable (mcdata, "history"))
- return;
-
- /* Save history - this seems like a waste to do it every time it's updated
- ** but it doesn't seem to work when called on the destroy signal of the applet
- */
- for(i = 0; i < MC_HISTORY_LIST_LENGTH; i++)
- {
- MateConfValue *value_entry;
-
- value_entry = mateconf_value_new (MATECONF_VALUE_STRING);
- if(exists_history_entry(i)) {
- mateconf_value_set_string (value_entry, (gchar *) get_history_entry(i));
- list = g_slist_append (list, value_entry);
- }
-
- }
-
- history = mateconf_value_new (MATECONF_VALUE_LIST);
- if (list) {
- mateconf_value_set_list_type (history, MATECONF_VALUE_STRING);
- mateconf_value_set_list (history, list);
- mate_panel_applet_mateconf_set_value (applet, "history", history, NULL);
- }
-
- while (list) {
- MateConfValue *value = list->data;
- mateconf_value_free (value);
- list = g_slist_next (list);
- }
-
- mateconf_value_free (history);
-
-}
-
-void
-delete_history_entry(int element_number)
-{
- int pos;
-
- for(pos = element_number; pos > 0; --pos)
- history_command[pos] = history_command[pos - 1];
-
- history_command[0] = NULL;
-}
diff --git a/mini-commander/src/history.h b/mini-commander/src/history.h
deleted file mode 100644
index 1dd5dea2..00000000
--- a/mini-commander/src/history.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "mini-commander_applet.h"
-
-int exists_history_entry(int pos);
-extern char *get_history_entry(int pos);
-extern void set_history_entry(int pos, char * entry);
-extern void append_history_entry(MCData *mcdata, const char * entry, gboolean load_history);
diff --git a/mini-commander/src/macro.c b/mini-commander/src/macro.c
deleted file mode 100644
index e6108d02..00000000
--- a/mini-commander/src/macro.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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 <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <regex.h>
-
-#include "macro.h"
-#include "preferences.h"
-
-/* search for the longest matching prefix */
-static MCMacro *
-mc_macro_with_prefix (MCData *mc,
- char *command)
-{
- MCMacro *retval = NULL;
- GSList *l;
- int prefix_len_found = 0;
-
- for (l = mc->preferences.macros; l; l = l->next) {
- MCMacro *macro = l->data;
- int pattern_len;
-
- pattern_len = strlen (macro->pattern);
-
- if (pattern_len > prefix_len_found &&
- !strncmp (command, macro->pattern, pattern_len) &&
- (strstr (macro->command, "$1") || pattern_len == strlen (command))) {
- /* found a matching prefix;
- * if macro does not contain "$1" then the prefix has
- * to to have the same length as the command
- */
- prefix_len_found = pattern_len;
- retval = macro;
- }
- }
-
- return retval;
-}
-
-int
-mc_macro_prefix_len (MCData *mc,
- char *command)
-{
- MCMacro *macro;
-
- macro = mc_macro_with_prefix (mc, command);
- if (!macro)
- return 0;
-
- return strlen (macro->pattern);
-}
-
-int
-mc_macro_prefix_len_wspace (MCData *mc,
- char *command)
-{
- char *c_ptr;
-
- c_ptr = command + mc_macro_prefix_len (mc, command);
-
- while (*c_ptr != '\0' && *c_ptr == ' ')
- c_ptr++;
-
- return c_ptr - command;
-}
-
-char *
-mc_macro_get_prefix (MCData *mc,
- char *command)
-{
- MCMacro *macro;
-
- macro = mc_macro_with_prefix (mc, command);
- if (!macro)
- return NULL;
-
- return macro->pattern;
-}
-
-void
-mc_macro_expand_command (MCData *mc,
- char *command)
-{
- GSList *l;
- char command_exec [1000];
-
- command_exec [0] = '\0';
-
- for (l = mc->preferences.macros; l; l = l->next) {
- regmatch_t regex_matches [MC_MAX_NUM_MACRO_PARAMETERS];
- MCMacro *macro = l->data;
-
- if (regexec (&macro->regex, command, MC_MAX_NUM_MACRO_PARAMETERS, regex_matches, 0) != REG_NOMATCH) {
- char placeholder [100];
- char *char_p;
- int inside_placeholder;
- int parameter_number;
-
- inside_placeholder = 0;
-
- for (char_p = macro->command; *char_p != '\0'; ++char_p) {
- if (inside_placeholder == 0 &&
- *char_p == '\\' &&
- *(char_p + 1) >= '0' &&
- *(char_p + 1) <= '9') {
- strcpy (placeholder, "");
- inside_placeholder = 1;
- } else if (inside_placeholder &&
- (*(char_p + 1) < '0' || *(char_p + 1) > '9'))
- inside_placeholder = 2;
-
- if (inside_placeholder == 0)
- strncat (command_exec, char_p, 1);
- else
- strncat (placeholder, char_p, 1);
-
- if (inside_placeholder == 2) {
- parameter_number = atoi (placeholder + 1);
-
- if (parameter_number <= MC_MAX_NUM_MACRO_PARAMETERS &&
- regex_matches [parameter_number].rm_eo > 0)
- strncat (command_exec,
- command + regex_matches [parameter_number].rm_so,
- regex_matches [parameter_number].rm_eo - regex_matches [parameter_number].rm_so);
-
- inside_placeholder = 0;
- }
- }
- }
- }
-
- if (command_exec [0] != '\0')
- strcpy (command, command_exec);
-}
diff --git a/mini-commander/src/macro.h b/mini-commander/src/macro.h
deleted file mode 100644
index abfa0d80..00000000
--- a/mini-commander/src/macro.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998 Oliver Maruhn <[email protected]>
- *
- * Author: Oliver Maruhn <[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
- */
-
-#ifndef __MACRO_H__
-#define __MACRO_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#include "mini-commander_applet.h"
-
-void mc_macro_expand_command (MCData *mc,
- char *command);
-int mc_macro_prefix_len (MCData *mc,
- char *command);
-int mc_macro_prefix_len_wspace (MCData *mc,
- char *command);
-char *mc_macro_get_prefix (MCData *mc,
- char *command);
-
-G_END_DECLS
-
-#endif /* __MACRO_H__ */
diff --git a/mini-commander/src/mate-mini-commander.png b/mini-commander/src/mate-mini-commander.png
deleted file mode 100644
index b2152e3c..00000000
--- a/mini-commander/src/mate-mini-commander.png
+++ /dev/null
Binary files differ
diff --git a/mini-commander/src/mc-default-macros.h b/mini-commander/src/mc-default-macros.h
deleted file mode 100644
index 7c2cbf5e..00000000
--- a/mini-commander/src/mc-default-macros.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 2002 Sun Microsystems Inc.
- *
- * Authors: 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
- */
-
-#ifndef __MC_DEFAULT_MACROS_H__
-#define __MC_DEFAULT_MACROS_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct {
- char *pattern;
- char *command;
-} MCDefaultMacro;
-
-/* These are both the defaults stored in the MateConfSchema
- * and the fallback defaults that are used if we are
- * having MateConf problems.
- *
- * See mc-install-default-macros.c for how they get
- * installed into the schemas.
- */
-static const MCDefaultMacro mc_default_macros [] = {
- { "^(https?://.*)$", "mate-open \\1" },
- { "^(ftp://.*)", "mate-open \\1" },
- { "^(www\\..*)$", "mate-open http://\\1" },
- { "^(ftp\\..*)$", "mate-open ftp://\\1" },
-
- /* altavista search */
- { "^av: *(.*)$", "mate-open http://www.altavista.net/cgi-bin/query?pg=q\\&kl=XX\\&q=$(echo '\\1'|sed -e ': p;s/+/%2B/;t p;: s;s/\\ /+/;t s;: q;s/\\\"/%22/;t q')" },
-
- /* yahoo search */
- { "^yahoo: *(.*)$", "mate-open http://ink.yahoo.com/bin/query?p=$(echo '\\1'|sed -e ': p;s/+/%2B/;t p;: s;s/\\ /+/;t s;: q;s/\\\"/%22/;t q')" },
-
- /* freshmeat search */
- { "^fm: *(.*)$", "mate-open http://core.freshmeat.net/search.php3?query=$(echo '\\1'|tr \" \" +)" },
-
- /* dictionary search */
- { "^dictionary: *(.*)$", "mate-dictionary \"\\1\"" },
-
- /* google search */
- { "^google: *(.*)$", "mate-open http://www.google.com/search?q=\\1" },
-};
-
-G_END_DECLS
-
-#endif /* __MC_DEFAULT_MACROS_H__ */
diff --git a/mini-commander/src/mc-install-default-macros.c b/mini-commander/src/mc-install-default-macros.c
deleted file mode 100644
index 384007a9..00000000
--- a/mini-commander/src/mc-install-default-macros.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * mc-install-default-macros.c:
- * Copyright (C) 2002 Sun Microsystems Inc.
- *
- * Authors: 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
- */
-
-/* This reads the macro patterns and commands lists
- * schemas and sets the default values to be our
- * default list of macros.
- *
- * This is easier than trying to have this stuff
- * in the .schemas file - you would believe the
- * kind of escaping and hackery needed to get
- * it into the .schemas, and even then its impossible
- * to tell which pattern is for which macro ...
- */
-
-/* This is to have access to mateconf_engine_get_local() */
-#define MATECONF_ENABLE_INTERNALS 1
-
-#include <config.h>
-#include <stdio.h>
-
-#include <glib/gi18n.h>
-#include <mateconf/mateconf.h>
-#include <mateconf/mateconf-client.h>
-#include <mateconf/mateconf-engine.h>
-
-/* Okay, I'm VERY bold. I deserve to be spanked.
- *
- * But this isn't installed, its only used at build time,
- * so I don't feel too bad. If these disappear from the
- * ABI or their signature changes, the build will break
- * and someone will have to figure out how to fix it.
- * Too bad, whoever you are :/
- */
-void mateconf_shutdown_daemon (GError **err);
-
-#include "mc-default-macros.h"
-
-#define MC_PATTERNS_SHEMA_KEY "/schemas/apps/mini-commander-global/macro_patterns"
-#define MC_COMMANDS_SHEMA_KEY "/schemas/apps/mini-commander-global/macro_commands"
-
-/*
- * Keep these old schemas around in order to keep
- * old configurations from breaking. See bug #91194
- */
-#define MC_DEPRECATED_PATTERNS_SHEMA_KEY "/schemas/apps/mini-commander/prefs/macro_patterns"
-#define MC_DEPRECATED_COMMANDS_SHEMA_KEY "/schemas/apps/mini-commander/prefs/macro_commands"
-
-static void
-install_default_macros_list (MateConfClient *client,
- const char *key,
- int offset)
-{
- MateConfSchema *schema;
- MateConfValue *value;
- GSList *list = NULL;
- GError *error;
- int i;
-
- error = NULL;
- schema = mateconf_client_get_schema (client, key, &error);
- if (error) {
- g_warning (_("Cannot get schema for %s: %s"), key, error->message);
- g_error_free (error);
- return;
- }
-
- /* mateconf has started to return NULL with no error set. */
- g_return_if_fail (schema != NULL);
-
- /* Some sanity checks */
- g_assert (mateconf_schema_get_type (schema) == MATECONF_VALUE_LIST);
- g_assert (mateconf_schema_get_list_type (schema) == MATECONF_VALUE_STRING);
-
- value = mateconf_value_new (MATECONF_VALUE_LIST);
- mateconf_value_set_list_type (value, MATECONF_VALUE_STRING);
-
- for (i = 0; i < G_N_ELEMENTS (mc_default_macros); i++)
- list = g_slist_prepend (list,
- mateconf_value_new_from_string (MATECONF_VALUE_STRING,
- G_STRUCT_MEMBER (char *, &mc_default_macros [i], offset),
- NULL));
- list = g_slist_reverse (list);
-
- mateconf_value_set_list_nocopy (value, list);
- list = NULL;
-
- mateconf_schema_set_default_value_nocopy (schema, value);
- value = NULL;
-
- error = NULL;
- mateconf_client_set_schema (client, key, schema, &error);
- if (error) {
- g_warning (_("Cannot set schema for %s: %s"), key, error->message);
- g_error_free (error);
- }
-
- mateconf_schema_free (schema);
-
- printf (_("Set default list value for %s\n"), key);
-}
-
-int
-main (int argc, char **argv)
-{
- MateConfClient *client;
- MateConfEngine *conf;
- GError *error = NULL;
- const char *config_source;
-
- if (g_getenv ("MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL")) {
- fprintf (stderr, _("MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, not installing schemas\n"));
- return 0;
- }
-
- g_type_init ();
-
- config_source = g_getenv ("MATECONF_CONFIG_SOURCE");
- if (!config_source) {
- fprintf (stderr, _("Must set the MATECONF_CONFIG_SOURCE environment variable\n"));
- return -1;
- }
-
- if (*config_source == '\0')
- config_source = NULL;
-
- /* shut down daemon, this is a race condition, but will usually work. */
- mateconf_shutdown_daemon (NULL);
-
- if (!config_source)
- conf = mateconf_engine_get_default ();
- else
- conf = mateconf_engine_get_local (config_source, &error);
-
- if (!conf) {
- g_assert (error != NULL);
- fprintf (stderr, _("Failed to access configuration source(s): %s\n"), error->message);
- g_error_free (error);
- return -1;
- }
-
- client = mateconf_client_get_for_engine (conf);
-
- install_default_macros_list (client, MC_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern));
- install_default_macros_list (client, MC_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command));
-
- install_default_macros_list (client, MC_DEPRECATED_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern));
- install_default_macros_list (client, MC_DEPRECATED_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command));
-
- mateconf_client_suggest_sync (client, &error);
- if (error) {
- fprintf (stderr, _("Error syncing config data: %s"),
- error->message);
- g_error_free (error);
- return 1;
- }
-
- mateconf_engine_unref (conf);
- g_object_unref (client);
-
- return 0;
-}
diff --git a/mini-commander/src/mini-commander-applet-menu.xml b/mini-commander/src/mini-commander-applet-menu.xml
deleted file mode 100644
index 5cef44fa..00000000
--- a/mini-commander/src/mini-commander-applet-menu.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<menuitem name="Item 1" action="Props" />
-<menuitem name="Item 2" action="Help" />
-<menuitem name="Item 3" action="About" />
-
diff --git a/mini-commander/src/mini-commander-global.schemas.in b/mini-commander/src/mini-commander-global.schemas.in
deleted file mode 100644
index b9714085..00000000
--- a/mini-commander/src/mini-commander-global.schemas.in
+++ /dev/null
@@ -1,31 +0,0 @@
-<mateconfschemafile>
- <schemalist>
-
- <schema>
- <key>/schemas/apps/mini-commander-global/macro_patterns</key>
- <applyto>/apps/mini-commander/macro_patterns</applyto>
- <owner>mini-commander-applet</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[blah]</default> <!-- The default list is set by mc-install-default-macros -->
- <locale name="C">
- <short>Macro pattern list</short>
- <long>List of MateConfValue entries containing strings for the macro patterns.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander-global/macro_commands</key>
- <applyto>/apps/mini-commander/macro_commands</applyto>
- <owner>mini-commander-applet</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[blah]</default> <!-- The default list is set by mc-install-default-macros -->
- <locale name="C">
- <short>Macro command list</short>
- <long>List of MateConfValue entries containing strings for the macro commands.</long>
- </locale>
- </schema>
-
- </schemalist>
-</mateconfschemafile>
diff --git a/mini-commander/src/mini-commander.schemas.in b/mini-commander/src/mini-commander.schemas.in
deleted file mode 100644
index 2d5413de..00000000
--- a/mini-commander/src/mini-commander.schemas.in
+++ /dev/null
@@ -1,193 +0,0 @@
-<mateconfschemafile>
- <schemalist>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/show_handle</key>
- <owner>mini-commander-applet</owner>
- <type>bool</type>
- <default>false</default>
- <locale name="C">
- <short>Show handle</short>
- <long>Show a handle so the applet can be detached from the panel.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/show_frame</key>
- <owner>mini-commander-applet</owner>
- <type>bool</type>
- <default>false</default>
- <locale name="C">
- <short>Show frame</short>
- <long>Show a frame surrounding the applet.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/autocomplete_history</key>
- <owner>mini-commander-applet</owner>
- <type>bool</type>
- <default>true</default>
- <locale name="C">
- <short>Perform history autocompletion</short>
- <long>Attempt to autocomplete a command from the history of commands entered.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/normal_size_x</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>150</default>
- <locale name="C">
- <short>Width</short>
- <long>Width of the applet</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/normal_size_y</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>48</default>
- <locale name="C">
- <short>Not used anymore</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_y</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>24</default>
- <locale name="C">
- <short>Not used anymore</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/show_default_theme</key>
- <owner>mini-commander-applet</owner>
- <type>bool</type>
- <default>true</default>
- <locale name="C">
- <short>Use the default theme colors</short>
- <long>Use theme colors instead of custom ones.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_fg_r</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>64613</default>
- <locale name="C">
- <short>Foreground color, red component</short>
- <long>The red component of the foreground color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_fg_g</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>64613</default>
- <locale name="C">
- <short>Foreground color, green component</short>
- <long>The green component of the foreground color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_fg_b</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>64613</default>
- <locale name="C">
- <short>Foreground color, blue component</short>
- <long>The blue component of the foreground color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_bg_r</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>0</default>
- <locale name="C">
- <short>Background color, red component</short>
- <long>The red component of the background color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_bg_g</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>0</default>
- <locale name="C">
- <short>Background color, green component</short>
- <long>The green component of the background color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/cmd_line_color_bg_b</key>
- <owner>mini-commander-applet</owner>
- <type>int</type>
- <default>0</default>
- <locale name="C">
- <short>Background color, blue component</short>
- <long>The blue component of the background color.</long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/history</key>
- <owner>mini-commander-applet</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[]</default>
- <locale name="C">
- <short>History list</short>
- <long>List of MateConfValue entries containing strings for history entries.</long>
- </locale>
- </schema>
-
- <!--
- Keep these deprecated keys around in order to keep older configurations
- working correctly. See bug #91194
- -->
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/macro_patterns</key>
- <owner>mini-commander-applet</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[blah]</default> <!-- The default list is set by mc-install-default-macros -->
- <locale name="C">
- <short>Macro pattern list</short>
- <long>
- This per-applet key is deprecated in favour of the global key,
- /schemas/apps/mini-commander-global/macro_patterns.
- </long>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/mini-commander/prefs/macro_commands</key>
- <owner>mini-commander-applet</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[blah]</default> <!-- The default list is set by mc-install-default-macros -->
- <locale name="C">
- <short>Macro command list</short>
- <long>
- This per-applet key is deprecated in favour of the global key,
- /schemas/apps/mini-commander-global/macro_patterns.
- </long>
- </locale>
- </schema>
-
- </schemalist>
-</mateconfschemafile>
diff --git a/mini-commander/src/mini-commander.ui b/mini-commander/src/mini-commander.ui
deleted file mode 100644
index 00ea5a90..00000000
--- a/mini-commander/src/mini-commander.ui
+++ /dev/null
@@ -1,713 +0,0 @@
-<?xml version="1.0"?>
-<interface>
- <requires lib="gtk+" version="2.16"/>
- <!-- interface-naming-policy toplevel-contextual -->
- <object class="GtkAdjustment" id="adjustment1">
- <property name="value">1</property>
- <property name="lower">50</property>
- <property name="upper">400</property>
- <property name="step_increment">5</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkDialog" id="mc_preferences_dialog">
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Command Line Preferences</property>
- <property name="type_hint">dialog</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkNotebook" id="preferences_notebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="border_width">5</property>
- <child>
- <object class="GtkVBox" id="general_page_vbox">
- <property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">18</property>
- <child>
- <object class="GtkVBox" id="vbox10">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label24">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Auto Completion</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox6">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="label"> </property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="auto_complete_history_toggle">
- <property name="label" translatable="yes">E_nable history-based auto completion</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox11">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label26">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Size</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox7">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="label"> </property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="size_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size_spinner</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox9">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkSpinButton" id="size_spinner">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="climb_rate">10</property>
- <property name="numeric">True</property>
- <accessibility>
- <relation type="labelled-by" target="size_post_label"/>
- <relation type="labelled-by" target="size_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="size_post_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">pixels</property>
- <accessibility>
- <relation type="label-for" target="size_spinner"/>
- </accessibility>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox12">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label28">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Colors</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox8">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="label29">
- <property name="visible">True</property>
- <property name="label"> </property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">12</property>
- <property name="row_spacing">6</property>
- <child>
- <object class="GtkCheckButton" id="default_theme_toggle">
- <property name="label" translatable="yes">_Use default theme colors</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="fg_color_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Command line _foreground:</property>
- <property name="use_underline">True</property>
- <property name="justify">right</property>
- <property name="mnemonic_widget">fg_color_picker</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="bg_color_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Command line _background:</property>
- <property name="use_underline">True</property>
- <property name="justify">right</property>
- <property name="mnemonic_widget">bg_color_picker</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkColorButton" id="fg_color_picker">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="title" translatable="yes">Pick a color</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkColorButton" id="bg_color_picker">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="title" translatable="yes">Pick a color</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="general_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">General</property>
- </object>
- <packing>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox13">
- <property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_Macros:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">macros_tree</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkScrolledWindow" id="macros_scrolled_tree">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="macros_tree">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox7">
- <property name="visible">True</property>
- <property name="border_width">4</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkButton" id="add_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <child>
- <object class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <object class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-add</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label20">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Add Macro...</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="delete_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <child>
- <object class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label19">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Delete Macro</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Macros</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="help_button">
- <property name="label">gtk-help</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="done_button">
- <property name="label">gtk-close</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="-11">help_button</action-widget>
- <action-widget response="-7">done_button</action-widget>
- </action-widgets>
- </object>
- <object class="GtkDialog" id="mc_macro_add_dialog">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Add New Macro</property>
- <property name="resizable">False</property>
- <property name="type_hint">dialog</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox3">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkTable" id="table3">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">12</property>
- <property name="row_spacing">6</property>
- <child>
- <object class="GtkLabel" id="pattern_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_Pattern:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">pattern_entry</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="command_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Co_mmand:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">command_entry</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="pattern_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="command_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area3">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="helpbutton1">
- <property name="label">gtk-help</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button1">
- <property name="label">gtk-cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button2">
- <property name="label">gtk-add</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="-11">helpbutton1</action-widget>
- <action-widget response="-6">button1</action-widget>
- <action-widget response="-5">button2</action-widget>
- </action-widgets>
- </object>
-</interface>
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)
diff --git a/mini-commander/src/mini-commander_applet.h b/mini-commander/src/mini-commander_applet.h
deleted file mode 100644
index 30079b44..00000000
--- a/mini-commander/src/mini-commander_applet.h
+++ /dev/null
@@ -1,72 +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
- */
-
-#ifndef __MC_APPLET_H__
-#define __MC_APPLET_H__
-
-#include <glib.h>
-#include <glib/gi18n.h>
-
-G_BEGIN_DECLS
-
-#include <gtk/gtk.h>
-#include <mate-panel-applet.h>
-
-typedef struct _MCData MCData;
-
-#include "preferences.h"
-
-/* Constants */
-#define MC_NUM_LISTENERS 12
-#define MC_HISTORY_LIST_LENGTH 50
-#define MC_MAX_COMMAND_LENGTH 505
-#define MC_MAX_NUM_MACRO_PARAMETERS 100
-
-struct _MCData {
- MatePanelApplet *applet;
-
- GtkWidget *applet_box;
-
- GtkWidget *entry;
- GtkWidget *file_select;
-
- int label_timeout;
- int cmd_line_size_y;
-
- MCPreferences preferences;
- MCPrefsDialog prefs_dialog;
-
- guint listeners [MC_NUM_LISTENERS];
- gboolean error;
- MatePanelAppletOrient orient;
-};
-
-void mc_applet_draw (MCData *mc);
-
-void set_atk_name_description (GtkWidget *widget,
- const char *name,
- const char *description);
-
-G_END_DECLS
-
-#endif /* __MC_APPLET_H__ */
diff --git a/mini-commander/src/org.mate.applets.MiniCommanderApplet.mate-panel-applet.in.in b/mini-commander/src/org.mate.applets.MiniCommanderApplet.mate-panel-applet.in.in
deleted file mode 100644
index a1a80bef..00000000
--- a/mini-commander/src/org.mate.applets.MiniCommanderApplet.mate-panel-applet.in.in
+++ /dev/null
@@ -1,16 +0,0 @@
-[Applet Factory]
-Id=MiniCommanderAppletFactory
-Location=@LIBEXECDIR@/mini_commander_applet
-_Name=MiniCommander Applet Factory
-_Description=MiniCommander Applet Factory
-
-[MiniCommanderApplet]
-_Name=Command Line
-_Description=Mini-Commander
-Icon=mate-mini-commander.png
-MateComponentId=OAFIID:MATE_MiniCommanderApplet
-X-MATE-Bugzilla-Bugzilla=MATE
-X-MATE-Bugzilla-Product=mate-applets
-X-MATE-Bugzilla-Component=mini-commander
-X-MATE-Bugzilla-Version=@VERSION@
-X-MATE-Bugzilla-OtherBinaries=mini_commander_applet
diff --git a/mini-commander/src/org.mate.panel.applet.MiniCommanderAppletFactory.service.in b/mini-commander/src/org.mate.panel.applet.MiniCommanderAppletFactory.service.in
deleted file mode 100644
index e7cf453f..00000000
--- a/mini-commander/src/org.mate.panel.applet.MiniCommanderAppletFactory.service.in
+++ /dev/null
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.mate.panel.applet.MiniCommanderAppletFactory
-Exec=/home/carlos/mate-cvs/libexec/mini_commander_applet
diff --git a/mini-commander/src/preferences.c b/mini-commander/src/preferences.c
deleted file mode 100644
index daff98b3..00000000
--- a/mini-commander/src/preferences.c
+++ /dev/null
@@ -1,1128 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- * 2002 Sun Microsystems Inc.
- *
- * 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 "preferences.h"
-
-#include <string.h>
-
-#include <gtk/gtk.h>
-
-#include <mate-panel-applet.h>
-#include <mate-panel-applet-mateconf.h>
-#include <mateconf/mateconf-client.h>
-
-#include "mini-commander_applet.h"
-#include "command_line.h"
-#include "history.h"
-#include "mc-default-macros.h"
-
-enum {
- COLUMN_PATTERN,
- COLUMN_COMMAND
-};
-
-#define NEVER_SENSITIVE "never_sensitive"
-
-static GSList *mc_load_macros (MCData *mc);
-
-/* set sensitive and setup NEVER_SENSITIVE appropriately */
-static void
-hard_set_sensitive (GtkWidget *w, gboolean sensitivity)
-{
- gtk_widget_set_sensitive (w, sensitivity);
- g_object_set_data (G_OBJECT (w), NEVER_SENSITIVE,
- GINT_TO_POINTER ( ! sensitivity));
-}
-
-
-/* set sensitive, but always insensitive if NEVER_SENSITIVE is set */
-static void
-soft_set_sensitive (GtkWidget *w, gboolean sensitivity)
-{
- if (g_object_get_data (G_OBJECT (w), NEVER_SENSITIVE))
- gtk_widget_set_sensitive (w, FALSE);
- else
- gtk_widget_set_sensitive (w, sensitivity);
-}
-
-gboolean
-mc_key_writable (MCData *mc, const char *key)
-{
- gboolean writable;
- char *fullkey;
- static MateConfClient *client = NULL;
- if (client == NULL)
- client = mateconf_client_get_default ();
-
- fullkey = mate_panel_applet_mateconf_get_full_key (mc->applet, key);
-
- writable = mateconf_client_key_is_writable (client, fullkey, NULL);
-
- g_free (fullkey);
-
- return writable;
-}
-
-
-/* MateConf notification handlers
- */
-static void
-show_default_theme_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_BOOL)
- return;
-
- mc->preferences.show_default_theme = mateconf_value_get_bool (entry->value);
-
- mc_applet_draw (mc); /* FIXME: we shouldn't have to redraw the whole applet */
-}
-
-static void
-auto_complete_history_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_BOOL)
- return;
-
- mc->preferences.auto_complete_history = mateconf_value_get_bool (entry->value);
-}
-
-static void
-normal_size_x_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.normal_size_x = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_size (mc);
-}
-
-static void
-normal_size_y_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.normal_size_y = mateconf_value_get_int (entry->value);
-
- mc_applet_draw (mc); /* FIXME: we shouldn't have to redraw the whole applet */
-}
-
-static void
-cmd_line_color_fg_r_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_fg_r = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static void
-cmd_line_color_fg_g_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_fg_g = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static void
-cmd_line_color_fg_b_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_fg_b = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static void
-cmd_line_color_bg_r_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_bg_r = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static void
-cmd_line_color_bg_g_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_bg_g = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static void
-cmd_line_color_bg_b_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_INT)
- return;
-
- mc->preferences.cmd_line_color_bg_b = mateconf_value_get_int (entry->value);
-
- mc_command_update_entry_color (mc);
-}
-
-static gboolean
-load_macros_in_idle (MCData *mc)
-{
- mc->preferences.idle_macros_loader_id = 0;
-
- if (mc->preferences.macros)
- mc_macros_free (mc->preferences.macros);
-
- mc->preferences.macros = mc_load_macros (mc);
-
- return FALSE;
-}
-
-static void
-macros_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- MCData *mc)
-{
- if (!entry->value || entry->value->type != MATECONF_VALUE_LIST)
- return;
-
- if (mc->preferences.idle_macros_loader_id == 0)
- mc->preferences.idle_macros_loader_id =
- g_idle_add ((GSourceFunc) load_macros_in_idle, mc);
-}
-
-/* Properties dialog
- */
-static void
-save_macros_to_mateconf (MCData *mc)
-{
- MCPrefsDialog *dialog;
- GtkTreeIter iter;
- MateConfValue *patterns;
- MateConfValue *commands;
- GSList *pattern_list = NULL;
- GSList *command_list = NULL;
- MateConfClient *client;
-
- dialog = &mc->prefs_dialog;
-
- if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->macros_store), &iter))
- return;
-
- patterns = mateconf_value_new (MATECONF_VALUE_LIST);
- mateconf_value_set_list_type (patterns, MATECONF_VALUE_STRING);
-
- commands = mateconf_value_new (MATECONF_VALUE_LIST);
- mateconf_value_set_list_type (commands, MATECONF_VALUE_STRING);
-
- do {
- char *pattern = NULL;
- char *command = NULL;
-
- gtk_tree_model_get (
- GTK_TREE_MODEL (dialog->macros_store), &iter,
- 0, &pattern,
- 1, &command,
- -1);
-
- pattern_list = g_slist_prepend (pattern_list,
- mateconf_value_new_from_string (MATECONF_VALUE_STRING, pattern, NULL));
- command_list = g_slist_prepend (command_list,
- mateconf_value_new_from_string (MATECONF_VALUE_STRING, command, NULL));
- } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (dialog->macros_store), &iter));
-
- pattern_list = g_slist_reverse (pattern_list);
- command_list = g_slist_reverse (command_list);
-
- mateconf_value_set_list_nocopy (patterns, pattern_list); pattern_list = NULL;
- mateconf_value_set_list_nocopy (commands, command_list); command_list = NULL;
-
- client = mateconf_client_get_default ();
- mateconf_client_set (client, "/apps/mini-commander/macro_patterns",
- patterns, NULL);
- mateconf_client_set (client, "/apps/mini-commander/macro_commands",
- commands, NULL);
-
- mateconf_value_free (patterns);
- mateconf_value_free (commands);
-}
-
-static gboolean
-duplicate_pattern (MCData *mc,
- const char *new_pattern)
-{
- MCPrefsDialog *dialog;
- GtkTreeIter iter;
-
- dialog = &mc->prefs_dialog;
-
- if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->macros_store), &iter))
- return FALSE;
-
- do {
- char *pattern = NULL;
-
- gtk_tree_model_get (
- GTK_TREE_MODEL (dialog->macros_store), &iter,
- 0, &pattern, -1);
-
- if (!strcmp (pattern, new_pattern))
- return TRUE;
-
- } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (dialog->macros_store), &iter));
-
-
- return FALSE;
-}
-
-static void
-show_help_section (GtkWindow *dialog, gchar *section)
-{
- GError *error = NULL;
- char *uri;
-
- if (section)
- uri = g_strdup_printf ("ghelp:command-line?%s", section);
- else
- uri = g_strdup ("ghelp:command-line");
-
- gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (dialog)),
- uri,
- gtk_get_current_event_time (),
- &error);
-
- g_free (uri);
-
- if (error) {
- GtkWidget *error_dialog;
-
- error_dialog = gtk_message_dialog_new (
- NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- _("There was an error displaying help: %s"),
- error->message);
-
- g_signal_connect (error_dialog, "response",
- G_CALLBACK (gtk_widget_destroy),
- NULL);
-
- gtk_window_set_resizable (GTK_WINDOW (error_dialog), FALSE);
- gtk_window_set_screen (GTK_WINDOW (error_dialog),
- gtk_widget_get_screen (GTK_WIDGET (dialog)));
- gtk_widget_show (error_dialog);
- g_error_free (error);
- }
-}
-
-static void
-add_response (GtkWidget *window,
- int id,
- MCData *mc)
-{
- MCPrefsDialog *dialog;
-
- dialog = &mc->prefs_dialog;
-
- switch (id) {
- case GTK_RESPONSE_OK: {
- const char *pattern;
- const char *command;
- GtkTreeIter iter;
- const char *error_message = NULL;
-
- pattern = gtk_entry_get_text (GTK_ENTRY (dialog->pattern_entry));
- command = gtk_entry_get_text (GTK_ENTRY (dialog->command_entry));
-
- if (!pattern || !pattern [0])
- error_message = _("You must specify a pattern");
-
- if (!command || !command [0])
- error_message = error_message != NULL ?
- _("You must specify a pattern and a command") :
- _("You must specify a command");
-
- if (!error_message && duplicate_pattern (mc, pattern))
- error_message = _("You may not specify duplicate patterns");
-
- if (error_message) {
- GtkWidget *error_dialog;
-
- error_dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- error_message);
-
- g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
- gtk_window_set_resizable (GTK_WINDOW (error_dialog), FALSE);
- gtk_widget_show_all (error_dialog);
- return;
- }
-
- gtk_widget_hide (window);
-
- gtk_list_store_append (dialog->macros_store, &iter);
- gtk_list_store_set (dialog->macros_store, &iter,
- COLUMN_PATTERN, pattern,
- COLUMN_COMMAND, command,
- -1);
-
- gtk_tree_view_columns_autosize (GTK_TREE_VIEW (dialog->macros_tree));
-
- gtk_editable_delete_text (GTK_EDITABLE (dialog->pattern_entry), 0, -1);
- gtk_editable_delete_text (GTK_EDITABLE (dialog->command_entry), 0, -1);
-
- save_macros_to_mateconf (mc);
- }
- break;
- case GTK_RESPONSE_HELP:
- show_help_section (GTK_WINDOW (window), "command-line-prefs-2");
- break;
- case GTK_RESPONSE_CLOSE:
- default:
- gtk_editable_delete_text (GTK_EDITABLE (dialog->pattern_entry), 0, -1);
- gtk_editable_delete_text (GTK_EDITABLE (dialog->command_entry), 0, -1);
- gtk_widget_hide (window);
- break;
- }
-}
-
-static void
-setup_add_dialog (GtkBuilder *builder,
- MCData *mc)
-{
- MCPrefsDialog *dialog;
-
- dialog = &mc->prefs_dialog;
-
- g_signal_connect (dialog->macro_add_dialog, "response",
- G_CALLBACK (add_response), mc);
-
- dialog->pattern_entry = GTK_WIDGET (gtk_builder_get_object (builder, "pattern_entry"));
- dialog->command_entry = GTK_WIDGET (gtk_builder_get_object (builder, "command_entry"));
-
- gtk_dialog_set_default_response (GTK_DIALOG (dialog->macro_add_dialog), GTK_RESPONSE_OK);
-}
-
-static void
-macro_add (GtkWidget *button,
- MCData *mc)
-{
- if (!mc->prefs_dialog.macro_add_dialog) {
- GtkBuilder *builder;
-
- builder = gtk_builder_new ();
- gtk_builder_add_from_file (builder, GTK_BUILDERDIR "/mini-commander.ui", NULL);
-
- mc->prefs_dialog.macro_add_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "mc_macro_add_dialog"));
-
- g_object_add_weak_pointer (G_OBJECT (mc->prefs_dialog.macro_add_dialog),
- (gpointer *) &mc->prefs_dialog.macro_add_dialog);
-
- setup_add_dialog (builder, mc);
-
- g_object_unref (builder);
- }
-
- gtk_window_set_screen (GTK_WINDOW (mc->prefs_dialog.macro_add_dialog),
- gtk_widget_get_screen (GTK_WIDGET (mc->applet)));
- gtk_widget_grab_focus (mc->prefs_dialog.pattern_entry);
- gtk_window_present (GTK_WINDOW (mc->prefs_dialog.macro_add_dialog));
-}
-
-static void
-macro_delete (GtkWidget *button,
- MCData *mc)
-{
- MCPrefsDialog *dialog;
- GtkTreeModel *model = NULL;
- GtkTreeSelection *selection;
- GtkTreeIter iter;
-
- dialog = &mc->prefs_dialog;
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->macros_tree));
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- return;
-
- gtk_list_store_remove (dialog->macros_store, &iter);
-
- save_macros_to_mateconf (mc);
-}
-
-static void
-show_macros_list (MCData *mc)
-{
- MCPrefsDialog *dialog;
- GtkTreeIter iter;
- GSList *l;
-
- dialog = &mc->prefs_dialog;
-
- gtk_list_store_clear (dialog->macros_store);
-
- for (l = mc->preferences.macros; l; l = l->next) {
- MCMacro *macro = l->data;
-
- gtk_list_store_append (dialog->macros_store, &iter);
- gtk_list_store_set (dialog->macros_store, &iter,
- COLUMN_PATTERN, macro->pattern,
- COLUMN_COMMAND, macro->command,
- -1);
- }
-
- gtk_tree_view_columns_autosize (GTK_TREE_VIEW (dialog->macros_tree));
-}
-
-static void
-macro_edited (GtkCellRendererText *renderer,
- const char *path,
- const char *new_text,
- MCData *mc)
-{
- MCPrefsDialog *dialog;
- GtkTreeIter iter;
- int col;
-
- dialog = &mc->prefs_dialog;
-
- col = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (renderer), "column"));
-
- if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (dialog->macros_store), &iter, path))
- gtk_list_store_set (dialog->macros_store, &iter, col, new_text, -1);
-
- save_macros_to_mateconf (mc);
-}
-
-static void
-foreground_color_set (GtkColorButton *color_button,
- MCData *mc)
-{
- GdkColor color;
-
- gtk_color_button_get_color (color_button, &color);
-
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_fg_r", (int) color.red, NULL);
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_fg_g", (int) color.green, NULL);
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_fg_b", (int) color.blue, NULL);
-}
-
-static void
-background_color_set (GtkColorButton *color_button,
- MCData *mc)
-{
- GdkColor color;
-
- gtk_color_button_get_color (color_button, &color);
-
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_bg_r", (int) color.red, NULL);
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_bg_g", (int) color.green, NULL);
- mate_panel_applet_mateconf_set_int (mc->applet, "cmd_line_color_bg_b", (int) color.blue, NULL);
-}
-
-static void
-auto_complete_history_toggled (GtkToggleButton *toggle,
- MCData *mc)
-{
- gboolean auto_complete_history;
-
- auto_complete_history = gtk_toggle_button_get_active (toggle);
- if (auto_complete_history == mc->preferences.auto_complete_history)
- return;
-
- mate_panel_applet_mateconf_set_bool (mc->applet, "autocomplete_history",
- auto_complete_history, NULL);
-}
-
-static void
-size_value_changed (GtkSpinButton *spinner,
- MCData *mc)
-{
- int size;
-
- size = gtk_spin_button_get_value (spinner);
- if (size == mc->preferences.normal_size_x)
- return;
-
- mate_panel_applet_mateconf_set_int (mc->applet, "normal_size_x", size, NULL);
-}
-
-static void
-use_default_theme_toggled (GtkToggleButton *toggle,
- MCData *mc)
-{
- gboolean use_default_theme;
-
- use_default_theme = gtk_toggle_button_get_active (toggle);
- if (use_default_theme == mc->preferences.show_default_theme)
- return;
-
- soft_set_sensitive (mc->prefs_dialog.fg_color_picker, !use_default_theme);
- soft_set_sensitive (mc->prefs_dialog.bg_color_picker, !use_default_theme);
-
- mate_panel_applet_mateconf_set_bool (mc->applet, "show_default_theme", use_default_theme, NULL);
-}
-
-static void
-preferences_response (MCPrefsDialog *dialog,
- int id,
- MCData *mc)
-{
- switch (id) {
- case GTK_RESPONSE_HELP:
- show_help_section (GTK_WINDOW (dialog), "command-line-prefs-0");
- break;
- case GTK_RESPONSE_CLOSE:
- default: {
- GtkTreeViewColumn *col;
-
- dialog = &mc->prefs_dialog;
-
- /* A hack to make sure 'edited' on the renderer if we
- * close the dialog while editing.
- */
- col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 0);
- if (col->editable_widget && GTK_IS_CELL_EDITABLE (col->editable_widget))
- gtk_cell_editable_editing_done (col->editable_widget);
-
- col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 1);
- if (col->editable_widget && GTK_IS_CELL_EDITABLE (col->editable_widget))
- gtk_cell_editable_editing_done (col->editable_widget);
-
- gtk_widget_hide (dialog->dialog);
- }
- break;
- }
-}
-
-static void
-mc_preferences_setup_dialog (GtkBuilder *builder,
- MCData *mc)
-{
- MCPrefsDialog *dialog;
- GtkCellRenderer *renderer;
- MateConfClient *client;
- GdkColor color;
-
- dialog = &mc->prefs_dialog;
-
- g_signal_connect (dialog->dialog, "response",
- G_CALLBACK (preferences_response), mc);
-
- gtk_dialog_set_default_response (GTK_DIALOG (dialog->dialog), GTK_RESPONSE_CLOSE);
- gtk_window_set_default_size (GTK_WINDOW (dialog->dialog), 400, -1);
-
- dialog->auto_complete_history_toggle = GTK_WIDGET (gtk_builder_get_object (builder, "auto_complete_history_toggle"));
- dialog->size_spinner = GTK_WIDGET (gtk_builder_get_object (builder, "size_spinner"));
- dialog->use_default_theme_toggle = GTK_WIDGET (gtk_builder_get_object (builder, "default_theme_toggle"));
- dialog->fg_color_picker = GTK_WIDGET (gtk_builder_get_object (builder, "fg_color_picker"));
- dialog->bg_color_picker = GTK_WIDGET (gtk_builder_get_object (builder, "bg_color_picker"));
- dialog->macros_tree = GTK_WIDGET (gtk_builder_get_object (builder, "macros_tree"));
- dialog->delete_button = GTK_WIDGET (gtk_builder_get_object (builder, "delete_button"));
- dialog->add_button = GTK_WIDGET (gtk_builder_get_object (builder, "add_button"));
-
- /* History based autocompletion */
- g_signal_connect (dialog->auto_complete_history_toggle, "toggled",
- G_CALLBACK (auto_complete_history_toggled), mc);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->auto_complete_history_toggle),
- mc->preferences.auto_complete_history);
- if ( ! mc_key_writable (mc, "autocomplete_history"))
- hard_set_sensitive (dialog->auto_complete_history_toggle, FALSE);
-
- /* Width */
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->size_spinner), mc->preferences.normal_size_x);
- g_signal_connect (dialog->size_spinner, "value_changed",
- G_CALLBACK (size_value_changed), mc);
- if ( ! mc_key_writable (mc, "normal_size_x")) {
- hard_set_sensitive (dialog->size_spinner, FALSE);
- hard_set_sensitive (GTK_WIDGET (gtk_builder_get_object (builder, "size_label")), FALSE);
- hard_set_sensitive (GTK_WIDGET (gtk_builder_get_object (builder, "size_post_label")), FALSE);
- }
-
- /* Use default theme */
- g_signal_connect (dialog->use_default_theme_toggle, "toggled",
- G_CALLBACK (use_default_theme_toggled), mc);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->use_default_theme_toggle),
- mc->preferences.show_default_theme);
- if ( ! mc_key_writable (mc, "show_default_theme"))
- hard_set_sensitive (dialog->use_default_theme_toggle, FALSE);
-
- /* Foreground color */
- g_signal_connect (dialog->fg_color_picker, "color_set",
- G_CALLBACK (foreground_color_set), mc);
- color.red = mc->preferences.cmd_line_color_fg_r;
- color.green = mc->preferences.cmd_line_color_fg_g;
- color.blue = mc->preferences.cmd_line_color_fg_b;
- gtk_color_button_set_color (GTK_COLOR_BUTTON (dialog->fg_color_picker), &color);
- soft_set_sensitive (dialog->fg_color_picker, !mc->preferences.show_default_theme);
-
- if ( ! mc_key_writable (mc, "cmd_line_color_fg_r") ||
- ! mc_key_writable (mc, "cmd_line_color_fg_g") ||
- ! mc_key_writable (mc, "cmd_line_color_fg_b")) {
- hard_set_sensitive (dialog->fg_color_picker, FALSE);
- hard_set_sensitive (GTK_WIDGET (gtk_builder_get_object (builder, "fg_color_label")), FALSE);
- }
-
- /* Background color */
- g_signal_connect (dialog->bg_color_picker, "color_set",
- G_CALLBACK (background_color_set), mc);
- color.red = mc->preferences.cmd_line_color_bg_r;
- color.green = mc->preferences.cmd_line_color_bg_g;
- color.blue = mc->preferences.cmd_line_color_bg_b;
- gtk_color_button_set_color (GTK_COLOR_BUTTON (dialog->bg_color_picker), &color);
- soft_set_sensitive (dialog->bg_color_picker, !mc->preferences.show_default_theme);
-
- if ( ! mc_key_writable (mc, "cmd_line_color_bg_r") ||
- ! mc_key_writable (mc, "cmd_line_color_bg_g") ||
- ! mc_key_writable (mc, "cmd_line_color_bg_b")) {
- hard_set_sensitive (dialog->bg_color_picker, FALSE);
- hard_set_sensitive (GTK_WIDGET (gtk_builder_get_object (builder, "bg_color_label")), FALSE);
- }
-
-
- /* Macros Delete and Add buttons */
- g_signal_connect (dialog->delete_button, "clicked", G_CALLBACK (macro_delete), mc);
- g_signal_connect (dialog->add_button, "clicked", G_CALLBACK (macro_add), mc);
-
- client = mateconf_client_get_default ();
- if ( ! mateconf_client_key_is_writable (client,
- "/apps/mini-commander/macro_patterns", NULL) ||
- ! mateconf_client_key_is_writable (client,
- "/apps/mini-commander/macro_commands", NULL)) {
- hard_set_sensitive (dialog->add_button, FALSE);
- hard_set_sensitive (dialog->delete_button, FALSE);
- hard_set_sensitive (dialog->macros_tree, FALSE);
- }
-
- /* Macros tree view */
- dialog->macros_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, NULL);
- gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->macros_tree),
- GTK_TREE_MODEL (dialog->macros_store));
-
- renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "editable", TRUE, NULL);
- g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_PATTERN));
- g_signal_connect (renderer, "edited", G_CALLBACK (macro_edited), mc);
-
- gtk_tree_view_insert_column_with_attributes (
- GTK_TREE_VIEW (dialog->macros_tree), -1,
- _("Pattern"), renderer,
- "text", COLUMN_PATTERN,
- NULL);
-
- renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "editable", TRUE, NULL);
- g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_COMMAND));
- g_signal_connect (renderer, "edited", G_CALLBACK (macro_edited), mc);
-
- gtk_tree_view_insert_column_with_attributes (
- GTK_TREE_VIEW (dialog->macros_tree), -1,
- _("Command"), renderer,
- "text", COLUMN_COMMAND,
- NULL);
-
- show_macros_list (mc);
-}
-
-void
-mc_show_preferences (GtkAction *action,
- MCData *mc)
-{
- if (!mc->prefs_dialog.dialog) {
- GtkBuilder *builder;
-
- builder = gtk_builder_new ();
- gtk_builder_add_from_file (builder, GTK_BUILDERDIR "/mini-commander.ui", NULL);
-
- mc->prefs_dialog.dialog = GTK_WIDGET (gtk_builder_get_object (builder,
- "mc_preferences_dialog"));
-
- g_object_add_weak_pointer (G_OBJECT (mc->prefs_dialog.dialog),
- (gpointer *) &mc->prefs_dialog.dialog);
-
- mc_preferences_setup_dialog (builder, mc);
-
- g_object_unref (builder);
- }
-
- gtk_window_set_screen (GTK_WINDOW (mc->prefs_dialog.dialog),
- gtk_widget_get_screen (GTK_WIDGET (mc->applet)));
- gtk_window_present (GTK_WINDOW (mc->prefs_dialog.dialog));
-}
-
-static MCMacro *
-mc_macro_new (const char *pattern,
- const char *command)
-{
- MCMacro *macro;
-
- g_return_val_if_fail (pattern != NULL, NULL);
- g_return_val_if_fail (command != NULL, NULL);
-
- macro = g_new0 (MCMacro, 1);
-
- macro->pattern = g_strdup (pattern);
- macro->command = g_strdup (command);
-
- if (macro->pattern [0] != '\0')
- regcomp (&macro->regex, macro->pattern, REG_EXTENDED);
-
- return macro;
-}
-
-void
-mc_macros_free (GSList *macros)
-{
- GSList *l;
-
- for (l = macros; l; l = l->next) {
- MCMacro *macro = l->data;
-
- regfree(&macro->regex);
- g_free (macro->pattern);
- g_free (macro->command);
- g_free (macro);
- }
-
- g_slist_free (macros);
-}
-
-static GSList *
-mc_load_macros (MCData *mc)
-{
- MateConfValue *macro_patterns;
- MateConfValue *macro_commands;
- GSList *macros_list = NULL;
- MateConfClient *client;
-
- client = mateconf_client_get_default ();
- macro_patterns = mateconf_client_get (client,
- "/apps/mini-commander/macro_patterns", NULL);
- macro_commands = mateconf_client_get (client,
- "/apps/mini-commander/macro_commands", NULL);
-
- if (macro_patterns && macro_commands) {
- GSList *patterns;
- GSList *commands;
-
- patterns = mateconf_value_get_list (macro_patterns);
- commands = mateconf_value_get_list (macro_commands);
-
- for (; patterns && commands; patterns = patterns->next, commands = commands->next) {
- MateConfValue *v1 = patterns->data;
- MateConfValue *v2 = commands->data;
- MCMacro *macro;
- const char *pattern, *command;
-
- pattern = mateconf_value_get_string (v1);
- command = mateconf_value_get_string (v2);
-
- if (!(macro = mc_macro_new (pattern, command)))
- continue;
-
- macros_list = g_slist_prepend (macros_list, macro);
- }
- } else {
- int i;
-
- for (i = 0; i < G_N_ELEMENTS (mc_default_macros); i++)
- macros_list = g_slist_prepend (macros_list,
- mc_macro_new (mc_default_macros [i].pattern,
- mc_default_macros [i].command));
- }
-
- macros_list = g_slist_reverse (macros_list);
-
- if (macro_commands)
- mateconf_value_free (macro_commands);
-
- if (macro_patterns)
- mateconf_value_free (macro_patterns);
-
- return macros_list;
-}
-
-static void
-mc_setup_listeners (MCData *mc)
-{
- MateConfClient *client;
- char *key;
- int i = 0;
-
- client = mateconf_client_get_default ();
- mateconf_client_add_dir (client, "/apps/mini-commander",
- MATECONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "show_default_theme");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) show_default_theme_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "autocomplete_history");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) auto_complete_history_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "normal_size_x");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) normal_size_x_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "normal_size_y");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) normal_size_y_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_fg_r");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_fg_r_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_fg_g");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_fg_g_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_fg_b");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_fg_b_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_bg_r");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_bg_r_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_bg_g");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_bg_g_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- key = mate_panel_applet_mateconf_get_full_key (MATE_PANEL_APPLET (mc->applet), "cmd_line_color_bg_b");
- mc->listeners [i++] = mateconf_client_notify_add (
- client, key,
- (MateConfClientNotifyFunc) cmd_line_color_bg_b_changed,
- mc,
- NULL, NULL);
- g_free (key);
-
- mc->listeners [i++] = mateconf_client_notify_add (
- client, "/apps/mini-commander/macro_patterns",
- (MateConfClientNotifyFunc) macros_changed,
- mc,
- NULL, NULL);
-
- mc->listeners [i++] = mateconf_client_notify_add (
- client, "/apps/mini-commander/macro_commands",
- (MateConfClientNotifyFunc) macros_changed,
- mc,
- NULL, NULL);
-
- g_assert (i == MC_NUM_LISTENERS);
-
- g_object_unref (client);
-}
-
-void
-mc_load_preferences (MCData *mc)
-{
- MateConfValue *history;
- GError *error = NULL;
-
- g_return_if_fail (mc != NULL);
- g_return_if_fail (PANEL_IS_APPLET (mc->applet));
-
- mc->preferences.show_default_theme =
- mate_panel_applet_mateconf_get_bool (mc->applet, "show_default_theme", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.show_default_theme = MC_DEFAULT_SHOW_DEFAULT_THEME;
- }
-
- mc->preferences.auto_complete_history =
- mate_panel_applet_mateconf_get_bool (mc->applet, "autocomplete_history", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.auto_complete_history = MC_DEFAULT_AUTO_COMPLETE_HISTORY;
- }
-
- mc->preferences.normal_size_x =
- mate_panel_applet_mateconf_get_int (mc->applet, "normal_size_x", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.normal_size_x = MC_DEFAULT_NORMAL_SIZE_X;
- }
- mc->preferences.normal_size_x = MAX (mc->preferences.normal_size_x, 50);
-
- mc->preferences.normal_size_y =
- mate_panel_applet_mateconf_get_int (mc->applet, "normal_size_y", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.normal_size_y = MC_DEFAULT_NORMAL_SIZE_Y;
- }
- mc->preferences.normal_size_y = CLAMP (mc->preferences.normal_size_y, 5, 200);
-
- mc->preferences.cmd_line_color_fg_r =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_r", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_fg_r = MC_DEFAULT_CMD_LINE_COLOR_FG_R;
- }
-
- mc->preferences.cmd_line_color_fg_g =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_g", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_fg_g = MC_DEFAULT_CMD_LINE_COLOR_FG_G;
- }
-
- mc->preferences.cmd_line_color_fg_b =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_b", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_fg_b = MC_DEFAULT_CMD_LINE_COLOR_FG_B;
- }
-
- mc->preferences.cmd_line_color_bg_r =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_r", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_bg_r = MC_DEFAULT_CMD_LINE_COLOR_BG_R;
- }
-
- mc->preferences.cmd_line_color_bg_g =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_g", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_bg_g = MC_DEFAULT_CMD_LINE_COLOR_BG_G;
- }
-
- mc->preferences.cmd_line_color_bg_b =
- mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_b", &error);
- if (error) {
- g_error_free (error);
- error = NULL;
- mc->preferences.cmd_line_color_bg_b = MC_DEFAULT_CMD_LINE_COLOR_BG_B;
- }
-
- mc->preferences.macros = mc_load_macros (mc);
-
- history = mate_panel_applet_mateconf_get_value (mc->applet, "history", NULL);
- if (history) {
- GSList *l;
-
- for (l = mateconf_value_get_list (history); l; l = l->next) {
- const char *entry = NULL;
-
- if ((entry = mateconf_value_get_string (l->data)))
- append_history_entry (mc, entry, TRUE);
- }
-
- mateconf_value_free (history);
- }
-
- mc_setup_listeners (mc);
-
- mc->preferences.idle_macros_loader_id = 0;
-}
diff --git a/mini-commander/src/preferences.h b/mini-commander/src/preferences.h
deleted file mode 100644
index f68c4093..00000000
--- a/mini-commander/src/preferences.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Mini-Commander Applet
- * Copyright (C) 1998, 1999 Oliver Maruhn <[email protected]>
- * 2002 Sun Microsystems Inc.
- *
- * 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
- */
-
-#ifndef __PREFERENCES_H__
-#define __PREFERENCES_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#include <sys/types.h>
-#include <regex.h>
-
-#include <gtk/gtk.h>
-
-typedef struct {
- char *pattern;
- char *command;
- regex_t regex;
-} MCMacro;
-
-typedef struct {
- int show_default_theme;
- int auto_complete_history;
-
- int normal_size_x;
- int normal_size_y;
- int panel_size_x;
-
- int cmd_line_color_fg_r;
- int cmd_line_color_fg_g;
- int cmd_line_color_fg_b;
- int cmd_line_color_bg_r;
- int cmd_line_color_bg_g;
- int cmd_line_color_bg_b;
-
- GSList *macros;
-
- guint idle_macros_loader_id;
-
-} MCPreferences;
-
-typedef struct {
- GtkWidget *dialog;
- GtkWidget *auto_complete_history_toggle;
- GtkWidget *size_spinner;
- GtkWidget *use_default_theme_toggle;
- GtkWidget *fg_color_picker;
- GtkWidget *bg_color_picker;
- GtkWidget *macros_tree;
- GtkWidget *delete_button;
- GtkWidget *add_button;
-
- GtkListStore *macros_store;
-
- GtkWidget *macro_add_dialog;
- GtkWidget *pattern_entry;
- GtkWidget *command_entry;
-} MCPrefsDialog;
-
-/* Defaults */
-#define MC_DEFAULT_SHOW_DEFAULT_THEME TRUE
-#define MC_DEFAULT_SHOW_HANDLE FALSE
-#define MC_DEFAULT_SHOW_FRAME FALSE
-#define MC_DEFAULT_AUTO_COMPLETE_HISTORY TRUE
-
-#define MC_DEFAULT_NORMAL_SIZE_X 150
-#define MC_DEFAULT_NORMAL_SIZE_Y 48
-
-#define MC_DEFAULT_CMD_LINE_COLOR_FG_R 0xfc65
-#define MC_DEFAULT_CMD_LINE_COLOR_FG_G 0xfc65
-#define MC_DEFAULT_CMD_LINE_COLOR_FG_B 0xfc65
-#define MC_DEFAULT_CMD_LINE_COLOR_BG_R 0x0
-#define MC_DEFAULT_CMD_LINE_COLOR_BG_G 0x0
-#define MC_DEFAULT_CMD_LINE_COLOR_BG_B 0x0
-
-#include "mini-commander_applet.h"
-
-void mc_load_preferences (MCData *mc);
-void mc_show_preferences (GtkAction *action,
- MCData *mc);
-void mc_macros_free (GSList *macros);
-
-gboolean mc_key_writable (MCData *mc,
- const char *key);
-
-G_END_DECLS
-
-#endif