| File: | lapiz/lapiz-documents-panel.c |
| Warning: | line 610, column 33 Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
| 1 | /* |
| 2 | * lapiz-documents-panel.c |
| 3 | * This file is part of lapiz |
| 4 | * |
| 5 | * Copyright (C) 2005 - Paolo Maggi |
| 6 | * |
| 7 | * This program 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 2 of the License, or |
| 10 | * (at your option) any later version. |
| 11 | * |
| 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 | * |
| 17 | * You should have received a copy of the GNU General Public License |
| 18 | * along with this program; if not, write to the Free Software |
| 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, |
| 20 | * Boston, MA 02110-1301, USA. |
| 21 | */ |
| 22 | |
| 23 | /* |
| 24 | * Modified by the lapiz Team, 2005. See the AUTHORS file for a |
| 25 | * list of people on the lapiz Team. |
| 26 | * See the ChangeLog files for a list of changes. |
| 27 | * |
| 28 | * $Id$ |
| 29 | */ |
| 30 | |
| 31 | #ifdef HAVE_CONFIG_H1 |
| 32 | #include <config.h> |
| 33 | #endif |
| 34 | |
| 35 | #include "lapiz-documents-panel.h" |
| 36 | #include "lapiz-utils.h" |
| 37 | #include "lapiz-notebook.h" |
| 38 | |
| 39 | #include <glib/gi18n.h> |
| 40 | |
| 41 | struct _LapizDocumentsPanelPrivate |
| 42 | { |
| 43 | LapizWindow *window; |
| 44 | |
| 45 | CtkWidget *treeview; |
| 46 | CtkTreeModel *model; |
| 47 | |
| 48 | guint adding_tab : 1; |
| 49 | guint is_reodering : 1; |
| 50 | }; |
| 51 | |
| 52 | G_DEFINE_TYPE_WITH_PRIVATE (LapizDocumentsPanel, lapiz_documents_panel, CTK_TYPE_BOX)static void lapiz_documents_panel_init (LapizDocumentsPanel * self); static void lapiz_documents_panel_class_init (LapizDocumentsPanelClass *klass); static GType lapiz_documents_panel_get_type_once (void ); static gpointer lapiz_documents_panel_parent_class = ((void *)0); static gint LapizDocumentsPanel_private_offset; static void lapiz_documents_panel_class_intern_init (gpointer klass) { lapiz_documents_panel_parent_class = g_type_class_peek_parent (klass); if (LapizDocumentsPanel_private_offset != 0) g_type_class_adjust_private_offset (klass, &LapizDocumentsPanel_private_offset ); lapiz_documents_panel_class_init ((LapizDocumentsPanelClass *) klass); } __attribute__ ((__unused__)) static inline gpointer lapiz_documents_panel_get_instance_private (LapizDocumentsPanel *self) { return (((gpointer) ((guint8*) (self) + (glong) (LapizDocumentsPanel_private_offset )))); } GType lapiz_documents_panel_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = lapiz_documents_panel_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType lapiz_documents_panel_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_box_get_type ()), g_intern_static_string ("LapizDocumentsPanel" ), sizeof (LapizDocumentsPanelClass), (GClassInitFunc)(void ( *)(void)) lapiz_documents_panel_class_intern_init, sizeof (LapizDocumentsPanel ), (GInstanceInitFunc)(void (*)(void)) lapiz_documents_panel_init , (GTypeFlags) 0); { {{ LapizDocumentsPanel_private_offset = g_type_add_instance_private (g_define_type_id, sizeof (LapizDocumentsPanelPrivate)); };} } return g_define_type_id; } |
| 53 | |
| 54 | enum |
| 55 | { |
| 56 | PROP_0, |
| 57 | PROP_WINDOW |
| 58 | }; |
| 59 | |
| 60 | enum |
| 61 | { |
| 62 | PIXBUF_COLUMN, |
| 63 | NAME_COLUMN, |
| 64 | TAB_COLUMN, |
| 65 | N_COLUMNS |
| 66 | }; |
| 67 | |
| 68 | #define MAX_DOC_NAME_LENGTH60 60 |
| 69 | |
| 70 | static gchar * |
| 71 | tab_get_name (LapizTab *tab) |
| 72 | { |
| 73 | LapizDocument *doc; |
| 74 | gchar *name; |
| 75 | gchar *docname; |
| 76 | gchar *tab_name; |
| 77 | |
| 78 | g_return_val_if_fail (LAPIZ_IS_TAB (tab), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((tab)); GType __t = ((lapiz_tab_get_type())); gboolean __r ; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char* ) (__func__)), "LAPIZ_IS_TAB (tab)"); return (((void*)0)); } } while (0); |
| 79 | |
| 80 | doc = lapiz_tab_get_document (tab); |
| 81 | |
| 82 | name = lapiz_document_get_short_name_for_display (doc); |
| 83 | |
| 84 | /* Truncate the name so it doesn't get insanely wide. */ |
| 85 | docname = lapiz_utils_str_middle_truncate (name, MAX_DOC_NAME_LENGTH60); |
| 86 | |
| 87 | if (ctk_text_buffer_get_modified (CTK_TEXT_BUFFER (doc)((((CtkTextBuffer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((doc)), ((ctk_text_buffer_get_type ())))))))) |
| 88 | { |
| 89 | if (lapiz_document_get_readonly (doc)) |
| 90 | { |
| 91 | tab_name = g_markup_printf_escaped ("<i>%s</i> [<i>%s</i>]", |
| 92 | docname, |
| 93 | _("Read-Only")gettext ("Read-Only")); |
| 94 | } |
| 95 | else |
| 96 | { |
| 97 | tab_name = g_markup_printf_escaped ("<i>%s</i>", |
| 98 | docname); |
| 99 | } |
| 100 | } |
| 101 | else |
| 102 | { |
| 103 | if (lapiz_document_get_readonly (doc)) |
| 104 | { |
| 105 | tab_name = g_markup_printf_escaped ("%s [<i>%s</i>]", |
| 106 | docname, |
| 107 | _("Read-Only")gettext ("Read-Only")); |
| 108 | } |
| 109 | else |
| 110 | { |
| 111 | tab_name = g_markup_escape_text (docname, -1); |
| 112 | } |
| 113 | } |
| 114 | |
| 115 | g_free (docname); |
| 116 | g_free (name); |
| 117 | |
| 118 | return tab_name; |
| 119 | } |
| 120 | |
| 121 | static void |
| 122 | get_iter_from_tab (LapizDocumentsPanel *panel, LapizTab *tab, CtkTreeIter *iter) |
| 123 | { |
| 124 | gint num; |
| 125 | CtkWidget *nb; |
| 126 | CtkTreePath *path; |
| 127 | |
| 128 | nb = _lapiz_window_get_notebook (panel->priv->window); |
| 129 | num = ctk_notebook_page_num (CTK_NOTEBOOK (nb)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((nb)), ((ctk_notebook_get_type ())))))), |
| 130 | CTK_WIDGET (tab)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tab)), ((ctk_widget_get_type ()))))))); |
| 131 | |
| 132 | path = ctk_tree_path_new_from_indices (num, -1); |
| 133 | ctk_tree_model_get_iter (panel->priv->model, |
| 134 | iter, |
| 135 | path); |
| 136 | ctk_tree_path_free (path); |
| 137 | } |
| 138 | |
| 139 | static void |
| 140 | window_active_tab_changed (LapizWindow *window, |
| 141 | LapizTab *tab, |
| 142 | LapizDocumentsPanel *panel) |
| 143 | { |
| 144 | g_return_if_fail (tab != NULL)do { if ((tab != ((void*)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__)), "tab != NULL"); return ; } } while (0); |
| 145 | |
| 146 | if (!_lapiz_window_is_removing_tabs (window)) |
| 147 | { |
| 148 | CtkTreeIter iter; |
| 149 | |
| 150 | get_iter_from_tab (panel, tab, &iter); |
| 151 | |
| 152 | if (ctk_list_store_iter_is_valid (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 153 | &iter)) |
| 154 | { |
| 155 | CtkTreeSelection *selection; |
| 156 | |
| 157 | selection = ctk_tree_view_get_selection ( |
| 158 | CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( )))))))); |
| 159 | |
| 160 | ctk_tree_selection_select_iter (selection, &iter); |
| 161 | } |
| 162 | } |
| 163 | } |
| 164 | |
| 165 | static void |
| 166 | refresh_list (LapizDocumentsPanel *panel) |
| 167 | { |
| 168 | /* TODO: refresh the list only if the panel is visible */ |
| 169 | |
| 170 | GList *tabs; |
| 171 | GList *l; |
| 172 | CtkWidget *nb; |
| 173 | CtkListStore *list_store; |
| 174 | LapizTab *active_tab; |
| 175 | |
| 176 | /* g_debug ("refresh_list"); */ |
| 177 | |
| 178 | list_store = CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))); |
| 179 | |
| 180 | ctk_list_store_clear (list_store); |
| 181 | |
| 182 | active_tab = lapiz_window_get_active_tab (panel->priv->window); |
| 183 | |
| 184 | nb = _lapiz_window_get_notebook (panel->priv->window); |
| 185 | |
| 186 | tabs = ctk_container_get_children (CTK_CONTAINER (nb)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((nb)), ((ctk_container_get_type ()))))))); |
| 187 | l = tabs; |
| 188 | |
| 189 | panel->priv->adding_tab = TRUE(!(0)); |
| 190 | |
| 191 | while (l != NULL((void*)0)) |
| 192 | { |
| 193 | GdkPixbuf *pixbuf; |
| 194 | gchar *name; |
| 195 | CtkTreeIter iter; |
| 196 | |
| 197 | name = tab_get_name (LAPIZ_TAB (l->data)((((LapizTab*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((l->data)), ((lapiz_tab_get_type()))))))); |
| 198 | pixbuf = _lapiz_tab_get_icon (LAPIZ_TAB (l->data)((((LapizTab*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((l->data)), ((lapiz_tab_get_type()))))))); |
| 199 | |
| 200 | /* Add a new row to the model */ |
| 201 | ctk_list_store_append (list_store, &iter); |
| 202 | ctk_list_store_set (list_store, |
| 203 | &iter, |
| 204 | PIXBUF_COLUMN, pixbuf, |
| 205 | NAME_COLUMN, name, |
| 206 | TAB_COLUMN, l->data, |
| 207 | -1); |
| 208 | |
| 209 | g_free (name); |
| 210 | if (pixbuf != NULL((void*)0)) |
| 211 | g_object_unref (pixbuf); |
| 212 | |
| 213 | if (l->data == active_tab) |
| 214 | { |
| 215 | CtkTreeSelection *selection; |
| 216 | |
| 217 | selection = ctk_tree_view_get_selection ( |
| 218 | CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( )))))))); |
| 219 | |
| 220 | ctk_tree_selection_select_iter (selection, &iter); |
| 221 | } |
| 222 | |
| 223 | l = g_list_next (l)((l) ? (((GList *)(l))->next) : ((void*)0)); |
| 224 | } |
| 225 | |
| 226 | panel->priv->adding_tab = FALSE(0); |
| 227 | |
| 228 | g_list_free (tabs); |
| 229 | } |
| 230 | |
| 231 | static void |
| 232 | sync_name_and_icon (LapizTab *tab, |
| 233 | GParamSpec *pspec G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 234 | LapizDocumentsPanel *panel) |
| 235 | { |
| 236 | GdkPixbuf *pixbuf; |
| 237 | gchar *name; |
| 238 | CtkTreeIter iter; |
| 239 | |
| 240 | get_iter_from_tab (panel, tab, &iter); |
| 241 | |
| 242 | name = tab_get_name (tab); |
| 243 | pixbuf = _lapiz_tab_get_icon (tab); |
| 244 | |
| 245 | ctk_list_store_set (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 246 | &iter, |
| 247 | PIXBUF_COLUMN, pixbuf, |
| 248 | NAME_COLUMN, name, |
| 249 | TAB_COLUMN, tab, |
| 250 | -1); |
| 251 | |
| 252 | g_free (name); |
| 253 | if (pixbuf != NULL((void*)0)) |
| 254 | g_object_unref (pixbuf); |
| 255 | } |
| 256 | |
| 257 | static void |
| 258 | window_tab_removed (LapizWindow *window, |
| 259 | LapizTab *tab, |
| 260 | LapizDocumentsPanel *panel) |
| 261 | { |
| 262 | g_signal_handlers_disconnect_by_func (tab,g_signal_handlers_disconnect_matched ((tab), (GSignalMatchType ) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*) 0), (((GCallback) (sync_name_and_icon))), (panel)) |
| 263 | G_CALLBACK (sync_name_and_icon),g_signal_handlers_disconnect_matched ((tab), (GSignalMatchType ) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*) 0), (((GCallback) (sync_name_and_icon))), (panel)) |
| 264 | panel)g_signal_handlers_disconnect_matched ((tab), (GSignalMatchType ) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*) 0), (((GCallback) (sync_name_and_icon))), (panel)); |
| 265 | |
| 266 | if (_lapiz_window_is_removing_tabs (window)) |
| 267 | ctk_list_store_clear (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () ))))))); |
| 268 | else |
| 269 | refresh_list (panel); |
| 270 | } |
| 271 | |
| 272 | static void |
| 273 | window_tab_added (LapizWindow *window G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 274 | LapizTab *tab, |
| 275 | LapizDocumentsPanel *panel) |
| 276 | { |
| 277 | CtkTreeIter iter; |
| 278 | CtkTreeIter sibling; |
| 279 | GdkPixbuf *pixbuf; |
| 280 | gchar *name; |
| 281 | |
| 282 | g_signal_connect (tab,g_signal_connect_data ((tab), ("notify::name"), (((GCallback) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags) 0) |
| 283 | "notify::name",g_signal_connect_data ((tab), ("notify::name"), (((GCallback) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags) 0) |
| 284 | G_CALLBACK (sync_name_and_icon),g_signal_connect_data ((tab), ("notify::name"), (((GCallback) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags) 0) |
| 285 | panel)g_signal_connect_data ((tab), ("notify::name"), (((GCallback) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags) 0); |
| 286 | |
| 287 | g_signal_connect (tab,g_signal_connect_data ((tab), ("notify::state"), (((GCallback ) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 288 | "notify::state",g_signal_connect_data ((tab), ("notify::state"), (((GCallback ) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 289 | G_CALLBACK (sync_name_and_icon),g_signal_connect_data ((tab), ("notify::state"), (((GCallback ) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 290 | panel)g_signal_connect_data ((tab), ("notify::state"), (((GCallback ) (sync_name_and_icon))), (panel), ((void*)0), (GConnectFlags ) 0); |
| 291 | |
| 292 | get_iter_from_tab (panel, tab, &sibling); |
| 293 | |
| 294 | panel->priv->adding_tab = TRUE(!(0)); |
| 295 | |
| 296 | if (ctk_list_store_iter_is_valid (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 297 | &sibling)) |
| 298 | { |
| 299 | ctk_list_store_insert_after (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 300 | &iter, |
| 301 | &sibling); |
| 302 | } |
| 303 | else |
| 304 | { |
| 305 | LapizTab *active_tab; |
| 306 | |
| 307 | ctk_list_store_append (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 308 | &iter); |
| 309 | |
| 310 | active_tab = lapiz_window_get_active_tab (panel->priv->window); |
| 311 | |
| 312 | if (tab == active_tab) |
| 313 | { |
| 314 | CtkTreeSelection *selection; |
| 315 | |
| 316 | selection = ctk_tree_view_get_selection ( |
| 317 | CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( )))))))); |
| 318 | |
| 319 | ctk_tree_selection_select_iter (selection, &iter); |
| 320 | } |
| 321 | } |
| 322 | |
| 323 | name = tab_get_name (tab); |
| 324 | pixbuf = _lapiz_tab_get_icon (tab); |
| 325 | |
| 326 | ctk_list_store_set (CTK_LIST_STORE (panel->priv->model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), ((ctk_list_store_get_type () )))))), |
| 327 | &iter, |
| 328 | PIXBUF_COLUMN, pixbuf, |
| 329 | NAME_COLUMN, name, |
| 330 | TAB_COLUMN, tab, |
| 331 | -1); |
| 332 | |
| 333 | g_free (name); |
| 334 | if (pixbuf != NULL((void*)0)) |
| 335 | g_object_unref (pixbuf); |
| 336 | |
| 337 | panel->priv->adding_tab = FALSE(0); |
| 338 | } |
| 339 | |
| 340 | static void |
| 341 | window_tabs_reordered (LapizWindow *window G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 342 | LapizDocumentsPanel *panel) |
| 343 | { |
| 344 | if (panel->priv->is_reodering) |
| 345 | return; |
| 346 | |
| 347 | refresh_list (panel); |
| 348 | } |
| 349 | |
| 350 | static void |
| 351 | set_window (LapizDocumentsPanel *panel, |
| 352 | LapizWindow *window) |
| 353 | { |
| 354 | g_return_if_fail (panel->priv->window == NULL)do { if ((panel->priv->window == ((void*)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__ )), "panel->priv->window == NULL"); return; } } while ( 0); |
| 355 | g_return_if_fail (LAPIZ_IS_WINDOW (window))do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((window)); GType __t = ((lapiz_window_get_type())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char* ) (__func__)), "LAPIZ_IS_WINDOW (window)"); return; } } while (0); |
| 356 | |
| 357 | panel->priv->window = g_object_ref (window)((__typeof__ (window)) (g_object_ref) (window)); |
| 358 | |
| 359 | g_signal_connect (window,g_signal_connect_data ((window), ("tab_added"), (((GCallback) (window_tab_added))), (panel), ((void*)0), (GConnectFlags) 0 ) |
| 360 | "tab_added",g_signal_connect_data ((window), ("tab_added"), (((GCallback) (window_tab_added))), (panel), ((void*)0), (GConnectFlags) 0 ) |
| 361 | G_CALLBACK (window_tab_added),g_signal_connect_data ((window), ("tab_added"), (((GCallback) (window_tab_added))), (panel), ((void*)0), (GConnectFlags) 0 ) |
| 362 | panel)g_signal_connect_data ((window), ("tab_added"), (((GCallback) (window_tab_added))), (panel), ((void*)0), (GConnectFlags) 0 ); |
| 363 | g_signal_connect (window,g_signal_connect_data ((window), ("tab_removed"), (((GCallback ) (window_tab_removed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 364 | "tab_removed",g_signal_connect_data ((window), ("tab_removed"), (((GCallback ) (window_tab_removed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 365 | G_CALLBACK (window_tab_removed),g_signal_connect_data ((window), ("tab_removed"), (((GCallback ) (window_tab_removed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 366 | panel)g_signal_connect_data ((window), ("tab_removed"), (((GCallback ) (window_tab_removed))), (panel), ((void*)0), (GConnectFlags ) 0); |
| 367 | g_signal_connect (window,g_signal_connect_data ((window), ("tabs_reordered"), (((GCallback ) (window_tabs_reordered))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 368 | "tabs_reordered",g_signal_connect_data ((window), ("tabs_reordered"), (((GCallback ) (window_tabs_reordered))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 369 | G_CALLBACK (window_tabs_reordered),g_signal_connect_data ((window), ("tabs_reordered"), (((GCallback ) (window_tabs_reordered))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 370 | panel)g_signal_connect_data ((window), ("tabs_reordered"), (((GCallback ) (window_tabs_reordered))), (panel), ((void*)0), (GConnectFlags ) 0); |
| 371 | g_signal_connect (window,g_signal_connect_data ((window), ("active_tab_changed"), (((GCallback ) (window_active_tab_changed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 372 | "active_tab_changed",g_signal_connect_data ((window), ("active_tab_changed"), (((GCallback ) (window_active_tab_changed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 373 | G_CALLBACK (window_active_tab_changed),g_signal_connect_data ((window), ("active_tab_changed"), (((GCallback ) (window_active_tab_changed))), (panel), ((void*)0), (GConnectFlags ) 0) |
| 374 | panel)g_signal_connect_data ((window), ("active_tab_changed"), (((GCallback ) (window_active_tab_changed))), (panel), ((void*)0), (GConnectFlags ) 0); |
| 375 | } |
| 376 | |
| 377 | static void |
| 378 | treeview_cursor_changed (CtkTreeView *view G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 379 | LapizDocumentsPanel *panel) |
| 380 | { |
| 381 | CtkTreeIter iter; |
| 382 | CtkTreeSelection *selection; |
| 383 | gpointer tab; |
| 384 | |
| 385 | selection = ctk_tree_view_get_selection ( |
| 386 | CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( )))))))); |
| 387 | |
| 388 | if (ctk_tree_selection_get_selected (selection, NULL((void*)0), &iter)) |
| 389 | { |
| 390 | ctk_tree_model_get (panel->priv->model, |
| 391 | &iter, |
| 392 | TAB_COLUMN, |
| 393 | &tab, |
| 394 | -1); |
| 395 | |
| 396 | if (lapiz_window_get_active_tab (panel->priv->window) != tab) |
| 397 | { |
| 398 | lapiz_window_set_active_tab (panel->priv->window, |
| 399 | LAPIZ_TAB (tab)((((LapizTab*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tab)), ((lapiz_tab_get_type()))))))); |
| 400 | } |
| 401 | } |
| 402 | } |
| 403 | |
| 404 | static void |
| 405 | lapiz_documents_panel_set_property (GObject *object, |
| 406 | guint prop_id, |
| 407 | const GValue *value, |
| 408 | GParamSpec *pspec) |
| 409 | { |
| 410 | LapizDocumentsPanel *panel = LAPIZ_DOCUMENTS_PANEL (object)((((LapizDocumentsPanel*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((object)), ((lapiz_documents_panel_get_type ())))))); |
| 411 | |
| 412 | switch (prop_id) |
| 413 | { |
| 414 | case PROP_WINDOW: |
| 415 | set_window (panel, g_value_get_object (value)); |
| 416 | break; |
| 417 | |
| 418 | default: |
| 419 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)do { GObject *_glib__object = (GObject*) ((object)); GParamSpec *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'" , "lapiz-documents-panel.c", 419, ("property"), _glib__property_id , _glib__pspec->name, g_type_name ((((((GTypeClass*) (((GTypeInstance *) (_glib__pspec))->g_class))->g_type)))), (g_type_name ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))->g_class ))->g_type)))))); } while (0); |
| 420 | break; |
| 421 | } |
| 422 | } |
| 423 | |
| 424 | static void |
| 425 | lapiz_documents_panel_get_property (GObject *object, |
| 426 | guint prop_id, |
| 427 | GValue *value, |
| 428 | GParamSpec *pspec) |
| 429 | { |
| 430 | LapizDocumentsPanel *panel = LAPIZ_DOCUMENTS_PANEL (object)((((LapizDocumentsPanel*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((object)), ((lapiz_documents_panel_get_type ())))))); |
| 431 | |
| 432 | switch (prop_id) |
| 433 | { |
| 434 | case PROP_WINDOW: |
| 435 | panel->priv = lapiz_documents_panel_get_instance_private (panel); |
| 436 | g_value_set_object (value, panel->priv->window); |
| 437 | break; |
| 438 | default: |
| 439 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)do { GObject *_glib__object = (GObject*) ((object)); GParamSpec *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'" , "lapiz-documents-panel.c", 439, ("property"), _glib__property_id , _glib__pspec->name, g_type_name ((((((GTypeClass*) (((GTypeInstance *) (_glib__pspec))->g_class))->g_type)))), (g_type_name ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))->g_class ))->g_type)))))); } while (0); |
| 440 | break; |
| 441 | } |
| 442 | } |
| 443 | |
| 444 | static void |
| 445 | lapiz_documents_panel_finalize (GObject *object) |
| 446 | { |
| 447 | /* LapizDocumentsPanel *tab = LAPIZ_DOCUMENTS_PANEL (object); */ |
| 448 | |
| 449 | /* TODO: disconnect signal with window */ |
| 450 | |
| 451 | G_OBJECT_CLASS (lapiz_documents_panel_parent_class)((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((lapiz_documents_panel_parent_class)), (((GType) ((20) << (2))))))))->finalize (object); |
| 452 | } |
| 453 | |
| 454 | static void |
| 455 | lapiz_documents_panel_dispose (GObject *object) |
| 456 | { |
| 457 | LapizDocumentsPanel *panel = LAPIZ_DOCUMENTS_PANEL (object)((((LapizDocumentsPanel*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((object)), ((lapiz_documents_panel_get_type ())))))); |
| 458 | |
| 459 | if (panel->priv->window != NULL((void*)0)) |
| 460 | { |
| 461 | g_object_unref (panel->priv->window); |
| 462 | panel->priv->window = NULL((void*)0); |
| 463 | } |
| 464 | |
| 465 | G_OBJECT_CLASS (lapiz_documents_panel_parent_class)((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((lapiz_documents_panel_parent_class)), (((GType) ((20) << (2))))))))->dispose (object); |
| 466 | } |
| 467 | |
| 468 | static void |
| 469 | lapiz_documents_panel_class_init (LapizDocumentsPanelClass *klass) |
| 470 | { |
| 471 | GObjectClass *object_class = G_OBJECT_CLASS (klass)((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((klass)), (((GType) ((20) << (2)))))))); |
| 472 | |
| 473 | object_class->finalize = lapiz_documents_panel_finalize; |
| 474 | object_class->dispose = lapiz_documents_panel_dispose; |
| 475 | object_class->get_property = lapiz_documents_panel_get_property; |
| 476 | object_class->set_property = lapiz_documents_panel_set_property; |
| 477 | |
| 478 | g_object_class_install_property (object_class, |
| 479 | PROP_WINDOW, |
| 480 | g_param_spec_object ("window", |
| 481 | "Window", |
| 482 | "The LapizWindow this LapizDocumentsPanel is associated with", |
| 483 | LAPIZ_TYPE_WINDOW(lapiz_window_get_type()), |
| 484 | G_PARAM_READWRITE | |
| 485 | G_PARAM_CONSTRUCT_ONLY | |
| 486 | G_PARAM_STATIC_STRINGS(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB ))); |
| 487 | } |
| 488 | |
| 489 | static gboolean |
| 490 | show_popup_menu (LapizDocumentsPanel *panel, |
| 491 | CdkEventButton *event) |
| 492 | { |
| 493 | CtkWidget *menu; |
| 494 | |
| 495 | menu = ctk_ui_manager_get_widget (lapiz_window_get_ui_manager (panel->priv->window), |
| 496 | "/NotebookPopup"); |
| 497 | g_return_val_if_fail (menu != NULL, FALSE)do { if ((menu != ((void*)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__)), "menu != NULL"); return ((0)); } } while (0); |
| 498 | |
| 499 | if (event != NULL((void*)0)) |
| 500 | { |
| 501 | ctk_menu_popup_at_pointer (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((menu)), ((ctk_menu_get_type ())))))), NULL((void*)0)); |
| 502 | } |
| 503 | else |
| 504 | { |
| 505 | menu_popup_at_treeview_selection (menu, panel->priv->treeview); |
| 506 | ctk_menu_shell_select_first (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((menu)), ((ctk_menu_shell_get_type ())))))), FALSE(0)); |
| 507 | } |
| 508 | |
| 509 | return TRUE(!(0)); |
| 510 | } |
| 511 | |
| 512 | static gboolean |
| 513 | panel_button_press_event (CtkTreeView *treeview, |
| 514 | CdkEventButton *event, |
| 515 | LapizDocumentsPanel *panel) |
| 516 | { |
| 517 | if ((CDK_BUTTON_PRESS == event->type) && (3 == event->button)) |
| 518 | { |
| 519 | CtkTreePath* path = NULL((void*)0); |
| 520 | |
| 521 | if (event->window == ctk_tree_view_get_bin_window (treeview)) |
| 522 | { |
| 523 | /* Change the cursor position */ |
| 524 | if (ctk_tree_view_get_path_at_pos (treeview, |
| 525 | event->x, |
| 526 | event->y, |
| 527 | &path, |
| 528 | NULL((void*)0), |
| 529 | NULL((void*)0), |
| 530 | NULL((void*)0))) |
| 531 | { |
| 532 | |
| 533 | ctk_tree_view_set_cursor (treeview, |
| 534 | path, |
| 535 | NULL((void*)0), |
| 536 | FALSE(0)); |
| 537 | |
| 538 | ctk_tree_path_free (path); |
| 539 | |
| 540 | /* A row exists at mouse position */ |
| 541 | return show_popup_menu (panel, event); |
| 542 | } |
| 543 | } |
| 544 | } |
| 545 | |
| 546 | return FALSE(0); |
| 547 | } |
| 548 | |
| 549 | static gboolean |
| 550 | panel_popup_menu (CtkWidget *treeview, |
| 551 | LapizDocumentsPanel *panel) |
| 552 | { |
| 553 | /* Only respond if the treeview is the actual focus */ |
| 554 | if (ctk_window_get_focus (CTK_WINDOW (panel->priv->window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->window)), ((ctk_window_get_type ()))) )))) == treeview) |
| 555 | { |
| 556 | return show_popup_menu (panel, NULL((void*)0)); |
| 557 | } |
| 558 | |
| 559 | return FALSE(0); |
| 560 | } |
| 561 | |
| 562 | static gboolean |
| 563 | treeview_query_tooltip (CtkWidget *widget, |
| 564 | gint x, |
| 565 | gint y, |
| 566 | gboolean keyboard_tip, |
| 567 | CtkTooltip *tooltip, |
| 568 | gpointer data G_GNUC_UNUSED__attribute__ ((__unused__))) |
| 569 | { |
| 570 | CtkTreeIter iter; |
| 571 | CtkTreeView *tree_view = CTK_TREE_VIEW (widget)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((widget)), ((ctk_tree_view_get_type ())))))); |
| 572 | CtkTreeModel *model = ctk_tree_view_get_model (tree_view); |
| 573 | CtkTreePath *path = NULL((void*)0); |
| 574 | gpointer *tab; |
| 575 | gchar *tip; |
| 576 | |
| 577 | if (keyboard_tip) |
| 578 | { |
| 579 | ctk_tree_view_get_cursor (tree_view, &path, NULL((void*)0)); |
| 580 | |
| 581 | if (path == NULL((void*)0)) |
| 582 | { |
| 583 | return FALSE(0); |
| 584 | } |
| 585 | } |
| 586 | else |
| 587 | { |
| 588 | gint bin_x, bin_y; |
| 589 | |
| 590 | ctk_tree_view_convert_widget_to_bin_window_coords (tree_view, |
| 591 | x, y, |
| 592 | &bin_x, &bin_y); |
| 593 | |
| 594 | if (!ctk_tree_view_get_path_at_pos (tree_view, |
| 595 | bin_x, bin_y, |
| 596 | &path, |
| 597 | NULL((void*)0), NULL((void*)0), NULL((void*)0))) |
| 598 | { |
| 599 | return FALSE(0); |
| 600 | } |
| 601 | } |
| 602 | |
| 603 | ctk_tree_model_get_iter (model, &iter, path); |
| 604 | ctk_tree_model_get (model, |
| 605 | &iter, |
| 606 | TAB_COLUMN, |
| 607 | &tab, |
| 608 | -1); |
| 609 | |
| 610 | tip = _lapiz_tab_get_tooltips (LAPIZ_TAB (tab)((((LapizTab*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tab)), ((lapiz_tab_get_type()))))))); |
Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption | |
| 611 | ctk_tooltip_set_markup (tooltip, tip); |
| 612 | |
| 613 | g_free (tip); |
| 614 | ctk_tree_path_free (path); |
| 615 | |
| 616 | return TRUE(!(0)); |
| 617 | } |
| 618 | |
| 619 | static void |
| 620 | treeview_row_inserted (CtkTreeModel *tree_model G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 621 | CtkTreePath *path, |
| 622 | CtkTreeIter *iter G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 623 | LapizDocumentsPanel *panel) |
| 624 | { |
| 625 | LapizTab *tab; |
| 626 | gint *indeces; |
| 627 | CtkWidget *nb; |
| 628 | gint old_position; |
| 629 | gint new_position; |
| 630 | |
| 631 | if (panel->priv->adding_tab) |
| 632 | return; |
| 633 | |
| 634 | tab = lapiz_window_get_active_tab (panel->priv->window); |
| 635 | g_return_if_fail (tab != NULL)do { if ((tab != ((void*)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__)), "tab != NULL"); return ; } } while (0); |
| 636 | |
| 637 | panel->priv->is_reodering = TRUE(!(0)); |
| 638 | |
| 639 | indeces = ctk_tree_path_get_indices (path); |
| 640 | |
| 641 | /* g_debug ("New Index: %d (path: %s)", indeces[0], ctk_tree_path_to_string (path));*/ |
| 642 | |
| 643 | nb = _lapiz_window_get_notebook (panel->priv->window); |
| 644 | |
| 645 | new_position = indeces[0]; |
| 646 | old_position = ctk_notebook_page_num (CTK_NOTEBOOK (nb)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((nb)), ((ctk_notebook_get_type ())))))), |
| 647 | CTK_WIDGET (tab)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tab)), ((ctk_widget_get_type ()))))))); |
| 648 | if (new_position > old_position) |
| 649 | new_position = MAX (0, new_position - 1)(((0) > (new_position - 1)) ? (0) : (new_position - 1)); |
| 650 | |
| 651 | lapiz_notebook_reorder_tab (LAPIZ_NOTEBOOK (nb)((((LapizNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((nb)), ((lapiz_notebook_get_type ())))))), |
| 652 | tab, |
| 653 | new_position); |
| 654 | |
| 655 | panel->priv->is_reodering = FALSE(0); |
| 656 | } |
| 657 | |
| 658 | static void |
| 659 | lapiz_documents_panel_init (LapizDocumentsPanel *panel) |
| 660 | { |
| 661 | CtkWidget *sw; |
| 662 | CtkTreeViewColumn *column; |
| 663 | CtkCellRenderer *cell; |
| 664 | CtkTreeSelection *selection; |
| 665 | |
| 666 | panel->priv = lapiz_documents_panel_get_instance_private (panel); |
| 667 | |
| 668 | panel->priv->adding_tab = FALSE(0); |
| 669 | panel->priv->is_reodering = FALSE(0); |
| 670 | |
| 671 | ctk_orientable_set_orientation (CTK_ORIENTABLE (panel)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel)), ((ctk_orientable_get_type ())))))), |
| 672 | CTK_ORIENTATION_VERTICAL); |
| 673 | |
| 674 | /* Create the scrolled window */ |
| 675 | sw = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0)); |
| 676 | g_return_if_fail (sw != NULL)do { if ((sw != ((void*)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__)), "sw != NULL"); return ; } } while (0); |
| 677 | |
| 678 | ctk_scrolled_window_set_policy (CTK_SCROLLED_WINDOW (sw)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((sw)), ((ctk_scrolled_window_get_type ()))) ))), |
| 679 | CTK_POLICY_AUTOMATIC, |
| 680 | CTK_POLICY_AUTOMATIC); |
| 681 | ctk_scrolled_window_set_shadow_type (CTK_SCROLLED_WINDOW (sw)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((sw)), ((ctk_scrolled_window_get_type ()))) ))), |
| 682 | CTK_SHADOW_IN); |
| 683 | ctk_widget_show (sw); |
| 684 | ctk_box_pack_start (CTK_BOX (panel)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel)), ((ctk_box_get_type ())))))), sw, TRUE(!(0)), TRUE(!(0)), 0); |
| 685 | |
| 686 | /* Create the empty model */ |
| 687 | panel->priv->model = CTK_TREE_MODEL (ctk_list_store_new (N_COLUMNS,((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_list_store_new (N_COLUMNS, (gdk_pixbuf_get_type ()), ((GType) ((16) << (2))), ((GType) ((17) << (2))) ))), ((ctk_tree_model_get_type ())))))) |
| 688 | GDK_TYPE_PIXBUF,((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_list_store_new (N_COLUMNS, (gdk_pixbuf_get_type ()), ((GType) ((16) << (2))), ((GType) ((17) << (2))) ))), ((ctk_tree_model_get_type ())))))) |
| 689 | G_TYPE_STRING,((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_list_store_new (N_COLUMNS, (gdk_pixbuf_get_type ()), ((GType) ((16) << (2))), ((GType) ((17) << (2))) ))), ((ctk_tree_model_get_type ())))))) |
| 690 | G_TYPE_POINTER))((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_list_store_new (N_COLUMNS, (gdk_pixbuf_get_type ()), ((GType) ((16) << (2))), ((GType) ((17) << (2))) ))), ((ctk_tree_model_get_type ())))))); |
| 691 | |
| 692 | /* Create the treeview */ |
| 693 | panel->priv->treeview = ctk_tree_view_new_with_model (panel->priv->model); |
| 694 | g_object_unref (G_OBJECT (panel->priv->model)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->model)), (((GType) ((20) << (2) )))))))); |
| 695 | ctk_container_add (CTK_CONTAINER (sw)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((sw)), ((ctk_container_get_type ())))))), panel->priv->treeview); |
| 696 | ctk_tree_view_set_headers_visible (CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( ))))))), FALSE(0)); |
| 697 | ctk_tree_view_set_reorderable (CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( ))))))), TRUE(!(0))); |
| 698 | |
| 699 | g_object_set (panel->priv->treeview, "has-tooltip", TRUE(!(0)), NULL((void*)0)); |
| 700 | |
| 701 | ctk_widget_show (panel->priv->treeview); |
| 702 | |
| 703 | column = ctk_tree_view_column_new (); |
| 704 | ctk_tree_view_column_set_title (column, _("Documents")gettext ("Documents")); |
| 705 | |
| 706 | cell = ctk_cell_renderer_pixbuf_new (); |
| 707 | ctk_tree_view_column_pack_start (column, cell, FALSE(0)); |
| 708 | ctk_tree_view_column_add_attribute (column, cell, "pixbuf", PIXBUF_COLUMN); |
| 709 | cell = ctk_cell_renderer_text_new (); |
| 710 | ctk_tree_view_column_pack_start (column, cell, TRUE(!(0))); |
| 711 | ctk_tree_view_column_add_attribute (column, cell, "markup", NAME_COLUMN); |
| 712 | |
| 713 | ctk_tree_view_append_column (CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( ))))))), |
| 714 | column); |
| 715 | |
| 716 | selection = ctk_tree_view_get_selection ( |
| 717 | CTK_TREE_VIEW (panel->priv->treeview)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((panel->priv->treeview)), ((ctk_tree_view_get_type ( )))))))); |
| 718 | |
| 719 | ctk_tree_selection_set_mode (selection, CTK_SELECTION_SINGLE); |
| 720 | |
| 721 | g_signal_connect (panel->priv->treeview,g_signal_connect_data ((panel->priv->treeview), ("cursor_changed" ), (((GCallback) (treeview_cursor_changed))), (panel), ((void *)0), (GConnectFlags) 0) |
| 722 | "cursor_changed",g_signal_connect_data ((panel->priv->treeview), ("cursor_changed" ), (((GCallback) (treeview_cursor_changed))), (panel), ((void *)0), (GConnectFlags) 0) |
| 723 | G_CALLBACK (treeview_cursor_changed),g_signal_connect_data ((panel->priv->treeview), ("cursor_changed" ), (((GCallback) (treeview_cursor_changed))), (panel), ((void *)0), (GConnectFlags) 0) |
| 724 | panel)g_signal_connect_data ((panel->priv->treeview), ("cursor_changed" ), (((GCallback) (treeview_cursor_changed))), (panel), ((void *)0), (GConnectFlags) 0); |
| 725 | g_signal_connect (panel->priv->treeview,g_signal_connect_data ((panel->priv->treeview), ("button-press-event" ), (((GCallback) (panel_button_press_event))), (panel), ((void *)0), (GConnectFlags) 0) |
| 726 | "button-press-event",g_signal_connect_data ((panel->priv->treeview), ("button-press-event" ), (((GCallback) (panel_button_press_event))), (panel), ((void *)0), (GConnectFlags) 0) |
| 727 | G_CALLBACK (panel_button_press_event),g_signal_connect_data ((panel->priv->treeview), ("button-press-event" ), (((GCallback) (panel_button_press_event))), (panel), ((void *)0), (GConnectFlags) 0) |
| 728 | panel)g_signal_connect_data ((panel->priv->treeview), ("button-press-event" ), (((GCallback) (panel_button_press_event))), (panel), ((void *)0), (GConnectFlags) 0); |
| 729 | g_signal_connect (panel->priv->treeview,g_signal_connect_data ((panel->priv->treeview), ("popup-menu" ), (((GCallback) (panel_popup_menu))), (panel), ((void*)0), ( GConnectFlags) 0) |
| 730 | "popup-menu",g_signal_connect_data ((panel->priv->treeview), ("popup-menu" ), (((GCallback) (panel_popup_menu))), (panel), ((void*)0), ( GConnectFlags) 0) |
| 731 | G_CALLBACK (panel_popup_menu),g_signal_connect_data ((panel->priv->treeview), ("popup-menu" ), (((GCallback) (panel_popup_menu))), (panel), ((void*)0), ( GConnectFlags) 0) |
| 732 | panel)g_signal_connect_data ((panel->priv->treeview), ("popup-menu" ), (((GCallback) (panel_popup_menu))), (panel), ((void*)0), ( GConnectFlags) 0); |
| 733 | g_signal_connect (panel->priv->treeview,g_signal_connect_data ((panel->priv->treeview), ("query-tooltip" ), (((GCallback) (treeview_query_tooltip))), (((void*)0)), (( void*)0), (GConnectFlags) 0) |
| 734 | "query-tooltip",g_signal_connect_data ((panel->priv->treeview), ("query-tooltip" ), (((GCallback) (treeview_query_tooltip))), (((void*)0)), (( void*)0), (GConnectFlags) 0) |
| 735 | G_CALLBACK (treeview_query_tooltip),g_signal_connect_data ((panel->priv->treeview), ("query-tooltip" ), (((GCallback) (treeview_query_tooltip))), (((void*)0)), (( void*)0), (GConnectFlags) 0) |
| 736 | NULL)g_signal_connect_data ((panel->priv->treeview), ("query-tooltip" ), (((GCallback) (treeview_query_tooltip))), (((void*)0)), (( void*)0), (GConnectFlags) 0); |
| 737 | |
| 738 | g_signal_connect (panel->priv->model,g_signal_connect_data ((panel->priv->model), ("row-inserted" ), (((GCallback) (treeview_row_inserted))), (panel), ((void*) 0), (GConnectFlags) 0) |
| 739 | "row-inserted",g_signal_connect_data ((panel->priv->model), ("row-inserted" ), (((GCallback) (treeview_row_inserted))), (panel), ((void*) 0), (GConnectFlags) 0) |
| 740 | G_CALLBACK (treeview_row_inserted),g_signal_connect_data ((panel->priv->model), ("row-inserted" ), (((GCallback) (treeview_row_inserted))), (panel), ((void*) 0), (GConnectFlags) 0) |
| 741 | panel)g_signal_connect_data ((panel->priv->model), ("row-inserted" ), (((GCallback) (treeview_row_inserted))), (panel), ((void*) 0), (GConnectFlags) 0); |
| 742 | } |
| 743 | |
| 744 | CtkWidget * |
| 745 | lapiz_documents_panel_new (LapizWindow *window) |
| 746 | { |
| 747 | g_return_val_if_fail (LAPIZ_IS_WINDOW (window), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((window)); GType __t = ((lapiz_window_get_type())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char* ) (__func__)), "LAPIZ_IS_WINDOW (window)"); return (((void*)0 )); } } while (0); |
| 748 | |
| 749 | return CTK_WIDGET (g_object_new (LAPIZ_TYPE_DOCUMENTS_PANEL,((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_new ((lapiz_documents_panel_get_type()), "window" , window, ((void*)0)))), ((ctk_widget_get_type ())))))) |
| 750 | "window", window,((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_new ((lapiz_documents_panel_get_type()), "window" , window, ((void*)0)))), ((ctk_widget_get_type ())))))) |
| 751 | NULL))((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_new ((lapiz_documents_panel_get_type()), "window" , window, ((void*)0)))), ((ctk_widget_get_type ())))))); |
| 752 | } |