Main Page | Modules | Directories | 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_tray_app );
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 Tue Jan 11 08:51:10 2005 for LibMB by  doxygen 1.4.0