1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
4 #ifndef __LOGJAM_JAMDOC_H__
5 #define __LOGJAM_JAMDOC_H__
7 #include "liblj/livejournal.h"
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);
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
);
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))