📄 svexopenappappview.h
字号:
// Copyright (c) 2006 Murray Read, All rights reserved
#ifndef __SVEXOpenApp_APPVIEW_H__
#define __SVEXOpenApp_APPVIEW_H__
#include <SvexServiceAppListView.h>
#include <SvexRegDialog.h>
#include <aknform.h>
class CSvexOpenDialog;
class CMimeAppListDialog;
// The apps list view uses a dialog as a sub-view when an app
// is selected.
class CSvexOpenAppAppView : public CSvexServiceAppListView
{
public:
static CSvexOpenAppAppView* NewL(const CSvexInfoBase& aInfo);
~CSvexOpenAppAppView();
public: // from CSvexOpenAppListView
void OpenL();
void ShowAppL(TUid aAppUid);
void ShowAppL(const TSvexAppServiceInfo& aReg);
private:
CSvexOpenAppAppView(const CSvexInfoBase& aInfo);
private:
CSvexOpenDialog* iDialog;
};
// The registration info dialog for open app has a specialised
// DialogTextL() function which shows relevant info for
// the open service (the mime-type list).
class CSvexOpenDialog : public CAppServiceInfoDialog
{
public:
static CSvexOpenDialog* NewL(const TSvexAppServiceInfo& aReg, const CSvexInfoBase& aInfo);
~CSvexOpenDialog();
protected:
CSvexOpenDialog(const TSvexAppServiceInfo& aReg, const CSvexInfoBase& aInfo);
virtual void DialogTextL();
};
class TSvexMimeAppWithPriority
{
public:
TSvexMimeAppWithPriority(const TSvexAppServiceInfo& aReg);
public:
TSvexAppServiceInfo iReg;
TDataTypePriority iPriority;
};
// An array of apps that support the open service for a particular
// mime type
class CSvexMimeAppArray : public CArrayFixFlat<TSvexMimeAppWithPriority>
{
public:
CSvexMimeAppArray(const TDataType& aDataType);
~CSvexMimeAppArray();
const TDataType& DataType() const;
private:
const TDataType& iDataType;
};
// An array of all the mime-types and which apps support them
class CSvexMimeArray : public CBase
{
public:
CSvexMimeArray(const CSvexInfoBase& aInfo);
~CSvexMimeArray();
void ConstructL();
TInt Count() const;
CSvexMimeAppArray& At(TInt aIndex);
private:
void AddRegL(const TSvexAppServiceInfo& aReg, RHashMap<TPtrC8, CSvexMimeAppArray*>& aHash);
void CompleteConstructL(RHashMap<TPtrC8, CSvexMimeAppArray*>& aHash);
private:
const CSvexInfoBase& iInfo;
RPointerArray<CSvexMimeAppArray> iArray;
CSvexServiceInfo* iService;
};
// A main view showing the list of mime-types.
// It uses a dialog as a sub-view
class CSvexOpenAppMimeView : public CSvexListView
{
public:
static CSvexOpenAppMimeView* NewL(const CSvexInfoBase& aInfo);
~CSvexOpenAppMimeView();
public: // from CSvexOpenAppListView
CEikTextListBox* NewListBoxL() const;
TInt Count() const;
void GetText(TInt aIndex, TBuf<KMaxListText>& aText) const;
void OpenL();
private:
CSvexOpenAppMimeView(const CSvexInfoBase& aInfo);
void ConstructMainPaneL();
void ShowMimeL(CSvexMimeAppArray& aMimeAppArray);
private:
const CSvexInfoBase& iInfo;
CSvexMimeArray* iMimeArray;
CMimeAppListDialog* iSubView;
};
// Non-window owning list used as the content of a dialog.
// This shows the apps for a particular mime-type
class CMimeAppListControl : public CSvexListView
{
public:
CMimeAppListControl(const CSvexInfoBase& aInfo, CSvexMimeAppArray& aAppArray);
~CMimeAppListControl();
void ConstructFromResourceL(TResourceReader& aReader);
public: // from CSvexListView
CEikTextListBox* NewListBoxL() const;
TInt Count() const;
void GetText(TInt aIndex, TBuf<KMaxListText>& aText) const;
TSize MinimumSize();
void OpenL();
void HandleCommandL(TInt aCommand);
void ConstructControlL();
private:
void SetDefaultL();
private:
const CSvexInfoBase& iInfo;
CSvexMimeAppArray& iAppArray;
TUid iDefaultApp;
};
// dialog used as a sub-view of the mime list
class CMimeAppListDialog : public CAknDialog
{
public:
CMimeAppListDialog(const CSvexInfoBase& aInfo, CSvexMimeAppArray& aAppArray);
protected: // from CAknDialog
SEikControlInfo CreateCustomControlL(TInt aControlType);
void ProcessCommandL(TInt aCommandId);
TBool OkToExitL(TInt aButtonId);
private:
CMimeAppListControl* List();
private:
const CSvexInfoBase& iInfo;
CSvexMimeAppArray& iAppArray;
};
#endif // __SVEXOpenApp_APPVIEW_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -