Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 19/04/2003 at 12:26, xxxxxxxx wrote:
User Information: ResEdit Version: R8
--------- I use a lot the ReEdit, but it some case I get Error in it when I open The typical exemple is the Color C4D object
To show all stuff in it, I have to say OEPN , ok ois save and work fine But when I ReOpen the Dialog in the reEdit it show an error , I have to go in the code to remove the OPEN; Also I try to use HTe links Object and try to make some change TO acpet or exclude stuff in it. There aloso is a problem.
Just for you to Know I use all that in a standard GeDialog overLoad Class Niki
On 20/04/2003 at 01:47, xxxxxxxx wrote:
Hi > But when I ReOpen the Dialog in the reEdit it show an error , I have to go in the code to remove the OPEN; This was a bug. Thanks. You may use the normal color chooser (instead of the custom GUI). > Also I try to use HTe links Object and try to make some change > TO acpet or exclude stuff in it. There aloso is a problem. > Currently you can't change the accepted / refused objects in ResEdit. You can modify the accepted objects in your dialog GeDialog::Command function. The container elements are:
#define LINKBOX_ACCEPT_MESSAGE_TYPE 1 // LONG - the type of the item dragged in the link box #define LINKBOX_ACCEPT_MESSAGE_ELEMENT 2 // a pointer (BaseList2D* ) to the object cast to LONG #define LINKBOX_ACCEPT_MESSAGE_ACCEPT 3 // a pointer to a Bool, cast to long (set this value to TRUE, if you want to accept the object) #define LINKBOX_ACCEPT_MESSAGE_CONTROL_ID 4 // the ID of the control that sent the message
On 20/04/2003 at 04:20, xxxxxxxx wrote:
Thanks
It start to come
Bit I thinks I Miss one part there... I'm New in thois SDK, I know C++ but not much the C4D SDK.
So at the base in the dialog I set it that way
class AmaToolsDialog : public GeDialog { private: ... Filename MatFileToScan; bool ValidePoserFile; BaseLink *FigureLink; BaseLink *MatToCopyLink; BaseLink *MatMatToolsLink;
LONG count;
public: ...
};
but now in the GeDialog::command I never see those LINKBOX_ACCEPT_MESSAGE_TYPE, etc... I look in your code an I see a "LinkBoxGui" where it show those messages etc...
But how to Construct this LinkBoxGui ?
any it work now, but can test the Accept etc. and also can't show the Link when I reopen my dialog
Well is not that important, so take your time and pass good Holidays
Niki
On 20/04/2003 at 08:07, xxxxxxxx wrote:
Hi Niki > I never see those LINKBOX_ACCEPT_MESSAGE_TYPE, etc... Your Message function should be called as soon as the user drags an item over the link box. Sorry, I was wrong in my previous post. It's the message function. The Container ID is MSG_DESCRIPTION_CHECKDRAGANDDROP. I have just tested and it works:
LONG YourDialogClass::Message(const BaseContainer &msg, BaseContainer &result) { if (msg.GetId() == MSG_DESCRIPTION_CHECKDRAGANDDROP) { LONG item_type = msg.GetLong(LINKBOX_ACCEPT_MESSAGE_TYPE); BaseList2D* obj = (BaseList2D* )msg.GetLong(LINKBOX_ACCEPT_MESSAGE_ELEMENT); Bool *accept = (Bool* )msg.GetLong(LINKBOX_ACCEPT_MESSAGE_ACCEPT); LONG linkbox_id = msg.GetLong(LINKBOX_ACCEPT_MESSAGE_CONTROL_ID); // set *accept TRUE, if the object should be accepted, FALSE otherwise. } return SubDialog::Message(msg, result); }
> But how to Construct this LinkBoxGui ? You don't need to construct it. It's done when the dialog is created. You can find the pointer with GeDialog::FindCustomGui. > any it work now, but can test the Accept etc. and also can't show the Link when I reopen my dialog Use LinkBoxGui::SetLink in InitValues. > Well is not that important, so take your time and pass good Holidays Happy Coding :-))
On 20/04/2003 at 09:30, xxxxxxxx wrote:
Thanks You verry much ! It work Now
if (msg.GetId() == MSG_DESCRIPTION_CHECKDRAGANDDROP) { //LONG item_type = msg.GetLong(LINKBOX_ACCEPT_MESSAGE_TYPE); BaseList2D* obj = (BaseList2D* )msg.GetLong(LINKBOX_ACCEPT_MESSAGE_ELEMENT); Bool *accept = (Bool* )msg.GetLong(LINKBOX_ACCEPT_MESSAGE_ACCEPT); LONG linkbox_id = msg.GetLong(LINKBOX_ACCEPT_MESSAGE_CONTROL_ID); if(linkbox_id == IDC_FIGURE_LINK) { if(!obj->IsInstanceOf(Opolygon)) *accept = false; } if((linkbox_id == IDC_MATTOCOPY) || (linkbox_id == IDC_MATTOOL_MATLINK)) { if(!obj->IsInstanceOf(Ttexture) && !obj->IsInstanceOf(Mmaterial)) *accept = false; } // set *accept TRUE, if the object should be accepted, FALSE otherwise. }
return GeDialog::Message(msg,result);
I will have others stupid questions but I let you pass the holidays now...