<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Porting Icon Menu Check in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/677912#M10583</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I am porting some legacy Archicad 9 code to Archicad 28/29. In the old code, we used IconMenuCheck like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="cpp"&gt;/*\[ 5 ]*/ IconMenuCheck 0 96 33 22 32168 32274 32283 32314 case WETAREAPALETTE: switch (DGPushMenuGetItemIconId(dialID, item, DGPushMenuGetSelected(dialID, item))) { case ); DGSetItemValLong(dialID, item, 0); break;&lt;/LI-CODE&gt;&lt;P&gt;This worked well because the selected face of the IconMenuCheck effectively became a &lt;EM&gt;new clickable button&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;In Archicad 28/29:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;IconMenuCheck still works for showing the popup, but I can’t find a way to retrieve which specific icon was clicked. I only get 0 or 1 (clicked or not).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I was advised to replace it with:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;/*\[ 76 ]*/ UserControl 60 140 50 40 258 1 4 0 2 GICN_BathMenu&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This shows the popup menu, but the &lt;EM&gt;face itself is not clickable&lt;/EM&gt;. The face changes, but does not behave as a button like before.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Question:&lt;/STRONG&gt;&lt;BR /&gt;How can I replicate the old IconMenuCheck behavior in Archicad 28/29 — where the changed face itself becomes the active button with its own functionality, not just a passive display?&lt;/P&gt;&lt;P&gt;Any tips, examples, or replacement patterns would be much appreciated!&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;BR /&gt;The new button below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SteveSunny_0-1758838563696.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/92377i69D05A59A171E25A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SteveSunny_0-1758838563696.png" alt="SteveSunny_0-1758838563696.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;The old buttons below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SteveSunny_1-1758838599063.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/92378i36919BDD2CA06869/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SteveSunny_1-1758838599063.png" alt="SteveSunny_1-1758838599063.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 28 Sep 2025 23:12:48 GMT</pubDate>
    <dc:creator>Steve Sunny</dc:creator>
    <dc:date>2025-09-28T23:12:48Z</dc:date>
    <item>
      <title>Porting Icon Menu Check</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/677912#M10583</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I am porting some legacy Archicad 9 code to Archicad 28/29. In the old code, we used IconMenuCheck like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="cpp"&gt;/*\[ 5 ]*/ IconMenuCheck 0 96 33 22 32168 32274 32283 32314 case WETAREAPALETTE: switch (DGPushMenuGetItemIconId(dialID, item, DGPushMenuGetSelected(dialID, item))) { case ); DGSetItemValLong(dialID, item, 0); break;&lt;/LI-CODE&gt;&lt;P&gt;This worked well because the selected face of the IconMenuCheck effectively became a &lt;EM&gt;new clickable button&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;In Archicad 28/29:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;IconMenuCheck still works for showing the popup, but I can’t find a way to retrieve which specific icon was clicked. I only get 0 or 1 (clicked or not).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I was advised to replace it with:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;/*\[ 76 ]*/ UserControl 60 140 50 40 258 1 4 0 2 GICN_BathMenu&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This shows the popup menu, but the &lt;EM&gt;face itself is not clickable&lt;/EM&gt;. The face changes, but does not behave as a button like before.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Question:&lt;/STRONG&gt;&lt;BR /&gt;How can I replicate the old IconMenuCheck behavior in Archicad 28/29 — where the changed face itself becomes the active button with its own functionality, not just a passive display?&lt;/P&gt;&lt;P&gt;Any tips, examples, or replacement patterns would be much appreciated!&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;BR /&gt;The new button below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SteveSunny_0-1758838563696.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/92377i69D05A59A171E25A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SteveSunny_0-1758838563696.png" alt="SteveSunny_0-1758838563696.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;The old buttons below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SteveSunny_1-1758838599063.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/92378i36919BDD2CA06869/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SteveSunny_1-1758838599063.png" alt="SteveSunny_1-1758838599063.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 28 Sep 2025 23:12:48 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/677912#M10583</guid>
      <dc:creator>Steve Sunny</dc:creator>
      <dc:date>2025-09-28T23:12:48Z</dc:date>
    </item>
    <item>
      <title>Re: Porting Icon Menu Check</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/677939#M10584</link>
      <description>&lt;P&gt;any one&amp;nbsp;&lt;BR /&gt;UserControl is a generic custom control area – it can display dynamic content (e.g. an icon that updates), but &lt;STRONG&gt;it doesn’t inherently handle user interaction&lt;/STRONG&gt; (clicks) unless you implement it via callbacks or observers.&lt;BR /&gt;so how can implement something like&amp;nbsp;&lt;SPAN&gt;IconMenuCheck&amp;nbsp; that could display&amp;nbsp;dynamic content (e.g. an icon that updates) and also was clickable. please any one help i am stuck with these for weeks?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Sep 2025 03:10:19 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/677939#M10584</guid>
      <dc:creator>Steve Sunny</dc:creator>
      <dc:date>2025-09-26T03:10:19Z</dc:date>
    </item>
    <item>
      <title>Re: Porting Icon Menu Check</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/678355#M10597</link>
      <description>&lt;P&gt;Hi, this control still exist in Dialog Manager.&lt;BR /&gt;You can use the&lt;/P&gt;
&lt;PRE class="lia-code-sample  language-cpp"&gt;&lt;CODE&gt;IconMenuCheck 0 96 33 22 32168 32274 32283 32314&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;as earlier.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although it is straightforward to use the C++ API of DG instead of the C API, the C API can still be used as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GetItemValLong() - The pushed state of the control can be retrieved by this function as earlier.&lt;/LI&gt;
&lt;LI&gt;DGPushMenuGetSelected -&amp;nbsp; gives the index of the selected item as earlier too.&lt;/LI&gt;
&lt;LI&gt;DGPushMenuGetIconId is &lt;U&gt;discontinued&lt;/U&gt;, there is a new function to retrieve the icon of an item:&lt;/LI&gt;
&lt;LI&gt;DGPushMenuGetItemIcon - this retrieves a DG::Icon object instead of an icon identifier. To get the icon id the DG::Icon::GetResourceId() can be used.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Sep 2025 15:07:10 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Porting-Icon-Menu-Check/m-p/678355#M10597</guid>
      <dc:creator>Miklos Vegh</dc:creator>
      <dc:date>2025-09-30T15:07:10Z</dc:date>
    </item>
  </channel>
</rss>

