diff options
author | Dan Winship <danw@src.gnome.org> | 2002-04-05 04:01:31 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2002-04-05 04:01:31 +0800 |
commit | 54ddaa6e4852542cf37cfb32fa6bfcec92a2dd0d (patch) | |
tree | 5db3acedbe64f229af7052db4ec38e7ac5c19a3d /shell/evolution-folder-selector-button.h | |
parent | 97e99e459e9a32c96ade6b1fbf9bd0da201de591 (diff) | |
download | gsoc2013-evolution-54ddaa6e4852542cf37cfb32fa6bfcec92a2dd0d.tar.gz gsoc2013-evolution-54ddaa6e4852542cf37cfb32fa6bfcec92a2dd0d.tar.zst gsoc2013-evolution-54ddaa6e4852542cf37cfb32fa6bfcec92a2dd0d.zip |
New widget for a button that displays a folder selection in a standard
* evolution-folder-selector-button.c: New widget for a button that
displays a folder selection in a standard form, and when clicked
lets the user select a new folder.
* Evolution-Shell.idl (FolderSelectionListener:notifySelected):
Make this take an Evolution:Folder instead of a pair of uris.
(Shell:getIconByType): New method to get the icon for a type from
the folder type registry.
* Evolution-common.idl (Folder): add "evolutionUri" to the folder
structure.
* Evolution-Storage.idl (StorageRegistry:getFolderByUri): get an
Evolution:Folder for a given uri.
* evolution-shell-client.c
(evolution_shell_client_user_select_folder): Update this to
reflect the IDL change: return a GNOME_Evolution_Folder instead of
a pair of URIs. Make sure it always sets *@folder_return to %NULL
if it fails (even if it's a g_return_if_fail).
(evolution_shell_client_get_storage_registry_interface): New.
(evolution_shell_client_get_pixbuf_for_type): New. Uses
Shell_getIconByType, but caches results.
* e-shell.c (folder_selection_dialog_folder_selected_cb): Update
for API change. (Return a GNOME_Evolution_Folder.)
(impl_Shell_getIconByType): Implement.
* e-corba-storage-registry.c
(impl_StorageRegistry_getFolderByUri): Implement.
* evolution-storage.c (evolution_storage_new_folder): Add a
(dummy) evolutionUri to the folder.
* Makefile.am (libeshell_la_SOURCES): add
evolution-folder-selector-button.c
(eshellinclude_HEADERS): and .h
svn path=/trunk/; revision=16352
Diffstat (limited to 'shell/evolution-folder-selector-button.h')
-rw-r--r-- | shell/evolution-folder-selector-button.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/shell/evolution-folder-selector-button.h b/shell/evolution-folder-selector-button.h new file mode 100644 index 0000000000..71b0a10165 --- /dev/null +++ b/shell/evolution-folder-selector-button.h @@ -0,0 +1,75 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* evolution-folder-selector-button.h + * + * Copyright (C) 2002 Ximian, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * 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., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __EVOLUTION_FOLDER_SELECTOR_BUTTON_H__ +#define __EVOLUTION_FOLDER_SELECTOR_BUTTON_H__ + +#include <gtk/gtkbutton.h> +#include "evolution-shell-client.h" + +#include "Evolution.h" + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + +#define EVOLUTION_TYPE_FOLDER_SELECTOR_BUTTON (evolution_folder_selector_button_get_type ()) +#define EVOLUTION_FOLDER_SELECTOR_BUTTON(obj) (GTK_CHECK_CAST ((obj), EVOLUTION_TYPE_FOLDER_SELECTOR_BUTTON, EvolutionFolderSelectorButton)) +#define EVOLUTION_FOLDER_SELECTOR_BUTTON_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_FOLDER_SELECTOR_BUTTON, EvolutionFolderSelectorButtonClass)) +#define EVOLUTION_IS_FOLDER_SELECTOR_BUTTON(obj) (GTK_CHECK_TYPE ((obj), EVOLUTION_TYPE_FOLDER_SELECTOR_BUTTON)) +#define EVOLUTION_IS_FOLDER_SELECTOR_BUTTON_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EVOLUTION_TYPE_FOLDER_SELECTOR_BUTTON)) + + +typedef struct _EvolutionFolderSelectorButton EvolutionFolderSelectorButton; +typedef struct _EvolutionFolderSelectorButtonPrivate EvolutionFolderSelectorButtonPrivate; +typedef struct _EvolutionFolderSelectorButtonClass EvolutionFolderSelectorButtonClass; + +struct _EvolutionFolderSelectorButton { + GtkButton parent; + + EvolutionFolderSelectorButtonPrivate *priv; +}; + +struct _EvolutionFolderSelectorButtonClass { + GtkButtonClass parent_class; + + /* signals */ + void (*selected) (GNOME_Evolution_Folder *folder); +}; + + +GtkType evolution_folder_selector_button_get_type (void); + +void evolution_folder_selector_button_construct (EvolutionFolderSelectorButton *folder_selector_button, + EvolutionShellClient *shell_client, + const char *title, + const char *initial_uri, + const char *possible_types[]); +GtkWidget *evolution_folder_selector_button_new (EvolutionShellClient *shell_client, + const char *title, + const char *initial_uri, + const char *possible_types[]); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __EVOLUTION_FOLDER_SELECTOR_BUTTON_H__ */ |