Files
KiTTY/kitty.h
T

702 lines
20 KiB
C

#ifndef KITTY_H
#define KITTY_H
#include <math.h>
#include <sys/types.h>
#include <process.h>
#include <time.h>
// Handle sur la fenetre principale
//extern HWND MainHwnd ;
HWND GetMainHwnd(void) ;
/*****************************************************
** DEFINITION DES VARIABLES STATIQUE DE kitty.c
** ET DE LEUR FONCTIONS D'ACCES ET DE MODIFICATION
*****************************************************/
// Flag pour retourner à la Config Box en fin d'execution
// extern int ConfigBoxNoExitFlag ;
int GetConfigBoxNoExitFlag(void) ;
// ConfigBox X-position
int GetConfigBoxLeft() ;
void SetConfigBoxLeft( const int val ) ;
// ConfigBox Y-position
int GetConfigBoxTop();
void SetConfigBoxTop( const int val ) ;
// Flag pour inhiber la gestion du CTRL+TAB
int GetCtrlTabFlag(void) ;
void SetCtrlTabFlag( const int flag ) ;
// Flag pour afficher l'image de fond
//extern int BackgroundImageFlag ;
int GetBackgroundImageFlag(void) ;
void SetBackgroundImageFlag( const int flag ) ;
#ifdef MOD_RECONNECT
// Flag pour inhiber le mécanisme de reconnexion automatique
int GetAutoreconnectFlag( void ) ;
void SetAutoreconnectFlag( const int flag ) ;
// Delai avant de tenter une reconnexion automatique
int GetReconnectDelay(void) ;
#endif
// Delai avant d'envoyer le password et d'envoyer vers le tray (automatiquement à la connexion) (en milliseconde)
extern int init_delay ;
// Delai entre chaque ligne de la commande automatique (en milliseconde)
extern int autocommand_delay ;
// Delai entre chaque caracteres d'une commande (en millisecondes)
extern int between_char_delay ;
// Delai entre deux lignes d'une meme commande et entre deux raccourcis \x \k
extern int internal_delay ;
// Nom de la classe de l'application
extern char KiTTYClassName[128] ;
// Flag pour imposer le passage en majuscule
// extern int CapsLockFlag ;
int GetCapsLockFlag(void) ;
void SetCapsLockFlag( const int flag ) ;
// Flag pour gerer la presence de la barre de titre
// extern int TitleBarFlag ;
int GetTitleBarFlag(void) ;
void SetTitleBarFlag( const int flag ) ;
// Flag pour passer en mode visualiseur d'images
// extern int ImageViewerFlag ;
int GetImageViewerFlag(void) ;
void SetImageViewerFlag( const int flag ) ;
#ifdef MOD_PROXY
// Flag pour ajouter la fonction Proxy Selector
// extern int ProxySelectionFlag ;
int GetProxySelectionFlag() ;
void SetProxySelectionFlag( const int flag ) ;
#endif
// Duree (en secondes) pour switcher l'image de fond d'ecran (<=0 pas de slide)
extern int ImageSlideDelay ;
// Nombre de clignotements max de l'icone dans le systeme tray lors de la reception d'un BELL
extern int MaxBlinkingTime ;
// Flag pour l'affichage de la taille de la fenetre
// extern int SizeFlag ;
int GetSizeFlag(void) ;
void SetSizeFlag( const int flag ) ;
// Flag pour la protection contre les saisies malheureuses
// extern int ProtectFlag ;
int GetProtectFlag(void) ;
void SetProtectFlag( const int flag ) ;
// Flag de definition de la visibilite d'une fenetres
// extern int VisibleFlag ;
int GetVisibleFlag(void) ;
void SetVisibleFlag( const int flag ) ;
// Gestion du script file au lancement
extern char * ScriptFileContent ;
// Flag pour inhiber les raccourcis clavier
// extern int ShortcutsFlag ;
int GetShortcutsFlag(void) ;
void SetShortcutsFlag( const int flag ) ;
// Flag pour inhiber les raccourcis souris
// extern int MouseShortcutsFlag ;
int GetMouseShortcutsFlag(void) ;
void SetMouseShortcutsFlag( const int flag ) ;
// Stuff for drag-n-drop
#ifndef TIMER_DND
#define TIMER_DND 8777
#endif
extern HDROP hDropInf;
void recupNomFichierDragDrop(HWND hwnd, HDROP* leDrop) ;
// Pointeur sur la commande autocommand
extern char * AutoCommand ;
// Contenu d'un script a envoyer à l'ecran
extern char * ScriptCommand ;
// Pointeur sur la commande a passer ligne a ligne
extern char * PasteCommand ;
int GetPasteCommandFlag(void) ;
// paste size limit (number of characters). Above the limit a confirmation is requested. (0 means unlimited)
int GetPasteSize(void) ;
void SetPasteSize( const int size ) ;
// Flag de gestion de la fonction hyperlink
extern int HyperlinkFlag ;
int GetHyperlinkFlag(void) ;
void SetHyperlinkFlag( const int flag ) ;
// Flag de gestion de la fonction "rutty" (script automatique)
//extern int RuttyFlag ;
int GetRuttyFlag(void) ;
void SetRuttyFlag( const int flag ) ;
// Flag pour le fonctionnement en mode "portable" (gestion par fichiers), defini dans kitty_commun.c
extern int IniFileFlag ;
int GetIniFileFlag(void) ;
void SetIniFileFlag( const int flag ) ;
void SwitchIniFileFlag(void) ;
// Flag permettant la gestion de l'arborscence (dossier=folder) dans le cas d'un savemode=dir, defini dans kitty_commun.c
//extern int DirectoryBrowseFlag ;
int GetDirectoryBrowseFlag(void) ;
void SetDirectoryBrowseFlag( const int flag ) ;
// Renvoi automatiquement dans le tray (pour les tunnel), fonctionne avec le l'option -send-to-tray
//extern int AutoSendToTray ;
int GetAutoSendToTray( void ) ;
void SetAutoSendToTray( const int flag ) ;
// Flag de gestion de la Transparence
// extern int TransparencyFlag ;
int GetTransparencyFlag(void) ;
void SetTransparencyFlag( const int flag ) ;
#ifdef MOD_ZMODEM
// Flag pour inhiber les fonctions ZMODEM
// extern int ZModemFlag ;
int GetZModemFlag(void) ;
void SetZModemFlag( const int flag ) ;
#endif
// Flag pour ne pas creer les fichiers kitty.ini et kitty.sav
// extern int NoKittyFileFlag ;
int GetNoKittyFileFlag(void) ;
void SetNoKittyFileFlag( const int flag ) ;
// Hauteur de la boite de configuration
// extern int ConfigBoxHeight ;
int GetConfigBoxHeight(void) ;
void SetConfigBoxHeight( const int num ) ;
// Hauteur de la fenetre de la boite de configuration (0=valeur par defaut)
// static int ConfigBoxWindowHeight = 0 ;
int GetConfigBoxWindowHeight(void) ;
void SetConfigBoxWindowHeight( const int num ) ;
// Hauteur de la fenetre pour la fonction winrol
// extern int WinHeight ;
int GetWinHeight(void) ;
void SetWinHeight( const int num ) ;
// Flag pour inhiber le Winrol
// extern int WinrolFlag = 1
int GetWinrolFlag(void) ;
void SetWinrolFlag( const int num ) ;
// Flag permettant de desactiver la sauvegarde automatique des informations de connexion (user/password) à la connexion SSH
// extern int UserPassSSHNoSave ; ==> Defini dans kitty_commun.c
int GetUserPassSSHNoSave(void) ;
void SetUserPassSSHNoSave( const int flag ) ;
// Flag pour inhiber le filtre sur la liste des sessions de la boite de configuration
// extern int SessionFilterFlag ;
// [ConfigBox] filter=yes
int GetSessionFilterFlag(void) ;
void SetSessionFilterFlag( const int flag ) ;
// Flag pour inhiber le comportement ou toutes les sessions appartiennent au folder defaut
// [ConfigBox] default=yes
int GetSessionsInDefaultFlag(void) ;
void SetSessionsInDefaultFlag( const int flag ) ;
// Flag pour inhiber la création automatique de la session Default Settings
// [ConfigBox] defaultsettings=yes
int GetDefaultSettingsFlag(void) ;
void SetDefaultSettingsFlag( const int flag ) ;
// Flag pour définir l'action a executer sur un double clic sur une session de la liste des sessions
// [ConfigBox] dblclick=open
int GetDblClickFlag(void) ;
void SetDblClickFlag( const int flag ) ;
#ifdef MOD_ADB
// Flag pour inhiber le support d'ADB
int GetADBFlag(void) ;
void SetADBFlag( const int flag ) ;
#endif
// Chemin vers le programme cthelper.exe
extern char * CtHelperPath ;
// Chemin vers le programme WinSCP
extern char * WinSCPPath ;
// Chemin vers le programme pscp.exe
extern char * PSCPPath ;
// Repertoire de lancement
extern char InitialDirectory[4096] ;
// Extention pour les fichiers de session en mode portable (peut être ktx)
extern char FileExtension[15] ;
// Répertoire de sauvegarde de la configuration (savemode=dir)
extern char * ConfigDirectory ;
// Positionne un flag permettant de determiner si on est connecte
extern int is_backend_connected ;
#ifdef MOD_RECONNECT
/* Variable permettant de savoir qu'on a deja ete connecte */
extern int is_backend_first_connected ;
#endif
/* Flag pour interdire l'ouverture de boite configuration */
extern int force_reconf ;
// Compteur pour l'envoi de anti-idle
extern int AntiIdleCount ;
extern int AntiIdleCountMax ;
extern char AntiIdleStr[128] ;
NOTIFYICONDATA TrayIcone ;
#ifndef MYWM_NOTIFYICON
#define MYWM_NOTIFYICON (WM_USER+3)
#endif
// Flag pour permettre la definition d'icone de connexion
// extern int IconeFlag ;
int GetIconeFlag(void) ;
void SetIconeFlag( const int flag ) ;
// Nombre d'icones differentes (identifiant commence a 1 dans le fichier .rc)
// extern int NumberOfIcons ;
int GetNumberOfIcons(void) ;
void SetNumberOfIcons( const int flag ) ;
// extern int IconeNum ;
int GetIconeNum(void) ;
void SetIconeNum( const int num ) ;
// La librairie dans laquelle chercher les icones (fichier defini dans kitty.ini, sinon kitty.dll s'il existe, sinon kitty.exe)
// extern HINSTANCE hInstIcons ;
HINSTANCE GethInstIcons(void) ;
void SethInstIcons( const HINSTANCE h ) ;
extern int debug_flag ;
extern int PORT ;
// Declaration de prototypes de fonction
void InitFolderList( void ) ;
void SaveFolderList( void ) ;
void InfoBoxSetText( HWND hwnd, char * st ) ;
void InfoBoxClose( HWND hwnd );
void routine_server( void * st ) ;
void routine_SaveRegistryKey( void * st ) ;
void SetNewIcon( HWND hwnd, char * iconefile, int icone, const int mode ) ;
int WINAPI Notepad_WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow) ;
void InitWinMain( void ) ;
char * getcwd (char * buf, int size);
int chdir(const char *path);
char * InputBox( HINSTANCE hInstance, HWND hwnd ) ;
char *itoa(int value, char *string, int radix);
void GetAndSendLinePassword( HWND hwnd ) ;
int unlink(const char *pathname);
void RunScriptFile( HWND hwnd, const char * filename ) ;
void InfoBoxSetText( HWND hwnd, char * st ) ;
void ReadInitScript( const char * filename ) ;
int ReadParameter( const char * key, const char * name, char * value ) ;
int WriteParameter( const char * key, const char * name, char * value ) ;
int DelParameter( const char * key, const char * name ) ;
void GetSessionFolderName( const char * session_in, char * folder ) ;
int MakeDirTree( const char * Directory, const char * s, const char * sd ) ;
int ManageShortcuts( Terminal *term, Conf *conf, HWND hwnd, const int* clips_system, int key_num, int shift_flag, int control_flag, int alt_flag, int altgr_flag, int win_flag ) ;
void print_log( const char *fmt, ...) ;
char * SetInitialSessPath( void ) ;
char * SetSessPath( const char * dec ) ;
void CleanFolderName( char * folder ) ;
void SetInitCurrentFolder( const char * name ) ;
int print_event_log( FILE * fp, int i ) ;
void set_sshver( const char * vers ) ;
int ResizeWinList( HWND hwnd, int width, int height ) ;
int SendCommandAllWindows( HWND hwnd, char * cmd ) ;
int decode64 (char *buffer) ;
void RunCommand( HWND hwnd, const char * cmd ) ;
void timestamp_change_filename( void ) ;
int InternalCommand( HWND hwnd, char * st ) ;
// Convertit la base de registre en repertoire pour le mode savemode=dir
int Convert2Dir( const char * Directory ) ;
// Convertit une sauvegarde en mode savemode=dir vers la base de registre
void ConvertDir2Reg( const char * Directory, HKEY hKey, char * path ) ;
int Convert2Reg( const char * Directory ) ;
void load_open_settings_forced(char *filename, Conf *conf) ;
void save_open_settings_forced(char *filename, Conf *conf) ;
int SwitchCryptFlag( void ) ;
void CreateDefaultIniFile( void ) ;
void InitSpecialMenu( HMENU m, const char * folder, const char * sessionname ) ;
// Recupere une entree d'une session ( retourne 1 si existe )
int GetSessionField( const char * session_in, const char * folder_in, const char * field, char * result ) ;
// Sauve les coordonnees de la fenetre
void SaveWindowCoord( Conf * conf ) ;
// Permet de recuperer les sessions KiTTY dans PuTTY (PUTTY_REG_POS)
void RepliqueToPuTTY( LPCTSTR Key ) ;
// Decompte le nombre de fenetre de la meme classe que KiTTY
int WindowsCount( HWND hwnd ) ;
HWND InfoBox( HINSTANCE hInstance, HWND hwnd ) ;
// Renomme une Cle de registre
void RegRenameTree( HWND hdlg, HKEY hMainKey, LPCTSTR lpSubKey, LPCTSTR lpDestKey ) ;
void DelRegistryKey( void ) ;
void RenewPassword( Conf *conf ) ;
// Gere l'envoi dans le System Tray
int ManageToTray( HWND hwnd ) ;
void RefreshBackground( HWND hwnd ) ;
void SendAutoCommand( HWND hwnd, const char * cmd ) ;
int NextBgImage( HWND hwnd ) ;
int PreviousBgImage( HWND hwnd ) ;
void ManageSpecialCommand( HWND hwnd, int menunum ) ;
int fileno(FILE *stream) ;
// Sauvegarde de la cle de registre
void SaveRegistryKeyEx( HKEY hMainKey, LPCTSTR lpSubKey, const char * filename ) ;
void ManageProtect( HWND hwnd, TermWin *tw, char * title ) ;
// Gere l'option always visible
void ManageVisible( HWND hwnd, TermWin *tw, char * title ) ;
// Sauvegarde de la cle de registre
void SaveRegistryKeyEx( HKEY hMainKey, LPCTSTR lpSubKey, const char * filename ) ;
void SaveRegistryKey( void ) ;
void ManageWinrol( HWND hwnd, int resize_action ) ;
void resize( int height, int width ) ;
void OpenAndSendScriptFile( HWND hwnd ) ;
void SaveCurrentSetting( HWND hwnd ) ;
void SendFile( HWND hwnd ) ;
void StartWinSCP( HWND hwnd, char * directory, char * host, char * user ) ;
void StartNewSession( HWND hwnd, char * directory, char * host, char * user ) ;
void urlhack_launch_url(const char* app, const char *url) ;
int GetPortFwdState( const int port, const DWORD pid ) ;
int ShowPortfwd( HWND hwnd, Conf * conf ) ;
void OnDropFiles(HWND hwnd, HDROP hDropInfo) ;
// Affiche un menu dans le systeme Tray
void DisplaySystemTrayMenu( HWND hwnd ) ;
// shift+bouton droit => paste ameliore pour serveur "lent"
// Le paste utilise la methode "autocommand"
void SetPasteCommand( HWND hwnd ) ;
// Recupere les coordonnees de la fenetre
void GetWindowCoord( HWND hwnd ) ;
int ManageLocalCmd( HWND hwnd, const char * cmd ) ;
// Gestion du script au lancement
void ManageInitScript( const char * input_str, const int len ) ;
void SetNewIcon( HWND hwnd, char * iconefile, int icone, const int mode ) ;
void GotoInitialDirectory( void ) ;
void GotoConfigDirectory( void ) ;
// Prototype de function de kitty_savedump.c
void addkeypressed( UINT message, WPARAM wParam, LPARAM lParam, int shift_flag, int control_flag, int alt_flag, int altgr_flag, int win_flag ) ;
char * get_param_str( const char * val ) ;
// Fonctions permettant de formatter les chaînes de caractères avec %XY
void mungestr( const char *in, char *out ) ;
void unmungestr( const char *in, char *out, int outlen ) ;
void NegativeColours(HWND hwnd) ;
void BlackOnWhiteColours(HWND hwnd) ;
void ChangeFontSize(Terminal *term, Conf *conf,HWND hwnd, int dec) ;
void create_settings( const char * name ) ;
void SetHostKeyExtension( const char* ext ) ;
char * GetHelpMessage(void) ;
void CreateIniFile( const char * filename ) ;
void SendKeyboard( HWND hwnd, const char * buffer ) ;
char * GetRemotePath() ;
void ManageShortcutsFlag( HWND hwnd ) ;
#ifdef MOD_LAUNCHER
void InitLauncherRegistry( void ) ;
#endif
int getpid(void) ;
// Definition de la section du fichier de configuration
#if (defined MOD_PERSO) && (!defined FLJ)
#ifndef INIT_SECTION
#define INIT_SECTION "KiTTY"
#endif
#ifndef DEFAULT_INIT_FILE
#define DEFAULT_INIT_FILE "kitty.ini"
#endif
#ifndef DEFAULT_SAV_FILE
#define DEFAULT_SAV_FILE "kitty.sav"
#endif
#ifndef DEFAULT_EXE_FILE
#define DEFAULT_EXE_FILE "kitty.exe"
#endif
#else
#ifndef INIT_SECTION
#define INIT_SECTION "PuTTY"
#endif
#ifndef DEFAULT_INIT_FILE
#define DEFAULT_INIT_FILE "putty.ini"
#endif
#ifndef DEFAULT_SAV_FILE
#define DEFAULT_SAV_FILE "putty.sav"
#endif
#ifndef DEFAULT_EXE_FILE
#define DEFAULT_EXE_FILE "putty.exe"
#endif
#endif
#ifndef SI_INIT
#define SI_INIT 0
#endif
#ifndef SI_NEXT
#define SI_NEXT 1
#endif
#ifndef SI_RANDOM
#define SI_RANDOM 2
#endif
#ifndef TIMER_INIT
#define TIMER_INIT 8701
#endif
#ifndef TIMER_AUTOCOMMAND
#define TIMER_AUTOCOMMAND 8702
#endif
#ifndef TIMER_SLIDEBG
#if (defined MOD_BACKGROUNDIMAGE) && (!defined FLJ)
#define TIMER_SLIDEBG 8703
#endif
#endif
#ifndef TIMER_REDRAW
#define TIMER_REDRAW 8704
#endif
#ifndef TIMER_AUTOPASTE
#define TIMER_AUTOPASTE 8705
#endif
#ifndef TIMER_BLINKTRAYICON
#define TIMER_BLINKTRAYICON 8706
#endif
#ifndef TIMER_LOGROTATION
#define TIMER_LOGROTATION 8707
#endif
#ifndef TIMER_ANTIIDLE
#define TIMER_ANTIIDLE 8708
#endif
#ifndef TIMER_RECONNECT
#define TIMER_RECONNECT 8709
#endif
#ifndef VISIBLE_NO
#define VISIBLE_NO 0
#endif
#ifndef VISIBLE_YES
#define VISIBLE_YES 1
#endif
#ifndef VISIBLE_TRAY
#define VISIBLE_TRAY -1
#endif
/*************************************************
** DEFINITION DES DEFINES
*************************************************/
#ifdef MOD_ZMODEM
#ifndef IDM_XYZSTART
#define IDM_XYZSTART 0xA810
#endif
#ifndef IDM_XYZUPLOAD
#define IDM_XYZUPLOAD 0xA820
#endif
#ifndef IDM_XYZABORT
#define IDM_XYZABORT 0xA830
#endif
int xyz_Process(Backend *back, void *backhandle, Terminal *term) ;
void xyz_ReceiveInit(Terminal *term) ;
void xyz_StartSending(Terminal *term) ;
void xyz_Cancel(Terminal *term) ;
void xyz_updateMenuItems(Terminal *term) ;
#endif
#ifndef IDM_QUIT
#define IDM_QUIT 0xA840
#endif
#ifndef IDM_VISIBLE
#define IDM_VISIBLE 0xA850
#endif
#ifndef IDM_PROTECT
#define IDM_PROTECT 0xA860
#endif
#ifndef IDM_PRINT
#define IDM_PRINT 0xA870
#endif
#ifndef IDM_TRANSPARUP
#define IDM_TRANSPARUP 0xA880
#endif
#ifndef IDM_TRANSPARDOWN
#define IDM_TRANSPARDOWN 0xA890
#endif
#ifndef IDM_WINROL
#define IDM_WINROL 0xA900
#endif
#ifndef IDM_PSCP
#define IDM_PSCP 0xA910
#endif
#ifndef IDM_WINSCP
#define IDM_WINSCP 0xA920
#endif
#ifndef IDM_TOTRAY
#define IDM_TOTRAY 0xA930
#endif
#ifndef IDM_FROMTRAY
#define IDM_FROMTRAY 0xA940
#endif
#ifndef IDM_SHOWPORTFWD
#define IDM_SHOWPORTFWD 0xA950
#endif
#ifndef IDM_HIDE
#define IDM_HIDE 0xA960
#endif
#ifndef IDM_UNHIDE
#define IDM_UNHIDE 0xA970
#endif
#ifndef IDM_SWITCH_HIDE
#define IDM_SWITCH_HIDE 0xA980
#endif
#ifndef IDM_GONEXT
#define IDM_GONEXT 0xA990
#endif
#ifndef IDM_GOPREVIOUS
#define IDM_GOPREVIOUS 0xB000
#endif
#ifndef IDM_SCRIPTFILE
#define IDM_SCRIPTFILE 0xB010
#endif
#ifndef IDM_RESIZE
#define IDM_RESIZE 0xB020
#endif
#ifndef IDM_REPOS
#define IDM_REPOS 0xB030
#endif
#ifndef IDM_EXPORTSETTINGS
#define IDM_EXPORTSETTINGS 0xB040
#endif
#ifndef IDM_FONTUP
#define IDM_FONTUP 0xB050
#endif
#ifndef IDM_FONTDOWN
#define IDM_FONTDOWN 0xB060
#endif
#ifndef IDM_FONTBLACKANDWHITE
#define IDM_FONTBLACKANDWHITE 0xB070
#endif
#ifndef IDM_FONTNEGATIVE
#define IDM_FONTNEGATIVE 0xB080
#endif
#ifndef IDM_PORTKNOCK
#define IDM_PORTKNOCK 0xB090
#endif
#ifndef IDM_CLEARLOGFILE
#define IDM_CLEARLOGFILE 0xB100
#endif
#ifdef MOD_RECONNECT
#ifndef IDM_RESTARTSESSION
#define IDM_RESTARTSESSION 0xB110
#endif
#endif
#ifndef IDM_SHORTCUTSTOGGLE
#define IDM_SHORTCUTSTOGGLE 0xB120
#endif
// Doit etre le dernier
#ifndef IDM_LAUNCHER
#define IDM_LAUNCHER 0xB130
#endif
// USERCMD doit etre la plus grande valeur pour permettre d'avoir autant de raccourcis qu'on le souhaite
#ifndef IDM_USERCMD
#define IDM_USERCMD 0x8000
#endif
// Idem USERCMD
#ifndef IDM_GOHIDE
#define IDM_GOHIDE 0x9000
#endif
/*************************************************
** FIN DE DEFINITION DES DEFINES
*************************************************/
#ifndef IDB_OK
#define IDB_OK 1098
#endif
#ifndef SAVEMODE_REG
#define SAVEMODE_REG 0
#endif
#ifndef SAVEMODE_FILE
#define SAVEMODE_FILE 1
#endif
#ifndef SAVEMODE_DIR
#define SAVEMODE_DIR 2
#endif
#ifndef NB_MENU_MAX
#define NB_MENU_MAX 1024
#endif
// Liste de define recupere de WINDOW.C necessaires a kitty.c
#ifndef IDM_ABOUT
#define IDM_ABOUT 0x0150
#endif
#ifndef IDM_RESET
#define IDM_RESET 0x0070
#endif
#ifndef IDM_COPYALL
#define IDM_COPYALL 0x0170
#endif
#ifndef IDM_SHOWLOG
#define IDM_SHOWLOG 0x0010
#endif
#ifndef IDM_RESTART
#define IDM_RESTART 0x0040
#endif
#ifndef IDM_NEWSESS
#define IDM_NEWSESS 0x0020
#endif
#ifndef IDM_DUPSESS
#define IDM_DUPSESS 0x0030
#endif
#ifndef IDM_RECONF
#define IDM_RECONF 0x0050
#endif
#ifndef IDM_CLRSB
#define IDM_CLRSB 0x0060
#endif
#ifndef IDM_FULLSCREEN
#define IDM_FULLSCREEN 0x0180
#endif
#ifndef IDM_COPYALL
#define IDM_COPYALL 0x0170
#endif
#endif // KITTY_H