void cd_tomboy_show_results (GList *pIconsList) { //\_______________ On marque les icones du resultat. cd_tomboy_reset_icon_marks (FALSE); int iNbResults = 0; Icon *icon; GList *ic; for (ic = pIconsList; ic != NULL; ic = ic->next) { icon = ic->data; icon->bHasIndicator = TRUE; iNbResults ++; } //\_______________ On les montre. if (myDock) { cairo_dock_show_subdock (myIcon, myDock, FALSE); cairo_dock_redraw_container (CAIRO_CONTAINER (myIcon->pSubDock)); } else cairo_dock_redraw_container (myContainer); //\_______________ On affiche le resultat. if (myDock) { CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("%d %s", iNbResults, iNbResults > 1 ? D_("results") : D_("result")); if (myData.iSidResetQuickInfo != 0) g_source_remove (myData.iSidResetQuickInfo); myData.iSidResetQuickInfo = g_timeout_add_seconds (5, _cd_tomboy_reset_quick_info, NULL); } else { cairo_dock_show_temporary_dialog_with_icon ("%d %s", pIconsList ? pIconsList->data : myDesklet->icons->data, myContainer, 3000, MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE, iNbResults, iNbResults > 1 ? D_("results") : D_("result")); } }
void cd_do_change_current_icon (Icon *pIcon, CairoDock *pDock) { //\_________________ on gere le cachage et le montrage du dock precedent et actuel. if (myData.pCurrentDock != NULL && pDock != myData.pCurrentDock && myData.pCurrentDock != g_pMainDock) // on remet au repos dock precedemment anime. { cairo_dock_emit_leave_signal (myData.pCurrentDock); } if (pDock != NULL && pDock != g_pMainDock && pDock != myData.pCurrentDock) // on montre le nouveau dock { if (pDock != NULL) { if (pDock->iRefCount > 0) { CairoDock *pParentDock = NULL; Icon *pPointingIcon = cairo_dock_search_icon_pointing_on_dock (pDock, &pParentDock); if (pPointingIcon != NULL) { cairo_dock_show_subdock (pPointingIcon, pParentDock, FALSE); // utile pour le montrage des sous-docks au clic. } } else { cairo_dock_pop_up (pDock); } cairo_dock_emit_enter_signal (pDock); } } if (pDock != NULL) { gtk_window_present (GTK_WINDOW (pDock->pWidget)); } //\_________________ on gere l'allumage et l'eteignage de l'icone precedente et actuelle. if (myData.pCurrentIcon != NULL && pIcon != myData.pCurrentIcon) // on remet au repos l'icone precedemment anime. { myData.bIgnoreIconState = TRUE; cairo_dock_stop_icon_animation (myData.pCurrentIcon); myData.bIgnoreIconState = FALSE; cairo_dock_redraw_icon (myData.pCurrentIcon, CAIRO_CONTAINER (myData.pCurrentDock)); /// utile ?... } if (pIcon != NULL && myData.pCurrentIcon != pIcon) // on anime la nouvelle icone. { int x = pIcon->fXAtRest + pIcon->fWidth/2 + (- pDock->fFlatDockWidth + pDock->iMaxDockWidth)/2; int y = pIcon->fDrawY + pIcon->fHeight/2 * pIcon->fScale; if (1||myData.pCurrentDock != pDock) { cairo_dock_emit_motion_signal (pDock, x, y); } else { myData.iPrevMouseX = myData.iMouseX; myData.iPrevMouseY = myData.iMouseY; myData.iMotionCount = 10; } myData.iMouseX = x; myData.iMouseY = y; cairo_dock_request_icon_animation (pIcon, pDock, myConfig.cIconAnimation, 1e6); // interrompt l'animation de "mouse over". cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); //if (myAccessibility.bShowSubDockOnClick) // cairo_dock_show_subdock (pIcon, pDock, FALSE); } myData.pCurrentDock = pDock; myData.pCurrentIcon = pIcon; if (myData.pCurrentDock == NULL) gtk_window_present (GTK_WINDOW (g_pMainDock->pWidget)); }
void cd_do_change_current_icon (Icon *pIcon, CairoDock *pDock) { //\_________________ on gere le cachage et le montrage du dock precedent et actuel. if (myData.pCurrentDock != NULL && pDock != myData.pCurrentDock) // on remet au repos le dock precedemment anime. { cd_debug ("leave this dock"); cairo_dock_emit_leave_signal (CAIRO_CONTAINER (myData.pCurrentDock)); cd_do_remove_icons_number (myData.pCurrentDock); gldi_object_remove_notification (myData.pCurrentDock, NOTIFICATION_RENDER, (GldiNotificationFunc) cd_do_render, NULL); gldi_object_remove_notification (myData.pCurrentDock, NOTIFICATION_UPDATE, (GldiNotificationFunc) cd_do_update_container, NULL); gldi_object_remove_notification (myData.pCurrentDock, NOTIFICATION_CLICK_ICON, (GldiNotificationFunc) cd_do_on_click, NULL); gldi_object_remove_notification (myData.pCurrentDock, NOTIFICATION_MIDDLE_CLICK_ICON, (GldiNotificationFunc) cd_do_on_click, NULL); } if (pDock != NULL && pDock != myData.pCurrentDock) // on montre le nouveau dock { cd_debug (" dock %p <- %p", myData.pCurrentDock, pDock); if (pDock->iRefCount > 0) { CairoDock *pParentDock = NULL; Icon *pPointingIcon = cairo_dock_search_icon_pointing_on_dock (pDock, &pParentDock); if (pPointingIcon != NULL) { cairo_dock_show_subdock (pPointingIcon, pParentDock); // utile pour le montrage des sous-docks au clic. } } else { /// utile de faire ca si on entre dedans ?... cd_debug ("enter this dock"); if (pDock->bAutoHide) cairo_dock_start_showing (pDock); if (pDock->iVisibility == CAIRO_DOCK_VISI_KEEP_BELOW) cairo_dock_pop_up (pDock); } cairo_dock_emit_enter_signal (CAIRO_CONTAINER (pDock)); cd_do_numberize_icons (pDock); gldi_object_register_notification (pDock, NOTIFICATION_UPDATE, (GldiNotificationFunc) cd_do_update_container, GLDI_RUN_AFTER, NULL); gldi_object_register_notification (pDock, NOTIFICATION_RENDER, (GldiNotificationFunc) cd_do_render, GLDI_RUN_AFTER, NULL); gldi_object_register_notification (pDock, NOTIFICATION_CLICK_ICON, (GldiNotificationFunc) cd_do_on_click, GLDI_RUN_AFTER, NULL); // we don't disable the clicks, rather we will close the session. gldi_object_register_notification (pDock, NOTIFICATION_MIDDLE_CLICK_ICON, (GldiNotificationFunc) cd_do_on_click, GLDI_RUN_AFTER, NULL); } if (pDock != NULL) { gtk_window_present (GTK_WINDOW (pDock->container.pWidget)); } //\_________________ on gere l'allumage et l'eteignage de l'icone precedente et actuelle. if (myData.pCurrentIcon != NULL && pIcon != myData.pCurrentIcon) // on remet au repos l'icone precedemment anime. { myData.bIgnoreIconState = TRUE; gldi_icon_stop_animation (myData.pCurrentIcon); myData.bIgnoreIconState = FALSE; cairo_dock_redraw_icon (myData.pCurrentIcon); /// utile ?... } if (pIcon != NULL && myData.pCurrentIcon != pIcon) // on anime la nouvelle icone. { int x = pIcon->fXAtRest + pIcon->fWidth/2 + (- pDock->fFlatDockWidth + pDock->iMaxDockWidth)/2; int y = pIcon->fDrawY + pIcon->fHeight/2 * pIcon->fScale; if (1||myData.pCurrentDock != pDock) { cairo_dock_emit_motion_signal (pDock, pDock->container.bIsHorizontal ? x : y, pDock->container.bIsHorizontal ? y : x); } else { myData.iPrevMouseX = myData.iMouseX; myData.iPrevMouseY = myData.iMouseY; myData.iMotionCount = 10; } myData.iMouseX = x; myData.iMouseY = y; gldi_icon_request_animation (pIcon, myConfig.cIconAnimation, 1e6); // interrompt l'animation de "mouse over". cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); } myData.pCurrentDock = pDock; myData.pCurrentIcon = pIcon; cd_debug ("myData.pCurrentDock <- %p", myData.pCurrentDock); }