javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtwidgetsexpanded.h
branchRCL_3
changeset 14 04becd199f91
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtwidgetsexpanded.h	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,914 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 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
+ *******************************************************************************/
+
+
+#ifndef ESWTWIDGETSEXPANDED_H
+#define ESWTWIDGETSEXPANDED_H
+
+
+#include <eiklbi.h>
+#include "eswt.h"
+#include "eswtwidgetscore.h"
+
+
+class MSwtListBase;
+class MSwtColor;
+class CSwtFontData;
+class MSwtTable;
+class CGraphicsContext;
+
+
+class MSwtClipboard
+{
+protected:
+    virtual ~MSwtClipboard() {}
+
+public:
+    /**
+     * Disposes of (i.e. destroys) the control
+     * @return The Java peer associated with this object
+     */
+    virtual TSwtPeer Dispose() =0;
+
+    /**
+     * Clears the Clipboard.
+     */
+    virtual void ClearL() =0;
+
+    /**
+     * Gets the types of the data available in the Clipboard.
+     * @param aTypes Upon call, this array must contain the data types to
+     *        enquire about. Upon return, the non-available types will
+     *        have been removed from it.
+     */
+    virtual void GetAvailableTypesL(RArray<TInt>& aTypes) const =0;
+
+    /**
+     * Returns the contents of the clipboard, as an array of bytes.
+     * @param aTypeId Identifier of the expected type of the data
+     *        contained in the clipboard.
+     * @return the data, or NULL if no data of type aTypeId is found
+     *        the clipboard.
+     */
+    virtual HBufC8* GetByteContentsL(TInt aDataId) const =0;
+
+    /**
+     * Returns the contents of the clipboard, as a text descriptor.
+     * @return the text descriptor, or NULL if no text is found in the clipboard.
+     */
+    virtual HBufC* GetTextContentsL() const =0;
+
+    /**
+     * Set the content of the clipboard with a byte descriptor.
+     * @param aPtr      The byte descriptor.
+     * @param aJavaType The Java type identifier of the data.
+     */
+    virtual void SetByteContentL(const TDesC8& aPtr, TInt aJavaType) =0;
+
+    /**
+     * Set the content of the clipboard with a text descriptor.
+     * @param aPtr The text descriptor.
+     */
+    virtual void SetTextContentL(const TDesC& aPtr) =0;
+};
+
+
+class MSwtTableColumn
+{
+protected:
+    virtual ~MSwtTableColumn() {}
+
+public:
+    virtual TSwtPeer JavaPeer() const =0;
+
+    /**
+     * Disposes of (i.e. destroys) the TableColumn.
+     */
+    virtual TSwtPeer Dispose() =0;
+
+    /**
+     * Returns the alignment
+     */
+    virtual TInt Alignment() const =0;
+
+    /**
+     * Sets the column to its preferred size.
+     */
+    virtual void Pack() =0;
+
+    /**
+     * Sets the alignment of the column.
+     */
+    virtual void SetAlignment(TInt aAlignment) =0;
+
+    /**
+     * Sets the text of the column.
+     */
+    virtual void SetTextL(const TDesC& aText) =0;
+
+    /**
+     * Returns the text of the TableColumn
+     *
+     * @result A pointer ot the text. Cannot be null.
+     */
+    virtual const TDesC* GetText() const =0;
+
+    /**
+     * Sets the width of the column.
+     */
+    virtual void SetWidth(TInt aWidth) =0;
+
+    /**
+     * Returns the width of the column.
+     */
+    virtual TInt Width() const =0;
+
+    /**
+     * set the image of the TableColumn
+     */
+    virtual void SetColumnImage(const MSwtImage* aImage) =0;
+
+    /**
+     * Returns whether the column can be resized by the user
+     */
+    virtual TBool GetResizable() const = 0;
+
+    /**
+     * Sets the column's ability to be resized by the user
+     */
+    virtual void SetResizable(TBool aResizable) =0;
+
+    /**
+     * Returns this column's style flags
+     */
+    virtual TInt GetStyle() const =0;
+};
+
+
+class MSwtTableItem
+{
+protected:
+    virtual ~MSwtTableItem() {}
+
+public:
+    /**
+     * Disposes of (i.e. destroys) the TableItem.
+     */
+    virtual TSwtPeer Dispose() =0;
+
+    /**
+     * Returns the background at the specified index.
+     */
+    virtual const MSwtColor* GetBackground(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the receiver's size and location relative to its parent
+     * @param aColumnIndex  the column index
+     */
+    virtual TRect GetBounds(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the check state of the receiver.
+     * If the Table was created without the CHECK style flag, this
+     * method returns EFalse
+     */
+    virtual TBool GetChecked() const =0;
+
+    /**
+     * Returns the font used at the specified index.
+     */
+    virtual const MSwtFont* GetFont(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the foreground at the specified index.
+     */
+    virtual const MSwtColor* GetForeground(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the gray state.
+     * If the Table was created without the CHECK style flag, this
+     * method returns EFalse
+     */
+    virtual TBool GetGrayed() const =0;
+
+    /**
+     * Returns the  size and location of an image, relative to its parent
+     * @param aColumnIndex  the column index
+     */
+    virtual TRect GetImageBounds(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the preferred width of the cell at index aColumnIndex,
+     * depending on its font, image and checkbox.
+     */
+    virtual TSize GetPreferredSize(TInt aColumnIndex) const =0;
+
+    /**
+     * Returns the preferred width of the entire row,
+     * depending on its font, image and checkbox.
+     */
+    virtual TSize GetPreferredSize() const =0;
+
+    /**
+     * Returns the text of the item, specified by its index.
+     * @param aColumnIndex   the column index
+     * @return The text, cannot be NULL.
+     */
+    virtual const TDesC* GetText(TInt aColumnIndex) const =0;
+
+    /**
+     * Insert a new column to the row.
+     * No text or images is set. The font used is the default font.
+     */
+    virtual void InsertNewColumnL(TInt aColumnIndex) =0;
+
+    /**
+     * Remove a column from the row.
+     */
+    virtual void RemoveColumn(TInt aColumnIndex) =0;
+
+    /**
+     * Sets the background of the cell at index aColumnIndex.
+     */
+    virtual void SetBackground(TInt aColumnIndex, const MSwtColor* aColor) =0;
+
+    /**
+     * Sets the background for the entire row,
+     */
+    virtual void SetBackgroundForAll(const MSwtColor* aColor) =0;
+
+    /**
+     * Sets the font of the cell at index aColumnIndex.
+     */
+    virtual void SetFont(TInt aColumnIndex, const MSwtFont* aFont) =0;
+
+    /**
+     * Sets the font for the entire row.
+     */
+    virtual void SetFontForAll(const MSwtFont* aFont) =0;
+
+    /**
+     * Sets the foreground of the cell at index aColumnIndex,
+     */
+    virtual void SetForeground(TInt aColumnIndex, const MSwtColor* aColor) =0;
+
+    /**
+     * Sets the foreground for the entire row.
+     */
+    virtual void SetForegroundForAll(const MSwtColor* aColor) =0;
+
+    /**
+     * Sets the gray state.
+     * If the Table was created without the CHECK style flag, this
+     * method does nothing.
+     */
+    virtual void SetGrayed(TBool aIsGrayed) =0;
+
+    /**
+     * Sets an array of texts to the row.
+     */
+    virtual void SetTextArrayL(const CDesCArray* aTextArray) =0;
+
+    /**
+     * Sets the text to display at the specified index .
+     */
+    virtual void SetTextL(TInt aColumnIndex, const TDesC& aText) =0;
+
+    /**
+     * Sets an array of images to the row.
+     */
+    virtual void SetImageArray(const RPointerArray<MSwtImage>& aImages) =0;
+
+    /**
+     * Sets the image at the specified index.
+     */
+    virtual void SetImageByIndex(TInt aColumnIndex, const MSwtImage* aImage) =0;
+
+    /**
+     * Sets the check state of the receiver.
+     */
+    virtual void  SetChecked(TBool aChecked)=0;
+
+    /**
+     * Returns the Java Peer.
+     */
+    virtual TSwtPeer JavaPeer() const =0;
+};
+
+
+/**
+ * Interface class for the org.eclipse.swt.widgets.Table class.
+ */
+class MSwtTable
+{
+protected:
+    virtual ~MSwtTable() {} // Made protected to prevent destruction through the interface
+
+public:
+
+    /**
+     * Returns the MSwtComposite interface
+     */
+    virtual MSwtComposite* Composite() =0;
+
+    /**
+     * Returns the TableItem array of the Table
+     */
+    virtual CSwtPeerArray* GetTableItemsL() =0;
+
+    /**
+     * Returns the TableColumn array of the Table
+     */
+    virtual CSwtPeerArray* GetTableColumnsL() =0;
+
+    /**
+     * Returns an array of TableItems that are currently
+     * selected in the receiver.
+     * Returned array is null if no item is selected.
+     */
+    virtual CSwtPeerArray* GetSelectionL() =0;
+
+    /**
+     * Register a TableItem
+     * @param aChild the TableItem
+     * @param aRowIndex where to add the TableItem
+     */
+    virtual void AddTableItemL(MSwtTableItem& aChild, TInt aRowIndex) =0;
+
+    /**
+     * Register a TableColumn
+     * @param aChild the TableColumn
+     * @param aColumnIndex where to add the TableColumn
+     */
+    virtual void AddTableColumnL(MSwtTableColumn& aChild, TInt aColumnIndex) =0;
+
+    /**
+     * Unregister a TableColumn
+     * @param aChild the TableColumn
+     */
+    virtual void RemoveTableColumn(MSwtTableColumn& aChild) =0;
+
+    /**
+     * Returns the default font.
+     */
+    virtual const MSwtFont& DefaultFont() const =0;
+
+    /**
+     * Deselects the items defined in the aIndices array from the <a>Table</a>.
+     * @param aIndices  The array of the items to deselect.
+     * @param aCount   The number of items of this array.
+     */
+    virtual void DeselectItems(const TInt* aIndices, TInt aCount) =0;
+
+    /**
+     * Deselects the items indexed from aStart to aEnd from the <a>Table</a>.
+     * @param aStart    The first element to deselect.
+     * @param aEnd      The last element to deselect.
+     */
+    virtual void DeselectRange(TInt aStart, TInt aEnd) =0;
+
+    /**
+     * Searches the receiver's list starting at the first column (index 0)
+     * until a column is found that is equal to the argument, and returns
+     * the index of that column.
+     * @param aColumn the TableColumn
+     * @return the index of the Tablecolumn
+     */
+    virtual TInt IndexOfTableColumn(const MSwtTableColumn *aColumn) const =0;
+
+    /**
+     * Searches the receiver's list starting at the first item (index 0)
+     * until an item is found that is equal to the argument, and returns
+     * the index of that item.
+     * @param aItem the TableItem
+     * @return the TableItem
+     */
+    virtual TInt IndexOfTableItemAt(const MSwtTableItem *aItem, TInt aStart) const =0;
+
+    virtual TInt IndexOfTableItem(const MSwtTableItem *aItem) const =0;
+
+    /**
+     * Returns the number of displayed columns in the Table.
+     * A table with no TableColumn behaves as a List, displaying a dummy column
+     * and therefore the method will return 1. To know the number of TableColumns
+     * in the table, use GetTableColumnCount().
+     * @return the number of columns in the table. Value is always strictly positive
+     */
+    virtual TInt GetColumnCount() const =0;
+
+    /**
+     * Returns the number of TableColumns in the Table.
+     * A Table with no TableColumn will display a dummy column
+     * and will behave as a list. GetTableColumnCount() will return 0 in that case.
+     * To know how many columns are displayed, use GetColumnCount().
+     * @return the number of TableColumn in the table.
+     */
+    virtual TInt GetTableColumnCount() const =0;
+
+    /**
+     * Returns ETrue if the receiver's header is visible, and EFalse otherwise.
+     * the value is EFalse by default.
+     * @return  ETrue if the header is visible.
+     */
+    virtual TBool GetHeaderVisible() const =0;
+
+    /**
+     * Returns ETrue if the item is selected, and EFalse otherwise.
+     */
+    virtual TBool   IsSelected(TInt aIndex) const =0;
+
+    /**
+     * Returns the column at the given, zero-relative index in the Table.
+     */
+    virtual TSwtPeer GetColumnL(TInt aIndex) const =0;
+
+    /**
+     * Returns a reference to the array of the alignments of the columns.
+     */
+    virtual const RArray<TInt>& GetColumnAlignments() const =0; // LeaveScan misreport
+
+    /**
+     * Returns a reference to the array of the widths of the columns.
+     */
+    virtual const RArray<TInt>& GetColumnWidths() const =0;
+
+    /**
+     * Returns a reference to the array of number of images of the columns.
+     */
+    virtual const RArray<TInt>& GetColumnImageCounts() const =0;
+
+    /**
+     * Returns the width in pixels of a grid line.
+     */
+    virtual TInt GetGridLineWidth() const =0;
+
+    /**
+     * Returns the height of the receiver's header
+     */
+    virtual TInt GetHeaderHeight() const =0;
+
+    /**
+     * Returns the item at the given, zero-relative index in the Table.
+     * @param aIndex the index of the row
+     * @return the item at the given, zero-relative index in the Table.
+     */
+    virtual TSwtPeer GetItemL(TInt aIndex) const =0;
+
+    /**
+     * Returns the number of items in the Table
+     */
+    virtual TInt GetItemCount() const =0;
+
+    /**
+     * Returns the rectangle of the specified TableItem, given an index in the Table.
+     * @param aRowIndex the row index of the Table
+     * @return the on-screen rectangle of the specified TableItem.
+     */
+    virtual TRect GetItemRect(TInt aRowIndex) const =0;
+
+    /**
+     * Returns ETrue if the receiver's lines are visible,
+     * and EFalse otherwise. The default value is EFalse.
+     */
+    virtual TBool GetLinesVisible() const =0;
+
+    /**
+     * Gets the current selected item. return -1 if no item is selected.
+     */
+    virtual TInt GetSelectionIndex() const =0;
+
+    /**
+     * Returns the number of selected elements.
+     */
+    virtual TInt GetSelectionCount() const =0;
+
+    /**
+     * Returns the zero-relative index of the item which is currently
+     * at the top of the receiver.
+     */
+    virtual TInt GetTopIndex() const =0;
+
+    /**
+     * Get the selected items indices.
+     * @return  An array of indexes owned by the caller.
+     */
+    virtual const CArrayFix<TInt>* GetSelectionIndicesL() const =0;
+
+    /**
+     * Returns a reference to the image size used in the table.
+     * The image size is the size of the first image added in the table
+     * all other images in the table will use this size.
+     * @return the image size used in the table.
+     */
+    virtual const TSize& ImageSize() const =0;
+
+    /**
+     * Notifies the Table that an image has been set in the specified column.
+     * @param aColumnIndex the index of the column where an image has been added.
+     */
+    virtual void NotifyImageAdded(TInt aColumnIndex) =0;
+
+    /**
+     * Notifies the Table that an image has been removed in the specified column.
+     * @param aColumnIndex the index of the column where an image has been removed.
+     */
+    virtual void NotifyImageRemoved(TInt aColumnIndex) =0;
+
+    /**
+     * Sets the column specified by index to its preferred size.
+     * @param aColumnIndex the index of the Column to pack.
+     */
+    virtual void PackColumn(TInt aColumnIndex) =0;
+
+    /**
+     * Removes the specified item from the <a>Table</a>.
+     * @param aIndex    The specified item.
+     */
+    virtual void RemoveItemL(TInt aIndex) =0;
+
+    /**
+     * Removes a range of items from the <a>Table</a>.
+     * @param aStart    The first element to remove.
+     * @param aEnd      The last element to remove.
+     */
+    virtual void RemoveRangeL(TInt aStart, TInt aEnd) =0;
+
+    /**
+     * Removes the items defined in the aIndices array from the <a>Table</a>.
+     * @param aIndices  The array of the items to remove.
+     * @param aCount    The number of items of this array.
+     */
+    virtual void RemoveItemsL(const TInt* aIndices, TInt aCount) =0;
+
+    /**
+     * Removes all items from the <a>Table</a>.
+     */
+    virtual void RemoveAll() =0;
+
+    /**
+     * Selects a single item.
+     * @param aIndex    The item to select.
+     */
+    virtual void SelectItemL(TInt aIndex, TBool aScroll) =0;
+
+    /**
+     * Selects a range of items.
+     *
+     * @param aStart    The first item to select.
+     * @param aEnd      The last item to select.
+     */
+    virtual void SelectRangeL(TInt aStart, TInt aEnd) =0;
+
+    /**
+     * Selects all items.
+     */
+    virtual void SelectAllL() =0;
+
+    /**
+     * Sets the current focused item.
+     *
+     * @param aIndex    The item to focus on.
+     */
+    virtual void SetFocusIndex(TInt aIndex) =0;
+
+    /**
+     * update the text of the column
+     * @param aTableColumn the TableColumn to set the text.
+     * @param aText the text to set
+     */
+    virtual void SetColumnTextL(MSwtTableColumn& aTableColumn, const TDesC& aText) =0;
+
+    /**
+     * return the text of the column
+     * @param aColumnIndex the index of the column to get the text
+     */
+    virtual const TDesC& GetColumnText(TInt aColumnIndex) const =0;
+
+    /**
+     * Marks the receiver's header as visible if the argument is ETrue,
+     * and marks it invisible otherwise
+     * @param aShow the column visibility
+     */
+    virtual void SetHeaderVisible(TBool aShow) =0;
+
+    /**
+     * Sets the image size of the table, if the image size is currently TSize(0, 0).
+     * @param aSize         The size of the image.
+     * @param aAddedToItem  Should be EFalse if image is being added to TableColumn.
+     *                      In this case item height is not updated.
+     */
+    virtual void SetTableImageSizeIfNotDefined(const TSize& aSize,
+            const TBool& aAddedToItem = ETrue) = 0;
+
+    /**
+     * Marks the receiver's lines as visible if the argument is true,
+     * and marks it invisible otherwise
+     * @param aShow the grid visibility
+     */
+    virtual void SetLinesVisible(TBool aShow) =0;
+
+    /**
+     * Sets the zero-relative index of the item which is currently at the top of the receiver.
+     * @param aIndex the index of the row to set on top in the Table
+     */
+    virtual void SetTopIndex(TInt aIndex) =0;
+
+    /**
+     * Shows the selection.
+     */
+    virtual void ShowSelection() =0;
+
+    /**
+     * return the width of a column in the table
+     * @param aColumnIndex the index of the column
+     * @return the width of a column in the table
+     */
+    virtual TInt GetColumnWidth(TInt aColumnIndex) const =0;
+
+    /**
+     * Return the column alignment of a column in the table.
+     * First column is always left aligned.
+     * @param aColumnIndex the index of the column
+     * @return the alignment of the column, of type CGraphicsContext::TTextAlign
+     */
+    virtual TInt GetColumnAlignment(TInt aColumnIndex) =0;
+
+    /**
+     * set the width in pixel of a column in the table
+     * @param aColumnIndex the index of the column
+     * @param aWidth the width in pixel
+     */
+    virtual void SetColumnWidth(TInt aColumnIndex, TInt aWidth) =0;
+
+    /**
+     * set the column alignment of a column in the table
+     * @param aColumnIndex the index of the column.
+     * @param aAlignment the column's alignment, of type CGraphicsContext::TTextAlign
+     */
+    virtual  void SetColumnAlignment(TInt aColumnIndex, TInt aAlignment) =0;
+
+    /**
+     * Updates the height of the rows if necessary.
+     * @param aChangedFontHeight New relevant height.
+     */
+    virtual void UpdateItemHeight(const TInt& aChangedFontHeight) =0;
+
+    /**
+     * Show the TableColumn
+     * @param aTableColumn the TableColumn to show
+     */
+    virtual void ShowTableColumn(MSwtTableColumn& aTableColumn) =0;
+
+    /**
+     * Show the TableItem
+     * @param aTableItem the TableItem to show
+     */
+    virtual void ShowTableItem(MSwtTableItem& aTableItem) =0;
+
+    /**
+     * Return the height of a TableItem, in pixels. All TableItem have the same height.
+     * @return the item Height
+     */
+    virtual TInt GetItemHeight() const =0;
+
+    /**
+     * Returns the item at the given point in the receiver, or null if no such item exists.
+     * @param aPoint a point in the receiver
+     * @return The TableItem peer under this point
+     */
+    virtual TSwtPeer GetItemFromPoint(TPoint &aPoint) const =0;
+
+    /**
+     * set the image of a column in the Table (will appear on the header)
+     * @param aColumnIndex the index of the column
+     * @param aImage the image to set in the column
+     */
+    virtual void SetColumnImage(TInt aColumnIndex, const MSwtImage* aImage) =0;
+};
+
+
+/**
+ * Interface class for the org.eclipse.swt.widgets.Tree class.
+ */
+class MSwtTree
+{
+protected:
+    virtual ~MSwtTree() {} // Made protected to prevent destruction through the interface
+
+public:
+    virtual MSwtComposite* Composite() = 0;
+    MSwtScrollable* Scrollable()
+    {
+        return Composite()->Scrollable();
+    }
+    MSwtControl* Control()
+    {
+        return Composite()->Control();
+    }
+    virtual TInt AddL(TInt aItemHandle) = 0;
+    virtual TRect Bounds(TInt aItemHandle) const = 0;
+    virtual void Check(TInt aItemHandle, TBool aState) = 0;
+    virtual void Collapse(TInt aItemHandle) = 0;
+    virtual void Expand(TInt aItemHandle) = 0;
+    virtual TInt InsertL(TInt aItemHandle, TInt aIndex) = 0;
+    virtual TBool IsExpanded(TInt aItemHandle) const = 0;
+    virtual TBool IsSelected(TInt aItemHandle) const = 0;
+    virtual TInt ItemAt(TInt aX, TInt aY) const = 0;
+    virtual TInt ItemHeight() const = 0;
+    virtual void Remove(TInt aItemHandle) = 0;
+    virtual void RemoveAll() = 0;
+    virtual void Select(const TInt* aItemHandles, TInt aCount, TBool aState) = 0;
+    virtual void SelectAll(TBool aState) = 0;
+    virtual const CArrayFix<TInt>* SelectionL() const = 0;
+    virtual TInt SelectionCount() const = 0;
+    virtual void SetImageL(TInt aItemHandle, const MSwtImage* aImage) = 0;
+    virtual void SetTextL(TInt aItemHandle, const TDesC& aText) = 0;
+    virtual TInt TopItem() const = 0;
+};
+
+
+/**
+ * Interface class for the org.eclipse.swt.widgets.FontDialog class.
+ */
+class MSwtFontDialog
+{
+protected:
+    virtual ~MSwtFontDialog() {} // Made protected to prevent destruction through the interface
+
+public:
+    /**
+     * Initializes the FontDialog object in order to prepare the display with the selected font.
+     */
+    virtual void SetInitialSelection(const TDesC* aName, TInt aHeight, TInt aStyle) =0;
+
+    /**
+     * Sets the initial font color.
+     */
+    virtual void SetInitialRGB(TInt aRed, TInt aGreen, TInt aBlue) =0;
+
+    /**
+     * Displays the dialog.
+     */
+    virtual TBool OpenL() =0;
+
+    /**
+     * Simple getter. Returns the selected font name or null if none was selected.
+     */
+    virtual const TDesC* GetFontName() const = 0;
+
+    /**
+     * Simple getter. Returns the selected font size.
+     */
+    virtual TInt GetFontHeight() const = 0;
+
+    /**
+     * Simple getter. Returns the selected font style.
+     */
+    virtual TInt GetFontStyle() const = 0;
+
+    /**
+     * Simple getter. Returns the selected font color.
+     */
+    virtual TInt GetFontRGB() const = 0;
+
+    /**
+     * Disposes (delete) the font object.
+     */
+    virtual void Dispose() =0;
+};
+
+
+/**
+ * Interface class for the DirectoryDialog java class.
+ */
+class MSwtDirectoryDialog
+{
+protected:
+    virtual ~MSwtDirectoryDialog() {}
+
+public:
+    /**
+     * Displays the dialog.
+     * @return A buffer containing the path and filename of the selected file,
+     *         or NULL if Cancel button is used to close the dialog. The user
+     *         has to release this buffer.
+     */
+    virtual HBufC* OpenLD() =0;
+};
+
+
+/**
+ * Interface class for the org.eclipse.swt.widgets.Browser class
+ * A class that implements MSwtBrowser must also implement MSwtConposite.
+ */
+class MSwtBrowser
+{
+protected:
+    /**
+     * Destructor
+     */
+    virtual ~MSwtBrowser() {} // Made protected to prevent destruction through the interface
+
+public:
+
+    /**
+     * @returns the MSwtComposite interface
+     */
+    virtual MSwtComposite* Composite() = 0;
+
+    /**
+     * @returns the MSwtScrollable interface
+     */
+    MSwtScrollable* Scrollable()
+    {
+        return Composite()->Scrollable();
+    }
+
+    /**
+     * @returns the MSwtControl interface
+     */
+    MSwtControl* Control()
+    {
+        return Composite()->Control();
+    }
+
+    /**
+     * Navigates to previous URL from history.
+     * @return ETrue if back command was sent to browser contorl without error, and EFalse otherwise.
+     */
+    virtual TBool BackL() = 0;
+
+    /**
+     * Navigates to next URL from history
+     * @return ETrue if forward command was sent to browser contorl without error, and EFalse otherwise.
+     */
+    virtual TBool ForwardL() = 0;
+
+    /**
+     * Get current URL
+     * @return the Pointer to the current URL
+     */
+    virtual HBufC* GetUrlL() = 0;
+
+    /**
+     * Get availability of previous session history item
+     * @return ETrue if previous session history item is available, and EFalse otherwise.
+     */
+    virtual TBool IsBackEnabled() const = 0;
+
+    /**
+     * Get availability of next session history item
+     * @return ETrue if next session history item is available, and EFalse otherwise.
+     */
+    virtual TBool IsForwardEnabled() const = 0;
+
+    /**
+     * Refresh the current page
+     * @return void.
+     */
+    virtual void  RefreshL() = 0;
+
+    /**
+     * Stop any loading and rendering activity
+     * @return void.
+     */
+    virtual void  StopL() = 0;
+
+    /**
+     * Renders HTML.
+     * @return ETrue if the operation was successful and EFalse otherwise. .
+     */
+    virtual TBool SetTextL(const TDesC&  aHtml) = 0;
+
+    /**
+     * Loads a URL.
+     * @return ETrue if the operation was successful and EFalse otherwise. .
+     */
+    virtual TBool SetUrlL(const TDesC&  aUrl) = 0;
+
+    /**
+     * Load a URL based on the @param aOperationType. The function must be called by callback event framework.
+     * Don't call it from anywhere else
+     * @param aUrl,the URL to load
+     * @param  aOperationType, the loading operation type
+     * @return void
+     */
+    virtual void  DoSetUrlL(const TDesC&  aUrl, TSwtBrCallBackOperationType aOperationType) = 0;
+
+    /**
+     * Handles free ram memory event.
+     * @param aEventType The type of event.
+     * @return void.
+     */
+    virtual void HandleFreeRamEventL(TInt aEventType) = 0;
+};
+
+#endif // ESWTWIDGETSEXPANDED_H