2
* This file is a part of the Cairo-Dock project
4
* Copyright : (C) see the 'copyright' file.
5
* E-mail : see the 'copyright' file.
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 3
10
* of the License, or (at your option) any later version.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
21
#ifndef __CAIRO_DOCK_DESKTOP_FILE_FACTORY__
22
#define __CAIRO_DOCK_DESKTOP_FILE_FACTORY__
26
#include "cairo-dock-icon-factory.h"
30
*@file cairo-dock-desktop-file-factory.h This class handles the creation and update of desktop files, which are group/key pair files used by Cairo-Dock to store information about icons : launchers, separators, sub-docks.
34
CAIRO_DOCK_DESKTOP_FILE_FOR_LAUNCHER = 0,
35
CAIRO_DOCK_DESKTOP_FILE_FOR_CONTAINER,
36
CAIRO_DOCK_DESKTOP_FILE_FOR_SEPARATOR,
37
CAIRO_DOCK_NB_DESKTOP_FILES
38
} CairoDockDesktopFileType;
40
/** Replace the %20 by normal spaces into the string. The string is directly modified.
41
*@param cString the string (it can't be a constant string)
43
void cairo_dock_remove_html_spaces (gchar *cString);
45
/** Create, add and fill a desktop file for a given URI. The URI can be either a common desktop file, a script, or a file/folder/mounting point.
46
*@param cURI URI of a file defining the launcher.
47
*@param cDockName name of the dock the separator will be added.
48
*@param fOrder order of the icon inside the dock.
49
*@param erreur an error filled if something went wrong.
50
* @return the name of the new desktop file, in a newly allocated string, or NULL if failed.
52
gchar *cairo_dock_add_desktop_file_from_uri (const gchar *cURI, const gchar *cDockName, double fOrder, GError **erreur);
54
/** Create and add an empty default desktop file for a given type.
55
*@param iLauncherType type of the icon it will represent : launcher, file, container icon, separator.
56
*@param cDockName name of the dock the separator will be added.
57
*@param fOrder order of the icon inside the dock.
58
*@param erreur an error filled if something went wrong.
59
* @return the name of the new desktop file, in a newly allocated string, or NULL if failed.
61
gchar *cairo_dock_add_desktop_file_from_type (CairoDockDesktopFileType iLauncherType, const gchar *cDockName, double fOrder, GError **erreur);
64
void cairo_dock_update_launcher_key_file (GKeyFile *pKeyFile, const gchar *cDesktopFilePath, CairoDockDesktopFileType iLauncherType);
67
void cairo_dock_write_container_name_in_conf_file (Icon *pIcon, const gchar *cParentDockName);
69
void cairo_dock_write_order_in_conf_file (Icon *pIcon, double fOrder);