NSIS/Source/lang.h
kichik 0aed504f4a happy new year!
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5917 212acab6-be3b-0410-9dea-997c60f758d6
2009-02-01 14:44:30 +00:00

199 lines
3.9 KiB
C++

/*
* lang.h
*
* This file is a part of NSIS.
*
* Copyright (C) 1999-2009 Nullsoft and Contributors
*
* Licensed under the zlib/libpng license (the "License");
* you may not use this file except in compliance with the License.
*
* Licence details can be found in the file COPYING.
*
* This software is provided 'as-is', without any express or implied
* warranty.
*/
#ifndef ___NLF___H_____
#define ___NLF___H_____
#include "strlist.h"
#include "growbuf.h"
#include "exehead/fileform.h"
struct NLFRef {
int iRef;
int iUnRef;
};
struct langstring {
int name;
int sn;
int index;
int uindex;
int process;
};
class LangStringList : public SortedStringListND<struct langstring>
{
public:
LangStringList();
int add(const char *name, int *sn=0);
int get(char *name, int *sn=0, int *index=0, int *uindex=0, int *process=0);
void set(int pos, int index=-1, int uindex=-1, int process=-1);
void set(char *name, int index, int uindex=-1, int process=-1);
const char *pos2name(int pos);
const char *offset2name(int name);
int getnum();
static int compare_index(const void *item1, const void *item2);
langstring *sort_index(int *num);
static int compare_uindex(const void *item1, const void *item2);
langstring *sort_uindex(int *num);
private:
int count;
TinyGrowBuf sortbuf;
};
class StringsArray
{
public:
StringsArray();
void resize(int num);
int set(int idx, char *str);
const char *get(int idx);
private:
TinyGrowBuf offsets;
GrowBuf strings;
};
#define NLF_VERSION 6
enum {
NLF_BRANDING,
NLF_CAPTION,
NLF_UCAPTION,
NLF_SUBCAPTION_LICENSE,
NLF_SUBCAPTION_OPTIONS,
NLF_SUBCAPTION_DIR,
NLF_SUBCAPTION_INSTFILES,
NLF_SUBCAPTION_COMPLETED,
NLF_USUBCAPTION_OPTIONS,
NLF_USUBCAPTION_DIR,
NLF_USUBCAPTION_CONFIRM,
NLF_USUBCAPTION_INSTFILES,
NLF_USUBCAPTION_COMPLETED,
NLF_BTN_BACK,
NLF_BTN_NEXT,
NLF_BTN_LICENSE,
NLF_BTN_LICENSE_AGREE,
NLF_BTN_LICENSE_DISAGREE,
NLF_BTN_INSTALL,
NLF_BTN_UNINSTALL,
NLF_BTN_CANCEL,
NLF_BTN_CLOSE,
NLF_BTN_BROWSE,
NLF_BTN_DETAILS,
NLF_CLICK_NEXT,
NLF_CLICK_INSTALL,
NLF_CLICK_UNINSTALL,
NLF_NAME,
NLF_NAME_DA, // name with doubled ampersands - virtual
NLF_COMPLETED,
NLF_LICENSE_TEXT,
NLF_LICENSE_TEXT_FSCB,
NLF_LICENSE_TEXT_FSRB,
NLF_ULICENSE_TEXT,
NLF_ULICENSE_TEXT_FSCB,
NLF_ULICENSE_TEXT_FSRB,
NLF_LICENSE_DATA, // virtual
NLF_COMP_CUSTOM,
NLF_COMP_TEXT,
NLF_COMP_SUBTEXT1,
NLF_COMP_SUBTEXT1_NO_INST_TYPES,
NLF_COMP_SUBTEXT2,
NLF_UCOMP_TEXT,
NLF_UCOMP_SUBTEXT1,
NLF_UCOMP_SUBTEXT1_NO_INST_TYPES,
NLF_UCOMP_SUBTEXT2,
NLF_DIR_TEXT,
NLF_DIR_SUBTEXT,
NLF_DIR_BROWSETEXT,
NLF_UDIR_TEXT,
NLF_UDIR_SUBTEXT,
NLF_UDIR_BROWSETEXT,
NLF_SPACE_AVAIL,
NLF_SPACE_REQ,
NLF_UNINST_TEXT,
NLF_UNINST_SUBTEXT,
NLF_FILE_ERROR,
NLF_FILE_ERROR_NOIGNORE,
NLF_CANT_WRITE,
NLF_COPY_FAILED,
NLF_COPY_TO,
NLF_REGISTERING,
NLF_UNREGISTERING,
NLF_SYMBOL_NOT_FOUND,
NLF_COULD_NOT_LOAD,
NLF_CREATE_DIR,
NLF_CREATE_SHORTCUT,
NLF_CREATED_UNINST,
NLF_DEL_FILE,
NLF_DEL_ON_REBOOT,
NLF_ERR_CREATING_SHORTCUT,
NLF_ERR_CREATING,
NLF_ERR_DECOMPRESSING,
NLF_ERR_REG_DLL,
NLF_EXEC_SHELL,
NLF_EXEC,
NLF_EXTRACT,
NLF_ERR_WRITING,
NLF_INST_CORRUPTED,
NLF_NO_OLE,
NLF_OUTPUT_DIR,
NLF_REMOVE_DIR,
NLF_RENAME_ON_REBOOT,
NLF_RENAME,
NLF_SKIPPED,
NLF_COPY_DETAILS,
NLF_LOG_INSTALL_PROCESS,
NLF_BYTE,
NLF_KILO,
NLF_MEGA,
NLF_GIGA,
NLF_STRINGS_NO_SPECIAL,
NLF_FONT = NLF_STRINGS_NO_SPECIAL,
NLF_FONTSIZE,
NLF_RTL,
NLF_LANGUAGE,
NLF_STRINGS
};
struct NLF {
bool m_bLoaded;
char *m_szName;
char *m_szFont;
int m_iFontSize;
unsigned int m_uCodePage;
bool m_bRTL;
char *m_szStrings[NLF_STRINGS];
};
struct LanguageTable {
LANGID lang_id;
int dlg_offset;
StringsArray *lang_strings;
NLF nlf;
};
#endif