nautilus/libnautilus/nautilus-view-standard-main.h
Maciej Stachowiak 8c61df4003 reviewed by: Darin Adler <darin@eazel.com>
* libnautilus/nautilus-view.c, libnautilus/nautilus-view.h
	(nautilus_view_construct,
	nautilus_view_construct_from_bonobo_control): New construct
	functions so it's possible for view implementations to be
	subclasses of NautilusView.
	(nautilus_view_new_from_bonobo_control): Implement in terms of construct function.
	* libnautilus/nautilus-view-standard-main.h,
	libnautilus/nautilus-view-standard-main.c:
	(nautilus_view_standard_main_multi, nautilus_view_standard_main,
	nautilus_view_create_from_get_type): New convenience functions
	that encapsulate and librarify most of the cut and pasted main.c
	code that is in every nautilus view.
	(object_destroyed, make_object): Helper functions.
	* libnautilus/Makefile.am: Add nautilus-view-standard-main.[ch] to
	build.
	* libnautilus/nautilus-view-component.idl: Add license header
	comment.

	* libnautilus-extensions/nautilus-gtk-macros.h: Lined up the
	backslashes to make it easier to read and edit the multi-line
	macros.

	* components/sample/README: Explain that all files in this
	directory have "WHAT YOU NEED TO CHANGE" comments.
	* components/sample/main.c (main): Implement in terms of
	`nautilus_view_standard_main' and removed most of the rest of this
	file. Now all you have to change when writing your own view is an
	include and some defines at the top of the file. Added "WHAT YOU
	NEED TO CHANGE" comment.
	* components/sample/nautilus-sample-content-view.h,
	components/sample/nautilus-sample-content-view.c: Added "WHAT YOU
	NEED TO CHANGE" comments.
	(nautilus_sample_content_view_get_type,
	nautilus_sample_content_view_initialize,
	nautilus_sample_content_view_destroy, load_location,
	sample_load_location_callback, bonobo_sample_callback,
	sample_merge_bonobo_items_callback): Changed everything around so
	NautilusSampleContentView inherits from Nautilus view, not
	GtkLabel (the widget that happens to be in the main content
	area). This makes a lot more sense. Also fix bug 2410 but
	including alternative code to nautilus-only macros.

	* components/sample/nautilus-sample-content-view.oafinfo: Added
	"WHAT YOU NEED TO CHANGE" comment.
	* components/sample/Makefile.am: Added "WHAT YOU NEED TO CHANGE" comment.
2000-12-21 21:41:46 +00:00

72 lines
2.6 KiB
C

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */
/*
* libnautilus: A library for nautilus view implementations.
*
* Copyright (C) 1999, 2000 Red Hat, Inc.
* Copyright (C) 2000 Eazel, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Author: Maciej Stachowiak <mjs@eazel.com>
*
*/
/* nautilus-view-standard-main.h - An implementation of most of a
* typical main.c file for Nautilus views. Just call the function from
* main and pass it the right arguments. This should make writing
* Nautilus views simpler.
*/
#ifndef NAUTILUS_VIEW_STANDARD_MAIN_H
#define NAUTILUS_VIEW_STANDARD_MAIN_H
#include <libnautilus/nautilus-view.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef NautilusView * (*NautilusViewCreateFunction) (const char *iid, void *user_data);
int nautilus_view_standard_main (const char *executable_name,
const char *version,
int argc,
char **argv,
const char *factory_iid,
const char *view_iid,
NautilusViewCreateFunction create_function,
void *user_data);
int nautilus_view_standard_main_multi (const char *executable_name,
const char *version,
int argc,
char **argv,
const char *factory_iid,
GList *view_iids, /* GList<const char *> */
NautilusViewCreateFunction create_function,
void *user_data);
/* standard handy create function (pass the _get_type function for the
* class as the user_data)
*/
NautilusView * nautilus_view_create_from_get_type_function (const char *iid, void *user_data);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* NAUTILUS_VIEW_STANDARD_MAIN_H */