00001 00002 #ifndef __CAIRO_DOCK_ICONS__ 00003 #define __CAIRO_DOCK_ICONS__ 00004 00005 #include <glib.h> 00006 00007 #include "cairo-dock-struct.h" 00008 00009 00010 #define CAIRO_DOCK_IS_APPLI(icon) (icon != NULL && icon->iType == CAIRO_DOCK_APPLI) 00011 #define CAIRO_DOCK_IS_LAUNCHER(icon) (icon != NULL && icon->iType == CAIRO_DOCK_LAUNCHER) 00012 #define CAIRO_DOCK_IS_SEPARATOR(icon) (icon != NULL && icon->iType & 1) 00013 #define CAIRO_DOCK_IS_APPLET(icon) (icon != NULL && icon->iType == CAIRO_DOCK_APPLET) 00014 00015 #define CAIRO_DOCK_IS_NORMAL_LAUNCHER(icon) (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->acDesktopFileName != NULL) 00016 #define CAIRO_DOCK_IS_URI_LAUNCHER(icon) (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->cBaseURI != NULL) 00017 #define CAIRO_DOCK_IS_VALID_APPLI(icon) (CAIRO_DOCK_IS_APPLI (icon) && icon->Xid != 0) 00018 #define CAIRO_DOCK_IS_VALID_APPLET(icon) (CAIRO_DOCK_IS_APPLET (icon) && icon->pModule != NULL) 00019 00020 00021 void cairo_dock_free_icon (Icon *icon); 00022 00023 int cairo_dock_compare_icons_order (Icon *icon1, Icon *icon2); 00024 GList *cairo_dock_sort_icons_by_order (GList *pIconList); 00025 GList *cairo_dock_sort_icons_by_name (GList *pIconList); 00026 00027 00028 Icon *cairo_dock_get_first_icon (GList *pIconList); 00029 Icon *cairo_dock_get_last_icon (GList *pIconList); 00030 Icon *cairo_dock_get_first_drawn_icon (CairoDock *pDock); 00031 Icon *cairo_dock_get_last_drawn_icon (CairoDock *pDock); 00032 Icon *cairo_dock_get_first_icon_of_type (GList *pIconList, CairoDockIconType iType); 00033 Icon *cairo_dock_get_last_icon_of_type (GList *pIconList, CairoDockIconType iType); 00034 Icon *cairo_dock_get_pointed_icon (GList *pIconList); 00035 Icon *cairo_dock_get_bouncing_icon (GList *pIconList); 00036 Icon *cairo_dock_get_removing_or_inserting_icon (GList *pIconList); 00037 Icon *cairo_dock_get_animated_icon (GList *pIconList); 00038 Icon *cairo_dock_get_next_icon (GList *pIconList, Icon *pIcon); 00039 Icon *cairo_dock_get_previous_icon (GList *pIconList, Icon *pIcon); 00040 #define cairo_dock_get_next_element(ic, list) (ic->next == NULL ? list : ic->next) 00041 #define cairo_dock_get_previous_element(ic, list) (ic->prev == NULL ? g_list_last (list) : ic->prev) 00042 Icon *cairo_dock_get_icon_with_command (GList *pIconList, gchar *cCommand); 00043 Icon *cairo_dock_get_icon_with_base_uri (GList *pIconList, gchar *cBaseURI); 00044 Icon *cairo_dock_get_icon_with_subdock (GList *pIconList, CairoDock *pSubDock); 00045 Icon *cairo_dock_get_icon_with_module (GList *pIconList, CairoDockModule *pModule); 00046 Icon *cairo_dock_get_icon_with_class (GList *pIconList, gchar *cClass); 00047 00048 #define cairo_dock_none_clicked(pIconList) (cairo_dock_get_bouncing_icon (pIconList) == NULL) 00049 #define cairo_dock_none_removed_or_inserted(pIconList) (cairo_dock_get_removing_or_inserting_icon (pIconList) == NULL) 00050 #define cairo_dock_none_animated(pIconList) (cairo_dock_get_animated_icon (pIconList) == NULL) 00051 00052 #define cairo_dock_get_first_launcher(pIconList) cairo_dock_get_first_icon_of_type (pIconList, CAIRO_DOCK_LAUNCHER) 00053 #define cairo_dock_get_last_launcher(pIconList) cairo_dock_get_last_icon_of_type (pIconList, CAIRO_DOCK_LAUNCHER) 00054 #define cairo_dock_get_first_appli(pIconList) cairo_dock_get_first_icon_of_type (pIconList, CAIRO_DOCK_APPLI) 00055 #define cairo_dock_get_last_appli(pIconList) cairo_dock_get_last_icon_of_type (pIconList, CAIRO_DOCK_APPLI) 00056 00057 00058 void cairo_dock_swap_icons (CairoDock *pDock, Icon *icon1, Icon *icon2); 00059 void cairo_dock_move_icon_after_icon (CairoDock *pDock, Icon *icon1, Icon *icon2); 00060 00061 void cairo_dock_detach_icon_from_dock (Icon *icon, CairoDock *pDock, gboolean bCheckUnusedSeparator); 00062 void cairo_dock_remove_one_icon_from_dock (CairoDock *pDock, Icon *icon); 00063 void cairo_dock_remove_icon_from_dock (CairoDock *pDock, Icon *icon); 00064 void cairo_dock_remove_icons_of_type (CairoDock *pDock, CairoDockIconType iType); 00065 #define cairo_dock_remove_all_applis(pDock) cairo_dock_remove_icons_of_type (pDock, CAIRO_DOCK_APPLI) 00066 #define cairo_dock_remove_all_applets(pDock) cairo_dock_remove_icons_of_type (pDock, CAIRO_DOCK_APPLET) 00067 00068 void cairo_dock_remove_separator (CairoDock *pDock, CairoDockIconType iType); 00069 00070 void cairo_dock_remove_all_separators (CairoDock *pDock); 00071 00072 00073 00074 GList * cairo_dock_calculate_icons_positions_at_rest_linear (GList *pIconList, int iMinDockWidth, int iXOffset); 00075 00076 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); 00077 00078 Icon *cairo_dock_apply_wave_effect (CairoDock *pDock); 00079 00080 CairoDockMousePositionType cairo_dock_check_if_mouse_inside_linear (CairoDock *pDock); 00081 00082 void cairo_dock_manage_mouse_position (CairoDock *pDock, CairoDockMousePositionType iMousePositionType); 00083 00084 00085 double cairo_dock_calculate_max_dock_width (CairoDock *pDock, GList *pFirstDrawnElement, int iFlatDockWidth, double fWidthConstraintFactor, double fExtraWidth); 00086 00087 00088 void cairo_dock_mark_icons_as_avoiding_mouse (CairoDock *pDock, CairoDockIconType iType, double fMargin); 00089 void cairo_dock_mark_avoiding_mouse_icons_linear (CairoDock *pDock); 00090 void cairo_dock_stop_marking_icons (CairoDock *pDock); 00091 00092 00093 void cairo_dock_update_icon_s_container_name (Icon *icon, gchar *cNewParentDockName); 00094 00095 #endif 00096