| Reference Manual of the tinymail framework | ||||
|---|---|---|---|---|
TnyMimePartSaver;
TnyMimePartSaverIface;
TnyMimePartSaveStrategy* tny_mime_part_saver_get_save_strategy
(TnyMimePartSaver *self);
void tny_mime_part_saver_set_save_strategy
(TnyMimePartSaver *self,
TnyMimePartSaveStrategy *strategy);
void tny_mime_part_saver_save (TnyMimePartSaver *self,
TnyMimePart *part);
typedef struct {
GTypeInterface parent;
TnyMimePartSaveStrategy* (*get_save_strategy_func) (TnyMimePartSaver *self);
void (*set_save_strategy_func) (TnyMimePartSaver *self, TnyMimePartSaveStrategy *strategy);
void (*save_func) (TnyMimePartSaver *self, TnyMimePart *part);
} TnyMimePartSaverIface;
TnyMimePartSaveStrategy* tny_mime_part_saver_get_save_strategy (TnyMimePartSaver *self);
Get the strategy for saving mime-parts. The return value must be unreferenced after use.
Example:
static void
tny_my_msg_view_on_save_clicked (TnyMimePartSaver *self, TnyMimePart *attachment)
{
TnyMimePartSaveStrategy *strategy = tny_mime_part_saver_get_save_strategy (self);
tny_save_strategy_save (strategy, attachment);
g_object_unref (G_OBJECT (strategy));
}
Implementors: This method must return the strategy for saving a mime-part. being the implementer, you must add a reference before returning the instance.
Example:
static *TnyMimePartSaveStrategy
tny_my_msg_view_get_save_strategy (TnyMimePartSaver *self_i)
{
TnyMyMsgView *self = TNY_MY_MSG_VIEW (self_i);
return TNY_MIME_PART_SAVE_STRATEGY (g_object_ref (self->mime_part_save_strategy));
}
For more information take a look at tny_mime_part_save_strategy_perform_save of TnyMimePartSaveStrategy.
self : |
A TnyMsgView instance |
| Returns : | the TnyMimePartSaveStrategy for self
|
void tny_mime_part_saver_set_save_strategy
(TnyMimePartSaver *self,
TnyMimePartSaveStrategy *strategy);
Set the strategy for saving mime-parts
Implementors: This method must set (store) the strategy for saving a mime-part.
Example:
static void
tny_my_msg_view_set_save_strategy (TnyMimePartSaver *self_i, TnyMimePartSaveStrategy *strat)
{
TnyMyMsgView *self = TNY_MY_MSG_VIEW (self_i);
if (self->save_strategy)
g_object_unref (G_OBJECT (self->save_strategy));
self->save_strategy = g_object_ref (G_OBJECT (strat));
}
static void
tny_my_msg_view_finalize (TnyMyMsgView *self)
{
if (self->save_strategy))
g_object_unref (G_OBJECT (self->save_strategy));
}
The idea is that devices can have a specific such strategy. For example a strategy that sends it to another computer or a strategy that saves it to a flash disk. However. In the message view component, you don't care about that. You only care about the API of the save-strategy interface.
For more information take a look at tny_mime_part_save_strategy_perform_save of TnyMimePartSaveStrategy.
self : |
A TnyMimePartSaver instance |
strategy : |
A TnyMimePartSaveStrategy instace |
void tny_mime_part_saver_save (TnyMimePartSaver *self, TnyMimePart *part);
Saves mime_part using the save strategy
self : |
A TnyMimePartSaver instance |
part : |
A TnyMimePart instace |