## BamfWindow BamfWindow — The base class for all windows |

## Synopsis

    #define             BAMF_WINDOW_SIGNAL_MONITOR_CHANGED
    #define             BAMF_WINDOW_SIGNAL_MAXIMIZED_CHANGED
    struct              BamfWindow;
    enum                BamfWindowType;
    enum                BamfWindowMaximizationType;
    struct              BamfWindowClass;
    BamfWindow *        bamf_window_get_transient           (BamfWindow *self);
    BamfWindowType      bamf_window_get_window_type         (BamfWindow *self);
    guint32             bamf_window_get_xid                 (BamfWindow *self);
    guint32             bamf_window_get_pid                 (BamfWindow *self);
    gint                bamf_window_get_monitor             (BamfWindow *self);
    gchar *             bamf_window_get_utf8_prop           (BamfWindow *self,
                                                             const char *prop);
    BamfWindowMaximizationType bamf_window_maximized        (BamfWindow *self);
    time_t              bamf_window_last_active             (BamfWindow *self);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----BamfView
                   +----BamfWindow

## Signals

      "maximized-changed"                              : Run First
      "monitor-changed"                                : Run First

## Description

BamfWindow is the base class that all windows need to derive from.

## Details

### BAMF_WINDOW_SIGNAL_MONITOR_CHANGED

    #define BAMF_WINDOW_SIGNAL_MONITOR_CHANGED   "monitor-changed"

### BAMF_WINDOW_SIGNAL_MAXIMIZED_CHANGED

    #define BAMF_WINDOW_SIGNAL_MAXIMIZED_CHANGED "maximized-changed"

### struct BamfWindow

    struct BamfWindow;

### enum BamfWindowType

    typedef enum {
      BAMF_WINDOW_NORMAL,       /* document/app window */
      BAMF_WINDOW_DESKTOP,      /* desktop background */
      BAMF_WINDOW_DOCK,         /* panel */
      BAMF_WINDOW_DIALOG,       /* dialog */
      BAMF_WINDOW_TOOLBAR,      /* tearoff toolbar */
      BAMF_WINDOW_MENU,         /* tearoff menu */
      BAMF_WINDOW_UTILITY,      /* palette/toolbox window */
      BAMF_WINDOW_SPLASHSCREEN, /* splash screen */
      BAMF_WINDOW_UNKNOWN
    } BamfWindowType;

`BAMF_WINDOW_NORMAL` |
`BAMF_WINDOW_DESKTOP` |
`BAMF_WINDOW_DOCK` |
`BAMF_WINDOW_DIALOG` |
`BAMF_WINDOW_TOOLBAR` |
`BAMF_WINDOW_MENU` |
`BAMF_WINDOW_UTILITY` |
`BAMF_WINDOW_SPLASHSCREEN` |
`BAMF_WINDOW_UNKNOWN` |

### enum BamfWindowMaximizationType

    typedef enum {
      BAMF_WINDOW_FLOATING,              /* Floating window */
      BAMF_WINDOW_HORIZONTAL_MAXIMIZED,  /* Horizontally maximized window */
      BAMF_WINDOW_VERTICAL_MAXIMIZED,    /* Vertically maximized window */
      BAMF_WINDOW_MAXIMIZED              /* Maximized window */
    } BamfWindowMaximizationType;

`BAMF_WINDOW_FLOATING` |
`BAMF_WINDOW_HORIZONTAL_MAXIMIZED` |
`BAMF_WINDOW_VERTICAL_MAXIMIZED` |
`BAMF_WINDOW_MAXIMIZED` |

### struct BamfWindowClass

    struct BamfWindowClass {
      BamfViewClass parent_class;

      BamfWindow               * (*get_transient)      (BamfWindow *self);
      BamfWindowType             (*get_window_type)    (BamfWindow *self);
      guint32                    (*get_xid)            (BamfWindow *self);
      guint32                    (*get_pid)            (BamfWindow *self);
      gint                       (*get_monitor)        (BamfWindow *self);
      gchar                    * (*get_utf8_prop)      (BamfWindow *self, const char* prop);
      BamfWindowMaximizationType (*maximized)          (BamfWindow *self);
      time_t                     (*last_active)        (BamfWindow *self);

      /*< signals >*/
      void (*monitor_changed)   (BamfWindow *window, gint old_value, gint new_value);
      void (*maximized_changed) (BamfWindow *window, gint old_value, gint new_value);
    };

### bamf_window_get_transient ()

    BamfWindow *        bamf_window_get_transient           (BamfWindow *self);

`self` : | a BamfWindow
Returns : | A transient for this BamfWindow. [transfer none][allow-none]

### bamf_window_get_window_type ()

    BamfWindowType      bamf_window_get_window_type         (BamfWindow *self);

### bamf_window_get_xid ()

    guint32             bamf_window_get_xid                 (BamfWindow *self);

### bamf_window_get_pid ()

    guint32             bamf_window_get_pid                 (BamfWindow *self);

### bamf_window_get_monitor ()

    gint                bamf_window_get_monitor             (BamfWindow *self);

### bamf_window_get_utf8_prop ()

    gchar *             bamf_window_get_utf8_prop           (BamfWindow *self,
                                                             const char *prop);

### bamf_window_maximized ()

    BamfWindowMaximizationType bamf_window_maximized        (BamfWindow *self);

### bamf_window_last_active ()

    time_t              bamf_window_last_active             (BamfWindow *self);

## Signal Details

### The `"maximized-changed"` signal

    void                user_function                      (BamfWindow *bamfwindow,
                                                            gint        arg1,
                                                            gint        arg2,
                                                            gpointer    user_data)       : Run First

`bamfwindow` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"monitor-changed"` signal

    void                user_function                      (BamfWindow *bamfwindow,
                                                            gint        arg1,
                                                            gint        arg2,
                                                            gpointer    user_data)       : Run First

`bamfwindow` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.