backdafuckup Back to da old skool | Je fais un plugIn pour le logiciel Digital Micrograph de chez Gatan (www.gatan.com)
La doc fournie est en fait une sdk qui présente des exemples de plugin, mais incomplets...
J'ai récupéré un exemple pour modifier les menus de l'application.
J'ai réussi à faire le menu, mais il me manque certaines fonctions, notamment celle pour savoir si une option de menu est active ou non...
La fonction pour activer/désactiver une option est SetEnabled();
J'ai essayé, pour consulter, GetEnabled, IsEnabled, IsWindowEnabled, mais sans résultat...
VOici mon code :
Code :
- class MenuCamera : public Gatan::plugIn::StandardPlugInMenu
- {
- public:
- MenuCamera();
- virtual void Adjust();
- virtual bool DoMenuAction( CommandID action, CommandIndex index );
- };
-
- //ces define représentent les differentes options de menu
- #define CMD_OPENCAMERA 11700
- #define CMD_CLOSECAMERA 11701
- #define CMD_PARAMCAMERA 11702
- #define CMD_STARTACQ 11703
- #define CMD_STOPACQ 11704
-
-
- ///
- /// The following constructor adds two menu items and a divider to
- /// a top-level menu named 'MenuCamera'
- ///
- MenuCamera::MenuCamera()
- : StandardPlugInMenu( "Caméra" )
- {
- AddAction( CMD_OPENCAMERA, 0 );
- AddAction( CMD_CLOSECAMERA, 0 );
- AddBar();
- AddAction( CMD_PARAMCAMERA, 0 );
- AddBar();
- AddAction( CMD_STARTACQ, 0 );
- AddAction( CMD_STOPACQ, 0 );
-
- SetName(CMD_OPENCAMERA, "Démarrer la caméra" );
- SetName(CMD_CLOSECAMERA, "Couper la caméra" );
- SetName(CMD_PARAMCAMERA, "Paramètres..." );
- SetName(CMD_STARTACQ, "Lancer l'acquisition" );
- SetName(CMD_STOPACQ, "Terminer l'acquisition" );
- }
-
- //La fonction Adjust est automatiquement appelée lors du click
- //sur le menu Camera
- void MenuCamera::Adjust()
- {
- //mon problème est ici. au lieu de true or false, j'aurais
- //préféré une commande de ce style :
- //SetEnabled(CMD_XXX, GetEnabled(CMD_YY));
- // ou encore
- //SetEnabled(CMD_XXX, !GetEnabled(CMD_YY));
-
- SetEnabled( CMD_STARTACQ, false );
- SetEnabled( CMD_STOPACQ, false );
- SetEnabled( CMD_CLOSECAMERA, false );
- SetEnabled( CMD_PARAMCAMERA, true);
- SetEnabled( CMD_OPENCAMERA, true);
-
- }
-
- ///
- /// 'DoMenuAction' is called whenever the user selects a menu item.
- /// The action specified when the menu item was created is passed in,
- /// and the method should use this to determine whether to handle the
- /// message. If the message was handled and no further processing is
- /// allowed, return true.
- ///
- bool MenuCamera::DoMenuAction( CommandID action, CommandIndex /*index*/ )
- {
- bool handled = false;
- switch( action )
- {
- case CMD_OPENCAMERA:
- {
- DM::Result( "Démarrage de la caméra...\n" );
- handled = true;
- } break;
- case CMD_CLOSECAMERA:
- {
- DM::Result( "Fermeture de la caméra...\n" );
- handled = true;
- } break;
- case CMD_PARAMCAMERA:
- {
- DM::Result( "Paramétrage de la caméra...\n" );
- handled = true;
- }break;
- case CMD_STARTACQ:
- {
- DM::Result( "Début de l'acquisition...\n" );
- handled = true;
- }break;
- case CMD_STOPACQ:
- {
- DM::Result( "Fin de l'acquisition...\n" );
- handled = true;
- }break;
- default:break;
- }
- return handled;
- }
|
|