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

#ifndef __GLDIALOGWIADOMOSCI_H__
#define __GLDIALOGWIADOMOSCI_H__

#include "GlobalneOknoDialogowe.h"


class CAknGlobalMsgQuery;

class CGlDialogWiadomosci : public CGlobalneOknoDialogowe
    {
public:    // Konstruktory dwufazowe i destruktor
    static CGlDialogWiadomosci* NewL( TUint aId, MObserwatorDialogu& aObserwator );
    static CGlDialogWiadomosci* NewLC( TUint aId, MObserwatorDialogu& aObserwator );
    
    ~CGlDialogWiadomosci();
    
public:
    void WyswietlDialogL( TInt aPrzyciskiResId, const TDesC& aTytul, const TDesC& aWiadomosc );
    
private:   // Odziedziczone z CGlobalneOknoDialogowe
    void DoCancel();
    
private:   // Konstruktory pierwszej i drugiej fazy
    CGlDialogWiadomosci( TUint aId, MObserwatorDialogu& aObserwator );
    void ConstructL();
    
private:   // Pola
    CAknGlobalMsgQuery* iGlMsgQuery;
    };

#endif /* __GLDIALOGWIADOMOSCI_H__ */


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

#include <aknglobalmsgquery.h>
#include "GlDialogWiadomosci.h"


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

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

CGlDialogWiadomosci::CGlDialogWiadomosci( TUint aId, MObserwatorDialogu& aObserwator )
:CGlobalneOknoDialogowe( aId, aObserwator )
    {
    }

CGlDialogWiadomosci::~CGlDialogWiadomosci()
    {
    Cancel();
    delete iGlMsgQuery;
    }

void CGlDialogWiadomosci::ConstructL()
    {
    iGlMsgQuery = CAknGlobalMsgQuery::NewL();
    }

void CGlDialogWiadomosci::WyswietlDialogL( TInt aPrzyciskiResId, const TDesC& aTytul, const TDesC& aWiadomosc )
    {
    iGlMsgQuery->ShowMsgQueryL( iStatus, aWiadomosc, aPrzyciskiResId, aTytul, KNullDesC );
    SetActive();
    }

void CGlDialogWiadomosci::DoCancel()
    {
    iGlMsgQuery->CancelMsgQuery();
    }


// ----------------
// Uycie klasy CGlDialogWiadomosci
// ----------------

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

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

const TUint KIdDialogu = 3;
iDialog = CGlDialogWiadomosci::NewL( KIdDialogu, *iObserwatorDialogu );
    
_LIT( KTytul, "About" );
_LIT( KKomunikat, "SimpleApp\nAuthor: Pawel Gala\nSupport: pawel.gala@mycompany.com\n(c)" );
    
iDialog->WyswietlDialogL( R_AVKON_SOFTKEYS_OK_EMPTY, KTytul, KKomunikat );
