summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog-2000041433
-rw-r--r--components/html/ntl-web-browser.c3
-rw-r--r--components/music/Makefile.am7
-rw-r--r--components/rpmview/.cvsignore2
-rw-r--r--components/rpmview/Makefile.am7
-rw-r--r--components/rpmview/nautilus-rpm-view.c127
-rw-r--r--libnautilus/nautilus-meta-view-frame.c149
-rw-r--r--libnautilus/nautilus-meta-view-frame.h31
-rw-r--r--libnautilus/ntl-meta-view-frame.c149
-rw-r--r--libnautilus/ntl-meta-view-frame.h31
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