Hi,
I’m having a problem with a resizable dialog that contains a treeview in an EVEGenericPanelWithBorderWidget. I have changed our code to open the dialog with the resize flag set to true and made the items in the fr file ’BindAll’ and while everything appears to resize correctly, I can’t click on any items in the treeview that are not visible when the dialog is at its minimum size. So, even though I can see all nodes in the treeview, I can’t click on anything below the 6th node. Is there a setting somewhere to change this behaviour?
Here's a cut down version of our fr file if anyone can spot a mistake!
Class
{
kSetPriceListDialogBoss,
kResizeDialogBoss,
{
// Provides management and control over the dialog.
IID_IDIALOGCONTROLLER, kSetPriceListDialogControllerImpl,
// Allows dynamic processing of dialog changes.
IID_IOBSERVER, kSetPriceListDialogObserverImpl,
}
},
Class
{
kSetPriceListTreeViewWidgetBoss,
kTreeViewWidgetBoss,
{
// Furnishes application framework with widgets as needed.
IID_ITREEVIEWWIDGETMGR, kSetPriceListTreeViewWidgetMgrImpl,
// Adapts our data model to the needs of the application framework.
IID_ITREEVIEWHIERARCHYADAPTER, kSetPriceListTreeViewAdapterImpl,
// Implements the observer that receives the messages from the
// application when the user clicks in the list box.
//IID_IOBSERVER, kSetPriceListListBoxObserverImpl,
}
},
resource LocaleIndex(kSetPriceListDialogResourceID)
{
kViewRsrcType,
{
kWildFS, k_Wild, kSetPriceListDialogResourceID + index_enUS
}
};
type SetPriceListDialogWidget(kViewRsrcType) : ResizeDialogWidget(ClassID = kSetPriceListDialogBoss) //PUB-249
{
WidgetEveInfo;
};
type SetPriceListTreeViewWidget(kViewRsrcType) : TreeViewWidget(ClassID = kSetPriceListTreeViewWidgetBoss)
{
WidgetEveInfo;
};
resource SetPriceListDialogWidget(kSetPriceListDialogResourceID + index_enUS)
{
__FILE__, __LINE__,
kSetPriceListDialogWidgetID, // WidgetID
kPMRsrcID_None, // RsrcID
kBindAll, // Binding
Frame(0,0,241,233), // Frame(l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kFalse, kInvalidInterfaceColor,
kSetPriceListDialogTitleKey,
{
EVEGenericPanelWidget
(
kInvalidWidgetID, // WidgetId
0 // RsrcId
0, // Widget EVE Info
kBindAll, // Frame binding
Frame(0,0,232,149) // Frame
kTrue, // Visible
kTrue, // Enabled
kEVEAlignFill | kEVERegularSpaceAfter | kEVEArrangeChildrenInRow,
{
EVEGenericPanelWithBorderWidget
(
// CControlView properties
kInvalidWidgetID,
kPMRsrcID_None, // PMRsrc ID
kBindAll, // Frame binding
Frame(0,0,210,135) // Frame (l,t,r,b)
kTrue, // Visible
kTrue, // Enabled
// CTextControlData properties
"", // Control label
{
SetPriceListTreeViewWidget
(
kSetPriceListTreeViewWidgetID, // WidgetID
kPMRsrcID_None, // RsrcId
kBindAll,
Frame(0,0,209,134) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kTrue, // EraseBeforeDraw
kInterfacePaletteFill,
"",
kHideRootNode, // Options
kFalse, // Use H Scroll bar
kTrue, // Use V Scroll bar
20, // Vertical Scroll button increment
20, // Vertical Thumb Scroll increment
0, // Horizontal Scroll button increment
0, // Horizontal Thumb scroll button increment
1, // Items selectable, 0 = No Selection, 1 = Single Selection, 2 = Multiple Selection
kFalse, // Allow children from multiple parents to be selected
kFalse,
{
}
kEVENoSpaceAfter,
),
}
kEVERegularSpaceAfter,
),
}
),
}
kEVEArrangeChildrenInColumn | kEVESmallMargin,
}
type SetPriceListTreeNodeWidget(kViewRsrcType) : PrimaryResourcePanelWidget(ClassID = kTreeNodeWidgetBoss)
{
WidgetEveInfo;
};
resource SetPriceListTreeNodeWidget(kPriceListElementResourceID)
{
__FILE__, __LINE__,
kSetPriceListTreeNodeWidgetID, // WidgetID
kPMRsrcID_None, // RsrcId
kBindLeft | kBindRight, // Frame binding
Frame(0,0,208,20), // Frame
kTrue, kTrue, // Visible, Enabled
"", // Panel name
{
EVEInfoStaticTextWidget
(
kSetPriceListTreeNodeNameWidgetID // WidgetID
kSysStaticTextPMRsrcId, // RsrcId
kBindNone, // Frame binding
Frame(2,0,189,18) // Frame NOTE: This has to be slightly smaller than
// the enclosing widget to get the white list item
// separator line to appear.
kTrue, kTrue, // Visible, Enabled
kAlignLeft, // Alignment
kDontEllipsize, kFalse, // Ellipsize style
"",
0,
kPaletteWindowSystemScriptFontId,
kPaletteWindowSystemScriptHiliteFontId,
kEVENoSpaceAfter,
),
}
kEVEArrangeChildrenInColumn| kEVESmallMargin,
};
Thanks,
Dan Tate