S_del_body is sufficiently small that inlining it is a space win.
[p5sagit/p5-mst-13.2.git] / symbian / PerlApp.h
1 /* Copyright (c) 2004-2005 Nokia. All rights reserved. */
2
3 /* The PerlApp application is licensed under the same terms as Perl itself. */
4
5 #ifndef __PerlApp_h__
6 #define __PerlApp_h__
7
8 #include <aknapp.h>
9 #include <aknappui.h>
10 #include <akndoc.h>
11 #include <coecntrl.h>
12 #include <f32file.h>
13
14 class CPerlAppDocument : public CAknDocument
15 {
16   public:
17     CPerlAppDocument(CEikApplication& aApp):CAknDocument(aApp) {;}
18     CFileStore* OpenFileL(TBool aDoOpen, const TDesC& aFilename, RFs& aFs);
19   private: // from CEikDocument
20     CEikAppUi* CreateAppUiL();
21 };
22
23 class CPerlAppApplication : public CAknApplication
24 {
25   private:
26     CApaDocument* CreateDocumentL();
27     TUid AppDllUid() const;
28 };
29
30 const TUint KPerlAppOneLinerSize = 80;
31
32 class CPerlAppView;
33
34 class CPerlAppUi : public CAknAppUi
35 {
36   public:
37     void ConstructL();
38      ~CPerlAppUi();
39     void HandleCommandL(TInt aCommand);
40     void OpenFileL(const TDesC& aFileName);
41     TBool ProcessCommandParametersL(TApaCommand aCommand, TFileName& aDocumentName, const TDesC8& aTail);
42     void InstallOrRunL(const TFileName& aFileName);
43     void SetFs(const RFs& aFs);
44   private:
45     CPerlAppView* iAppView;
46     RFs* iFs;
47     TBuf<KPerlAppOneLinerSize> iOneLiner;
48 };
49
50 class CPerlAppView : public CCoeControl
51 {
52   public:
53     static CPerlAppView* NewL(const TRect& aRect);
54     static CPerlAppView* NewLC(const TRect& aRect);
55     void Draw(const TRect& aRect) const;
56   private:
57     void ConstructL(const TRect& aRect);
58 };
59
60 #endif // __PerlApp_h__