/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #ifndef _APITAB_H #define _APITAB_H #ifndef __APIAPI_H #include "apiapi.h" #endif #ifndef __NSGUIDS_H #include "nsguids.h" #endif #define APICLASS_TABCONTROL "TabControl" // // Message send to parent // // Notify that a tab is about the change. The message handler // can return non-zero to prevent the user from changing // the tab. #ifndef TCM_TABCHANGING #define TCM_TABCHANGING (WM_USER + 200) #endif // Notify tab changed. The message handler can use // GetCurSel to determine the new page. #ifndef TCM_TABCHANGED #define TCM_TABCHANGED (WM_USER + 201) #endif #undef INTERFACE #define INTERFACE ITabControl DECLARE_INTERFACE_(ITabControl, IUnknown) { // Attributes // Returns the height of the tab control STDMETHOD_(int, GetHeight) (THIS) const PURE; // Returns the currently selected tag (0 based index) STDMETHOD_(int, GetCurSel) (THIS) const PURE; // Returns the number of tabs STDMETHOD_(int, GetItemCount) (THIS) const PURE; // Returns the HWND of the tab control STDMETHOD_(HWND, GetHWnd) (THIS) const PURE; // Returns the tab under a given point (in client coords) STDMETHOD_(int, TabFromPoint) (const POINT *pt) PURE; // Operations // Creates a TabControl. Takes normal window styles. STDMETHOD(Create) (THIS_ DWORD dwStyle, const RECT *rect, HWND hParent, UINT nID) PURE; // Adds a tab with caption and image with index iImage (-1 for no image) STDMETHOD(AddTab) (THIS_ LPCTSTR lpszCaption, int iImage) PURE; // Removed tab nTab (0 based index) STDMETHOD(RemoveTab) (THIS_ int nTab) PURE; // Show/Hide tab nTab (0 based index) STDMETHOD(ShowTab) (THIS_ int nTab, BOOL bShow = TRUE) PURE; // Select tab nTab (0 based index) STDMETHOD(SetCurSel) (THIS_ int nTab) PURE; // Sets the bitmap for the tab images STDMETHOD(LoadBitmap) (THIS_ UINT id) PURE; // Set the size of each tab image STDMETHOD(SetSizes) (THIS_ const SIZE *size) PURE; // Change the text of a tab STDMETHOD(SetText) (THIS_ int idx, LPCSTR lpszCaption) PURE; }; typedef ITabControl * LPTABCONTROL; #define ApiTabControl(v,unk) APIPTRDEF(IID_ITabControl,ITabControl,v,unk) #endif