Ejemplo n.º 1
0
static void roadmap_screen_obj_decode_action
                        (RoadMapScreenObj object,
                         int argc, const char **argv, int *argl) {

   char arg[255];

   argc -= 1;
   if (argc < 1) {
      roadmap_log (ROADMAP_ERROR, "screen object:'%s' illegal action.",
                  object->name);
      return;
   }

   roadmap_screen_obj_decode_arg (arg, sizeof(arg), argv[1], argl[1]);

   object->action = roadmap_start_find_action (arg);

   if (!object->action) {
      roadmap_log (ROADMAP_ERROR, "screen object:'%s' can't find action.",
                  object->name);
   }

   if (argc == 1) return;

   roadmap_screen_obj_decode_arg (arg, sizeof(arg), argv[2], argl[2]);

   object->long_action = roadmap_start_find_action (arg);

   if (!object->long_action) {
      roadmap_log (ROADMAP_ERROR, "screen object:'%s' can't find action.",
                  object->name);
   }
}
Ejemplo n.º 2
0
void rim_on_menu_button(){
	 int i ;
	 RoadMapAction * stop_navigate_action;
	 RoadMapAction * nav_list_action;
	 stop_navigate_action = roadmap_start_find_action("stop_navigate");
	 nav_list_action = roadmap_start_find_action("navigation_list");
	 if(!navigate_main_state()){
		 NOPH_FreemapMainScreen_addMenuItem(RimScreen,  roadmap_lang_get(stop_navigate_action->label_long), 1, 1,
													 (int)(void *)menu_wrapper, (int)(void *)stop_navigate_action->callback,1);

		 NOPH_FreemapMainScreen_addMenuItem(RimScreen,  roadmap_lang_get(nav_list_action->label_long), 1, 1,
														 (int)(void *)menu_wrapper, (int)(void *)nav_list_action->callback,1);

	 }else{
		 NOPH_FreemapMainScreen_removeMenuItemByLabel(RimScreen, roadmap_lang_get(stop_navigate_action->label_long));

		 NOPH_FreemapMainScreen_removeMenuItemByLabel(RimScreen, roadmap_lang_get(nav_list_action->label_long));
	 }

	for (i = 0 ; i < MAX_ACTIVE_MENU_BUTTON_CALLBACKS-1; i++){ // search for the last callback before we get Null callback
		if (RoadMapMenuButtonActiveCallbacks[i+1].callback==NULL)
			break;
	}

	if(RoadMapMenuButtonActiveCallbacks[i].callback==NULL){
		return; // no callback registered
	}
	if(need_to_show_context_menu){
	   roadmap_main_context_menu_reset(FALSE);
	   last_called_cb = RoadMapMenuButtonActiveCallbacks[i].callback;
	   (*RoadMapMenuButtonActiveCallbacks[i].callback) (RoadMapMenuButtonActiveCallbacks[i].addr);
	}




}
Ejemplo n.º 3
0
static void roadmap_bar_decode_action
                        (BarObject *object,
                         int argc, const char **argv, int *argl) {

   char arg[255];

   argc -= 1;
   if (argc < 1) {
      roadmap_log (ROADMAP_ERROR, "roadmap bar:'%s' illegal action.",
                  object->name);
      return;
   }

   roadmap_bar_decode_arg (arg, sizeof(arg), argv[1], argl[1]);

   object->action = roadmap_start_find_action (arg);

   if (!object->action) {
      roadmap_log (ROADMAP_ERROR, "roadmap bar:'%s' can't find action.",
                  object->name);
   }
}