Quantcast
Channel: Adobe Community : Popular Discussions - InDesign SDK
Viewing all articles
Browse latest Browse all 78596

Is it possible to change TreeView's background color, not node color?

$
0
0

In advance, Thanks!!

 

treeview.JPG

 

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!!


Viewing all articles
Browse latest Browse all 78596

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>