diff options
author | Darin Adler <darin@src.gnome.org> | 2000-04-03 18:27:22 +0000 |
---|---|---|
committer | Darin Adler <darin@src.gnome.org> | 2000-04-03 18:27:22 +0000 |
commit | 2fe15f1645d39857e32adcdb375c93ec1bb2a3ed (patch) | |
tree | 9f371171bbbad091f58f6f7650c38f032ffdc750 | |
parent | 2ee8f8389a3b49c2894529cdd9b5a2bf60dca6a9 (diff) | |
download | nautilus-2fe15f1645d39857e32adcdb375c93ec1bb2a3ed.tar.gz |
Fix the build. Changes in GtkHtml and Bonobo required us
to catch up.
* libnautilus/ntl-meta-view-frame.h:
* libnautilus/ntl-meta-view-frame.c:
Rewrote to use the new property bag. This requires us to
store our own properties, since the bag no longer provides
any storage.
(nautilus_meta_view_frame_initialize): Set up the label.
(nautilus_meta_view_frame_new_from_bonobo_control): Make it
actually take a BonoboControl instead of a BonoboObject and
make it set up the property bag.
(nautilus_meta_view_destroy): Free the label.
(autilus_meta_view_frame_set_label): Just set the label.
The property bag simply uses our stored label.
* components/html/ntl-web-browser.c (browser_url_load_gone):
Changed call to match name in new version of GtkHtml.
Unfortunately, the new name makes it clear the call is
intended to be private.
* components/rpmview/.cvsignore: Ignore the actual binary,
not nautilus-music-view.
* components/rpmview/Makefile.am: Turned on -Werror.
* components/music/Makefile.am: Turned on -Werror.
* components/rpmview/nautilus-rpm-view.c: Fixed warnings.
-rw-r--r-- | ChangeLog-20000414 | 33 | ||||
-rw-r--r-- | components/html/ntl-web-browser.c | 3 | ||||
-rw-r--r-- | components/music/Makefile.am | 7 | ||||
-rw-r--r-- | components/rpmview/.cvsignore | 2 | ||||
-rw-r--r-- | components/rpmview/Makefile.am | 7 | ||||
-rw-r--r-- | components/rpmview/nautilus-rpm-view.c | 127 | ||||
-rw-r--r-- | libnautilus/nautilus-meta-view-frame.c | 149 | ||||
-rw-r--r-- | libnautilus/nautilus-meta-view-frame.h | 31 | ||||
-rw-r--r-- | libnautilus/ntl-meta-view-frame.c | 149 | ||||
-rw-r--r-- | libnautilus/ntl-meta-view-frame.h | 31 |
10 files changed, 335 insertions, 204 deletions
diff --git a/ChangeLog-20000414 b/ChangeLog-20000414 index e7cdaa0ef..ae33652d2 100644 --- a/ChangeLog-20000414 +++ b/ChangeLog-20000414 @@ -1,4 +1,33 @@ -2000-03-02 Andy Hertzfeld <andy@eazel.com> +2000-04-03 Darin Adler <darin@eazel.com> + + Fix the build. Changes in GtkHtml and Bonobo required us + to catch up. + + * libnautilus/ntl-meta-view-frame.h: + * libnautilus/ntl-meta-view-frame.c: + Rewrote to use the new property bag. This requires us to + store our own properties, since the bag no longer provides + any storage. + (nautilus_meta_view_frame_initialize): Set up the label. + (nautilus_meta_view_frame_new_from_bonobo_control): Make it + actually take a BonoboControl instead of a BonoboObject and + make it set up the property bag. + (nautilus_meta_view_destroy): Free the label. + (autilus_meta_view_frame_set_label): Just set the label. + The property bag simply uses our stored label. + + * components/html/ntl-web-browser.c (browser_url_load_gone): + Changed call to match name in new version of GtkHtml. + Unfortunately, the new name makes it clear the call is + intended to be private. + + * components/rpmview/.cvsignore: Ignore the actual binary, + not nautilus-music-view. + * components/rpmview/Makefile.am: Turned on -Werror. + * components/music/Makefile.am: Turned on -Werror. + * components/rpmview/nautilus-rpm-view.c: Fixed warnings. + +2000-04-02 Andy Hertzfeld <andy@eazel.com> Added a first cut at a component for viewing rpm packages. @@ -13,7 +42,7 @@ which reads a package with rpm and sets up the fields in the view from the data * src/ntl-uri-map.c: modified mapping so rpms get this component added -2000-03-01 Ramiro Estrugo <ramiro@eazel.com> +2000-04-01 Ramiro Estrugo <ramiro@eazel.com> Add a conditionally built skeleton for a startup service. diff --git a/components/html/ntl-web-browser.c b/components/html/ntl-web-browser.c index 4897f337a..f0b94839f 100644 --- a/components/html/ntl-web-browser.c +++ b/components/html/ntl-web-browser.c @@ -183,7 +183,8 @@ browser_url_load_done(GtkWidget *htmlw, BrowserInfo *bi) { Nautilus_ProgressRequestInfo pri; - gtk_html_calc_scrollbars(GTK_HTML(bi->htmlw)); + /* FIXME: If this is private, we should not be calling it. */ + gtk_html_private_calc_scrollbars(GTK_HTML(bi->htmlw)); memset(&pri, 0, sizeof(pri)); diff --git a/components/music/Makefile.am b/components/music/Makefile.am index 9ecbfb291..fc5b0ed3c 100644 --- a/components/music/Makefile.am +++ b/components/music/Makefile.am @@ -1,5 +1,3 @@ - - CPPFLAGS = \ -DPREFIX=\"$(prefix)\" -DG_LOG_DOMAIN=\"Nautilus-Music\" @@ -7,7 +5,8 @@ CPPFLAGS = \ INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ - $(GNOMEUI_CFLAGS) + $(GNOMEUI_CFLAGS) \ + $(WERROR) gnorbadir = $(sysconfdir)/CORBA/servers @@ -18,7 +17,7 @@ gnorba_DATA = \ bin_PROGRAMS = \ nautilus-music-view -nautilus_music_view_SOURCES = \ +nautilus_music_view_SOURCES = \ nautilus-music-view.c \ nautilus-music-view.h \ main.c diff --git a/components/rpmview/.cvsignore b/components/rpmview/.cvsignore index 1c2b6dfaa..65720a854 100644 --- a/components/rpmview/.cvsignore +++ b/components/rpmview/.cvsignore @@ -2,4 +2,4 @@ .libs Makefile Makefile.in -nautilus-music-view +nautilus-rpm-view diff --git a/components/rpmview/Makefile.am b/components/rpmview/Makefile.am index d3a648c20..1e3cc7007 100644 --- a/components/rpmview/Makefile.am +++ b/components/rpmview/Makefile.am @@ -1,5 +1,3 @@ - - CPPFLAGS = \ -DPREFIX=\"$(prefix)\" -DG_LOG_DOMAIN=\"Nautilus-RPM\" @@ -8,7 +6,8 @@ INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ -I/usr/include/rpm \ - $(GNOMEUI_CFLAGS) + $(GNOMEUI_CFLAGS) \ + $(WERROR) gnorbadir = $(sysconfdir)/CORBA/servers @@ -19,7 +18,7 @@ gnorba_DATA = \ bin_PROGRAMS = \ nautilus-rpm-view -nautilus_rpm_view_SOURCES = \ +nautilus_rpm_view_SOURCES = \ nautilus-rpm-view.c \ nautilus-rpm-view.h \ main.c diff --git a/components/rpmview/nautilus-rpm-view.c b/components/rpmview/nautilus-rpm-view.c index 5bae42b76..077eef78d 100644 --- a/components/rpmview/nautilus-rpm-view.c +++ b/components/rpmview/nautilus-rpm-view.c @@ -336,15 +336,19 @@ nautilus_rpm_view_realize(GtkWidget *widget) nautilus_background_set_color (background, RPM_VIEW_DEFAULT_BACKGROUND_COLOR); } -/* utility to format time using std libarary routines */ +/* utility to format time using std library routines */ -gchar* format_time(gint time_value) +#if 0 + +static char* format_time(time_t time_value) { - gchar *time_string = strdup(ctime(&time_value)); + char *time_string = g_strdup(ctime(&time_value)); time_string[strlen(time_string) - 1] = '\0'; return time_string; } +#endif + /* here's where we do most of the real work of populating the view with info from the package */ /* open the package and copy the information, and then set up the appropriate views with it */ /* FIXME: use gnome-vfs to open the package */ @@ -355,19 +359,19 @@ nautilus_rpm_view_update_from_uri (NautilusRPMView *rpm_view, const char *uri) /* open the package */ HeaderIterator iterator; Header header_info, signature; - gchar buffer[512]; - gint iterator_tag, type, data_size, result; - gchar *data_ptr, *temp_str, *time_string; - gint file_descriptor; - gint *integer_ptr; - gchar *temp_version = NULL; - gchar *temp_release = NULL; - const gchar *path_name = uri + 7; + char buffer[512]; + int iterator_tag, type, data_size, result; + char *data_ptr, *temp_str; + int file_descriptor; + int *integer_ptr; + char *temp_version = NULL; + char *temp_release = NULL; + const char *path_name = uri + 7; file_descriptor = open(path_name, O_RDONLY, 0644); if (file_descriptor >= 0) { - + /* read out the appropriate fields, and set them up in the view */ result = rpmReadPackageInfo((FD_t)&file_descriptor, &signature, &header_info); if (result) { @@ -379,53 +383,53 @@ nautilus_rpm_view_update_from_uri (NautilusRPMView *rpm_view, const char *uri) while (headerNextIterator(iterator, &iterator_tag, &type, (void**)&data_ptr, &data_size)) { integer_ptr = (int*) data_ptr; switch (iterator_tag) { - case RPMTAG_NAME: - temp_str = g_strdup_printf("Package \"%s\" ", data_ptr); - gtk_label_set (GTK_LABEL (rpm_view->details->package_title), temp_str); - g_free(temp_str); - break; - case RPMTAG_VERSION: - temp_version = strdup(data_ptr); - break; - case RPMTAG_RELEASE: - temp_release = strdup(data_ptr); - break; - case RPMTAG_SUMMARY: - gtk_label_set (GTK_LABEL (rpm_view->details->package_summary), data_ptr+4); - break; - case RPMTAG_DESCRIPTION: - gtk_label_set (GTK_LABEL (rpm_view->details->package_description), data_ptr+4); - break; - case RPMTAG_SIZE: - temp_str = gnome_vfs_file_size_to_string (*integer_ptr); - gtk_label_set (GTK_LABEL (rpm_view->details->package_size), temp_str); - g_free(temp_str); - break; - case RPMTAG_DISTRIBUTION: - gtk_label_set (GTK_LABEL (rpm_view->details->package_distribution), data_ptr+4); - break; - case RPMTAG_GROUP: - break; - case RPMTAG_ICON: - break; - case RPMTAG_LICENSE: - gtk_label_set (GTK_LABEL (rpm_view->details->package_license), data_ptr); - break; - case RPMTAG_BUILDTIME: - strftime(buffer, 511, "%a %b %d %I:%M:%S %Z %Y", gmtime(integer_ptr)); - gtk_label_set(GTK_LABEL(rpm_view->details->package_bdate), buffer); - break; - case RPMTAG_INSTALLTIME: - strftime(buffer, 511, "%a %b %d %I:%M:%S %Z %Y", gmtime(integer_ptr)); - gtk_label_set(GTK_LABEL(rpm_view->details->package_idate), buffer); - break; - case RPMTAG_VENDOR: - gtk_label_set (GTK_LABEL (rpm_view->details->package_vendor), data_ptr); - break; - case RPMTAG_GIF: - break; - case RPMTAG_XPM: - break; + case RPMTAG_NAME: + temp_str = g_strdup_printf("Package \"%s\" ", data_ptr); + gtk_label_set (GTK_LABEL (rpm_view->details->package_title), temp_str); + g_free(temp_str); + break; + case RPMTAG_VERSION: + temp_version = g_strdup(data_ptr); + break; + case RPMTAG_RELEASE: + temp_release = g_strdup(data_ptr); + break; + case RPMTAG_SUMMARY: + gtk_label_set (GTK_LABEL (rpm_view->details->package_summary), data_ptr+4); + break; + case RPMTAG_DESCRIPTION: + gtk_label_set (GTK_LABEL (rpm_view->details->package_description), data_ptr+4); + break; + case RPMTAG_SIZE: + temp_str = gnome_vfs_file_size_to_string (*integer_ptr); + gtk_label_set (GTK_LABEL (rpm_view->details->package_size), temp_str); + g_free(temp_str); + break; + case RPMTAG_DISTRIBUTION: + gtk_label_set (GTK_LABEL (rpm_view->details->package_distribution), data_ptr+4); + break; + case RPMTAG_GROUP: + break; + case RPMTAG_ICON: + break; + case RPMTAG_LICENSE: + gtk_label_set (GTK_LABEL (rpm_view->details->package_license), data_ptr); + break; + case RPMTAG_BUILDTIME: + strftime(buffer, 511, "%a %b %d %I:%M:%S %Z %Y", gmtime((time_t *) data_ptr)); + gtk_label_set(GTK_LABEL(rpm_view->details->package_bdate), buffer); + break; + case RPMTAG_INSTALLTIME: + strftime(buffer, 511, "%a %b %d %I:%M:%S %Z %Y", gmtime((time_t *) data_ptr)); + gtk_label_set(GTK_LABEL(rpm_view->details->package_idate), buffer); + break; + case RPMTAG_VENDOR: + gtk_label_set (GTK_LABEL (rpm_view->details->package_vendor), data_ptr); + break; + case RPMTAG_GIF: + break; + case RPMTAG_XPM: + break; } } @@ -455,15 +459,14 @@ void nautilus_rpm_view_load_uri (NautilusRPMView *rpm_view, const char *uri) { g_free(rpm_view->details->current_uri); - rpm_view->details->current_uri = g_strdup (uri); nautilus_rpm_view_update_from_uri(rpm_view, uri); } static void rpm_view_notify_location_change_callback (NautilusContentViewFrame *view, - Nautilus_NavigationInfo *navinfo, - NautilusRPMView *rpm_view) + Nautilus_NavigationInfo *navinfo, + NautilusRPMView *rpm_view) { Nautilus_ProgressRequestInfo progress; diff --git a/libnautilus/nautilus-meta-view-frame.c b/libnautilus/nautilus-meta-view-frame.c index 05d498092..56037dc54 100644 --- a/libnautilus/nautilus-meta-view-frame.c +++ b/libnautilus/nautilus-meta-view-frame.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libnautilus: A library for nautilus view implementations. @@ -35,22 +35,25 @@ #include <bonobo/bonobo-property-bag.h> #include <libnautilus/nautilus-gtk-macros.h> +struct NautilusMetaViewFrameDetails { + char *label; +}; -typedef struct { - POA_Nautilus_View servant; - gpointer bonobo_object; +/* Property indices. */ +enum { + LABEL +}; - NautilusMetaViewFrame *view; +typedef struct { + POA_Nautilus_View servant; + gpointer bonobo_object; + + NautilusMetaViewFrame *view; } impl_POA_Nautilus_MetaView; extern POA_Nautilus_View__epv libnautilus_Nautilus_View_epv; - -static POA_Nautilus_MetaView__epv impl_Nautilus_MetaView_epv = { - NULL /* _private */ -}; - -static PortableServer_ServantBase__epv base_epv = { NULL, NULL, NULL }; - +static POA_Nautilus_MetaView__epv impl_Nautilus_MetaView_epv; +static PortableServer_ServantBase__epv base_epv; static POA_Nautilus_MetaView__vepv impl_Nautilus_MetaView_vepv = { &base_epv, @@ -65,69 +68,113 @@ static void nautilus_meta_view_frame_initialize_class (NautilusMetaViewFrameClas NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusMetaViewFrame, nautilus_meta_view_frame, NAUTILUS_TYPE_VIEW_FRAME) - static void -nautilus_meta_view_frame_initialize (NautilusMetaViewFrame *view) +nautilus_meta_view_frame_initialize (NautilusMetaViewFrame *view) { + view->details = g_new0 (NautilusMetaViewFrameDetails, 1); } NautilusMetaViewFrame * nautilus_meta_view_frame_new (GtkWidget *widget) { - BonoboObject *control; + BonoboControl *control; - control = BONOBO_OBJECT (bonobo_control_new (widget)); + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + + control = bonobo_control_new (widget); + return nautilus_meta_view_frame_new_from_bonobo_control (control); +} - return nautilus_meta_view_frame_new_from_bonobo_control (control); +static void +set_property (BonoboPropertyBag *bag, + const BonoboArg *arg, + guint arg_id, + gpointer user_data) +{ + NautilusMetaViewFrame *view; + + view = NAUTILUS_META_VIEW_FRAME (user_data); + + switch (arg_id) { + case LABEL: + nautilus_meta_view_frame_set_label (view, + BONOBO_ARG_GET_STRING (arg)); + break; + + default: + g_warning ("unknown property"); + } } -NautilusMetaViewFrame * -nautilus_meta_view_frame_new_from_bonobo_control (BonoboObject *bonobo_control) +static void +get_property (BonoboPropertyBag *bag, + BonoboArg *arg, + guint arg_id, + gpointer user_data) { - NautilusMetaViewFrame *view; - - view = NAUTILUS_META_VIEW_FRAME (gtk_object_new (NAUTILUS_TYPE_META_VIEW_FRAME, - "bonobo_control", bonobo_control, - NULL)); + NautilusMetaViewFrame *view; + + view = NAUTILUS_META_VIEW_FRAME (user_data); + + switch (arg_id) { + case LABEL: + BONOBO_ARG_SET_STRING (arg, view->details->label); + break; + + default: + g_warning ("unknown property"); + } +} - return view; +NautilusMetaViewFrame * +nautilus_meta_view_frame_new_from_bonobo_control (BonoboControl *bonobo_control) +{ + NautilusMetaViewFrame *view; + BonoboPropertyBag *bag; + + g_return_val_if_fail (BONOBO_IS_CONTROL (bonobo_control), NULL); + g_return_val_if_fail (bonobo_control_get_property_bag (BONOBO_CONTROL (bonobo_control)) == NULL, NULL); + + view = NAUTILUS_META_VIEW_FRAME (gtk_object_new (NAUTILUS_TYPE_META_VIEW_FRAME, + "bonobo_control", bonobo_control, + NULL)); + + bag = bonobo_property_bag_new (get_property, set_property, view); + bonobo_property_bag_add (bag, "label", LABEL, BONOBO_ARG_STRING, NULL, + _("Label"), 0); + bonobo_control_set_property_bag (bonobo_control, bag); + + return view; } static void -nautilus_meta_view_frame_destroy (NautilusMetaViewFrame *view) -{ - NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, GTK_OBJECT (view)); +nautilus_meta_view_frame_destroy (NautilusMetaViewFrame *view) +{ + g_free (view->details->label); + g_free (view->details); + NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, GTK_OBJECT (view)); } static void nautilus_meta_view_frame_initialize_class (NautilusMetaViewFrameClass *klass) { - NautilusViewFrameClass *view_class = ((NautilusViewFrameClass *)klass); - - GTK_OBJECT_CLASS(klass)->destroy = (void (*)(GtkObject *))nautilus_meta_view_frame_destroy; - - view_class->servant_init_func = POA_Nautilus_MetaView__init; - view_class->servant_destroy_func = POA_Nautilus_MetaView__fini; - view_class->vepv = &impl_Nautilus_MetaView_vepv; + NautilusViewFrameClass *view_class; + + view_class = NAUTILUS_VIEW_FRAME_CLASS (klass); + + GTK_OBJECT_CLASS (klass)->destroy = (void (*)(GtkObject *)) nautilus_meta_view_frame_destroy; + + view_class->servant_init_func = POA_Nautilus_MetaView__init; + view_class->servant_destroy_func = POA_Nautilus_MetaView__fini; + view_class->vepv = &impl_Nautilus_MetaView_vepv; } void -nautilus_meta_view_frame_set_label(NautilusMetaViewFrame *mvc, const char *label) +nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *view, + const char *label) { - BonoboObject *ctl; - BonoboPropertyBag *bag; - - ctl = nautilus_view_frame_get_bonobo_control (NAUTILUS_VIEW_FRAME (mvc)); - - bag = bonobo_control_get_property_bag (BONOBO_CONTROL (ctl)); - - if (!bag) - { - bag = bonobo_property_bag_new (); - bonobo_control_set_property_bag (BONOBO_CONTROL (ctl), bag); - } + g_return_if_fail (NAUTILUS_IS_META_VIEW_FRAME (view)); - bonobo_property_bag_add (bag, "label", "string", - g_strdup (label), g_strdup (label), - _("Label"), BONOBO_PROPERTY_READ_ONLY); + g_free (view->details->label); + view->details->label = g_strdup (label); } diff --git a/libnautilus/nautilus-meta-view-frame.h b/libnautilus/nautilus-meta-view-frame.h index 800f97f1b..1a4320354 100644 --- a/libnautilus/nautilus-meta-view-frame.h +++ b/libnautilus/nautilus-meta-view-frame.h @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libnautilus: A library for nautilus view implementations. @@ -30,28 +30,31 @@ #define NTL_META_VIEW_FRAME_H #include <libnautilus/ntl-view-frame.h> +#include <bonobo/bonobo-control.h> #define NAUTILUS_TYPE_META_VIEW_FRAME (nautilus_meta_view_frame_get_type ()) #define NAUTILUS_META_VIEW_FRAME(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_META_VIEW_FRAME, NautilusMetaViewFrame)) #define NAUTILUS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_META_VIEW_FRAME, NautilusMetaViewFrameClass)) -#define NAUTILUS_IS_META_VIEW_FRAME(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) -#define NAUTILUS_IS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) +#define NAUTILUS_IS_META_VIEW_FRAME(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) +#define NAUTILUS_IS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) -typedef struct _NautilusMetaViewFrame NautilusMetaViewFrame; -typedef struct _NautilusMetaViewFrameClass NautilusMetaViewFrameClass; +typedef struct NautilusMetaViewFrame NautilusMetaViewFrame; +typedef struct NautilusMetaViewFrameClass NautilusMetaViewFrameClass; +typedef struct NautilusMetaViewFrameDetails NautilusMetaViewFrameDetails; -struct _NautilusMetaViewFrameClass { - NautilusViewFrameClass parent_spot; +struct NautilusMetaViewFrame { + NautilusViewFrame base; + NautilusMetaViewFrameDetails *details; }; -struct _NautilusMetaViewFrame { - NautilusViewFrame parent; +struct NautilusMetaViewFrameClass { + NautilusViewFrameClass base; }; -GtkType nautilus_meta_view_frame_get_type (void); -NautilusMetaViewFrame *nautilus_meta_view_frame_new (GtkWidget *widget); -NautilusMetaViewFrame *nautilus_meta_view_frame_new_from_bonobo_control (BonoboObject *bonobo_control); -void nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *mvc, - const char *label); +GtkType nautilus_meta_view_frame_get_type (void); +NautilusMetaViewFrame *nautilus_meta_view_frame_new (GtkWidget *widget); +NautilusMetaViewFrame *nautilus_meta_view_frame_new_from_bonobo_control (BonoboControl *control); +void nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *view, + const char *label); #endif diff --git a/libnautilus/ntl-meta-view-frame.c b/libnautilus/ntl-meta-view-frame.c index 05d498092..56037dc54 100644 --- a/libnautilus/ntl-meta-view-frame.c +++ b/libnautilus/ntl-meta-view-frame.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libnautilus: A library for nautilus view implementations. @@ -35,22 +35,25 @@ #include <bonobo/bonobo-property-bag.h> #include <libnautilus/nautilus-gtk-macros.h> +struct NautilusMetaViewFrameDetails { + char *label; +}; -typedef struct { - POA_Nautilus_View servant; - gpointer bonobo_object; +/* Property indices. */ +enum { + LABEL +}; - NautilusMetaViewFrame *view; +typedef struct { + POA_Nautilus_View servant; + gpointer bonobo_object; + + NautilusMetaViewFrame *view; } impl_POA_Nautilus_MetaView; extern POA_Nautilus_View__epv libnautilus_Nautilus_View_epv; - -static POA_Nautilus_MetaView__epv impl_Nautilus_MetaView_epv = { - NULL /* _private */ -}; - -static PortableServer_ServantBase__epv base_epv = { NULL, NULL, NULL }; - +static POA_Nautilus_MetaView__epv impl_Nautilus_MetaView_epv; +static PortableServer_ServantBase__epv base_epv; static POA_Nautilus_MetaView__vepv impl_Nautilus_MetaView_vepv = { &base_epv, @@ -65,69 +68,113 @@ static void nautilus_meta_view_frame_initialize_class (NautilusMetaViewFrameClas NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusMetaViewFrame, nautilus_meta_view_frame, NAUTILUS_TYPE_VIEW_FRAME) - static void -nautilus_meta_view_frame_initialize (NautilusMetaViewFrame *view) +nautilus_meta_view_frame_initialize (NautilusMetaViewFrame *view) { + view->details = g_new0 (NautilusMetaViewFrameDetails, 1); } NautilusMetaViewFrame * nautilus_meta_view_frame_new (GtkWidget *widget) { - BonoboObject *control; + BonoboControl *control; - control = BONOBO_OBJECT (bonobo_control_new (widget)); + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + + control = bonobo_control_new (widget); + return nautilus_meta_view_frame_new_from_bonobo_control (control); +} - return nautilus_meta_view_frame_new_from_bonobo_control (control); +static void +set_property (BonoboPropertyBag *bag, + const BonoboArg *arg, + guint arg_id, + gpointer user_data) +{ + NautilusMetaViewFrame *view; + + view = NAUTILUS_META_VIEW_FRAME (user_data); + + switch (arg_id) { + case LABEL: + nautilus_meta_view_frame_set_label (view, + BONOBO_ARG_GET_STRING (arg)); + break; + + default: + g_warning ("unknown property"); + } } -NautilusMetaViewFrame * -nautilus_meta_view_frame_new_from_bonobo_control (BonoboObject *bonobo_control) +static void +get_property (BonoboPropertyBag *bag, + BonoboArg *arg, + guint arg_id, + gpointer user_data) { - NautilusMetaViewFrame *view; - - view = NAUTILUS_META_VIEW_FRAME (gtk_object_new (NAUTILUS_TYPE_META_VIEW_FRAME, - "bonobo_control", bonobo_control, - NULL)); + NautilusMetaViewFrame *view; + + view = NAUTILUS_META_VIEW_FRAME (user_data); + + switch (arg_id) { + case LABEL: + BONOBO_ARG_SET_STRING (arg, view->details->label); + break; + + default: + g_warning ("unknown property"); + } +} - return view; +NautilusMetaViewFrame * +nautilus_meta_view_frame_new_from_bonobo_control (BonoboControl *bonobo_control) +{ + NautilusMetaViewFrame *view; + BonoboPropertyBag *bag; + + g_return_val_if_fail (BONOBO_IS_CONTROL (bonobo_control), NULL); + g_return_val_if_fail (bonobo_control_get_property_bag (BONOBO_CONTROL (bonobo_control)) == NULL, NULL); + + view = NAUTILUS_META_VIEW_FRAME (gtk_object_new (NAUTILUS_TYPE_META_VIEW_FRAME, + "bonobo_control", bonobo_control, + NULL)); + + bag = bonobo_property_bag_new (get_property, set_property, view); + bonobo_property_bag_add (bag, "label", LABEL, BONOBO_ARG_STRING, NULL, + _("Label"), 0); + bonobo_control_set_property_bag (bonobo_control, bag); + + return view; } static void -nautilus_meta_view_frame_destroy (NautilusMetaViewFrame *view) -{ - NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, GTK_OBJECT (view)); +nautilus_meta_view_frame_destroy (NautilusMetaViewFrame *view) +{ + g_free (view->details->label); + g_free (view->details); + NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, GTK_OBJECT (view)); } static void nautilus_meta_view_frame_initialize_class (NautilusMetaViewFrameClass *klass) { - NautilusViewFrameClass *view_class = ((NautilusViewFrameClass *)klass); - - GTK_OBJECT_CLASS(klass)->destroy = (void (*)(GtkObject *))nautilus_meta_view_frame_destroy; - - view_class->servant_init_func = POA_Nautilus_MetaView__init; - view_class->servant_destroy_func = POA_Nautilus_MetaView__fini; - view_class->vepv = &impl_Nautilus_MetaView_vepv; + NautilusViewFrameClass *view_class; + + view_class = NAUTILUS_VIEW_FRAME_CLASS (klass); + + GTK_OBJECT_CLASS (klass)->destroy = (void (*)(GtkObject *)) nautilus_meta_view_frame_destroy; + + view_class->servant_init_func = POA_Nautilus_MetaView__init; + view_class->servant_destroy_func = POA_Nautilus_MetaView__fini; + view_class->vepv = &impl_Nautilus_MetaView_vepv; } void -nautilus_meta_view_frame_set_label(NautilusMetaViewFrame *mvc, const char *label) +nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *view, + const char *label) { - BonoboObject *ctl; - BonoboPropertyBag *bag; - - ctl = nautilus_view_frame_get_bonobo_control (NAUTILUS_VIEW_FRAME (mvc)); - - bag = bonobo_control_get_property_bag (BONOBO_CONTROL (ctl)); - - if (!bag) - { - bag = bonobo_property_bag_new (); - bonobo_control_set_property_bag (BONOBO_CONTROL (ctl), bag); - } + g_return_if_fail (NAUTILUS_IS_META_VIEW_FRAME (view)); - bonobo_property_bag_add (bag, "label", "string", - g_strdup (label), g_strdup (label), - _("Label"), BONOBO_PROPERTY_READ_ONLY); + g_free (view->details->label); + view->details->label = g_strdup (label); } diff --git a/libnautilus/ntl-meta-view-frame.h b/libnautilus/ntl-meta-view-frame.h index 800f97f1b..1a4320354 100644 --- a/libnautilus/ntl-meta-view-frame.h +++ b/libnautilus/ntl-meta-view-frame.h @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libnautilus: A library for nautilus view implementations. @@ -30,28 +30,31 @@ #define NTL_META_VIEW_FRAME_H #include <libnautilus/ntl-view-frame.h> +#include <bonobo/bonobo-control.h> #define NAUTILUS_TYPE_META_VIEW_FRAME (nautilus_meta_view_frame_get_type ()) #define NAUTILUS_META_VIEW_FRAME(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_META_VIEW_FRAME, NautilusMetaViewFrame)) #define NAUTILUS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_META_VIEW_FRAME, NautilusMetaViewFrameClass)) -#define NAUTILUS_IS_META_VIEW_FRAME(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) -#define NAUTILUS_IS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) +#define NAUTILUS_IS_META_VIEW_FRAME(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) +#define NAUTILUS_IS_META_VIEW_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), NAUTILUS_TYPE_META_VIEW_FRAME)) -typedef struct _NautilusMetaViewFrame NautilusMetaViewFrame; -typedef struct _NautilusMetaViewFrameClass NautilusMetaViewFrameClass; +typedef struct NautilusMetaViewFrame NautilusMetaViewFrame; +typedef struct NautilusMetaViewFrameClass NautilusMetaViewFrameClass; +typedef struct NautilusMetaViewFrameDetails NautilusMetaViewFrameDetails; -struct _NautilusMetaViewFrameClass { - NautilusViewFrameClass parent_spot; +struct NautilusMetaViewFrame { + NautilusViewFrame base; + NautilusMetaViewFrameDetails *details; }; -struct _NautilusMetaViewFrame { - NautilusViewFrame parent; +struct NautilusMetaViewFrameClass { + NautilusViewFrameClass base; }; -GtkType nautilus_meta_view_frame_get_type (void); -NautilusMetaViewFrame *nautilus_meta_view_frame_new (GtkWidget *widget); -NautilusMetaViewFrame *nautilus_meta_view_frame_new_from_bonobo_control (BonoboObject *bonobo_control); -void nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *mvc, - const char *label); +GtkType nautilus_meta_view_frame_get_type (void); +NautilusMetaViewFrame *nautilus_meta_view_frame_new (GtkWidget *widget); +NautilusMetaViewFrame *nautilus_meta_view_frame_new_from_bonobo_control (BonoboControl *control); +void nautilus_meta_view_frame_set_label (NautilusMetaViewFrame *view, + const char *label); #endif |