progress.*: cosmetix
[k8lowj.git] / src / jamdoc.h
blob53af37be872bdc00c1d33e4efcd3d1aa7180eeae
1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
3 */
4 #ifndef __LOGJAM_JAMDOC_H__
5 #define __LOGJAM_JAMDOC_H__
7 #include "liblj/livejournal.h"
9 #include "account.h"
12 typedef enum {
13 ENTRY_DRAFT,
14 ENTRY_NEW,
15 ENTRY_SERVER
16 } LJEntryType;
19 typedef struct _JamDoc JamDoc;
20 typedef struct _JamDocClass JamDocClass;
23 extern GType jam_doc_get_type(void);
24 extern JamDoc *jam_doc_new(void);
26 #ifdef HAVE_GTK
27 #include <gtk/gtktextbuffer.h>
28 extern GtkTextBuffer *jam_doc_get_text_buffer (JamDoc *doc);
29 extern gboolean jam_doc_append_text (JamDoc *doc, const char *text, const char *encoding);
30 extern gboolean jam_doc_insert_file (JamDoc *doc, const char *filename, const char *encoding, GError **err);
31 extern gboolean jam_doc_insert_command_output (JamDoc *doc, const char *command, const char *encoding, GError **err, GtkWindow *parent);
32 #endif
34 extern const char *jam_doc_get_location (JamDoc *doc);
35 extern void jam_doc_set_location (JamDoc *doc, const char *location);
37 extern char *jam_doc_get_title (JamDoc *doc);
38 extern LJEntry *jam_doc_get_entry (JamDoc *doc);
40 extern char *jam_doc_get_draftname (JamDoc *doc);
42 /* these flags correspond to server-side capabilities;
43 * any document can be saved with a file->save as sort of command. */
44 #define LOGJAM_DOC_CAN_DELETE (1<<0)
45 #define LOGJAM_DOC_CAN_SAVE (1<<1)
46 #define LOGJAM_DOC_CAN_SUBMIT (1<<2)
48 extern int jam_doc_get_flags (JamDoc *doc);
50 extern void jam_doc_set_dirty (JamDoc *doc, gboolean dirty);
51 extern gboolean jam_doc_get_dirty (JamDoc *doc);
53 extern JamAccount *jam_doc_get_account (JamDoc *doc);
54 extern void jam_doc_set_account (JamDoc *doc, JamAccount *acc);
56 extern const char *jam_doc_get_subject (JamDoc *doc);
57 extern void jam_doc_set_subject (JamDoc *doc, const char *subject);
59 extern LJSecurity jam_doc_get_security (JamDoc *doc);
60 extern void jam_doc_set_security (JamDoc *doc, LJSecurity *sec);
62 extern const char *jam_doc_get_mood (JamDoc *doc);
63 extern void jam_doc_set_mood (JamDoc *doc, const char *mood);
65 extern void jam_doc_set_moodid (JamDoc *doc, int moodid);
67 extern const char *jam_doc_get_music (JamDoc *doc);
68 extern void jam_doc_set_music (JamDoc *doc, const char *music);
70 extern const char *jam_doc_get_taglist (JamDoc *doc);
71 extern void jam_doc_set_taglist (JamDoc *doc, const char *taglist);
73 extern const char *jam_doc_get_picture (JamDoc *doc);
74 extern void jam_doc_set_picture (JamDoc *doc, const char *keyword);
76 extern LJCommentsType jam_doc_get_comments (JamDoc *doc);
77 extern void jam_doc_set_comments (JamDoc *doc, LJCommentsType type);
79 extern LJScreeningType jam_doc_get_screening (JamDoc *doc);
80 extern void jam_doc_set_screening (JamDoc *doc, LJScreeningType type);
82 extern void jam_doc_get_time (JamDoc *doc, struct tm *ptm);
83 extern void jam_doc_set_time (JamDoc *doc, const struct tm *ptm);
85 extern gboolean jam_doc_get_backdated (JamDoc *doc);
86 extern void jam_doc_set_backdated (JamDoc *doc, gboolean backdated);
88 extern gboolean jam_doc_get_preformatted (JamDoc *doc);
89 extern void jam_doc_set_preformatted (JamDoc *doc, gboolean preformatted);
91 extern void jam_doc_set_event (JamDoc *doc, const char *event);
93 extern gchar *jam_doc_get_usejournal (JamDoc *doc);
94 extern void jam_doc_set_usejournal (JamDoc *doc, const gchar *usejournal);
96 extern gboolean jam_doc_load_file (JamDoc *doc, const char *filename, LJEntryFileType type, GError **err);
97 extern void jam_doc_load_draft (JamDoc *doc, LJEntry *entry);
98 extern void jam_doc_load_entry (JamDoc *doc, LJEntry *entry);
100 /* these are terrible names. */
101 extern gboolean jam_doc_would_save_over_nonxml (JamDoc *doc);
102 extern gboolean jam_doc_has_save_target (JamDoc *doc);
104 extern gboolean jam_doc_save (JamDoc *doc, JamAccount *acc, GError **err);
106 /* these emit the "title-changed" signal */
107 extern gboolean jam_doc_save_as_file (JamDoc *doc, const char *filename, GError **err);
108 extern gboolean jam_doc_save_as_draft (JamDoc *doc, const char *title, JamAccount *acc, GError **err);
111 extern LJEntryType jam_doc_get_entry_type (JamDoc *doc);
112 extern gint jam_doc_get_entry_itemid (JamDoc *doc);
114 extern const char *jam_doc_get_url (JamDoc *doc);
115 extern void jam_doc_set_url (JamDoc *doc, const char *url);
116 extern void jam_doc_reset_url (JamDoc *doc);
118 #define LOGJAM_TYPE_DOC (jam_doc_get_type())
119 #define LOGJAM_DOC(object) (G_TYPE_CHECK_INSTANCE_CAST((object), LOGJAM_TYPE_DOC, JamDoc))
120 #define LOGJAM_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOGJAM_TYPE_DOC, JamDocClass))
123 #endif