/*
 * GlDialogOstrzegawczy.h
 * Autor: Pawe Gala
 */

#ifndef __GLDIALOGOSTRZEGAWCZY_H__
#define __GLDIALOGOSTRZEGAWCZY_H__

#include "GlobalneOknoDialogowe.h"


class CAknGlobalNote;

class CGlDialogOstrzegawczy : public CGlobalneOknoDialogowe
    {
public:    // Konstruktory dwufazowe i destruktor
    static CGlDialogOstrzegawczy* NewL( TUint aId, MObserwatorDialogu& aObserwator );
    static CGlDialogOstrzegawczy* NewLC( TUint aId, MObserwatorDialogu& aObserwator );
    
    ~CGlDialogOstrzegawczy();
    
public:
    void WyswietlDialogL( const TDesC& aTekst );
    
private:   // Odziedziczone z CGlobalneOknoDialogowe
    void DoCancel();
    
private:   // Konstruktory pierwszej i drugiej fazy
    CGlDialogOstrzegawczy( TUint aId, MObserwatorDialogu& aObserwator );
    void ConstructL();
    
private:   // Pola
    CAknGlobalNote* iGlNote;
    TInt iNoteId;
    };

#endif /* __GLDIALOGOSTRZEGAWCZY_H__ */


/*
 * GlDialogOstrzegawczy.cpp
 * Autor: Pawe Gala
 */

#include <aknglobalnote.h>
#include "GlDialogOstrzegawczy.h"


CGlDialogOstrzegawczy* CGlDialogOstrzegawczy::NewL( TUint aId, MObserwatorDialogu& aObserwator )
    {
    CGlDialogOstrzegawczy* self = CGlDialogOstrzegawczy::NewLC( aId, aObserwator );
    CleanupStack::Pop( self );
    return self;
    }

CGlDialogOstrzegawczy* CGlDialogOstrzegawczy::NewLC( TUint aId, MObserwatorDialogu& aObserwator )
    {
    CGlDialogOstrzegawczy* self = new( ELeave ) CGlDialogOstrzegawczy( aId, aObserwator );
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }
    
CGlDialogOstrzegawczy::CGlDialogOstrzegawczy( TUint aId, MObserwatorDialogu& aObserwator )
:CGlobalneOknoDialogowe( aId, aObserwator )
    {
    }

CGlDialogOstrzegawczy::~CGlDialogOstrzegawczy()
    {
    Cancel();
    delete iGlNote;
    }
    
void CGlDialogOstrzegawczy::ConstructL()
    {
    iGlNote = CAknGlobalNote::NewL();
    }
    
void CGlDialogOstrzegawczy::WyswietlDialogL( const TDesC& aTekst )
    {
    iNoteId = iGlNote->ShowNoteL( iStatus, EAknGlobalWarningNote, aTekst );
    SetActive();
    }

void CGlDialogOstrzegawczy::DoCancel()
    {
    iGlNote->CancelNoteL( iNoteId );
    }


// ----------------
// Uycie klasy CGlDialogOstrzegawczy
// ----------------

#include <avkon.rsg>
#include "GlDialogOstrzegawczy.h"

// Wymagana biblioteka: aknnotify.lib
// ...

const TUint KIdDialogu = 4;
iDialog = CGlDialogOstrzegawczy::NewL( KIdDialogu, *iObserwatorDialogu );

_LIT( KTekst, "Some network error has occurred" );
iDialog->WyswietlDialogL( KTekst );
