merge of '7480925dadadae4e72d767542bc4435163eb0a52'
and 'f3d4aca1b996c29f5e4d7d53f0afcce305d8c27e'
line source
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @file gntwm.h Window-manager API
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @ingroup gnt
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /*
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * GNT - The GLib Ncurses Toolkit
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * GNT is the legal property of its developers, whose names are too numerous
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * to list here. Please refer to the COPYRIGHT file distributed with this
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * source distribution.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * This library is free software; you can redistribute it and/or modify
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * it under the terms of the GNU General Public License as published by
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * the Free Software Foundation; either version 2 of the License, or
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * (at your option) any later version.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * This program is distributed in the hope that it will be useful,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * GNU General Public License for more details.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * You should have received a copy of the GNU General Public License
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * along with this program; if not, write to the Free Software
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #ifndef GNTWM_H
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNTWM_H
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "gntwidget.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "gntmenu.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "gntws.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include <panel.h>
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include <time.h>
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_TYPE_WM (gnt_wm_get_gtype())
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_WM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_WM, GntWM))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_WM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_WM, GntWMClass))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_IS_WM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_WM))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_IS_WM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_WM))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define GNT_WM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_WM, GntWMClass))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef enum _GntKeyPressMode
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GNT_KP_MODE_NORMAL,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GNT_KP_MODE_RESIZE,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GNT_KP_MODE_MOVE,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GNT_KP_MODE_WAIT_ON_CHILD
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } GntKeyPressMode;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct _GntNode
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWidget *me;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 WINDOW *window;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int scroll;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 PANEL *panel;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWS *ws;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } GntNode;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct _GntWM GntWM;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct _GntPosition
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int x;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int y;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } GntPosition;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * An application can register actions which will show up in a 'start-menu' like popup
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct _GntAction
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 const char *label;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*callback)();
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } GntAction;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 struct _GntWM
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntBindable inherit;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GMainLoop *loop;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GList *workspaces;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GList *tagged; /* tagged windows */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWS *cws;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 struct {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWidget *window;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWidget *tree;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } _list,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *windows, /* Window-list window */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *actions; /* Action-list window */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GHashTable *nodes; /* GntWidget -> GntNode */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GHashTable *name_places; /* window name -> ws*/
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GHashTable *title_places; /* window title -> ws */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GList *acts; /* List of actions */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * There can be at most one menu at a time on the screen.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * If there is a menu being displayed, then all the keystrokes will be sent to
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * the menu until it is closed, either when the user activates a menuitem, or
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * presses Escape to cancel the menu.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntMenu *menu; /* Currently active menu */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * 'event_stack' will be set to TRUE when a user-event, ie. a mouse-click
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * or a key-press is being processed. This variable will be used to determine
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * whether to give focus to a new window.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean event_stack;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntKeyPressMode mode;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GHashTable *positions;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void *res1;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void *res2;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void *res3;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void *res4;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 };
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct _GntWMClass GntWMClass;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 struct _GntWMClass
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntBindableClass parent;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* This is called when a new window is shown */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*new_window)(GntWM *wm, GntWidget *win);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*decorate_window)(GntWM *wm, GntWidget *win);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* This is called when a window is being closed */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean (*close_window)(GntWM *wm, GntWidget *win);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* The WM may want to confirm a size for a window first */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean (*window_resize_confirm)(GntWM *wm, GntWidget *win, int *w, int *h);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*window_resized)(GntWM *wm, GntNode *node);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* The WM may want to confirm the position of a window */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean (*window_move_confirm)(GntWM *wm, GntWidget *win, int *x, int *y);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*window_moved)(GntWM *wm, GntNode *node);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* This gets called when:
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * - the title of the window changes
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * - the 'urgency' of the window changes
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*window_update)(GntWM *wm, GntNode *node);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* This should usually return NULL if the keys were processed by the WM.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * If not, the WM can simply return the original string, which will be
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * processed by the default WM. The custom WM can also return a different
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * static string for the default WM to process.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean (*key_pressed)(GntWM *wm, const char *key);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean (*mouse_clicked)(GntWM *wm, GntMouseEvent event, int x, int y, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* Whatever the WM wants to do when a window is given focus */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*give_focus)(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* List of windows. Although the WM can keep a list of its own for the windows,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * it'd be better if there was a way to share between the 'core' and the WM.
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /*GList *(*window_list)();*/
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /* This is invoked whenever the terminal window is resized, or the
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * screen session is attached to a new terminal. (ie, from the
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * SIGWINCH callback)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*terminal_refresh)(GntWM *wm);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*res1)(void);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*res2)(void);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void (*res3)(void);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 };
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 G_BEGIN_DECLS
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @return
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GType gnt_wm_get_gtype(void);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_add_workspace(GntWM *wm, GntWS *ws);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean gnt_wm_switch_workspace(GntWM *wm, gint n);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean gnt_wm_switch_workspace_prev(GntWM *wm);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean gnt_wm_switch_workspace_next(GntWM *wm);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_widget_move_workspace(GntWM *wm, GntWS *neww, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_set_workspaces(GntWM *wm, GList *workspaces);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 GntWS *gnt_wm_widget_find_workspace(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_new_window(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_window_decorate(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_window_close(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param string
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @return
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean gnt_wm_process_input(GntWM *wm, const char *string);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param event
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param x
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param y
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @return
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 gboolean gnt_wm_process_click(GntWM *wm, GntMouseEvent event, int x, int y, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param width
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param height
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_resize_window(GntWM *wm, GntWidget *widget, int width, int height);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param x
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param y
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_move_window(GntWM *wm, GntWidget *widget, int x, int y);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_update_window(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param widget
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_raise_window(GntWM *wm, GntWidget *widget);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param wm
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @param set
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_set_event_stack(GntWM *wm, gboolean set);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 void gnt_wm_copy_win(GntWidget *widget, GntNode *node);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /**
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 *
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 * @return
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 time_t gnt_wm_get_idle_time(void);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 G_END_DECLS
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #endif