detailwin: Allow to disable drawing the memory map
[memprof.git] / src / gui.h
blobfcab3920fc4a6d961ca3c50f4bddff7b86581006
1 /* -*- mode: C; c-file-style: "linux" -*- */
3 /* MemProf -- memory profiler and leak detector
4 * Copyright 1999, 2000, 2001, Red Hat, Inc.
5 * Copyright 2002, Kristian Rietveld
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.
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.
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 /*====*/
23 #ifndef GUI_H
25 #include "leakdetect.h"
26 #include "profile.h"
27 #include "process.h"
28 #include "server.h"
30 #define MEMSTATS 4096
32 typedef struct _ProcessWindow ProcessWindow;
34 struct _ProcessWindow {
35 MPProcess *process;
36 Profile *profile;
37 GSList *leaks;
39 GtkWidget *main_window;
40 GtkWidget *main_notebook;
41 GtkWidget *n_allocations_label;
42 GtkWidget *profile_status_label;
43 GtkWidget *bytes_per_label;
44 GtkWidget *total_bytes_label;
46 GtkWidget *profile_func_tree_view;
47 GtkWidget *profile_caller_tree_view;
48 GtkWidget *profile_descendants_tree_view;
50 GtkWidget *leak_block_tree_view;
51 GtkWidget *leak_stack_tree_view;
53 GtkWidget *usage_max_label;
54 GtkWidget *usage_area;
56 guint usage_max;
57 guint usage_high;
58 guint usage_leaked;
60 guint status_update_timeout;
62 GtkWidget *time_graph;
63 GtkWidget *mem_map;
64 guint memstats[MEMSTATS][2];
65 gboolean draw_memmap;
68 void tree_window_show (void);
69 void tree_window_add (ProcessWindow *window);
70 void tree_window_remove (ProcessWindow *window);
72 MPProcess * process_window_get_process (ProcessWindow *pwin);
73 gboolean process_window_visible (ProcessWindow *pwin);
74 MPProcess * process_window_get_process (ProcessWindow *pwin);
75 void process_window_show (ProcessWindow *pwin);
76 void process_window_hide (ProcessWindow *pwin);
78 void process_window_maybe_kill (ProcessWindow *pwin);
79 void process_window_maybe_detach (ProcessWindow *pwin);
81 gboolean hide_and_check_quit (GtkWidget *window);
82 void check_quit (void);
84 gboolean time_graph_expose_event(GtkWidget *widget, GdkEventExpose *event, ProcessWindow *pwin);
85 gboolean mem_map_expose_event(GtkWidget *widget, GdkEventExpose *event, ProcessWindow *pwin);
86 void dw_update(ProcessWindow *pwin);
88 #endif