int roadmap_bar_drag_motion (RoadMapGuiPoint *point) { BarObject *new_bar_object = NULL; if (SelectedBarObject == NULL) return 0; if ( !gHideTopBar ) new_bar_object = roadmap_bar_by_pos(point, &TopBarObjectTable); if (!new_bar_object) { if ( !gHideBottomBar ) new_bar_object = roadmap_bar_by_pos(point, &BottomBarObjectTable); if (!new_bar_object){ SelectedBarObject->image_state = IMAGE_STATE_NORMAL; roadmap_screen_redraw(); return 1; } } if (new_bar_object != SelectedBarObject){ SelectedBarObject->image_state = IMAGE_STATE_NORMAL; SelectedBarObject = new_bar_object; new_bar_object->image_state = IMAGE_STATE_SELECTED; roadmap_screen_redraw(); return 1; } return 1; }
static int roadmap_bar_obj_pressed (RoadMapGuiPoint *point) { BarObject *object = NULL; if ( !gHideTopBar ) object = roadmap_bar_by_pos(point, &TopBarObjectTable); if (!object) { if ( !gHideBottomBar ) object = roadmap_bar_by_pos(point, &BottomBarObjectTable); if (!object) return 0; } /* There is no dragging for the bar objects !!! */ //roadmap_pointer_cancel_dragging(); object->image_state = IMAGE_STATE_SELECTED; // Save the selected object SelectedBarObject = object; roadmap_pointer_register_drag_motion (roadmap_bar_drag_motion, POINTER_HIGHEST); roadmap_screen_redraw(); return 1; }
int roadmap_bar_long_click (RoadMapGuiPoint *point) { BarObject *object = roadmap_bar_by_pos(point, &TopBarObjectTable); if (!object) { object = roadmap_bar_by_pos(point, &BottomBarObjectTable); if (!object) return 0; } if (object->action) { // static RoadMapSoundList list; // // if (!list) { // list = roadmap_sound_list_create (SOUND_LIST_NO_FREE); // roadmap_sound_list_add (list, "click"); // roadmap_res_get (RES_SOUND, 0, "click"); // } // roadmap_sound_play_list (list); roadmap_screen_redraw(); (*(object->action->callback)) (); roadmap_screen_redraw(); } return 1; }
int roadmap_bar_obj_released (RoadMapGuiPoint *point) { BarObject *new_bar_object = NULL; // The release event causes the selected object in the press event to be unselected if ( SelectedBarObject ) { SelectedBarObject->image_state = IMAGE_STATE_NORMAL; roadmap_pointer_unregister_drag_motion(roadmap_bar_drag_motion); if ( !gHideTopBar ) new_bar_object = roadmap_bar_by_pos(point, &TopBarObjectTable); if (!new_bar_object) { if ( !gHideBottomBar ) new_bar_object = roadmap_bar_by_pos(point, &BottomBarObjectTable); if (!new_bar_object){ SelectedBarObject = NULL; roadmap_screen_redraw(); return 0; } } if (new_bar_object != SelectedBarObject){ SelectedBarObject = NULL; roadmap_screen_redraw(); return 1; } if ( SelectedBarObject->action ) { static RoadMapSoundList list; SelectedBarObject->image_state = IMAGE_STATE_SELECTED; roadmap_screen_redraw(); #ifdef PLAY_CLICK if (!list) { list = roadmap_sound_list_create (SOUND_LIST_NO_FREE); roadmap_sound_list_add (list, "click"); roadmap_res_get (RES_SOUND, 0, "click"); } roadmap_sound_play_list (list); #endif roadmap_screen_redraw(); (*(SelectedBarObject->action->callback)) (); roadmap_screen_redraw(); SelectedBarObject->image_state = IMAGE_STATE_NORMAL; } } SelectedBarObject = NULL; roadmap_screen_redraw(); return 1; }
int roadmap_bar_obj_released (RoadMapGuiPoint *point) { BarObject *object = roadmap_bar_by_pos(point, &TopBarObjectTable); if (!object) { object = roadmap_bar_by_pos(point, &BottomBarObjectTable); if (!object) return 0; } object->image_state = IMAGE_STATE_NORMAL; roadmap_screen_redraw(); return 1; }