No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
kkbswitch/kkbswitch/kbswitchapp.h

134 líneas
4.1 KiB

/***************************************************************************
kbswitchapp.h - description
-------------------
begin : Sun Jul 1 2001
copyright : (C) 2001 by Leonid Zeitlin
email : lz@europe.com
***************************************************************************/
/***************************************************************************
* *
* This program 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. *
* *
***************************************************************************/
#ifndef KBSWITCHAPP_H
#define KBSWITCHAPP_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <tdeversion.h>
#if TDE_VERSION_MAJOR >= 3
#include <kuniqueapplication.h>
#else
#include <kuniqueapp.h>
#endif
//#include <ntqmap.h>
#include "kbgroup.h"
#include "kbswitchtrayicon.h"
#include "kbconfig.h"
#include "xkeyboard.h"
#include "kbswitchintf.h"
#include "windowwatcher.h"
/*class KWinModule;
typedef struct _KBWinInfo {
int groupno;
int next_groupno;
} KBWinInfo;
typedef TQMap<WId, KBWinInfo> KBWindowMap;*/
/**
*@author Leonid Zeitlin
*/
class KBSwitchApp : public KUniqueApplication {
TQ_OBJECT
public:
KBSwitchApp();
~KBSwitchApp();
protected: // Protected methods
/** No descriptions */
bool x11EventFilter(XEvent *e);
private: // Private attributes
/** */
bool m_force_group_setting;
int m_cur_groupno;
int m_next_groupno;
XKeyboard m_xkb;
/** */
KBSwitchTrayIcon * m_trayicon;
/** No descriptions */
KBConfig m_kbconf;
KBSwitchIntf *m_intf;
#ifndef HAVE_LIBXKLAVIER
/** Window manager interface */
//KWinModule *m_twin_module;
/** Maps Window IDs to their keyboard groups */
//KBWindowMap m_window_map;
//KBWindowMap::iterator m_active_window;
WindowWatcher *m_watcher;
KBConfig::GroupScope m_watcher_type;
#endif
private: // Private methods
/** Update the tray icon to show the flag corresponding to the current keyboard group */
void updateIcon(int groupno);
/** No descriptions */
void internalToggleGroups();
/** No descriptions */
void forceSetGroup(int groupno);
/** No descriptions */
/*int getNextGroup(int groupno) {
return groupno >= m_kbconf.groupCount() - 1 ? 0 : groupno + 1;
}*/
/** No descriptions */
void setStartGroup(int start_group);
void adaptToGroup(int groupno);
#ifndef HAVE_LIBXKLAVIER
/** initialize Window groups map */
//void resetWindowMap();
/** Disable window manager notifications */
//void disableKWinModule();
/** Enable window manager notifications */
//void enableKWinModule();
/** adds a new window to the internal window map */
//void addWindowToMap(WId window_id);
void enableWatcher();
void disableWatcher();
#endif
/** Set the current and next groups */
void setGroups(int group, int next_group);
private slots: // Private slots
/** No descriptions */
void slotGroupSelected(int groupno);
/** Select the next keyboard layout (wraps around) */
void slotSelectNextGroup();
/** Select the previous keyboard layout (wraps around) */
void slotSelectPrevGroup();
/** No descriptions */
void slotPreferences();
/** No descriptions */
void reconfigure();
/** Respond to XKB changing the current group */
void slotXkbGroupChanged(int groupno);
/** Respond to changing of active window - active it's kb group */
//void slotWindowChanged(WId activeWindow);
/** Respond to removal of a window - remote it from Window groups map */
//void slotWindowRemoved(WId window);
void slotWindowChanged(int groupno, int next_groupno);
/** React to a change in KKBSwitch's user preferences,
* made by user in Configure dialog */
void slotPrefChanged();
};
#endif