In advance, Thanks!!
Actually, I've made my own treeview in my project. and I've changed my treeview node color as i want
I wonder whether or not to change treeview's background color, not node color in below class.
// in ~.fr
Class
{
kMyTreeViewWidgetBoss,
kTreeViewWidgetBoss,
{
IID_ICONTROLVIEW, kMyTreeViewCtrlViewImpl,
IID_ITREEVIEWWIDGETMGR, kMyTreeViewListBoxWidgetMgrImpl,
IID_ITREEVIEWHIERARCHYADAPTER, kMyTreeViewListBoxHierarchyAdapterImpl,
IID_ISTRINGLISTDATA, kStringListDataImpl,
IID_IOBSERVER, kMyTreeViewCtrlBoxObserverImpl,
}
},
type MainTreeViewListBox(kViewRsrcType) : TreeViewWidget (ClassID = kMyTreeViewWidgetBoss) {};
MainTreeViewListBox //Tree view
(
kMyTreeViewWithTextListWidgetID, kPMRsrcID_None, // WidgetId, RsrcId
kBindAll, // Frame binding
Frame(-1, 26, 300, 276) // Frame
kTrue, kTrue, // Visible, Enabled
kTrue, // EraseBeforeDraw
kInterfacePaletteFill, // InterfaceColor
"",
kHideRootNode,// | kDrawEndLine, // Options. Display root node
kFalse, // Use H Scroll bar
kTrue, // Use V scroll bar
20, // fVScrollButtonIncrement
20, // fVThumbScrollIncrement
0, // fHScrollButtonIncrement
0, // fHThumbScrollIncrement
2, // Items selectable, 0 = No Selection, 1 = Single Selection, 2 = Multiple Selection
kFalse, // Allow children from multiple parents to be selected
kTrue, // Allow discontiguous selection
{
//The tree view is dynamically created.
},
),
class MyTreeViewCtrlView : public PanelView
{
...
virtual void Draw(IViewPort* viewPort, SysRgn updateRgn);
...
}
void MyTreeViewCtrlView::Draw( IViewPort* viewPort, SysRgn updateRgn )
{
AGMGraphicsContext gc(viewPort, this, updateRgn);
InterfacePtr<IGraphicsPort> gPort(gc.GetViewPort(), UseDefaultIID()); // IID_IGRAPHICSPORT);
ASSERT(gPort);
gPort->gsave();
PMRect frameOut = GetFrame();
frameOut.MoveTo(0, 0);
COLORREF crBackColor = RGB( 255, 0, 0 );
gPort->setrgbcolor( GetRGBtoReal( GetRValue(crBackColor) ), GetRGBtoReal( GetGValue(crBackColor) ), GetRGBtoReal( GetBValue (crBackColor) ));
gPort->rectpath(frameOut);
gPort->fill();
gPort->grestore();
PanelView::Draw( viewPort, updateRgn );
}
In above case, there are errors in kMyTreeViewCtrlViewImple when Indesign is launching.
// Error Assert
XferObject- ReadWrite for impl kMyTreeViewCtrlViewImpl of iid IID_ICONTROLVIEW in class kMyTreeViewWidgetBoss read wrong amount in plugin kMyTreeViewWidgetBoss
///
but, in kMyTreeViewWidgetBoss ClassDescriptionTable, when remove this( IID_ICONTROLVIEW, kMyTreeViewCtrlViewImpl), that's ok. but I can't change background color. just interfacepalettefill color
Please help me!!