javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtfactory.cpp
branchRCL_3
changeset 19 04becd199f91
child 23 98ccebc37403
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtfactory.cpp	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,522 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Nokia Corporation - S60 implementation
+ *******************************************************************************/
+
+
+#include "swtfactory.h"
+#include "swtbutton.h"
+#include "swtcombo.h"
+#include "swtfiledialog.h"
+#include "swtlink.h"
+#include "swtlist.h"
+#include "swtlabel.h"
+#include "swtmenu.h"
+#include "swtmenuitem.h"
+#include "swtmenuarranger.h"
+#include "swtscrollbar.h"
+#include "swtshell.h"
+#include "swttext.h"
+#include "swtprogressbar.h"
+#include "swtslider.h"
+#include "swtuiutils.h"
+#include "swtcommand.h"
+#include "swtcommandarranger.h"
+#include "swtcolordialog.h"
+#include "swtclipboard.h"
+#include "swttable.h"
+#include "swttablecolumn.h"
+#include "swttableitem.h"
+#include "swttree.h"
+#include "swtdirectorydialog.h"
+#include "swtuiutils.h"
+#include "swtbrowser.h"
+#include "swtcaptionedcontrol.h"
+#include "swtconstrainedtext.h"
+#include "swtdateeditor.h"
+#include "swthyperlink.h"
+#include "swtinput.h"
+#include "swtlistbox.h"
+#include "swtlistview.h"
+#include "swtmobiledevice.h"
+#include "swtmobileshell.h"
+#include "swtmultipagedialog.h"
+#include "swtscreen.h"
+#include "swtsortedlist.h"
+#include "swttasktip.h"
+#include "swttextextension.h"
+#include "swttimedmessagebox.h"
+#include "swtquerydialog.h"
+#include "swtuiutils.h"
+#include "swtbitmapgc.h"
+#include "swtcolor.h"
+#include "swtfont.h"
+#include "swtwindowgc.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+
+CSwtFactory* CSwtFactory::NewL()
+{
+    CSwtFactory* self = new(ELeave) CSwtFactory;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+}
+
+CSwtFactory::CSwtFactory()
+{
+}
+
+CSwtFactory::~CSwtFactory()
+{
+}
+
+void CSwtFactory::ConstructL()
+{
+}
+
+MSwtUiUtils* CSwtFactory::NewUiUtilsL(MSwtDisplay& aDisplay) const
+{
+    return CSwtUiUtils::NewL(aDisplay);
+}
+
+MSwtCanvas* CSwtFactory::NewCanvasL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtCanvas::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtComposite* CSwtFactory::NewCompositeL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtComposite::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtDecorations* CSwtFactory::NewDecorationsL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtDecorations::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtShell* CSwtFactory::NewShellL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtShell* aParent,
+    TInt aStyle) const
+{
+    return CSwtShell::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtMenu* CSwtFactory::NewMenuL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    TInt aStyle) const
+{
+    return CSwtMenu::NewL(aDisplay, aPeer, aStyle);
+}
+
+MSwtMenuItem* CSwtFactory::NewMenuItemL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtMenu& aParent,
+    TInt aIndex,
+    TInt aStyle) const
+{
+    return CSwtMenuItem::NewL(aDisplay, aPeer, aParent, aIndex, aStyle);
+}
+
+MSwtMenuArranger* CSwtFactory::NewMenuArrangerL(
+    MSwtDisplay& aDisplay) const
+{
+    return CSwtMenuArranger::NewL(aDisplay);
+}
+
+MSwtLink* CSwtFactory::NewLinkL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtLink::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtList* CSwtFactory::NewListL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtList::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtLabel* CSwtFactory::NewLabelL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtLabel::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtButton* CSwtFactory::NewButtonL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtButton::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtText* CSwtFactory::NewTextL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtText::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtProgressBar* CSwtFactory::NewProgressBarL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtProgressBar::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtSlider* CSwtFactory::NewSliderL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtSlider::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtCombo* CSwtFactory::NewComboL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtCombo::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtFileDialog* CSwtFactory::NewFileDialogL(const TDesC& aInitPath,
+        const TDesC& aTitle, TInt aStyle) const
+{
+    return CSwtFileDialog::NewL(aInitPath, aTitle, aStyle);
+}
+
+MSwtCommand* CSwtFactory::NewCommandL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtControl& aParentControl,
+    MSwtCommand* aParentCommand,
+    TInt aType,
+    TInt aPriority) const
+{
+    return CSwtCommand::NewL(aDisplay, aPeer, aParentControl,
+                             aParentCommand, aType, aPriority);
+}
+
+MSwtCommandArranger* CSwtFactory::NewCommandArrangerL(
+    MSwtDisplay& aDisplay) const
+{
+    return CSwtCommandArranger::NewL(aDisplay);
+}
+
+MSwtMobileShell* CSwtFactory::NewMobileShellL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtShell* aParent,
+    TInt aStyle) const
+{
+    return CSwtMobileShell::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtMobileDevice* CSwtFactory::NewMobileDeviceL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer) const
+{
+    return CSwtMobileDevice::NewL(aDisplay, aPeer);
+}
+
+MSwtInput* CSwtFactory::NewInputL(
+    TSwtPeer aPeer,
+    TInt aInputId) const
+{
+    return CSwtInput::NewL(aPeer, aInputId);
+}
+
+MSwtScreen* CSwtFactory::NewScreenL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    TInt aScreenId) const
+{
+    return CSwtScreen::NewL(aDisplay, aPeer, aScreenId);
+}
+
+MSwtMultiPagePager* CSwtFactory::NewMultiPagePagerL(
+    MSwtDisplay& /*aDisplay*/,
+    TSwtPeer /*aPeer*/,
+    MSwtShell& /*aParent*/) const
+{
+    return NULL;
+}
+
+MSwtMultiPageTabGroup*  CSwtFactory::NewMultiPageTabGroupL(
+    MSwtDisplay& /*aDisplay*/,
+    TSwtPeer /*aPeer*/,
+    MSwtShell& /*aParent*/) const
+{
+    return NULL;
+}
+
+MSwtMultiPageDialog* CSwtFactory::NewMultiPageDialogL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtShell& aParent) const
+{
+    return CSwtMultiPageDialog::NewL(aDisplay, aPeer, aParent);
+}
+
+MSwtCaptionedControl* CSwtFactory::NewCaptionedControlL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtCaptionedControl::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtConstrainedText* CSwtFactory::NewConstrainedTextL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtConstrainedText::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtDateEditor* CSwtFactory::NewDateEditorL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtDateEditor::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtListBox* CSwtFactory::NewListBoxL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtListBox::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtHyperLink* CSwtFactory::NewHyperLinkL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtHyperLink::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtListView* CSwtFactory::NewListViewL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtListView::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtSortedList* CSwtFactory::NewSortedListL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtSortedList::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+void CSwtFactory::RunTimedMessageBoxDlgLD(
+    const TDesC& aTitle,
+    const TDesC& aMessage,
+    TInt aStyle,
+    const MSwtImage* aImage) const
+{
+    CSwtTimedMessageBox::RunDlgLD(aTitle, aMessage, aStyle, aImage);
+}
+
+HBufC* CSwtFactory::RunQueryDialogL(
+    const TDesC& aTitle,
+    TInt aStyle,
+    TInt aQueryType,
+    const TDesC& aPromptText,
+    const TDesC& aDefaultValue,
+    TInt aMinimum,
+    TInt aMaximum) const
+{
+    return CSwtQueryDialog::RunDlgL(aTitle, aStyle, aQueryType,
+                                    aPromptText, aDefaultValue, aMinimum, aMaximum);
+}
+
+HBufC* CSwtFactory::RunQueryDialogConvertDefaultValueL(
+    const TDesC& aString,
+    TInt aQueryType) const
+{
+    return CSwtQueryDialog::ConvertDefaultValueL(aString, aQueryType);
+}
+
+MSwtTaskTip* CSwtFactory::NewTaskTipL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    TInt aStyle) const
+{
+    return CSwtTaskTip::NewL(aDisplay, aPeer, aStyle);
+}
+
+MSwtTextExtension* CSwtFactory::NewTextExtensionL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    return CSwtTextExtension::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtClipboard* CSwtFactory::NewClipboardL(TSwtPeer aPeer) const
+{
+    //( void )aPeer;
+    //return NULL;
+    return CSwtClipboard::NewL(aPeer);
+}
+
+MSwtTable* CSwtFactory::NewTableL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    (void)aDisplay;
+    (void)aPeer;
+    (void)aParent;
+    (void)aStyle;
+    return CSwtTable::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtTableColumn* CSwtFactory::NewTableColumnL(
+    TSwtPeer aPeer,
+    MSwtTable& aParent,
+    TInt aStyle,
+    TInt aColumnIndex) const
+{
+    (void)aPeer;
+    (void)aParent;
+    (void)aStyle;
+    (void)aColumnIndex;
+    return CSwtTableColumn::NewL(aPeer, aParent, aStyle, aColumnIndex);
+}
+
+MSwtTableItem* CSwtFactory::NewTableItemL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtTable& aParent,
+    TInt aRowIndex) const
+{
+    (void)aDisplay;
+    (void)aPeer;
+    (void)aParent;
+    (void)aRowIndex;
+    return CSwtTableItem::NewL(aDisplay, aPeer, static_cast<CSwtTable&>(aParent), aRowIndex);
+}
+
+MSwtTree* CSwtFactory::NewTreeL(
+    MSwtDisplay& aDisplay,
+    TSwtPeer aPeer,
+    MSwtComposite& aParent,
+    TInt aStyle) const
+{
+    (void)aDisplay;
+    (void)aPeer;
+    (void)aParent;
+    (void)aStyle;
+    return CSwtTree::NewL(aDisplay, aPeer, aParent, aStyle);
+}
+
+MSwtFontDialog* CSwtFactory::NewFontDialogL() const
+{
+    User::Leave(ESwtErrorNotImplemented);
+    return NULL;
+    //return new( ELeave ) CSwtFontDialog();
+}
+
+TRgb* CSwtFactory::RunColorDialogL(TRgb* aDefaultColor) const
+{
+    return CSwtColorDialog::RunDlgL(aDefaultColor);
+}
+
+MSwtDirectoryDialog* CSwtFactory::NewDirectoryDialogL(const TDesC& aFilterPath,
+        const TDesC& aTitle) const
+{
+    return CSwtDirectoryDialog::NewL(aFilterPath, aTitle);
+}
+
+MSwtBrowser* CSwtFactory::NewBrowserL(MSwtDisplay& aDisplay, TSwtPeer aPeer
+                                      , MSwtComposite& aParent, TInt aStyle) const
+{
+    return CSwtBrowser::NewL(aDisplay, aPeer, aParent, aStyle);
+    //return NULL;
+}
+
+MSwtColor* CSwtFactory::NewColorL(const MSwtDevice& aDevice,
+                                  const TRgb& aRgb) const
+{
+    return new(ELeave) CSwtColor(aDevice, aRgb);
+}
+
+MSwtGc* CSwtFactory::NewBitmapGcL(MSwtBitmapDrawable& aDrawable,
+                                  CFbsBitGc* aGc, MSwtGc::TDestructor aDestructor, const TRgb& aPenCol,
+                                  const TRgb& aBrushCol, const MSwtFont& aFont) const
+{
+    return CSwtBitmapGc::NewL(aDrawable, aGc, aDestructor, aPenCol, aBrushCol, aFont);
+}
+
+MSwtGc* CSwtFactory::NewWindowGcL(MSwtWindowDrawable& aDrawable,
+                                  CWindowGc* aGc, MSwtGc::TDestructor aDestructor, const TRgb& aPenCol,
+                                  const TRgb& aBrushCol, const MSwtFont& aFont, const TRect& aBoundaryRect,
+                                  const TRect& aGcScreenRect) const
+{
+    return CSwtWindowGc::NewL(aDrawable, aGc, aDestructor, aPenCol,
+                              aBrushCol, aFont, aBoundaryRect, aGcScreenRect);
+}
+
+MSwtFont* CSwtFactory::NewFontL(const MSwtDevice& aDevice,
+                                const TDesC& aTypefaceName, TInt aHeight, TInt aStyle) const
+{
+    return CSwtFont::NewL(aDevice, aTypefaceName, aHeight, aStyle);
+}