1 /* 2 * Copyright (C) 2020 Purism SPC 3 * 4 * SPDX-License-Identifier: LGPL-2.1+ 5 * 6 * Author: Alexander Mikhaylenko <alexander.mikhaylenko@puri.sm> 7 */ 8 9 #pragma once 10 11 #if !defined(_HANDY_INSIDE) && !defined(HANDY_COMPILATION) 12 #error "Only <handy.h> can be included directly." 13 #endif 14 15 #include "hdy-version.h" 16 17 #include <gtk/gtk.h> 18 19 G_BEGIN_DECLS 20 21 #define HDY_TYPE_TAB_PAGE (hdy_tab_page_get_type()) 22 23 HDY_AVAILABLE_IN_1_2 24 G_DECLARE_FINAL_TYPE (HdyTabPage, hdy_tab_page, HDY, TAB_PAGE, GObject) 25 26 HDY_AVAILABLE_IN_1_2 27 GtkWidget *hdy_tab_page_get_child (HdyTabPage *self); 28 29 HDY_AVAILABLE_IN_1_2 30 HdyTabPage *hdy_tab_page_get_parent (HdyTabPage *self); 31 32 HDY_AVAILABLE_IN_1_2 33 gboolean hdy_tab_page_get_selected (HdyTabPage *self); 34 35 HDY_AVAILABLE_IN_1_2 36 gboolean hdy_tab_page_get_pinned (HdyTabPage *self); 37 38 HDY_AVAILABLE_IN_1_2 39 const gchar *hdy_tab_page_get_title (HdyTabPage *self); 40 HDY_AVAILABLE_IN_1_2 41 void hdy_tab_page_set_title (HdyTabPage *self, 42 const gchar *title); 43 44 HDY_AVAILABLE_IN_1_2 45 const gchar *hdy_tab_page_get_tooltip (HdyTabPage *self); 46 HDY_AVAILABLE_IN_1_2 47 void hdy_tab_page_set_tooltip (HdyTabPage *self, 48 const gchar *tooltip); 49 50 HDY_AVAILABLE_IN_1_2 51 GIcon *hdy_tab_page_get_icon (HdyTabPage *self); 52 HDY_AVAILABLE_IN_1_2 53 void hdy_tab_page_set_icon (HdyTabPage *self, 54 GIcon *icon); 55 56 HDY_AVAILABLE_IN_1_2 57 gboolean hdy_tab_page_get_loading (HdyTabPage *self); 58 HDY_AVAILABLE_IN_1_2 59 void hdy_tab_page_set_loading (HdyTabPage *self, 60 gboolean loading); 61 62 HDY_AVAILABLE_IN_1_2 63 GIcon *hdy_tab_page_get_indicator_icon (HdyTabPage *self); 64 HDY_AVAILABLE_IN_1_2 65 void hdy_tab_page_set_indicator_icon (HdyTabPage *self, 66 GIcon *indicator_icon); 67 68 HDY_AVAILABLE_IN_1_2 69 gboolean hdy_tab_page_get_indicator_activatable (HdyTabPage *self); 70 HDY_AVAILABLE_IN_1_2 71 void hdy_tab_page_set_indicator_activatable (HdyTabPage *self, 72 gboolean activatable); 73 74 HDY_AVAILABLE_IN_1_2 75 gboolean hdy_tab_page_get_needs_attention (HdyTabPage *self); 76 HDY_AVAILABLE_IN_1_2 77 void hdy_tab_page_set_needs_attention (HdyTabPage *self, 78 gboolean needs_attention); 79 80 #define HDY_TYPE_TAB_VIEW (hdy_tab_view_get_type()) 81 82 HDY_AVAILABLE_IN_1_2 83 G_DECLARE_FINAL_TYPE (HdyTabView, hdy_tab_view, HDY, TAB_VIEW, GtkBin) 84 85 HDY_AVAILABLE_IN_1_2 86 HdyTabView *hdy_tab_view_new (void); 87 88 HDY_AVAILABLE_IN_1_2 89 gint hdy_tab_view_get_n_pages (HdyTabView *self); 90 HDY_AVAILABLE_IN_1_2 91 gint hdy_tab_view_get_n_pinned_pages (HdyTabView *self); 92 93 HDY_AVAILABLE_IN_1_2 94 gboolean hdy_tab_view_get_is_transferring_page (HdyTabView *self); 95 96 HDY_AVAILABLE_IN_1_2 97 HdyTabPage *hdy_tab_view_get_selected_page (HdyTabView *self); 98 HDY_AVAILABLE_IN_1_2 99 void hdy_tab_view_set_selected_page (HdyTabView *self, 100 HdyTabPage *selected_page); 101 102 HDY_AVAILABLE_IN_1_2 103 gboolean hdy_tab_view_select_previous_page (HdyTabView *self); 104 HDY_AVAILABLE_IN_1_2 105 gboolean hdy_tab_view_select_next_page (HdyTabView *self); 106 107 HDY_AVAILABLE_IN_1_2 108 GIcon *hdy_tab_view_get_default_icon (HdyTabView *self); 109 HDY_AVAILABLE_IN_1_2 110 void hdy_tab_view_set_default_icon (HdyTabView *self, 111 GIcon *default_icon); 112 113 HDY_AVAILABLE_IN_1_2 114 GMenuModel *hdy_tab_view_get_menu_model (HdyTabView *self); 115 HDY_AVAILABLE_IN_1_2 116 void hdy_tab_view_set_menu_model (HdyTabView *self, 117 GMenuModel *menu_model); 118 119 HDY_AVAILABLE_IN_1_2 120 GtkWidget *hdy_tab_view_get_shortcut_widget (HdyTabView *self); 121 HDY_AVAILABLE_IN_1_2 122 void hdy_tab_view_set_shortcut_widget (HdyTabView *self, 123 GtkWidget *widget); 124 125 HDY_AVAILABLE_IN_1_2 126 void hdy_tab_view_set_page_pinned (HdyTabView *self, 127 HdyTabPage *page, 128 gboolean pinned); 129 130 HDY_AVAILABLE_IN_1_2 131 HdyTabPage *hdy_tab_view_get_page (HdyTabView *self, 132 GtkWidget *child); 133 134 HDY_AVAILABLE_IN_1_2 135 HdyTabPage *hdy_tab_view_get_nth_page (HdyTabView *self, 136 gint position); 137 138 HDY_AVAILABLE_IN_1_2 139 gint hdy_tab_view_get_page_position (HdyTabView *self, 140 HdyTabPage *page); 141 142 HDY_AVAILABLE_IN_1_2 143 HdyTabPage *hdy_tab_view_add_page (HdyTabView *self, 144 GtkWidget *child, 145 HdyTabPage *parent); 146 147 HDY_AVAILABLE_IN_1_2 148 HdyTabPage *hdy_tab_view_insert (HdyTabView *self, 149 GtkWidget *child, 150 gint position); 151 HDY_AVAILABLE_IN_1_2 152 HdyTabPage *hdy_tab_view_prepend (HdyTabView *self, 153 GtkWidget *child); 154 HDY_AVAILABLE_IN_1_2 155 HdyTabPage *hdy_tab_view_append (HdyTabView *self, 156 GtkWidget *child); 157 158 HDY_AVAILABLE_IN_1_2 159 HdyTabPage *hdy_tab_view_insert_pinned (HdyTabView *self, 160 GtkWidget *child, 161 gint position); 162 HDY_AVAILABLE_IN_1_2 163 HdyTabPage *hdy_tab_view_prepend_pinned (HdyTabView *self, 164 GtkWidget *child); 165 HDY_AVAILABLE_IN_1_2 166 HdyTabPage *hdy_tab_view_append_pinned (HdyTabView *self, 167 GtkWidget *child); 168 169 HDY_AVAILABLE_IN_1_2 170 void hdy_tab_view_close_page (HdyTabView *self, 171 HdyTabPage *page); 172 HDY_AVAILABLE_IN_1_2 173 void hdy_tab_view_close_page_finish (HdyTabView *self, 174 HdyTabPage *page, 175 gboolean confirm); 176 177 HDY_AVAILABLE_IN_1_2 178 void hdy_tab_view_close_other_pages (HdyTabView *self, 179 HdyTabPage *page); 180 HDY_AVAILABLE_IN_1_2 181 void hdy_tab_view_close_pages_before (HdyTabView *self, 182 HdyTabPage *page); 183 HDY_AVAILABLE_IN_1_2 184 void hdy_tab_view_close_pages_after (HdyTabView *self, 185 HdyTabPage *page); 186 187 HDY_AVAILABLE_IN_1_2 188 gboolean hdy_tab_view_reorder_page (HdyTabView *self, 189 HdyTabPage *page, 190 gint position); 191 HDY_AVAILABLE_IN_1_2 192 gboolean hdy_tab_view_reorder_backward (HdyTabView *self, 193 HdyTabPage *page); 194 HDY_AVAILABLE_IN_1_2 195 gboolean hdy_tab_view_reorder_forward (HdyTabView *self, 196 HdyTabPage *page); 197 HDY_AVAILABLE_IN_1_2 198 gboolean hdy_tab_view_reorder_first (HdyTabView *self, 199 HdyTabPage *page); 200 HDY_AVAILABLE_IN_1_2 201 gboolean hdy_tab_view_reorder_last (HdyTabView *self, 202 HdyTabPage *page); 203 204 HDY_AVAILABLE_IN_1_2 205 void hdy_tab_view_transfer_page (HdyTabView *self, 206 HdyTabPage *page, 207 HdyTabView *other_view, 208 gint position); 209 210 HDY_AVAILABLE_IN_1_2 211 GListModel *hdy_tab_view_get_pages (HdyTabView *self); 212 213 G_END_DECLS 214