| 71 size_t current_buffer_size; /* This gradually increases for fast |
71 size_t current_buffer_size; /* This gradually increases for fast |
| 72 network connections. */ |
72 network connections. */ |
| 73 |
73 |
| 74 PurpleXferStatus status; /* File Transfer's status. */ |
74 PurpleXferStatus status; /* File Transfer's status. */ |
| 75 |
75 |
| 76 gpointer ui_data; /* UI-specific data */ |
|
| 77 PurpleXferUiOps *ui_ops; /* UI-specific operations. */ |
76 PurpleXferUiOps *ui_ops; /* UI-specific operations. */ |
| 78 |
77 |
| 79 /* |
78 /* |
| 80 * Used to moderate the file transfer when either the read/write ui_ops are |
79 * Used to moderate the file transfer when either the read/write ui_ops are |
| 81 * set or fd is not set. In those cases, the UI/protocol call the respective |
80 * set or fd is not set. In those cases, the UI/protocol call the respective |
| 1927 g_return_if_fail(PURPLE_IS_XFER(xfer)); |
1925 g_return_if_fail(PURPLE_IS_XFER(xfer)); |
| 1928 |
1926 |
| 1929 g_signal_emit(xfer, signals[SIG_ADD_THUMBNAIL], 0, formats, NULL); |
1927 g_signal_emit(xfer, signals[SIG_ADD_THUMBNAIL], 0, formats, NULL); |
| 1930 } |
1928 } |
| 1931 |
1929 |
| 1932 void purple_xfer_set_ui_data(PurpleXfer *xfer, gpointer ui_data) |
|
| 1933 { |
|
| 1934 PurpleXferPrivate *priv = NULL; |
|
| 1935 |
|
| 1936 g_return_if_fail(PURPLE_IS_XFER(xfer)); |
|
| 1937 |
|
| 1938 priv = purple_xfer_get_instance_private(xfer); |
|
| 1939 |
|
| 1940 priv->ui_data = ui_data; |
|
| 1941 |
|
| 1942 g_object_notify_by_pspec(G_OBJECT(xfer), properties[PROP_UI_DATA]); |
|
| 1943 } |
|
| 1944 |
|
| 1945 gpointer purple_xfer_get_ui_data(PurpleXfer *xfer) |
|
| 1946 { |
|
| 1947 PurpleXferPrivate *priv = NULL; |
|
| 1948 |
|
| 1949 g_return_val_if_fail(PURPLE_IS_XFER(xfer), NULL); |
|
| 1950 |
|
| 1951 priv = purple_xfer_get_instance_private(xfer); |
|
| 1952 |
|
| 1953 return priv->ui_data; |
|
| 1954 } |
|
| 1955 |
|
| 1956 /************************************************************************** |
1930 /************************************************************************** |
| 1957 * GObject code |
1931 * GObject code |
| 1958 **************************************************************************/ |
1932 **************************************************************************/ |
| 1959 static void |
1933 static void |
| 1960 purple_xfer_set_property(GObject *obj, guint param_id, const GValue *value, |
1934 purple_xfer_set_property(GObject *obj, guint param_id, const GValue *value, |
| 1998 purple_xfer_set_bytes_sent(xfer, g_value_get_int64(value)); |
1972 purple_xfer_set_bytes_sent(xfer, g_value_get_int64(value)); |
| 1999 break; |
1973 break; |
| 2000 case PROP_STATUS: |
1974 case PROP_STATUS: |
| 2001 purple_xfer_set_status(xfer, g_value_get_enum(value)); |
1975 purple_xfer_set_status(xfer, g_value_get_enum(value)); |
| 2002 break; |
1976 break; |
| 2003 case PROP_UI_DATA: |
|
| 2004 purple_xfer_set_ui_data(xfer, g_value_get_pointer(value)); |
|
| 2005 break; |
|
| 2006 default: |
1977 default: |
| 2007 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
1978 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
| 2008 break; |
1979 break; |
| 2009 } |
1980 } |
| 2010 } |
1981 } |
| 2064 case PROP_STATUS: |
2035 case PROP_STATUS: |
| 2065 g_value_set_enum(value, purple_xfer_get_status(xfer)); |
2036 g_value_set_enum(value, purple_xfer_get_status(xfer)); |
| 2066 break; |
2037 break; |
| 2067 case PROP_PROGRESS: |
2038 case PROP_PROGRESS: |
| 2068 g_value_set_double(value, purple_xfer_get_progress(xfer)); |
2039 g_value_set_double(value, purple_xfer_get_progress(xfer)); |
| 2069 break; |
|
| 2070 case PROP_UI_DATA: |
|
| 2071 g_value_set_pointer(value, purple_xfer_get_ui_data(xfer)); |
|
| 2072 break; |
2040 break; |
| 2073 default: |
2041 default: |
| 2074 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
2042 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
| 2075 break; |
2043 break; |
| 2076 } |
2044 } |
| 2246 |
2214 |
| 2247 properties[PROP_PROGRESS] = g_param_spec_double( |
2215 properties[PROP_PROGRESS] = g_param_spec_double( |
| 2248 "progress", "Progress", |
2216 "progress", "Progress", |
| 2249 "The current progress of the file transfer.", -1.0, 1.0, -1.0, |
2217 "The current progress of the file transfer.", -1.0, 1.0, -1.0, |
| 2250 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
2218 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
| 2251 |
|
| 2252 properties[PROP_UI_DATA] = g_param_spec_pointer("ui-data", "UI Data", |
|
| 2253 "The UI specific data for this xfer", |
|
| 2254 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
| 2255 |
2219 |
| 2256 g_object_class_install_properties(obj_class, PROP_LAST, properties); |
2220 g_object_class_install_properties(obj_class, PROP_LAST, properties); |
| 2257 |
2221 |
| 2258 /* Signals */ |
2222 /* Signals */ |
| 2259 |
2223 |