2
* MessageContext - context for posting status messages
5
* MenTaLguY <mental@rydia.net>
7
* Copyright (C) 2004 MenTaLguY
9
* Released under GNU GPL, read the file 'COPYING' for more information
12
#include <glib/gstrfuncs.h>
13
#include "message-context.h"
14
#include "message-stack.h"
18
MessageContext::MessageContext(MessageStack *stack)
19
: _stack(stack), _message_id(0), _flash_message_id(0)
24
MessageContext::~MessageContext() {
30
void MessageContext::set(MessageType type, gchar const *message) {
32
_stack->cancel(_message_id);
34
_message_id = _stack->push(type, message);
37
void MessageContext::setF(MessageType type, gchar const *format, ...)
40
va_start(args, format);
41
setVF(type, format, args);
45
void MessageContext::setVF(MessageType type, gchar const *format, va_list args)
47
gchar *message=g_strdup_vprintf(format, args);
52
void MessageContext::flash(MessageType type, gchar const *message) {
53
if (_flash_message_id) {
54
_stack->cancel(_flash_message_id);
56
_flash_message_id = _stack->flash(type, message);
59
void MessageContext::flashF(MessageType type, gchar const *format, ...) {
61
va_start(args, format);
62
flashVF(type, format, args);
66
void MessageContext::flashVF(MessageType type, gchar const *format, va_list args) {
67
gchar *message=g_strdup_vprintf(format, args);
72
void MessageContext::clear() {
74
_stack->cancel(_message_id);
77
if (_flash_message_id) {
78
_stack->cancel(_flash_message_id);
79
_flash_message_id = 0;
88
c-file-style:"stroustrup"
89
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
94
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :