questions about GetDDescription [SOLVED]
-
On 04/11/2014 at 23:00, xxxxxxxx wrote:
Mohamed,
in SDK examples AsyncTest.cpp add the following enumeration for some menu IDs (code for R15+) :
enum { MY_POPUP_ID_FIRST = FIRST_POPUP_ID, MY_POPUP_ID_SUBMENU, MY_POPUP_ID_SUBMENU_FIRST, };
Then in Bool SDKGradientArea::InputEvent(const BaseContainer& msg) add the following as last else if:
else if (chn == BFM_INPUT_MOUSERIGHT) { BaseContainer bcPopupMenu; BaseContainer bcSubmenu; Int32 mx = msg.GetInt32(BFM_INPUT_X); // of course you can use mouse position to have popup menu be position sensitive Int32 my = msg.GetInt32(BFM_INPUT_Y); Global2Local(&mx, &my); Local2Screen(&mx, &my); // instead of building the menu everytime, you may better have a prepared container ready bcPopupMenu.SetString(MY_POPUP_ID_FIRST, "First menu entry"); bcSubmenu.SetString(1, "A submenu"); bcSubmenu.SetString(MY_POPUP_ID_SUBMENU_FIRST, "Submenu entry"); bcPopupMenu.SetContainer(MY_POPUP_ID_SUBMENU, bcSubmenu); const Int32 menuId = ShowPopupMenu(nullptr, mx, my, bcPopupMenu); switch (menuId) { case MY_POPUP_ID_FIRST: GePrint("Execute first popupmenu entry"); break; case MY_POPUP_ID_SUBMENU_FIRST: GePrint("Execute first submenu entry"); break; case 0: GePrint("Menu got canceled"); break; default: DebugStop("Popup Menu: Forgot a new enum value?"); } // maybe use SendParentMessage() if need be }
The docs on this topic aren't that bad either: R16 SDK Docs: c4d_gui.h
-
On 05/11/2014 at 02:54, xxxxxxxx wrote:
thanks a lot , will test tonight and come back to you
-
On 05/11/2014 at 14:25, xxxxxxxx wrote:
Hi Andreas,
I have checked it!! , it is a very interesting example , this is really very helpful, thanks again for your support, keep the good work up
-
On 06/11/2014 at 02:13, xxxxxxxx wrote:
just need to confirm about question ( 1-a , 1-b ) , I use this if statement in all created description, or no need at all? need some discussion about what happens here
-
On 06/11/2014 at 02:17, xxxxxxxx wrote:
Can you show me a piece of your code? Will make discussion easier.
-
On 06/11/2014 at 03:00, xxxxxxxx wrote:
it is the example LookAtCamera , LookAtCamera::GetDDescription(), all of the written description are created the same way with a check for performance, need to understand how this works, if there is no specific explanation , is it safe to do the same with all created description? (so I just write them the same way and forget about them) , or this is written in specific situations
-
On 06/11/2014 at 03:43, xxxxxxxx wrote:
You mean the
if (!singleid ||...
part?
Yes, you should do it exactly like it is done in the lookatcamera example. As Niklas said, it's a performance optimization, in case C4D is asking for a single description only. -
On 06/11/2014 at 04:13, xxxxxxxx wrote:
yes
ok thanks -
On 17/11/2014 at 10:01, xxxxxxxx wrote:
sorry for asking again, but I found that I didn't know yet how to adjust the format of data "question (2)" , the above link that I posted was for Dialogs, didn't notice this, so hope you may reply with a simple example to question (2)
edit:I find that DESC_COLUMNS is doing the job, but what about putting stuff in an irregular way, like:
button1 button2 button3
button4
button5 button6
button7edit2: I would love to know how to create something similar to this Dialog http://www.andrewnoske.com/wiki/Cinema_4D_-_my_C%2B%2B_plugins_-_add_text
in GetDDescription() , the combo box, the radio group, etc.. -
On 17/11/2014 at 12:10, xxxxxxxx wrote:
nvm, I find the solution here:
https://developers.maxon.net/forum/topic/7380/8990_getting-dynamically-added-long-cycle-string-value&KW=GetDDescription -
On 17/11/2014 at 14:05, xxxxxxxx wrote:
Ah, you were too quick. I was just compiling an example for you...
Nevertheless glad you found your solution. -
On 11/01/2016 at 05:14, xxxxxxxx wrote:
Hi Andreas,
as this is related to ShowPopupMenu()
how to put icons in the menu?