GTK+ menu item not sensitizing first call to gtk_widget_set_sensitive() - menu

My application has an "Actions" menu with a "Delete" submenu which does not get sensitized the first time I select an item from a list, even though I am explicitly calling
gtk_widget_set_sensitive(GTK_WIDGET(DeleteMenuItem), TRUE);
in the button release event of the treeview for the list.
However... If I select an item from the list, select the "Actions" menu, then select another item from the list, then select "Actions" menu item, the "Delete" menu item is now sensitized.
Is this a bug in GTK? (version 2.4.6, I know, but unfortunately, I am not able to go to a newer version of the GTK)
I appreciate the help,
bernie

It looks like the "button release event" is not triggered, maybe because there is not "release event" the first time. You might want to use a different event (I could not get clearly the use case, so I am not suggesting any event in particular).
In short: gtk_widget_set_sensitive() is not the problem, the problem is when you call it.

Related

Can the context menu be changed dynamically?

Is it possible to change the context menu dynamically, once the tabulator table is already built?
I need to change the context menu according to the cell value under the mouse cursor, so if I could somehow change the context menu inside the cellMouseOver callback, that would be great.
Thanks,
Matic
Instead of specifying a menu object, what you want is a Menu Items Generator Function. The example on that page shows returning one menu if approved is false and a different menu if approved is true.

TestComplete Menu Item

I am new to TestComplete. I have a question and it may be something impossible or too simple. I have a toolbar containg File, Edit, View, etc. I want to get one item (eg. Edit) to mapped objects. I can get the whole toolbar only. I want to simulate a click event on Edit. How can I do this?
As a rule, TestComplete does not work with menu items as with separate objects. It works with a menu object or even only with a menu's parent object and you can specify which item to select by passing the caption of this item to the corresponding method of a menu object. For example:
objMenu.Click("Edit|Paste");
// or
parent.MainMenu("Edit|Paste");
Please find more details on how TestComplete interacts with menus in the Working With Menus help topic.

Extension-Specific Context Menu

I'm trying to add an item to the right-click menu on my extension. I've tried to find a method which would work, but a lot of the results seem to deal with context menus on the actual page, not the extension icon itself. The contextMenus API doesn't seem to work for this, unfortunately.
There is currently no API for that. Head for Chromium Issue 78631 and click the star to cast your vote for it and receive updates by e-mail. In the meantime, you could create a popup with a menu that lists both the primary action and the actions you would have put in the context menu.
(I assume you're trying to add the context menu item to your browser action. Your question is a little ambiguous.)

How to get menu item selected event in Carbon

I'm trying to handle events related to clicking on or pressing enter on a menu item using the Carbon API in OSX (Cocoa is not an option).
I know about EventTypeSpec and kEventClassMenu and i've dug through the header files looking for the relevant kind constant to use, but i'm still a bit confused as to how I respond to the selection of a menu item. Do I need to handle a key down or mouse down event at the same time as a kEventMenuTargetItem? Do I need to handle kEventMenuMatchKey separately for the enter key?
I'm an idiot.. Events caused by menu items are handled by class command. So:
eventTypes[0].eventClass = kEventClassCommand;
eventTypes[0].eventKind = kEventCommandProcess;
will handle menu events.

MFC feature pack - how to update the property grid control

I'm new to MFC and is a bit confused with the new features of "MFC feature pack." Through the wizard I now have an application that looks like an IDE - has a dockable file explorer on the left side and a dockable properties window on the right side. I'm able to get the selected items on the file explorer window through ON_WM_LBUTTONDBLCLK and GetItemText().
Question:
Properties window should be "updated" after clicking an item in the file explorer window. Ex. I click an item "button" in the tree control, properties window should show "image", "font", and "color" How can I do that? How do you update the contents of the propertygridCtrl?
To fill the property grid, look at the wizard-generated content. You'd set up a handler for the 'item button' clicked event, clear the grid content, fill it again. Seems an obvious answer so maybe I misunderstood the question.
I don't understand where is your difficulty. Just have a class derived from CMFCPropertyGrid, add a public member function on it to Update its data, having one parameter. Call that function from the file explorer window, having the selected element as the parameter.
Maybe you are choosing the wrong to handle the fact of the user is changing the selected item? I don't know what class is your "file explorer" control, but I suggest you to use something to do with "Item changed" instead of "Click" or "LButton", as the selected item can change by other means, namely arrow keys!

Resources