# TBasicPropertiesClient Class Reference
[Base Classes for plugins]

Inheritance diagram for TBasicPropertiesClient:

List of all members.

## Public Member Functions
| TBasicPropertiesClient (IPropertiesModule *inPropertiesModule)
| ~TBasicPropertiesClient ()
MCCOMErr MCCOMAPI | QueryInterface (const MCIID &riid, void **ppvObj)
uint32 MCCOMAPI | AddRef ()
uint32 MCCOMAPI | Release ()
void MCCOMAPI | DataChanged (IChangeChannel *channel, IDType changeKind, IMCUnknown *changedData)
void MCCOMAPI | GetSelectionChannel (IChangeChannel **outChannel)
ResourceID MCCOMAPI | GetToolPropResID ()
int32 MCCOMAPI | GetToolTabSize ()
void MCCOMAPI | LoadPageData (IMFPart *inTopPart)
void MCCOMAPI | LoadToolPageData (IMFPart *inTopPart)
boolean MCCOMAPI | HandlePageHit (IMFPart *inTopPart, int32 inMessage, IMFResponder *inResponder, void *inData)
boolean MCCOMAPI | HandleToolPageHit (IMFPart *inTopPart, int32 inMessage, IMFResponder *inResponder, void *inData)
void MCCOMAPI | GetExtraPart (IMFPart **outExtraPart)
void MCCOMAPI | GetExtraTabs (TMCClassArray< TPropertyTab > &extraTabs)
void MCCOMAPI | ExtraTabsLoaded (IMFPart *inHostPart)
void MCCOMAPI | UnLoadProperties (IMFSplitBarPart *inPropertiesSplitBar)
void MCCOMAPI | PreLoadProperties (IMFSplitBarPart *inPropertiesSplitBar)
void MCCOMAPI | Validate ()
## Protected Member Functions
virtual void | GetPreferedSplit (int32 &outPreferedSize, boolean &outForTopPart)=0
virtual void | StorePreferedSplit (int32 inPreferedSize)=0
## Protected Attributes
TMCCountedPtr< IPropertiesModule > | fPropertiesModule

## Detailed Description

Basic Properties Client class. Derive from this for a default implementation of IPropertiesClient. Don't forget STANDARD_RELEASE in your derived class.

See also:
  IPropertiesClient

## Constructor & Destructor Documentation

TBasicPropertiesClient::TBasicPropertiesClient | ( | IPropertiesModule * | inPropertiesModule | ) |

TBasicPropertiesClient::~TBasicPropertiesClient | ( |  | ) |

## Member Function Documentation

uint32 MCCOMAPI TBasicPropertiesClient::AddRef | ( |  | ) | `[inline, virtual]`

Increments the reference count of the object

Reimplemented from TBasicUnknown.

void MCCOMAPI TBasicPropertiesClient::DataChanged | ( | IChangeChannel * | channel,
|  | IDType | changeKind,
|  | IMCUnknown * | changedData |
| ) |  |  | `[inline, virtual]`

This function is called when a change has been posted on a channel on which this IChangeListener registered itself.

Parameters:

  | channel | The channel that is notifying of the change.
  | changeKind | The kind of change.
  | changedData | Data associated with the type of change.

Implements IChangeListener.

void MCCOMAPI TBasicPropertiesClient::ExtraTabsLoaded | ( | IMFPart * | inHostPart | ) | `[inline, virtual]`

Tells the client that the extra tabs have been loaded

Parameters:

  | inHostPart | The properties host part (so you can find things by ID if you need to)

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::GetExtraPart | ( | IMFPart ** | outExtraPart | ) | `[virtual]`

This is called when the properties module needs the extra part that will be placed above the tabs part in the properties window. If you do not want any extra part, return NULL in outExtraPart.

Note:
  The properties module will handle the addition and removal of the part from the host - however, the properties client is in charge of calling CallPrepareToDestroy (typically when it is destroyed), so keep a reference to the extra part.
  The Extra Part should have left and right constraints so that it is properly refreshed when the drawer is opened.

Parameters:

  | outExtraPart | Returns a pointer to the extra part.

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::GetExtraTabs | ( | TMCClassArray< TPropertyTab > & | extraTabs | ) | `[virtual]`

Returns the list of the extra tabs that are to be displayed under the regular properties tabs.

Parameters:

  | extraTabs | Returns the additional tabs to be displayed under the regular properties tabs.

Implements IPropertiesClient.

virtual void TBasicPropertiesClient::GetPreferedSplit | ( | int32 & | outPreferedSize,
|  | boolean & | outForTopPart |
| ) |  |  | `[protected, pure virtual]`

void MCCOMAPI TBasicPropertiesClient::GetSelectionChannel | ( | IChangeChannel ** | outChannel | ) | `[virtual]`

Called when the properties module needs to know the selection channel associated with this client. Note: remember to AddRef outChannel before returning!

Parameters:

  | outChannel |

Implements IPropertiesClient.

ResourceID MCCOMAPI TBasicPropertiesClient::GetToolPropResID | ( |  | ) | `[inline, virtual]`

This is called when a tool changes, and should return the resource ID of the 'Prop' resource containing the pages to be loaded.

Implements IPropertiesClient.

int32 MCCOMAPI TBasicPropertiesClient::GetToolTabSize | ( |  | ) | `[inline, virtual]`

Returns the size of the tool tabs (or 0 if not visible).

Implements IPropertiesClient.

boolean MCCOMAPI TBasicPropertiesClient::HandlePageHit | ( | IMFPart * | inTopPart,
|  | int32 | inMessage,
|  | IMFResponder * | inResponder,
|  | void * | inData |
| ) |  |  | `[inline, virtual]`

This is called when a user event happens inside the client's pages (e.g. a slider moved or a text edit field was validated). This function is similar to IMFExResponder::Receive() (the last three arguments are the same), and should take the appropriate changed data and post an undoable action to make the change in the selection.

Parameters:

  | inTopPart | Pointer to host part in which the Properties Client sits.
  | inMessage | Message passed by the event. See EMFPartMessage
  | inResponder | Pointer to responder that initiated the event.
  | inData | Data passed along with the event.

Returns:
  true if the event has been handled, and false otherwise.

Implements IPropertiesClient.

boolean MCCOMAPI TBasicPropertiesClient::HandleToolPageHit | ( | IMFPart * | inTopPart,
|  | int32 | inMessage,
|  | IMFResponder * | inResponder,
|  | void * | inData |
| ) |  |  | `[inline, virtual]`

This is called when a user even happens inside the client's tool pages (e.g. a slider moved or a text edit field was validated). This function is similar to IMFExResponder::Receive() (the last three arguments are the same), and should take the appropriate changed data and post an undoable action to make the change in the selection.

Parameters:

  | inTopPart | Pointer to host part in which the Properties Client sits.
  | inMessage | Message passed by the event. See EMFPartMessage
  | inResponder | Pointer to responder that initiated the event.
  | inData | Data passed along with the event.

Returns:
  true if the event has been handled, and false otherwise.

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::LoadPageData | ( | IMFPart * | inTopPart | ) | `[inline, virtual]`

This is called when the Properties Client's pages need to be loaded.

Parameters:

  | inTopPart | Pointer to the Part that will hold the pages.

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::LoadToolPageData | ( | IMFPart * | inTopPart | ) | `[inline, virtual]`

This is called when the Properties Client's tool pages need to be loaded.

Parameters:

  | inTopPart | Pointer to the Part that will hold the pages.

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::PreLoadProperties | ( | IMFSplitBarPart * | inPropertiesSplitBar | ) | `[virtual]`

Called when the client is about to be put in the properties. The client should set the splitbar to the position it prefers for it.

Parameters:

  | inPropertiesSplitBar | Pointer to the properties window split bar part.

Implements IPropertiesClient.

MCCOMErr MCCOMAPI TBasicPropertiesClient::QueryInterface | ( | const MCIID & | riid,
|  | void ** | ppvObj |
| ) |  |  | `[virtual]`

Check if the object supports a given interface and returns a pointer to that interface if it does. Note that QueryInterface will increment the reference count of the object by one if the interface is found.

Parameters:

  | riid | GUID of the interface
  | ppvObj | A pointer to the pointer being returned.

Reimplemented from TBasicUnknown.

uint32 MCCOMAPI TBasicPropertiesClient::Release | ( |  | ) | `[virtual]`

Decrements the reference count of the object. If the reference count reaches zero, the object is destroyed.

Implements IMCUnknown.

virtual void TBasicPropertiesClient::StorePreferedSplit | ( | int32 | inPreferedSize | ) | `[protected, pure virtual]`

void MCCOMAPI TBasicPropertiesClient::UnLoadProperties | ( | IMFSplitBarPart * | inPropertiesSplitBar | ) | `[virtual]`

Called when the client is removed from the properties so that it can release references it shouldn't keep

Parameters:

  | inPropertiesSplitBar | Pointer to the properties window split bar. Use to store its position in the client's preferences.

Implements IPropertiesClient.

void MCCOMAPI TBasicPropertiesClient::Validate | ( |  | ) | `[inline, virtual]`

Called during the validation of the property module (usually before drawing the UI) => this is the place where you should load panels invalidated during a data changed

Implements IPropertiesClient.

## Member Data Documentation

TMCCountedPtr<IPropertiesModule> TBasicPropertiesClient::fPropertiesModule`[protected]`

The documentation for this class was generated from the following file:

- BasicPropertiesClient.h