/* $Id: desktop.h,v 1.19 2011/05/17 11:48:45 khorben Exp $ */ /* Copyright (c) 2011 Pierre Pronchery */ /* This file is part of DeforaOS Desktop Browser */ /* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef BROWSER_DESKTOP_H # define BROWSER_DESKTOP_H # include # include # include "desktopicon.h" /* Desktop */ /* types */ # ifndef DesktopIcon # define DesktopIcon DesktopIcon typedef struct _DesktopIcon DesktopIcon; # endif # ifndef Desktop # define Desktop Desktop typedef struct _Desktop Desktop; # endif typedef enum _DesktopAlignment { DESKTOP_ALIGNMENT_VERTICAL = 0, DESKTOP_ALIGNMENT_HORIZONTAL } DesktopAlignment; typedef enum _DesktopLayout { DESKTOP_LAYOUT_NULL = 0, DESKTOP_LAYOUT_APPLICATIONS, DESKTOP_LAYOUT_CATEGORIES, DESKTOP_LAYOUT_FILES, DESKTOP_LAYOUT_HOMESCREEN } DesktopLayout; typedef enum _DesktopMessage { DESKTOP_MESSAGE_SHOW = 0 } DesktopMessage; typedef enum _DesktopMessageShow { DESKTOP_MESSAGE_SHOW_SETTINGS = 0 } DesktopMessageShow; typedef struct _DesktopPrefs { DesktopAlignment alignment; DesktopLayout layout; int monitor; } DesktopPrefs; /* constants */ # define DESKTOP_CLIENT_MESSAGE "DEFORAOS_DESKTOP_DESKTOP_CLIENT" /* functions */ Desktop * desktop_new(DesktopPrefs * prefs); void desktop_delete(Desktop * desktop); /* accessors */ /* XXX most of these accessors expose internal structures somehow */ int desktop_get_drag_data(Desktop * desktop, GtkSelectionData * seldata); GdkPixbuf * desktop_get_file(Desktop * desktop); GdkPixbuf * desktop_get_folder(Desktop * desktop); Mime * desktop_get_mime(Desktop * desktop); GtkIconTheme * desktop_get_theme(Desktop * desktop); void desktop_set_layout(Desktop * desktop, DesktopLayout layout); /* useful */ int desktop_error(Desktop * desktop, char const * message, int ret); void desktop_refresh(Desktop * desktop); void desktop_icon_add(Desktop * desktop, DesktopIcon * icon); void desktop_icon_remove(Desktop * desktop, DesktopIcon * icon); void desktop_icons_align(Desktop * desktop); void desktop_icons_sort(Desktop * desktop); void desktop_select_all(Desktop * desktop); void desktop_select_above(Desktop * desktop, DesktopIcon * icon); void desktop_select_under(Desktop * desktop, DesktopIcon * icon); void desktop_unselect_all(Desktop * desktop); #endif /* !BROWSER_DESKTOP_H */