1#ifndef __SADAPTER_I__H__
2#define __SADAPTER_I__H__
4#include <interface/obj-ref-i.h>
5#include <interface/SWindow-i.h>
6#include <interface/sstring-i.h>
11#define INTERFACE ILvDataSetObserver
12DECLARE_INTERFACE_(ILvDataSetObserver,
IObjRef)
18 STDMETHOD_(
long, AddRef)(THIS) PURE;
24 STDMETHOD_(
long, Release)(THIS) PURE;
30 STDMETHOD_(
void, OnFinalRelease)(THIS) PURE;
36 STDMETHOD_(
void, onChanged)(THIS) PURE;
42 STDMETHOD_(
void, onInvalidated)(THIS) PURE;
49 STDMETHOD_(
void, OnItemChanged)(THIS_
int iItem) PURE;
53#define INTERFACE ILvAdapter
54DECLARE_INTERFACE_(ILvAdapter,
IObjRef)
60 STDMETHOD_(
long, AddRef)(THIS) PURE;
66 STDMETHOD_(
long, Release)(THIS) PURE;
72 STDMETHOD_(
void, OnFinalRelease)(THIS) PURE;
79 STDMETHOD_(
void, registerDataSetObserver)(THIS_ ILvDataSetObserver * observer) PURE;
86 STDMETHOD_(
void, unregisterDataSetObserver)(THIS_ ILvDataSetObserver * observer) PURE;
92 STDMETHOD_(
int, getCount)(THIS) PURE;
101 STDMETHOD_(
void, getView)(THIS_
int position, IWindow *pItem,
IXmlNode *xmlTemplate) PURE;
109 STDMETHOD_(
int, getItemViewType)(THIS_
int position, DWORD dwState) PURE;
115 STDMETHOD_(
int, getViewTypeCount)(THIS) PURE;
126 STDMETHOD_(
void, getViewDesiredSize)(THIS_ SIZE * ret,
int position, IWindow *pItem,
int wid,
int hei) PURE;
132 STDMETHOD_(BOOL, isEmpty)(THIS) PURE;
140 STDMETHOD_(
void, getItemDesc)(THIS_
int positoin, IStringW *pDesc) PURE;
147 STDMETHOD_(
void, InitByTemplate)(THIS_
IXmlNode * xmlTemplate) PURE;
155 STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFGUID id,
IObjRef * *ppObj) PURE;
159#define INTERFACE IMcAdapter
160DECLARE_INTERFACE_(IMcAdapter, ILvAdapter)
166 STDMETHOD_(
long, AddRef)(THIS) PURE;
172 STDMETHOD_(
long, Release)(THIS) PURE;
178 STDMETHOD_(
void, OnFinalRelease)(THIS) PURE;
185 STDMETHOD_(
void, registerDataSetObserver)(THIS_ ILvDataSetObserver * observer) PURE;
192 STDMETHOD_(
void, unregisterDataSetObserver)(THIS_ ILvDataSetObserver * observer) PURE;
198 STDMETHOD_(
int, getCount)(THIS) PURE;
207 STDMETHOD_(
void, getView)(THIS_
int position, IWindow *pItem,
IXmlNode *xmlTemplate) PURE;
215 STDMETHOD_(
int, getItemViewType)(THIS_
int position, DWORD dwState) PURE;
221 STDMETHOD_(
int, getViewTypeCount)(THIS) PURE;
232 STDMETHOD_(
void, getViewDesiredSize)(THIS_ SIZE * ret,
int position, IWindow *pItem,
int wid,
int hei) PURE;
238 STDMETHOD_(BOOL, isEmpty)(THIS) PURE;
246 STDMETHOD_(
void, getItemDesc)(THIS_
int positoin, IStringW *pDesc) PURE;
253 STDMETHOD_(
void, InitByTemplate)(THIS_
IXmlNode * xmlTemplate) PURE;
261 STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFGUID id,
IObjRef * *ppObj) PURE;
269 STDMETHOD_(
void, GetColumnName)(CTHIS_
int iCol, IStringW *pName) SCONST PURE;
277 STDMETHOD_(BOOL, IsColumnVisible)(CTHIS_
int iCol) SCONST PURE;
286 STDMETHOD_(BOOL, OnSort)(THIS_
int iCol, UINT *pFmts,
int nCols) PURE;
294 STDMETHOD_(
void, SetColumnsWidth)(THIS_
int *pColWid,
int nCols) PURE;
298#define INTERFACE ITvDataSetObserver
299DECLARE_INTERFACE_(ITvDataSetObserver,
IObjRef)
305 STDMETHOD_(
long, AddRef)(THIS) PURE;
311 STDMETHOD_(
long, Release)(THIS) PURE;
317 STDMETHOD_(
void, OnFinalRelease)(THIS) PURE;
324 STDMETHOD_(
void, onBranchChanged)(THIS_ HSTREEITEM hBranch) PURE;
333 STDMETHOD_(
void, onBranchInvalidated)
334 (THIS_ HSTREEITEM hBranch, BOOL bInvalidParents, BOOL bInvalidChildren) PURE;
343 STDMETHOD_(
void, onBranchExpandedChanged)
344 (THIS_ HSTREEITEM hBranch, BOOL bExpandedOld, BOOL bExpandedNew) PURE;
351 STDMETHOD_(
void, notifyItemBeforeRemove)
352 (THIS_ HSTREEITEM hItem) PURE;
356#define ITEM_ROOT STVI_ROOT
357#define ITEM_LAST STVI_LAST
358#define ITEM_FIRST STVI_FIRST
360typedef enum DATA_INDEX
362 DATA_INDEX_ITEM_HEIGHT = 0,
363 DATA_INDEX_ITEM_WIDTH,
364 DATA_INDEX_BRANCH_HEIGHT,
365 DATA_INDEX_BRANCH_WIDTH,
366 DATA_INDEX_ITEM_EXPANDED,
367 DATA_INDEX_ITEM_OFFSET,
368 DATA_INDEX_ITEM_USER,
374 TVC_COLLAPSE = 0x0001,
380#define INTERFACE ITvAdapter
381DECLARE_INTERFACE_(ITvAdapter,
IObjRef)
387 STDMETHOD_(
long, AddRef)(THIS) PURE;
393 STDMETHOD_(
long, Release)(THIS) PURE;
399 STDMETHOD_(
void, OnFinalRelease)(THIS) PURE;
406 STDMETHOD_(
void, registerDataSetObserver)(THIS_ ITvDataSetObserver * observer) PURE;
413 STDMETHOD_(
void, unregisterDataSetObserver)(THIS_ ITvDataSetObserver * observer) PURE;
421 STDMETHOD_(ULONG_PTR, GetItemDataByIndex)(CTHIS_ HSTREEITEM hItem, DATA_INDEX idx) SCONST PURE;
430 STDMETHOD_(
void, SetItemDataByIndex)
431 (THIS_ HSTREEITEM hItem, DATA_INDEX idx, ULONG_PTR data) PURE;
438 STDMETHOD_(HSTREEITEM, GetParentItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
445 STDMETHOD_(HSTREEITEM, GetFirstChildItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
452 STDMETHOD_(HSTREEITEM, GetLastChildItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
459 STDMETHOD_(HSTREEITEM, GetPrevSiblingItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
466 STDMETHOD_(HSTREEITEM, GetNextSiblingItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
473 STDMETHOD_(BOOL, HasChildren)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
480 STDMETHOD_(BOOL, IsItemVisible)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
486 STDMETHOD_(HSTREEITEM, GetFirstVisibleItem)(CTHIS) SCONST PURE;
492 STDMETHOD_(HSTREEITEM, GetLastVisibleItem)(CTHIS) SCONST PURE;
500 STDMETHOD_(BOOL, IsDecendentItem)(CTHIS_ HSTREEITEM hItem, HSTREEITEM hChild) SCONST PURE;
506 STDMETHOD_(HSTREEITEM, GetPrevVisibleItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
512 STDMETHOD_(HSTREEITEM, GetNextVisibleItem)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
520 STDMETHOD_(
void, ExpandItem)(THIS_ HSTREEITEM hItem, UINT code) PURE;
527 STDMETHOD_(BOOL, IsItemExpanded)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
535 STDMETHOD_(
void, SetItemExpanded)(THIS_ HSTREEITEM hItem, BOOL bExpanded) PURE;
554 STDMETHOD_(
void, getView)
555 (THIS_ HSTREEITEM hItem, IWindow * pItem,
IXmlNode * pXmlTemplate) PURE;
562 STDMETHOD_(
int, getViewType)(CTHIS_ HSTREEITEM hItem) SCONST PURE;
568 STDMETHOD_(
int, getViewTypeCount)(CTHIS) SCONST PURE;
579 STDMETHOD_(
void, getViewDesiredSize)
580 (THIS_ SIZE * ret, HSTREEITEM hItem, IWindow * pItem,
int wid,
int hei) PURE;
586 STDMETHOD_(BOOL, isViewWidthMatchParent)(CTHIS) SCONST PURE;
593 STDMETHOD_(
void, InitByTemplate)(THIS_
IXmlNode * pXmlTemplate) PURE;
601 STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFGUID id,
IObjRef * *ppObj) PURE;
Interface for reference counting.