00001 00002 #ifndef __CAIRO_DOCK_ICONS__ 00003 #define __CAIRO_DOCK_ICONS__ 00004 00005 #include <glib.h> 00006 00007 #include "cairo-dock-struct.h" 00008 00013 #define CAIRO_DOCK_IS_APPLI(icon) (icon != NULL && icon->iType == CAIRO_DOCK_APPLI) 00014 00018 #define CAIRO_DOCK_IS_LAUNCHER(icon) (icon != NULL && icon->iType == CAIRO_DOCK_LAUNCHER) 00019 00023 #define CAIRO_DOCK_IS_SEPARATOR(icon) (icon != NULL && icon->iType & 1) 00024 00028 #define CAIRO_DOCK_IS_APPLET(icon) (icon != NULL && icon->iType == CAIRO_DOCK_APPLET) 00029 00034 #define CAIRO_DOCK_IS_NORMAL_LAUNCHER(icon) (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->acDesktopFileName != NULL) 00035 00039 #define CAIRO_DOCK_IS_URI_LAUNCHER(icon) (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->cBaseURI != NULL) 00040 00044 #define CAIRO_DOCK_IS_VALID_APPLI(icon) (CAIRO_DOCK_IS_APPLI (icon) && icon->Xid != 0) 00045 00049 #define CAIRO_DOCK_IS_VALID_APPLET(icon) (CAIRO_DOCK_IS_APPLET (icon) && icon->pModule != NULL) 00050 00055 void cairo_dock_free_icon (Icon *icon); 00063 int cairo_dock_compare_icons_order (Icon *icon1, Icon *icon2); 00069 GList *cairo_dock_sort_icons_by_order (GList *pIconList); 00075 GList *cairo_dock_sort_icons_by_name (GList *pIconList); 00076 00083 Icon *cairo_dock_get_first_icon (GList *pIconList); 00089 Icon *cairo_dock_get_last_icon (GList *pIconList); 00095 Icon *cairo_dock_get_first_drawn_icon (CairoDock *pDock); 00101 Icon *cairo_dock_get_last_drawn_icon (CairoDock *pDock); 00108 Icon *cairo_dock_get_first_icon_of_type (GList *pIconList, CairoDockIconType iType); 00115 Icon *cairo_dock_get_last_icon_of_type (GList *pIconList, CairoDockIconType iType); 00121 Icon *cairo_dock_get_pointed_icon (GList *pIconList); 00127 Icon *cairo_dock_get_bouncing_icon (GList *pIconList); 00133 Icon *cairo_dock_get_removing_or_inserting_icon (GList *pIconList); 00139 Icon *cairo_dock_get_animated_icon (GList *pIconList); 00140 Icon *cairo_dock_get_removing_or_inserting_icon (GList *pIconList); 00146 Icon *cairo_dock_get_next_icon (GList *pIconList, Icon *pIcon); 00152 Icon *cairo_dock_get_previous_icon (GList *pIconList, Icon *pIcon); 00159 #define cairo_dock_get_next_element(ic, list) (ic->next == NULL ? list : ic->next) 00160 00166 #define cairo_dock_get_previous_element(ic, list) (ic->prev == NULL ? g_list_last (list) : ic->prev) 00167 00173 Icon *cairo_dock_get_icon_with_command (GList *pIconList, gchar *cCommand); 00180 Icon *cairo_dock_get_icon_with_base_uri (GList *pIconList, gchar *cBaseURI); 00187 Icon *cairo_dock_get_icon_with_subdock (GList *pIconList, CairoDock *pSubDock); 00194 Icon *cairo_dock_get_icon_with_module (GList *pIconList, CairoDockModule *pModule); 00201 Icon *cairo_dock_get_icon_with_class (GList *pIconList, gchar *cClass); 00202 00203 #define cairo_dock_none_clicked(pIconList) (cairo_dock_get_bouncing_icon (pIconList) == NULL) 00204 #define cairo_dock_none_removed_or_inserted(pIconList) (cairo_dock_get_removing_or_inserting_icon (pIconList) == NULL) 00205 #define cairo_dock_none_animated(pIconList) (cairo_dock_get_animated_icon (pIconList) == NULL) 00206 00207 #define cairo_dock_get_first_launcher(pIconList) cairo_dock_get_first_icon_of_type (pIconList, CAIRO_DOCK_LAUNCHER) 00208 #define cairo_dock_get_last_launcher(pIconList) cairo_dock_get_last_icon_of_type (pIconList, CAIRO_DOCK_LAUNCHER) 00209 #define cairo_dock_get_first_appli(pIconList) cairo_dock_get_first_icon_of_type (pIconList, CAIRO_DOCK_APPLI) 00210 #define cairo_dock_get_last_appli(pIconList) cairo_dock_get_last_icon_of_type (pIconList, CAIRO_DOCK_APPLI) 00211 00212 00213 void cairo_dock_swap_icons (CairoDock *pDock, Icon *icon1, Icon *icon2); 00214 void cairo_dock_move_icon_after_icon (CairoDock *pDock, Icon *icon1, Icon *icon2); 00215 00222 void cairo_dock_detach_icon_from_dock (Icon *icon, CairoDock *pDock, gboolean bCheckUnusedSeparator); 00228 void cairo_dock_remove_one_icon_from_dock (CairoDock *pDock, Icon *icon); 00234 void cairo_dock_remove_icon_from_dock (CairoDock *pDock, Icon *icon); 00240 void cairo_dock_remove_icons_of_type (CairoDock *pDock, CairoDockIconType iType); 00245 #define cairo_dock_remove_all_applis(pDock) cairo_dock_remove_icons_of_type (pDock, CAIRO_DOCK_APPLI) 00246 00250 #define cairo_dock_remove_all_applets(pDock) cairo_dock_remove_icons_of_type (pDock, CAIRO_DOCK_APPLET) 00251 00255 void cairo_dock_remove_all_separators (CairoDock *pDock); 00256 00261 void cairo_dock_insert_separator_between_launchers_and_applis (CairoDock *pDock); 00262 00263 00264 GList * cairo_dock_calculate_icons_positions_at_rest_linear (GList *pIconList, int iMinDockWidth, int iXOffset); 00265 00266 Icon * cairo_dock_calculate_wave_with_position_linear (GList *pIconList, GList *pFirstDrawnElement, int x_abs, gdouble fMagnitude, int iMinDockWidth, int iWidth, int iHeight, double fAlign, double fLateralFactor); 00267 00268 Icon *cairo_dock_apply_wave_effect (CairoDock *pDock); 00269 00270 CairoDockMousePositionType cairo_dock_check_if_mouse_inside_linear (CairoDock *pDock); 00271 00272 void cairo_dock_manage_mouse_position (CairoDock *pDock, CairoDockMousePositionType iMousePositionType); 00273 00274 00275 double cairo_dock_calculate_max_dock_width (CairoDock *pDock, GList *pFirstDrawnElement, int iFlatDockWidth, double fWidthConstraintFactor, double fExtraWidth); 00276 00277 00278 void cairo_dock_mark_icons_as_avoiding_mouse (CairoDock *pDock, CairoDockIconType iType, double fMargin); 00279 void cairo_dock_mark_avoiding_mouse_icons_linear (CairoDock *pDock); 00280 void cairo_dock_stop_marking_icons (CairoDock *pDock); 00281 00287 void cairo_dock_update_icon_s_container_name (Icon *icon, const gchar *cNewParentDockName); 00288 00289 #endif 00290