Copy link to clipboard
Copied
Hi Everyone,
In Indesign SDK there is one project called BasicDialog.sdk. In this sdk i have tried to convert UI of basic dialog to palette/Panel, but after build and placing the file in InDesign2020>>Plugins>>SDK it shows dialogbox again....
The code used in BasicDialog project is
resource PluginVersion (kSDKDefPluginVersionResourceID)
{
kTargetVersion,
kBscDlgPluginID,
kSDKDefPlugInMajorVersionNumber, kSDKDefPlugInMinorVersionNumber,
kSDKDefHostMajorVersionNumber, kSDKDefHostMinorVersionNumber,
kBscDlgCurrentMajorFormatNumber, kBscDlgCurrentMinorFormatNumber,
{kInDesignProduct, kInCopyProduct },
{kWildFS },
kUIPlugIn,
kBscDlgVersion
};
resource ClassDescriptionTable(kSDKDefClassDescriptionTableResourceID)
{{{
Class
{
kBscDlgDialogBoss,
kDialogBoss,
{
IID_IDIALOGCONTROLLER, kBscDlgDialogControllerImpl,
IID_IOBSERVER, kBscDlgDialogObserverImpl,
}
},
Class
{
kBscDlgActionComponentBoss,
kBaseActionComponentBoss,
{
IID_IACTIONCOMPONENT, kBscDlgActionComponentImpl,
}
}
}}};
resource FactoryList (kSDKDefFactoryListResourceID)
{
kImplementationIDSpace,
{
#include "BscDlgFactoryList.h"
}
};
resource MenuDef (kSDKDefMenuResourceID)
{
{
// The About Plug-ins sub-menu item for this plug-in.
kBscDlgAboutActionID, // ActionID (kInvalidActionID for positional entries)
kBscDlgAboutMenuPath, // Menu Path.
kSDKDefAlphabeticPosition, // Menu Position.
kSDKDefIsNotDynamicMenuFlag, // kSDKDefIsNotDynamicMenuFlag or kSDKDefIsDynamicMenuFlag.
// The Plug-ins menu sub-menu items for this plug-in.
kBscDlgDialogActionID,
kBscDlgPluginsMenuPath,
kBscDlgDialogMenuItemPosition,
kSDKDefIsNotDynamicMenuFlag,
}
};
resource ActionDef (kSDKDefActionResourceID)
{
{
kBscDlgActionComponentBoss, // ClassID of boss class that implements the ActionID.
kBscDlgAboutActionID, // ActionID.
kBscDlgAboutMenuKey, // Sub-menu string.
kHelpMenuActionArea, // Area name (see ActionDefs.h).
kNormalAction, // Type of action (see ActionDefs.h).
kDisableIfLowMem, // Enabling type (see ActionDefs.h).
kInvalidInterfaceID, // Selection InterfaceID this action cares about or kInvalidInterfaceID.
kSDKDefInvisibleInKBSCEditorFlag, // kSDKDefVisibleInKBSCEditorFlag or kSDKDefInvisibleInKBSCEditorFlag.
kBscDlgActionComponentBoss,
kBscDlgDialogActionID,
kBscDlgDialogMenuItemKey,
kOtherActionArea,
kNormalAction,
kDisableIfLowMem,
kInvalidInterfaceID,
kSDKDefInvisibleInKBSCEditorFlag,
}
};
resource LocaleIndex (kSDKDefStringsResourceID)
{
kStringTableRsrcType,
{
kWildFS, k_enUS, kSDKDefStringsResourceID + index_enUS
kWildFS, k_jaJP, kSDKDefStringsResourceID + index_jaJP
kWildFS, k_Wild, kSDKDefStringsResourceID + index_enUS
}
};
resource LocaleIndex (kSDKDefStringsNoTransResourceID)
{
kStringTableRsrcType,
{
kWildFS, k_Wild, kSDKDefStringsNoTransResourceID + index_enUS
}
};
resource StringTable (kSDKDefStringsNoTransResourceID + index_enUS)
{
k_enUS, // Locale Id
kEuropeanMacToWinEncodingConverter, // Character encoding converter
{
// No-Translate strings go here:
}
};
resource LocaleIndex (kSDKDefDialogResourceID)
{
kViewRsrcType,
{
kWildFS, k_Wild, kSDKDefDialogResourceID + index_enUS
}
};
type BscDlgDialogBoss(kViewRsrcType) : DialogBoss(ClassID = kBscDlgDialogBoss)
{
WidgetEveInfo;
};
resource BscDlgDialogBoss (kSDKDefDialogResourceID + index_enUS)
{
__FILE__, __LINE__,
kBscDlgDialogWidgetID, // WidgetID
kPMRsrcID_None, // RsrcID
kBindNone, // Binding
Frame(0,0,388,112) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kBscDlgDialogTitleKey, // Dialog name
{
EVEGenericPanelWidget
(
kInvalidWidgetID, // WidgetId
0 // RsrcId
0, // Widget EVE Info
kBindNone, // Frame binding
Frame(0,0,280,112) // Frame
kTrue, // Visible
kTrue, // Enabled
kEVEAlignFill | kEVERegularSpaceAfter | kEVEArrangeChildrenInColumn,
{
// Adding a dummy widget to align other widgets properly
EVEStaticTextWidget
(
kInvalidWidgetID, // WidgetId
kSysStaticTextPMRsrcId, // RsrcId
kBindNone, // Frame Binding
Frame(0,0,280,87)
kTrue, kFalse, kAlignRight, // Visible, Enabled, Alignment
kDontEllipsize, kTrue, // Ellipsize style, Convert ampersands
"",
0 ,
kEVENoSpaceAfter,
),
EVERollOverIconButtonWidget
(
kBscDlgIconSuiteWidgetID, // WidgetID
kSDKDefIconInfoResourceID, // Icon resource ID
kBscDlgPluginID, // Plug-in ID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kADBEIconSuiteButtonDrawWellType /*kADBEIconSuiteButtonType*/,
kEVERegularSpaceAfter,
),
} // End of Eve generic panel child widgets
), // End of Eve generic panel widget definition
EVEGenericPanelWidget
(
kInvalidWidgetID, // WidgetId
0 // RsrcId
0,
kBindNone, // Frame binding
Frame(0,0,70,50) // Frame
kTrue, // Visible
kTrue, // Enabled
kEVEAlignLeft | kEVELargeSpaceAfter | kEVEArrangeChildrenInColumn,
{
EVEDefaultButtonWidget
(
kOKButtonWidgetID, // WidgetID
kSysButtonPMRsrcId, // RsrcID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kSDKDefOKButtonApplicationKey, // Button text
kEVELargeSpaceAfter,
),
EVECancelButtonWidget
(
kCancelButton_WidgetID, // WidgetID
kSysButtonPMRsrcId, // RsrcID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kSDKDefCancelButtonApplicationKey, // Button name
kTrue, // Change to Reset on option-click.
kEVELargeSpaceAfter,
),
} // End of EVE Generic panel child widgets
), // End of EVE Generic panel widget definition
},
kEVEArrangeChildrenInRow | kEVESmallMargin,
};
#include "BscDlg_enUS.fr"
#include "BscDlg_jaJP.fr"
#endif // __ODFRC__
Code modified by me to convert dialog to palette/panel is
resource PluginVersion (kSDKDefPluginVersionResourceID)
{
kTargetVersion,
kBscDlgPluginID,
kSDKDefPlugInMajorVersionNumber, kSDKDefPlugInMinorVersionNumber,
kSDKDefHostMajorVersionNumber, kSDKDefHostMinorVersionNumber,
kBscDlgCurrentMajorFormatNumber, kBscDlgCurrentMinorFormatNumber,
{kInDesignProduct, kInCopyProduct },
{kWildFS },
kUIPlugIn,
kBscDlgVersion
};
resource ClassDescriptionTable(kSDKDefClassDescriptionTableResourceID)
{{{
Class
{
kBscDlgDialogBoss,
kDialogBoss,
{
IID_IDIALOGCONTROLLER, kBscDlgDialogControllerImpl,
IID_IOBSERVER, kBscDlgDialogObserverImpl,
}
},
Class
{
kBscDlgActionComponentBoss,
kBaseActionComponentBoss,
{
IID_IACTIONCOMPONENT, kBscDlgActionComponentImpl,
}
}
}}};
resource FactoryList (kSDKDefFactoryListResourceID)
{
kImplementationIDSpace,
{
#include "BscDlgFactoryList.h"
}
};
resource MenuDef (kSDKDefMenuResourceID)
{
{
// The About Plug-ins sub-menu item for this plug-in.
kBscDlgAboutActionID, // ActionID (kInvalidActionID for positional entries)
kBscDlgAboutMenuPath, // Menu Path.
kSDKDefAlphabeticPosition, // Menu Position.
kSDKDefIsNotDynamicMenuFlag, // kSDKDefIsNotDynamicMenuFlag or kSDKDefIsDynamicMenuFlag.
// The Plug-ins menu sub-menu items for this plug-in.
kBscDlgDialogActionID,
kBscDlgPluginsMenuPath,
kBscDlgDialogMenuItemPosition,
kSDKDefIsNotDynamicMenuFlag,
}
};
resource ActionDef (kSDKDefActionResourceID)
{
{
kBscDlgActionComponentBoss, // ClassID of boss class that implements the ActionID.
kBscDlgAboutActionID, // ActionID.
kBscDlgAboutMenuKey, // Sub-menu string.
kHelpMenuActionArea, // Area name (see ActionDefs.h).
kNormalAction, // Type of action (see ActionDefs.h).
kDisableIfLowMem, // Enabling type (see ActionDefs.h).
kInvalidInterfaceID, // Selection InterfaceID this action cares about or kInvalidInterfaceID.
kSDKDefInvisibleInKBSCEditorFlag, // kSDKDefVisibleInKBSCEditorFlag or kSDKDefInvisibleInKBSCEditorFlag.
kBscDlgActionComponentBoss,
kBscDlgDialogActionID,
kBscDlgDialogMenuItemKey,
kOtherActionArea,
kNormalAction,
kDisableIfLowMem,
kInvalidInterfaceID,
kSDKDefInvisibleInKBSCEditorFlag,
}
};
resource LocaleIndex (kSDKDefStringsResourceID)
{
kStringTableRsrcType,
{
kWildFS, k_enUS, kSDKDefStringsResourceID + index_enUS
kWildFS, k_jaJP, kSDKDefStringsResourceID + index_jaJP
kWildFS, k_Wild, kSDKDefStringsResourceID + index_enUS
}
};
resource LocaleIndex (kSDKDefStringsNoTransResourceID)
{
kStringTableRsrcType,
{
kWildFS, k_Wild, kSDKDefStringsNoTransResourceID + index_enUS
}
};
resource StringTable (kSDKDefStringsNoTransResourceID + index_enUS)
{
k_enUS, // Locale Id
kEuropeanMacToWinEncodingConverter, // Character encoding converter
{
// No-Translate strings go here:
}
};
resource LocaleIndex (kSDKDefDialogResourceID)
{
kViewRsrcType,
{
kWildFS, k_Wild, kSDKDefDialogResourceID + index_enUS
}
};
type BscDlgDialogBoss(kViewRsrcType) : DialogBoss(ClassID = kBscDlgDialogBoss)
{
WidgetEveInfo;
};
resource BscDlgDialogBoss (kSDKDefDialogResourceID + index_enUS)
{
__FILE__, __LINE__,
kBscDlgPaletteWidgetID, // WidgetID
kPMRsrcID_None, // RsrcID
kBindNone, // Binding
Frame(0,0,388,112) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kBscDlgPaletteTitleKey, // Dialog name
{
EVEGenericPanelWidget
(
kInvalidWidgetID, // WidgetId
0 // RsrcId
0, // Widget EVE Info
kBindNone, // Frame binding
Frame(0,0,280,112) // Frame
kTrue, // Visible
kTrue, // Enabled
kEVEAlignFill | kEVERegularSpaceAfter | kEVEArrangeChildrenInColumn,
{
// Adding a dummy widget to align other widgets properly
EVEStaticTextWidget
(
kInvalidWidgetID, // WidgetId
kSysStaticTextPMRsrcId, // RsrcId
kBindNone, // Frame Binding
Frame(0,0,280,87)
kTrue, kFalse, kAlignRight, // Visible, Enabled, Alignment
kDontEllipsize, kTrue, // Ellipsize style, Convert ampersands
"",
0 ,
kEVENoSpaceAfter,
),
EVERollOverIconButtonWidget
(
kBscDlgIconSuiteWidgetID, // WidgetID
kSDKDefIconInfoResourceID, // Icon resource ID
kBscDlgPluginID, // Plug-in ID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kADBEIconSuiteButtonDrawWellType /*kADBEIconSuiteButtonType*/,
kEVERegularSpaceAfter,
),
} // End of Eve generic panel child widgets
), // End of Eve generic panel widget definition
EVEGenericPanelWidget
(
kInvalidWidgetID, // WidgetId
0 // RsrcId
0,
kBindNone, // Frame binding
Frame(0,0,70,50) // Frame
kTrue, // Visible
kTrue, // Enabled
kEVEAlignLeft | kEVELargeSpaceAfter | kEVEArrangeChildrenInColumn,
{
EVEDefaultButtonWidget
(
kOKButtonWidgetID, // WidgetID
kSysButtonPMRsrcId, // RsrcID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kSDKDefOKButtonApplicationKey, // Button text
kEVELargeSpaceAfter,
),
EVECancelButtonWidget
(
kCancelButton_WidgetID, // WidgetID
kSysButtonPMRsrcId, // RsrcID
kBindNone, // Binding
Frame(0,0,0,0) // Frame (l,t,r,b)
kTrue, kTrue, // Visible, Enabled
kSDKDefCancelButtonApplicationKey, // Button name
kTrue, // Change to Reset on option-click.
kEVELargeSpaceAfter,
),
} // End of EVE Generic panel child widgets
), // End of EVE Generic panel widget definition
},
kEVEArrangeChildrenInRow | kEVESmallMargin,
};
#include "BscDlg_enUS.fr"
#include "BscDlg_jaJP.fr"
#endif // __ODFRC__
// End, BscDlg.fr.
Copy link to clipboard
Copied
For panel the boss class to use as the base is kPalettePanelWidgetBoss instead of kDialogBoss, refer the BasicPanel sample plugin for more details.
-Manan
Copy link to clipboard
Copied
Hi Manan,
Thankyou so much. I'll try this and get back to you
-Jothi
Copy link to clipboard
Copied
Hi Manan,
I replaced kPalettePanelWidgetBoss instead of kDialogBoss but it displays empty dialogbox. What i want to do now??? Please guide me on this
-Jothi
Copy link to clipboard
Copied
I have added palette widget instead of dialog, during build an error occurs by clicking it points out below line
-------------------------------Code line ------------------------------------------------
type kBscDlgPanelWidgetBoss(kViewRsrcType) : PalettePanelWidgetBoss(ClassID = kBscDlgPanelWidgetBoss)
{
WidgetEveInfo;
};
--------------------------------------Error--------------------------------------------
1>------ Rebuild All started: Project: BasicDialog, Configuration: Release x64 ------
1> VCPlugInHeaders.cpp
1> BscDlgActionComponent.cpp
1> BscDlgDialogController.cpp
1> BscDlgDialogObserver.cpp
1> BscDlgEntrypoint.cpp
1> BscDlgID.cpp
1> BscDlgNoStrip.cpp
1> PlugInStatics.cpp
1> TriggerResourceDeps.cpp
1> Performing Custom Build Tools
1>D:\plugin_sdk_15.0.0.155 (1)\plugin\source\sdksamples\basicdialog\BscDlg.fr(249): error R32752: # Error: Expected identifier.
1>CUSTOMBUILD : # Fatal error :
1> odfrc - Execution terminated!
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
help me to complete
-Jothi