source: trunk/gtk/util.h @ 11599

Last change on this file since 11599 was 11599, checked in by charles, 11 years ago

(trunk) Join the 21st century and use only 1 space at the end sentences. This commit is nearly as important as the semi-annual ones that remove trailing spaces from the ends of lines of code... :)

  • Property svn:keywords set to Date Rev Author Id
File size: 5.9 KB
Line 
1/*
2 * This file Copyright (C) 2008-2010 Mnemosyne LLC
3 *
4 * This file is licensed by the GPL version 2. Works owned by the
5 * Transmission project are granted a special exemption to clause 2(b)
6 * so that the bulk of its code can remain under the MIT license.
7 * This exemption does not extend to derived works not owned by
8 * the Transmission project.
9 *
10 * $Id: util.h 11599 2010-12-27 19:18:17Z charles $
11 */
12
13#ifndef GTR_UTIL_H
14#define GTR_UTIL_H
15
16#include <sys/types.h>
17#include <glib.h>
18#include <gtk/gtk.h>
19
20#include <libtransmission/transmission.h>
21
22extern const int mem_K;
23extern const char * mem_K_str;
24extern const char * mem_M_str;
25extern const char * mem_G_str;
26extern const char * mem_T_str;
27
28extern const int disk_K;
29extern const char * disk_K_str;
30extern const char * disk_M_str;
31extern const char * disk_G_str;
32extern const char * disk_T_str;
33
34extern const int speed_K;
35extern const char * speed_K_str;
36extern const char * speed_M_str;
37extern const char * speed_G_str;
38extern const char * speed_T_str;
39
40/* portability wrapper around g_warn_if_fail() for older versions of glib */
41#ifdef g_warn_if_fail
42 #define gtr_warn_if_fail(expr) g_warn_if_fail(expr)
43#else
44 #define gtr_warn_if_fail(expr) do { if G_LIKELY (expr) ; else \
45                                       g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, "%s:%d func(): %s: invariant failed: %s", \
46                                              __FILE__, __LINE__, G_STRFUNC, #expr ); } while(0)
47#endif
48
49/* macro to shut up "unused parameter" warnings */
50#ifndef UNUSED
51 #define UNUSED G_GNUC_UNUSED
52#endif
53
54enum
55{
56    GTR_UNICODE_UP,
57    GTR_UNICODE_DOWN,
58    GTR_UNICODE_INF,
59    GTR_UNICODE_BULLET
60};
61const char * gtr_get_unicode_string( int );
62
63/* return a percent formatted string of either x.xx, xx.x or xxx */
64char* tr_strlpercent( char * buf, double x, size_t buflen );
65
66/* return a human-readable string for the size given in bytes. */
67char* tr_strlsize( char * buf, guint64  size, size_t buflen );
68
69/* return a human-readable string for the given ratio. */
70char* tr_strlratio( char * buf, double ratio, size_t buflen );
71
72/* return a human-readable string for the time given in seconds. */
73char* tr_strltime( char * buf, int secs, size_t buflen );
74
75/* similar to asctime, but is utf8-clean */
76char* gtr_localtime( time_t time );
77
78
79int gtr_compare_double( const double a, const double b, int decimal_places );
80
81
82/***
83****
84***/
85
86/* http://www.legaltorrents.com/some/announce/url --> legaltorrents.com */
87char* gtr_get_host_from_url( const char * url );
88
89gboolean gtr_is_supported_url( const char * str );
90
91gboolean gtr_is_magnet_link( const char * str );
92
93gboolean gtr_is_hex_hashcode( const char * str );
94
95/***
96****
97***/
98
99typedef enum
100{
101    GTR_LOCKFILE_SUCCESS = 0,
102    GTR_LOCKFILE_EOPEN,
103    GTR_LOCKFILE_ELOCK
104}
105gtr_lockfile_state_t;
106
107gtr_lockfile_state_t gtr_lockfile( const char * filename );
108
109/***
110****
111***/
112
113void        gtr_open_uri( const char * uri );
114
115void        gtr_open_file( const char * path );
116
117gboolean    gtr_dbus_add_torrent( const char * filename );
118
119gboolean    gtr_dbus_present_window( void );
120
121const char* gtr_get_help_uri( void );
122
123/***
124****
125***/
126
127/* backwards-compatible wrapper around g_mkdir_with_parents() */
128int gtr_mkdir_with_parents( const char *name, int mode );
129
130/* backwards-compatible wrapper around gdk_threads_add_timeout_seconds() */
131guint gtr_timeout_add_seconds( guint seconds, GSourceFunc func, gpointer data );
132
133/* backwards-compatible wrapper around gdk_threads_add_idle() */
134guint gtr_idle_add( GSourceFunc  func, gpointer data );
135
136/* backwards-compatible wrapper around gtk_widget_set_tooltip_text() */
137void gtr_widget_set_tooltip_text( GtkWidget * w, const char * tip );
138
139/* backwards-compatible wrapper around gtk_widget_get_window() */
140GdkWindow* gtr_widget_get_window( GtkWidget * w );
141
142/* backwards-compatible wrapper around gtk_widget_get_realized() */
143gboolean gtr_widget_get_realized( GtkWidget * w );
144
145/* backwards-compatible wrapper around gtk_widget_set_visible() */
146void gtr_widget_set_visible( GtkWidget *, gboolean );
147
148/* backwards-compatible wrapper around gtk_cell_renderer_get_padding() */
149void gtr_cell_renderer_get_padding( GtkCellRenderer *, gint * xpad, gint * ypad );
150
151/* backwards-compatible wrapper around g_object_ref_sink() */
152gpointer gtr_object_ref_sink( gpointer object );
153
154/* backwards-compatible wrapper around g_strcmp0() */
155int gtr_strcmp0( const char * str1, const char * str2 );
156
157/* backwards-compatible wrapper around g_dngettext() */
158const gchar* gtr_ngettext( const gchar*, const gchar*, gulong );
159
160void gtr_dialog_set_content( GtkDialog * dialog, GtkWidget * content );
161
162/***
163****
164***/
165
166GtkWidget * gtr_priority_combo_new( void );
167#define gtr_priority_combo_get_value(w)     gtr_combo_box_get_active_enum(w)
168#define gtr_priority_combo_set_value(w,val) gtr_combo_box_set_active_enum(w,val)
169
170GtkWidget * gtr_combo_box_new_enum        ( const char * text_1, ... );
171int         gtr_combo_box_get_active_enum ( GtkComboBox * );
172void        gtr_combo_box_set_active_enum ( GtkComboBox *, int value );
173
174/***
175****
176***/
177
178void gtr_unrecognized_url_dialog( GtkWidget * parent, const char * url );
179
180void gtr_http_failure_dialog( GtkWidget * parent, const char * url, long response_code );
181
182void gtr_add_torrent_error_dialog( GtkWidget  * window_or_child,
183                                   int          err,
184                                   const char * filename );
185
186/* pop up the context menu if a user right-clicks.
187   if the row they right-click on isn't selected, select it. */
188gboolean on_tree_view_button_pressed( GtkWidget      * view,
189                                      GdkEventButton * event,
190                                      gpointer         unused );
191
192/* if the click didn't specify a row, clear the selection */
193gboolean on_tree_view_button_released( GtkWidget      * view,
194                                       GdkEventButton * event,
195                                       gpointer         unused );
196
197
198/* move a file to the trashcan if GIO is available; otherwise, delete it */
199int gtr_file_trash_or_remove( const char * filename );
200
201#endif /* GTR_UTIL_H */
Note: See TracBrowser for help on using the repository browser.