1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* 3 * Copyright © 2000-2003 Marco Pesenti Gritti 4 * 5 * This file is part of Epiphany. 6 * 7 * Epiphany is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * Epiphany 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 * 17 * You should have received a copy of the GNU General Public License 18 * along with Epiphany. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #pragma once 22 23 #include "ephy-bookmark-states.h" 24 #include "ephy-bookmarks-manager.h" 25 #include "ephy-embed.h" 26 #include "ephy-embed-event.h" 27 #include "ephy-location-controller.h" 28 #include "ephy-tab-view.h" 29 #include "ephy-web-view.h" 30 31 #include <handy.h> 32 33 G_BEGIN_DECLS 34 35 #define EPHY_TYPE_WINDOW (ephy_window_get_type ()) 36 37 G_DECLARE_FINAL_TYPE (EphyWindow, ephy_window, EPHY, WINDOW, HdyApplicationWindow) 38 39 typedef enum 40 { 41 EPHY_WINDOW_CHROME_HEADER_BAR = 1 << 0, 42 EPHY_WINDOW_CHROME_MENU = 1 << 1, 43 EPHY_WINDOW_CHROME_LOCATION = 1 << 2, 44 EPHY_WINDOW_CHROME_TABSBAR = 1 << 3, 45 EPHY_WINDOW_CHROME_BOOKMARKS = 1 << 4, 46 EPHY_WINDOW_CHROME_DEFAULT = (EPHY_WINDOW_CHROME_HEADER_BAR | EPHY_WINDOW_CHROME_MENU | EPHY_WINDOW_CHROME_LOCATION | EPHY_WINDOW_CHROME_TABSBAR | EPHY_WINDOW_CHROME_BOOKMARKS) 47 } EphyWindowChrome; 48 49 EphyWindow *ephy_window_new (void); 50 51 EphyTabView *ephy_window_get_tab_view (EphyWindow *window); 52 53 void ephy_window_open_pages_view (EphyWindow *window); 54 void ephy_window_close_pages_view (EphyWindow *window); 55 56 void ephy_window_load_url (EphyWindow *window, 57 const char *url); 58 59 void ephy_window_set_zoom (EphyWindow *window, 60 double zoom); 61 62 void ephy_window_activate_location (EphyWindow *window); 63 void ephy_window_location_search (EphyWindow *window); 64 const char *ephy_window_get_location (EphyWindow *window); 65 66 GtkWidget *ephy_window_get_header_bar (EphyWindow *window); 67 68 gboolean ephy_window_close (EphyWindow *window); 69 70 EphyWindowChrome ephy_window_get_chrome (EphyWindow *window); 71 72 EphyLocationController *ephy_window_get_location_controller (EphyWindow *window); 73 74 EphyEmbedEvent *ephy_window_get_context_event (EphyWindow *window); 75 76 GtkWidget *ephy_window_get_current_find_toolbar (EphyWindow *window); 77 78 void ephy_window_set_location (EphyWindow *window, 79 const char *address); 80 81 void ephy_window_set_default_size (EphyWindow *window, 82 gint width, 83 gint height); 84 void ephy_window_set_default_position (EphyWindow *window, 85 gint x, 86 gint y); 87 void ephy_window_show_fullscreen_header_bar (EphyWindow *window); 88 89 void ephy_window_update_entry_focus (EphyWindow *window, 90 EphyWebView *view); 91 92 gboolean ephy_window_is_maximized (EphyWindow *window); 93 94 gboolean ephy_window_is_fullscreen (EphyWindow *window); 95 96 void ephy_window_get_geometry (EphyWindow *window, 97 GdkRectangle *rectangle); 98 99 void ephy_window_sync_bookmark_state (GtkWidget *widget, 100 EphyBookmarkIconState state); 101 102 G_END_DECLS 103