diff options
Diffstat (limited to 'gsearchtool/src/gsearchtool.h')
-rw-r--r-- | gsearchtool/src/gsearchtool.h | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/gsearchtool/src/gsearchtool.h b/gsearchtool/src/gsearchtool.h new file mode 100644 index 00000000..f48c13f2 --- /dev/null +++ b/gsearchtool/src/gsearchtool.h @@ -0,0 +1,243 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * MATE Search Tool + * + * File: gsearchtool.h + * + * (C) 1998,2002 the Free Software Foundation + * + * Authors: Dennis Cranston <[email protected]> + * George Lebl + * + * 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 _GSEARCHTOOL_H_ +#define _GSEARCHTOOL_H_ + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif + +#include <gtk/gtk.h> + +#define GSEARCH_TYPE_WINDOW gsearch_window_get_type() +#define GSEARCH_WINDOW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSEARCH_TYPE_WINDOW, GSearchWindow)) +#define GSEARCH_WINDOW_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GSEARCH_TYPE_WINDOW, GSearchWindowClass)) +#define GSEARCH_IS_WINDOW(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSEARCH_TYPE_WINDOW)) +#define GSEARCH_IS_WINDOW_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GSEARCH_TYPE_WINDOW)) +#define GSEARCH_WINDOW_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GSEARCH_TYPE_WINDOW, GSearchWindowClass)) + +#define MATE_SEARCH_TOOL_ICON "system-search" +#define MINIMUM_WINDOW_WIDTH 420 +#define MINIMUM_WINDOW_HEIGHT 310 +#define DEFAULT_WINDOW_WIDTH 554 +#define DEFAULT_WINDOW_HEIGHT 350 +#define WINDOW_HEIGHT_STEP 35 +#define NUM_VISIBLE_COLUMNS 5 +#define CAJA_PREFERENCES_SCHEMA "org.mate.caja.preferences" + +typedef enum { + STOPPED, + ABORTED, + RUNNING, + MAKE_IT_STOP, + MAKE_IT_QUIT +} GSearchCommandStatus; + +typedef enum { + SPEED_TRADEOFF_ALWAYS = 0, + SPEED_TRADEOFF_LOCAL_ONLY, + SPEED_TRADEOFF_NEVER +} CajaSpeedTradeoff; + +typedef enum { + CAJA_DATE_FORMAT_LOCALE = 0, + CAJA_DATE_FORMAT_ISO, + CAJA_DATE_FORMAT_INFORMAL +} CajaDateFormat; + +typedef enum { + COLUMN_ICON, + COLUMN_NAME, + COLUMN_RELATIVE_PATH, + COLUMN_LOCALE_FILE, + COLUMN_READABLE_SIZE, + COLUMN_SIZE, + COLUMN_TYPE, + COLUMN_READABLE_DATE, + COLUMN_DATE, + COLUMN_MONITOR, + COLUMN_NO_FILES_FOUND, + NUM_COLUMNS +} GSearchResultColumns; + +typedef struct _GSearchWindow GSearchWindow; +typedef struct _GSearchWindowClass GSearchWindowClass; +typedef struct _GSearchCommandDetails GSearchCommandDetails; +typedef struct _GSearchConstraint GSearchConstraint; +typedef struct _GSearchMonitor GSearchMonitor; + +struct _GSearchWindow { + GtkWindow parent_instance; + + GtkWidget * window; + GtkUIManager * window_ui_manager; + GdkGeometry window_geometry; + gint window_width; + gint window_height; + gboolean is_window_maximized; + gboolean is_window_accessible; + + GtkWidget * name_contains_entry; + GtkWidget * look_in_folder_button; + GtkWidget * name_and_folder_table; + GtkWidget * progress_spinner; + GtkWidget * find_button; + GtkWidget * stop_button; + GtkWidget * focus; + + GtkWidget * show_more_options_expander; + GtkWidget * available_options_vbox; + GtkWidget * available_options_label; + GtkWidget * available_options_combo_box; + GtkWidget * available_options_add_button; + GtkSizeGroup * available_options_button_size_group; + GList * available_options_selected_list; + + GtkWidget * files_found_label; + GtkWidget * search_results_vbox; + GtkWidget * search_results_popup_menu; + GtkWidget * search_results_popup_submenu; + GtkWidget * search_results_save_results_as_item; + GtkTreeView * search_results_tree_view; + GtkTreeViewColumn * search_results_folder_column; + GtkTreeViewColumn * search_results_size_column; + GtkTreeViewColumn * search_results_type_column; + GtkTreeViewColumn * search_results_date_column; + GtkListStore * search_results_list_store; + GtkCellRenderer * search_results_name_cell_renderer; + GtkTreeSelection * search_results_selection; + GtkTreeIter search_results_iter; + GtkTreePath * search_results_hover_path; + GHashTable * search_results_filename_hash_table; + GHashTable * search_results_pixbuf_hash_table; + CajaDateFormat search_results_date_format; + gint show_thumbnails_file_size_limit; + gboolean show_thumbnails; + gboolean is_search_results_single_click_to_activate; + gboolean is_locate_database_check_finished; + gboolean is_locate_database_available; + + gchar * save_results_as_default_filename; + + GSettings * mate_search_tool_settings; + GSettings * mate_search_tool_select_settings; + GSettings * mate_desktop_interface_settings; + GSettings * caja_settings; + gboolean caja_schema_exists; + + GSearchCommandDetails * command_details; +}; + +struct _GSearchCommandDetails { + pid_t command_pid; + GSearchCommandStatus command_status; + + gchar * name_contains_pattern_string; + gchar * name_contains_regex_string; + gchar * look_in_folder_string; + + gboolean is_command_first_pass; + gboolean is_command_using_quick_mode; + gboolean is_command_second_pass_enabled; + gboolean is_command_show_hidden_files_enabled; + gboolean is_command_regex_matching_enabled; + gboolean is_command_timeout_enabled; +}; + +struct _GSearchConstraint { + gint constraint_id; + union { + gchar * text; + gint time; + gint number; + } data; +}; + +struct _GSearchWindowClass { + GtkWindowClass parent_class; +}; + +struct _GSearchMonitor { + GSearchWindow * gsearch; + GtkTreeRowReference * reference; + GFileMonitor * handle; +}; + +GType +gsearch_window_get_type (void); + +gchar * +build_search_command (GSearchWindow * gsearch, + gboolean first_pass); +void +spawn_search_command (GSearchWindow * gsearch, + gchar * command); +void +add_constraint (GSearchWindow * gsearch, + gint constraint_id, + gchar * value, + gboolean show_constraint); +void +update_constraint_info (GSearchConstraint * constraint, + gchar * info); +void +remove_constraint (gint constraint_id); + +void +set_constraint_gsettings_boolean (gint constraint_id, + gboolean flag); +void +set_constraint_selected_state (GSearchWindow * gsearch, + gint constraint_id, + gboolean state); +void +set_clone_command (GSearchWindow * gsearch, + gint * argcp, + gchar *** argvp, + gpointer client_data, + gboolean escape_values); +void +update_search_counts (GSearchWindow * gsearch); + +gboolean +tree_model_iter_free_monitor (GtkTreeModel * model, + GtkTreePath * path, + GtkTreeIter * iter, + gpointer data); + +#ifdef __cplusplus +} +#endif + +#endif /* _GSEARCHTOOL_H_ */ |