• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Change Dialog Box to Palette/Panel

Contributor ,
Apr 05, 2020 Apr 05, 2020

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.

TOPICS
SDK

Views

579

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2020 Apr 05, 2020

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Apr 05, 2020 Apr 05, 2020

Copy link to clipboard

Copied

Hi Manan,

Thankyou so much. I'll try this and get back to you

-Jothi

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Apr 06, 2020 Apr 06, 2020

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Apr 08, 2020 Apr 08, 2020

Copy link to clipboard

Copied

LATEST

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines