Adding a "Link" object to dialog
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 19/11/2012 at 19:32, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 12
Platform: Mac ;
Language(s) : C++ ;---------
HelloI am slowly working my way through C++ the C4D way.
Working on MacOS 10.6 under XCode 4.5. So all my experiments are based on cinema4dsdk and other examples I have found here and elsewhere.My question is:
How do I add a "LINK" field to a dialog?Looking at some code from the NoskeWiki below all gadgets are created with "Add..." but going through the documentation I can't find any info on how to add a LINK to a dialog. I know how to put a LINK in a .res file but then have not been successful yet to actually use the data from a res file in a command/tool plugin. I did it in a Expression Plugin. Sorry, this is probably a real rookie question.....
virtual Bool CreateLayout(void) { this->SetTitle( "Object Converter" ); LONG SC_VH = BFH_SCALEFIT | BFV_SCALEFIT; GroupBorderSpace( 10, 10, 10, 10 ); GroupSpace(5,5); AddStaticText (DLG_LBL1, BFH_LEFT,0,0, "This plugin helps ready, clean and reduce models for export to programs ", BORDER_NONE); AddStaticText (DLG_LBL2, BFH_LEFT,0,0, "like Unity. Click 'Help' for more info.", BORDER_NONE); AddStaticText (DLG_LBL3, BFH_LEFT,0,0, "", BORDER_NONE); GroupBegin( DLG_GRP2,SC_VH,2,0,"actions based on object names:",BFV_GRIDGROUP_EQUALROWS ); GroupBorder(BORDER_WITH_TITLE|BORDER_THIN_IN); GroupBorderSpace( 5, 5, 5, 5 ); GroupSpace(3,3); //AddSeparatorH (SC_VH); //AddSeparatorH (SC_VH); AddStaticText (DLG_LBL4, BFH_LEFT,100,0,"action:", BORDER_NONE); AddStaticText (DLG_LBL5, BFH_LEFT,30,0,"text", BORDER_NONE); AddCheckbox (DLG_CHK_DEL1, SC_VH,100,0,"delete objects containing:"); AddEditText (DLG_EDIT_DEL1STR, SC_VH,30,0); AddCheckbox (DLG_CHK_TURNON, SC_VH,0,0,"make visible objects \" \" \" \" \" \" \" \":"); AddEditText (DLG_EDIT_TURNONSTR,SC_VH,0,0);
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 19/11/2012 at 23:25, xxxxxxxx wrote:
// As a member of your class, for instance LinkBoxGui* myLinkBox = NULL; // In GeDialog.CreateLayout() BaseContainer tbc; tbc.SetBool(LINKBOX_HIDE_ICON, FALSE); myLinkBox = (LinkBoxGui* )AddCustomGui(MY_LINK_BOX_ID,CUSTOMGUI_LINKBOX,String(),BFH_SCALEFIT|BFV_SCALEFIT,0L,0L,tbc); if (!myLinkBox) return FALSE; // GeDialog.Message //*---------------------------------------------------------------------------* LONG IPPDialog::Message(const BaseContainer& msg, BaseContainer& result) //*---------------------------------------------------------------------------* { //GePrint(BaseContainerToString(msg)); LONG mid = msg.GetId(); if (mid == BFM_DRAGRECEIVE) return Msg_DragReceive(msg, result); // ... return GeDialog::Message(msg, result); } // IPPDialog.Msg_DragReceive - BFM_DRAGRECEIVE // - How to verify and accept what is being dropped into the LinkBox //*---------------------------------------------------------------------------* LONG IPPDialog::Msg_DragReceive(const BaseContainer& msg, BaseContainer& result) //*---------------------------------------------------------------------------* { // LinkBox if (!CheckDropArea(MY_LINK_BOX_ID, msg, TRUE, TRUE)) return GeDialog::Message(msg, result); if (msg.GetLong(BFM_DRAG_LOST)) return GeDialog::Message(msg, result); LONG cursor = MOUSE_POINT_HAND; LONG type = 0L; void* object = NULL; BaseObject* op = NULL; GetDragObject(msg, &type, &object); if ((type == DRAGTYPE_ATOMARRAY) && (((AtomArray* )object)->GetCount() == 1L) && ((AtomArray* )object)->GetIndex(0)) { op = (BaseObject* )((AtomArray* )object)->GetIndex(0L); // Add whatever restrictions here (such as only allowing Spline objects, for instance) if (op->IsInstanceOf(Obase)) cursor = MOUSE_INSERTCOPY; else { cursor = MOUSE_FORBIDDEN; op = NULL; } } if (msg.GetLong(BFM_DRAG_FINISHED)) myLinkBox->SetLink(op); return SetDragDestination(cursor); }
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/11/2012 at 18:48, xxxxxxxx wrote:
Thanks for posting this code!
Sorry I am a bit late. Was out of town over Thanksgiving.
I'll try this out later tonight.Peter