Main Page | Modules | File List

mbtray.h

00001 /* libmb 00002 * Copyright (C) 2002 Matthew Allum 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the 00016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef _MB_TRAY_H_ 00021 #define _MB_TRAY_H_ 00022 00023 #include <stdio.h> 00024 #include <stdlib.h> 00025 #include <sys/types.h> 00026 #include <unistd.h> 00027 #include <X11/Xlib.h> 00028 #include <X11/Xutil.h> 00029 #include <X11/Xatom.h> 00030 #include <X11/Xmd.h> 00031 00032 #include "libmb/mb.h" 00033 00034 #ifdef __cplusplus 00035 extern "C" { 00036 #endif 00037 00114 typedef struct MBTrayApp MBTrayApp; 00115 00116 /* TOGO ? */ 00117 typedef void (*MBTrayBackgroundCB)( void *user_data ) ; 00118 00125 typedef void (*MBTrayAppResizeCB)( MBTrayApp *mb, int width, int height ) ; 00126 00139 typedef void (*MBTrayAppPaintCB)( MBTrayApp *mb, Drawable drawable ) ; 00140 00150 typedef void (*MBTrayAppContextCB)( MBTrayApp *mb ) ; 00151 00157 typedef void (*MBTrayAppButtonEventCB)( MBTrayApp *mb_tray_app, 00158 int x, 00159 int y, 00160 Bool is_release ) ; 00161 00168 typedef void (*MBTrayAppXEventCB)( MBTrayApp *mb_tray_app, XEvent *event ) ; 00169 00175 typedef void (*MBTrayAppThemeChangeCB)( MBTrayApp *mb_tray_app, char *theme_name ) ; 00176 00182 typedef void (*MBTrayAppPollCB)( MBTrayApp *mb_tray_app) ; 00183 00184 00216 MBTrayApp* 00217 mb_tray_app_new (unsigned char *app_name, 00218 MBTrayAppResizeCB resize_cb, 00219 MBTrayAppPaintCB paint_cb, 00220 int *argc, 00221 char ***argv); 00222 00238 MBTrayApp* 00239 mb_tray_app_new_with_display ( unsigned char *app_name, 00240 MBTrayAppResizeCB resize_cb, 00241 MBTrayAppPaintCB paint_cb, 00242 int *argc, 00243 char ***argv, 00244 Display *display); 00245 00253 void 00254 mb_tray_app_set_xevent_callback (MBTrayApp *mb_tray_app, 00255 MBTrayAppXEventCB xevent_cb ); 00256 00263 void 00264 mb_tray_app_set_button_callback (MBTrayApp *mb_tray_app, 00265 MBTrayAppButtonEventCB button_cb ); 00266 00273 void 00274 mb_tray_app_set_theme_change_callback (MBTrayApp *mb_tray_app, 00275 MBTrayAppThemeChangeCB theme_cb ); 00276 00284 void 00285 mb_tray_app_set_timeout_callback (MBTrayApp *mb_tray_app, 00286 MBTrayAppPollCB poll_cb, 00287 struct timeval *tv); 00288 00295 void 00296 mb_tray_app_set_resize_callback (MBTrayApp *mb_tray_app, 00297 MBTrayAppResizeCB resize_cb ); 00298 00305 void 00306 mb_tray_app_set_paint_callback (MBTrayApp *mb_tray_app, 00307 MBTrayAppPaintCB paint_cb ); 00308 00315 void 00316 mb_tray_app_set_context_callback (MBTrayApp *mb_tray_app, 00317 MBTrayAppContextCB context_cb ); 00318 00331 void 00332 mb_tray_app_request_size (MBTrayApp *mb_tray_app, 00333 int width, 00334 int height ); 00335 00347 void 00348 mb_tray_app_request_offset (MBTrayApp *mb_tray_app, 00349 int offset); 00350 00351 00352 void /* XXX needed ? */ 00353 mb_tray_app_set_poll_timeout (MBTrayApp *mb_tray_app, 00354 struct timeval *tv ); 00355 00361 void 00362 mb_tray_app_repaint (MBTrayApp *mb_tray_app); 00363 00371 void 00372 mb_tray_app_tray_send_message (MBTrayApp *mb_tray_app, 00373 unsigned char *msg, 00374 int timeout); 00375 00382 void 00383 mb_tray_app_set_name (MBTrayApp *mb_tray_app, 00384 unsigned char *name); 00385 00392 void 00393 mb_tray_app_set_context_info (MBTrayApp *mb_tray_app, 00394 unsigned char *info); 00395 00403 void 00404 mb_tray_app_set_icon(MBTrayApp *mb_tray_app, 00405 MBPixbuf *pixbuf, 00406 MBPixbufImage *image); 00407 00416 void 00417 mb_tray_app_set_session ( MBTrayApp *mb_tray_app, 00418 Bool val ); 00419 00426 Bool 00427 mb_tray_app_get_session ( MBTrayApp *mb ); 00428 00437 Bool 00438 mb_tray_app_get_absolute_coords (MBTrayApp *mb_tray_app, 00439 int *x, 00440 int *y ); 00441 00448 void 00449 mb_tray_app_set_user_data (MBTrayApp *mb_tray_app, 00450 void *data ); 00451 00458 void* 00459 mb_tray_app_get_user_data (MBTrayApp *mb_tray_app); 00460 00461 00462 Bool 00463 mb_tray_app_tray_is_vertical (MBTrayApp *mb_tray_app ); 00464 00472 MBPixbufImage * 00473 mb_tray_app_get_background (MBTrayApp *mb_tray_app, 00474 MBPixbuf *pixbuf); 00475 00482 char * 00483 mb_tray_app_get_theme_name (MBTrayApp *mb_tray_app); 00484 00491 long 00492 mb_tray_app_get_xevent_mask (MBTrayApp *mb_tray_app ); 00493 00501 void 00502 mb_tray_app_set_xevent_mask (MBTrayApp *mb_tray_app, long mask); 00503 00504 00511 Display* 00512 mb_tray_app_xdisplay (MBTrayApp *mb_tray_app); 00513 00520 int 00521 mb_tray_app_xscreen (MBTrayApp *mb_tray_app); 00522 00529 Window 00530 mb_tray_app_xrootwin(MBTrayApp *mb_tray_app); 00531 00538 Window 00539 mb_tray_app_xwin (MBTrayApp *mb_tray_app); 00540 00547 int 00548 mb_tray_app_width (MBTrayApp *mb_tray_app); 00549 00556 int 00557 mb_tray_app_height (MBTrayApp *mb_tray_app); 00558 00565 int 00566 mb_tray_app_offset ( MBTrayApp *mb_tray_app ) ; 00567 00575 void 00576 mb_tray_app_main_init ( MBTrayApp *mb_tray_app ); 00577 00583 void 00584 mb_tray_app_main (MBTrayApp *mb_tray_app); 00585 00591 void 00592 mb_tray_app_hide (MBTrayApp *mb_tray_app ); 00593 00599 void 00600 mb_tray_app_unhide (MBTrayApp *mb_tray_app ); 00601 00602 00608 void 00609 mb_tray_app_main_quit (MBTrayApp *mb_tray_app); 00610 00617 void 00618 mb_tray_handle_xevent (MBTrayApp *mb_tray_app, 00619 XEvent *xevent); 00620 00621 00622 00623 /* ---------- Older stuff below ----------------------------------------- */ 00624 00625 00626 int mb_tray_init(Display* dpy, Window win); 00627 00628 Window mb_tray_get_window(void); 00629 00630 void mb_tray_init_session_info(Display *d, Window win, char **argv, int argc); 00631 00632 void mb_tray_handle_event(Display *dpy, Window win, XEvent *an_event); 00633 00634 void mb_tray_send_message(Display *d, Window win, 00635 unsigned char* msg, int timeout); 00636 00637 void mb_tray_map_window (Display* dpy, Window win); 00638 00639 void 00640 mb_tray_bg_change_cb_set(MBTrayBackgroundCB bg_changed_cb, void *user_data); 00641 00642 Bool mb_tray_get_bg_col(Display *dpy, XColor *xcol); 00643 00644 void 00645 mb_tray_window_icon_set(Display *dpy, Window win_panel, MBPixbufImage *img); 00646 00647 void mb_tray_unmap_window (Display* dpy, Window win); 00648 00649 MBPixbufImage *mb_tray_get_bg_img(MBPixbuf *pb, Window win); 00650 00653 #ifdef __cplusplus 00654 } 00655 #endif 00656 00657 #endif

Generated on Fri Jul 16 03:29:21 2004 for LibMB by doxygen 1.3.7