/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* camel-multipart.h : class for a multipart */

/* 
 *
 * Copyright (C) 1999 Bertrand Guiheneuf <Bertrand.Guiheneuf@inria.fr> .
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */


#ifndef CAMEL_MULTIPART_H
#define CAMEL_MULTIPART_H 1


#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus }*/

typedef struct _CamelMultipart CamelMultipart;

#include <gtk/gtk.h>
#include "camel-mime-part.h"
#include "camel-mime-body-part.h"


#define CAMEL_MULTIPART_TYPE     (camel_multipart_get_type ())
#define CAMEL_MULTIPART(obj)     (GTK_CHECK_CAST((obj), CAMEL_MULTIPART_TYPE, CamelMultipart))
#define CAMEL_MULTIPART_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), CAMEL_MULTIPART_TYPE, CamelMultipartClass))
#define IS_CAMEL_MULTIPART(o)    (GTK_CHECK_TYPE((o), CAMEL_MULTIPART_TYPE))


struct _CamelMultipart
{
	CamelDataWrapper parent_object;

	CamelMimePart *parent;
	GList *parts;
	gchar *boundary;
	gchar *preface;
	gchar *postface;

};



typedef struct {
	CamelDataWrapperClass parent_class;
	
	/* Virtual methods */	
	void (*add_part) (CamelMultipart *multipart, CamelMimeBodyPart *part);
	void (*add_part_at) (CamelMultipart *multipart, CamelMimeBodyPart *part, guint index);
	void (*remove_part) (CamelMultipart *multipart, CamelMimeBodyPart *part);
	CamelMimeBodyPart * (*remove_part_at) (CamelMultipart *multipart, guint index);
	CamelMimeBodyPart * (*get_part) (CamelMultipart *multipart, guint index);
	guint (*get_number) (CamelMultipart *multipart);
	void (*set_parent) (CamelMultipart *multipart, CamelMimePart *parent);
	CamelMimePart * (*get_parent) (CamelMultipart *multipart);
	void (*set_boundary) (CamelMultipart *multipart, gchar *boundary);
	const gchar * (*get_boundary) (CamelMultipart *multipart);

} CamelMultipartClass;


/* Standard Gtk function */
GtkType camel_multipart_get_type (void);


/* public methods */
CamelMultipart *camel_multipart_new ();
void camel_multipart_add_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
void camel_multipart_add_part_at (CamelMultipart *multipart, CamelMimeBodyPart *part, guint index);
void camel_multipart_remove_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
CamelMimeBodyPart *camel_multipart_remove_part_at (CamelMultipart *multipart, guint index);
CamelMimeBodyPart *camel_multipart_get_part (CamelMultipart *multipart, guint index);
guint camel_multipart_get_number (CamelMultipart *multipart);
void camel_multipart_set_parent (CamelMultipart *multipart, CamelMimePart *parent);
CamelMimePart *camel_multipart_get_parent (CamelMultipart *multipart);
void camel_multipart_set_boundary (CamelMultipart *multipart, gchar *boundary);
const gchar *camel_multipart_get_boundary (CamelMultipart *multipart);





#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* CAMEL_MULTIPART_H */

tion value='dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2</option>
<option value='gnome-3.22'>gnome-3.22</option>
<option value='gnome-3.24'>gnome-3.24</option>
<option value='gnome-3.26'>gnome-3.26</option>
<option value='gnome-3.28' selected='selected'>gnome-3.28</option>
<option value='gnome-3.32'>gnome-3.32</option>
<option value='gnome-3.36'>gnome-3.36</option>
<option value='gstreamer'>gstreamer</option>
<option value='gstreamer-1.16'>gstreamer-1.16</option>
<option value='gstreamer0.10-removal'>gstreamer0.10-removal</option>
<option value='main'>main</option>
<option value='master'>master</option>
<option value='mate-1.16'>mate-1.16</option>
<option value='mate-1.18'>mate-1.18</option>
<option value='mate-1.20'>mate-1.20</option>
<option value='mate-1.22'>mate-1.22</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/about/?h=gnome-3.28'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/?h=gnome-3.28'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/refs/?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/tree/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/diff/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/stats/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net-mgmt/p5-Net-NSCA-Client'>
<input type='hidden' name='h' value='gnome-3.28'/><input type='hidden' name='id' value='0c5245bb9fd8256ef7277947967f030757e95865'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net-mgmt?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>net-mgmt</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865'>p5-Net-NSCA-Client</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=0c5245bb9fd8256ef7277947967f030757e95865&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=a832228266c1a29a1a1fb3ce202cc299fb596780'>Support staging.</a></td><td>ehaupt</td><td><span title='2014-02-06 21:11:22 +0800'>2014-02-06</span></td><td>2</td><td><span class='deletions'>-11</span>/<span class='insertions'>+9</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-mgmt/p5-Net-NSCA-Client?h=gnome-3.28&amp;id=b1430d020317d6c230592f2b332e6367d450b132'>Add NO_STAGE all over the place in preparation for the staging support (cat: ...</a></td><td>bapt</td><td><span title='2013-09-21 06:24:43 +0800'>2013-09-21</span>