Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > d524f743a1e0eea7bb08925b7e67d122 > files > 13

alltray-debug-0.70-1mdv2008.1.i586.rpm

#ifndef __COMMON_H__
#define __COMMON_H__

#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <gdk/gdk.h>

#ifdef GCONF_NOT_DISABLED
  #include <gconf/gconf-client.h>
#endif

#include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>
#include <stdlib.h>
#include <X11/Xatom.h>
#include <string.h>
#include <X11/cursorfont.h>
#include <unistd.h>
#include <stdlib.h>

pid_t getpgid(pid_t pid);

#define _NET_WM_STATE_REMOVE        0    /* remove/unset property */
#define _NET_WM_STATE_ADD           1    /* add/set property */
#define _NET_WM_STATE_TOGGLE        2    /* toggle property  */  

#define until while (0)

#define WithdrawnState 0
#define NormalState 1
#define IconicState 3

#define force_show 1
#define force_hide 0
#define force_disabled -1

#define window_is_visible 1
#define window_is_hidden 0

#define RIGHT 1
#define LEFT 0
#define NO_SUCCESS -1

Atom wm_name_atom;
Atom wm_icon_atom;
Atom net_wm_icon;
Atom net_wm_name;
Atom net_close_window;
Atom wm_delete_window;
Atom wm_take_focus;
Atom net_wm_ping;
Atom net_wm_pid;
Atom net_number_of_desktops;
Atom net_current_desktop;
Atom net_wm_state_skip_pager;
Atom net_wm_state_skip_taskbar;
Atom net_wm_state;
Atom wm_state;
Atom net_wm_state_sticky;
Atom net_wm_desktop;
Atom net_active_window;
Atom net_wm_window_type;
Atom net_wm_window_type_normal;
Atom selection_atom;
Atom manager_atom;
Atom system_tray_opcode_atom;
Atom net_client_list_stacking;
Atom net_client_list;
Atom gdk_timestamp_prop;
Atom utf8_string;
Atom net_wm_visible_name;
Atom alltray_found_window;

typedef struct _balloon_struct {
  
  GtkWidget *window;
  GdkGC *gc;
  
  gint x;
  gint y;
    
  gint w;
  gint h;
  
  gboolean tail_on_top;
  gint dock_x;
  gint dock_y;
  gint dock_w;
  gint dock_h;
  
  gint tail_x;
  
  gulong handler_id;
  gint timeout;
  
  guint start_delay;
  
} balloon_struct;

typedef struct _button {
 Window window_xlib;
 GdkWindow *window_gdk;
 gint start_x;
 gint start_y;
 gint width;
 gint height;
} button;

typedef struct _win_struct {

  Display *display;

  gint screen_height;
  gint screen_width;

  GdkWindow *parent_gdk;
  Window parent_xlib;
  
  gboolean parent_is_visible;

  gboolean large_icons;
    
  gboolean borderless;
  
  GdkWindow *root_gdk;
  Window root_xlib;

  gint parent_window_x;
  gint parent_window_y;
  
  gint initial_x;
  gint initial_y;
  gint initial_w;
  gint initial_h;
  int geo_bitmask;

  int visibility;

  GArray *command_menu;
      
  gboolean show;
  gchar *command;
  gchar *command_only;
  
  Window child_xlib;
  
  GdkWindow *child_gdk;
 
  gint parent_pid; 
  gint child_pid;
  
  
  Window libspy_window;
  GdkWindow *libspy_window_gdk;
  
  GdkPixbuf *window_icon;
  GdkPixbuf *tray_icon;
  
  GdkPixbuf *user_icon;
  gchar *user_icon_path;
      
  Window manager_window;
  GdkWindow *manager_window_gdk;
  
  GtkWidget *plug;
  Window plug_xlib;
 
  GtkWidget *image_icon;
  
  balloon_struct *balloon;
    
  gchar *title;

  gboolean xmms;
  Window xmms_main_window_xlib;
  GdkWindow *xmms_main_window_gdk;
  
  
  Window xmms_playlist_window_xlib;
  Window xmms_equalizer_window_xlib;
  
  gint title_time;
  gboolean balloon_message_allowed;
  
  gboolean click_mode;

  gchar *window_manager;
  gboolean gnome;
  gboolean kde;

  gboolean no_reparent;

  Window target_our_xlib;
  GdkWindow *target_our_gdk;

  gint target_our_w;
  gint target_our_h;
  gint target_right_border;
  gint target_above_border;

  gint button_width;
  gint button_height;

  gboolean normal_map;

  gboolean sticky;
  gboolean skip_tasklist;
  
  gboolean no_title;
  
  gboolean kde_close_button_pos;
  button kde_close_button;

  unsigned int shortcut_key;
  unsigned int shortcut_modifier;

  gboolean notray;
  gboolean nomini;
  

} win_struct;

typedef struct _wm_state_struct {
  
  gboolean visible;
  gboolean show_in_taskbar;
} wm_state_struct;

typedef struct _command_menu_struct {
  gchar *entry;
  gchar *command;
} command_menu_struct;

GdkFilterReturn parent_window_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data);
GdkFilterReturn child_window_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data);
GdkFilterReturn root_filter_workspace (GdkXEvent *xevent, GdkEvent *event, gpointer user_data);

extern gboolean debug;

#endif