Пример #1
0
/**
 * Reads KScope's parameters from the standard configuration file.
 */
void KScopeConfig::load()
{
	uint i;
	
    KSharedConfig::Ptr pConf = KGlobal::config();

	// Need a working instance to get the system's default font (cannot be
	// initialised statically)
	s_cpDef.fonts[FileList] = KGlobalSettings::generalFont();
	s_cpDef.fonts[TagList] = KGlobalSettings::generalFont();
	s_cpDef.fonts[QueryWindow] = KGlobalSettings::generalFont();
	
	// Read the paths to required executables
    KConfigGroup groupProgram = pConf->group("Programs");
	m_cp.sCscopePath = groupProgram.readEntry("CScope", "/usr/bin/cscope");
	m_cp.sCtagsPath = groupProgram.readEntry("CTags", "/usr/bin/ctags");

	// Read size and position parameters
    KConfigGroup groupGeometry = pConf->group("Geometry");
	m_cp.bShowTagList = groupGeometry.readEntry("ShowTagList", 
		s_cpDef.bShowTagList);
    SPLIT_SIZES defV;
	m_cp.siEditor = groupGeometry.readEntry("Editor", defV);
	if (m_cp.siEditor.empty())
		m_cp.siEditor << 200 << 800;

	// Read the recent projects list
    KConfigGroup groupProjects = pConf->group("Projects");
	m_slProjects = groupProjects.readEntry("Recent", QStringList());

	// Read colour settings
    KConfigGroup groupColors = pConf->group("Colors");
	for (i = 0; i <= LAST_COLOR; i++) {
		m_cp.clrs[i] = groupColors.readEntry(COLOR_ENTRY(i),
			s_cpDef.clrs[i]);
	}

	// Read font settings
    KConfigGroup groupFonts = pConf->group("Fonts");
	for (i = 0; i <= LAST_FONT; i++) {
		m_cp.fonts[i] = groupFonts.readEntry(FONT_ENTRY(i),
			s_cpDef.fonts[i]);
	}
	
	// Other options
    KConfigGroup gOpt = pConf->group("Options");
	m_cp.ctagSortOrder = (CtagSort)gOpt.readEntry("CtagSortOrder", (int)s_cpDef.ctagSortOrder);
	m_cp.bReadOnlyMode = gOpt.readEntry("ReadOnlyMode", s_cpDef.bReadOnlyMode);
	m_cp.bLoadLastProj = gOpt.readEntry("LoadLastProj", s_cpDef.bLoadLastProj);
	m_cp.bAutoTagHl = gOpt.readEntry("AutoTagHl", s_cpDef.bAutoTagHl);
	m_cp.bBriefQueryCaptions = gOpt.readEntry("BriefQueryCaptions", s_cpDef.bBriefQueryCaptions);
	m_cp.bWarnModifiedOnDisk = gOpt.readEntry("WarnModifiedOnDisk", s_cpDef.bWarnModifiedOnDisk);
	m_cp.bAutoSortFiles = gOpt.readEntry("AutoSortFiles", s_cpDef.bAutoSortFiles);
	m_cp.bShowLinenum = gOpt.readEntry("ShowLinenum", s_cpDef.bShowLinenum);
	m_cp.sExtEditor = gOpt.readEntry("ExternalEditor", s_cpDef.sExtEditor);
	m_cp.profile = (SysProfile)gOpt.readEntry("SystemProfile", (int)s_cpDef.profile);
	m_cp.popup = (EditorPopup)gOpt.readEntry("EditorPopup", (int)s_cpDef.popup);
}
Пример #2
0
/**
 * Writes KScope's parameters from the standard configuration file.
 */
void KScopeConfig::store()
{
	uint i;
	
    KSharedConfig::Ptr pConf = KGlobal::config();

	// Write the paths to required executables
    KConfigGroup groupProgram = pConf->group("Programs");
	groupProgram.writeEntry("CScope", m_cp.sCscopePath);
	groupProgram.writeEntry("CTags", m_cp.sCtagsPath);

	// Write size and position parameters
    KConfigGroup groupGeometry = pConf->group("Geometry");
	groupGeometry.writeEntry("ShowTagList", m_cp.bShowTagList);
	groupGeometry.writeEntry("Editor", m_cp.siEditor);

	// Write the recent projects list
    KConfigGroup groupProjects = pConf->group("Projects");
	groupProjects.writeEntry("Recent", m_slProjects);

	// Write colour settings
    KConfigGroup groupColors = pConf->group("Colors");
	for (i = 0; i <= LAST_COLOR; i++)
		groupColors.writeEntry(COLOR_ENTRY(i), m_cp.clrs[i]);

	// Write font settings
	if (m_bFontsChanged) {
        KConfigGroup groupFonts = pConf->group("Fonts");
		for (i = 0; i <= LAST_FONT; i++)
			groupFonts.writeEntry(FONT_ENTRY(i), m_cp.fonts[i]);
		
		m_bFontsChanged = false;
	}
		
	// Other options
    KConfigGroup groupOptions = pConf->group("Options");
	groupOptions.writeEntry("CtagSortOrder", (uint)m_cp.ctagSortOrder);
	groupOptions.writeEntry("ReadOnlyMode", m_cp.bReadOnlyMode);
	groupOptions.writeEntry("LoadLastProj", m_cp.bLoadLastProj);
	groupOptions.writeEntry("AutoTagHl", m_cp.bAutoTagHl);
	groupOptions.writeEntry("BriefQueryCaptions", m_cp.bBriefQueryCaptions);
	groupOptions.writeEntry("WarnModifiedOnDisk", m_cp.bWarnModifiedOnDisk);
	groupOptions.writeEntry("AutoSortFiles", m_cp.bAutoSortFiles);
	groupOptions.writeEntry("ShowLinenum", m_cp.bShowLinenum);
	groupOptions.writeEntry("ExternalEditor", m_cp.sExtEditor);
	groupOptions.writeEntry("SystemProfile", (uint)m_cp.profile);
	groupOptions.writeEntry("EditorPopup", (uint)m_cp.popup);
	
	// Do not report it's the first time on the next run
    KConfigGroup groupGeneral = pConf->group("General");
	groupGeneral.writeEntry("FirstTime", false);
	groupGeneral.writeEntry(SHOW_WELCOME_ENTRY, false);
}
Пример #3
0
static void get_color(int tokid, int prev, int next,
                      const char *&color, const char *&end,
                      const char **palette =
                      DebuggerClient::DefaultCodeColors) {
  static const char code[] = {
    COLOR_ENTRY(258, T_REQUIRE_ONCE,             Keyword     ),
    COLOR_ENTRY(259, T_REQUIRE,                  Keyword     ),
    COLOR_ENTRY(260, T_EVAL,                     Keyword     ),
    COLOR_ENTRY(261, T_INCLUDE_ONCE,             Keyword     ),
    COLOR_ENTRY(262, T_INCLUDE,                  Keyword     ),
    COLOR_ENTRY(263, T_LOGICAL_OR,               Keyword     ),
    COLOR_ENTRY(264, T_LOGICAL_XOR,              Keyword     ),
    COLOR_ENTRY(265, T_LOGICAL_AND,              Keyword     ),
    COLOR_ENTRY(266, T_PRINT,                    Keyword     ),
    COLOR_ENTRY(267, T_SR_EQUAL,                 None        ),
    COLOR_ENTRY(268, T_SL_EQUAL,                 None        ),
    COLOR_ENTRY(269, T_XOR_EQUAL,                None        ),
    COLOR_ENTRY(270, T_OR_EQUAL,                 None        ),
    COLOR_ENTRY(271, T_AND_EQUAL,                None        ),
    COLOR_ENTRY(272, T_MOD_EQUAL,                None        ),
    COLOR_ENTRY(273, T_CONCAT_EQUAL,             None        ),
    COLOR_ENTRY(274, T_DIV_EQUAL,                None        ),
    COLOR_ENTRY(275, T_MUL_EQUAL,                None        ),
    COLOR_ENTRY(276, T_MINUS_EQUAL,              None        ),
    COLOR_ENTRY(277, T_PLUS_EQUAL,               None        ),
    COLOR_ENTRY(278, T_BOOLEAN_OR,               None        ),
    COLOR_ENTRY(279, T_BOOLEAN_AND,              None        ),
    COLOR_ENTRY(280, T_IS_NOT_IDENTICAL,         None        ),
    COLOR_ENTRY(281, T_IS_IDENTICAL,             None        ),
    COLOR_ENTRY(282, T_IS_NOT_EQUAL,             None        ),
    COLOR_ENTRY(283, T_IS_EQUAL,                 None        ),
    COLOR_ENTRY(284, T_IS_GREATER_OR_EQUAL,      None        ),
    COLOR_ENTRY(285, T_IS_SMALLER_OR_EQUAL,      None        ),
    COLOR_ENTRY(286, T_SR,                       None        ),
    COLOR_ENTRY(287, T_SL,                       None        ),
    COLOR_ENTRY(288, T_INSTANCEOF,               Keyword     ),
    COLOR_ENTRY(289, T_UNSET_CAST,               Keyword     ),
    COLOR_ENTRY(290, T_BOOL_CAST,                Keyword     ),
    COLOR_ENTRY(291, T_OBJECT_CAST,              Keyword     ),
    COLOR_ENTRY(292, T_ARRAY_CAST,               Keyword     ),
    COLOR_ENTRY(293, T_STRING_CAST,              Keyword     ),
    COLOR_ENTRY(294, T_DOUBLE_CAST,              Keyword     ),
    COLOR_ENTRY(295, T_INT_CAST,                 Keyword     ),
    COLOR_ENTRY(296, T_DEC,                      None        ),
    COLOR_ENTRY(297, T_INC,                      None        ),
    COLOR_ENTRY(298, T_CLONE,                    Keyword     ),
    COLOR_ENTRY(299, T_NEW,                      Keyword     ),
    COLOR_ENTRY(300, T_EXIT,                     Keyword     ),
    COLOR_ENTRY(301, T_IF,                       Keyword     ),
    COLOR_ENTRY(302, T_ELSEIF,                   Keyword     ),
    COLOR_ENTRY(303, T_ELSE,                     Keyword     ),
    COLOR_ENTRY(304, T_ENDIF,                    Keyword     ),
    COLOR_ENTRY(305, T_LNUMBER,                  None        ),
    COLOR_ENTRY(306, T_DNUMBER,                  None        ),
    COLOR_ENTRY(307, T_STRING,                   None        ),
    COLOR_ENTRY(308, T_STRING_VARNAME,           Variable    ),
    COLOR_ENTRY(309, T_VARIABLE,                 Variable    ),
    COLOR_ENTRY(310, T_NUM_STRING,               None        ),
    COLOR_ENTRY(311, T_INLINE_HTML,              Html        ),
    COLOR_ENTRY(312, T_CHARACTER,                Keyword     ),
    COLOR_ENTRY(313, T_BAD_CHARACTER,            Keyword     ),
    COLOR_ENTRY(314, T_ENCAPSED_AND_WHITESPACE,  String      ),
    COLOR_ENTRY(315, T_CONSTANT_ENCAPSED_STRING, String      ),
    COLOR_ENTRY(316, T_ECHO,                     Keyword     ),
    COLOR_ENTRY(317, T_DO,                       Keyword     ),
    COLOR_ENTRY(318, T_WHILE,                    Keyword     ),
    COLOR_ENTRY(319, T_ENDWHILE,                 Keyword     ),
    COLOR_ENTRY(320, T_FOR,                      Keyword     ),
    COLOR_ENTRY(321, T_ENDFOR,                   Keyword     ),
    COLOR_ENTRY(322, T_FOREACH,                  Keyword     ),
    COLOR_ENTRY(323, T_ENDFOREACH,               Keyword     ),
    COLOR_ENTRY(324, T_DECLARE,                  Keyword     ),
    COLOR_ENTRY(325, T_ENDDECLARE,               Keyword     ),
    COLOR_ENTRY(326, T_AS,                       Keyword     ),
    COLOR_ENTRY(327, T_SWITCH,                   Keyword     ),
    COLOR_ENTRY(328, T_ENDSWITCH,                Keyword     ),
    COLOR_ENTRY(329, T_CASE,                     Keyword     ),
    COLOR_ENTRY(330, T_DEFAULT,                  Keyword     ),
    COLOR_ENTRY(331, T_BREAK,                    Keyword     ),
    COLOR_ENTRY(332, T_CONTINUE,                 Keyword     ),
    COLOR_ENTRY(333, T_FUNCTION,                 Keyword     ),
    COLOR_ENTRY(334, T_CONST,                    Keyword     ),
    COLOR_ENTRY(335, T_RETURN,                   Keyword     ),
    COLOR_ENTRY(336, T_TRY,                      Keyword     ),
    COLOR_ENTRY(337, T_CATCH,                    Keyword     ),
    COLOR_ENTRY(338, T_THROW,                    Keyword     ),
    COLOR_ENTRY(339, T_USE,                      Keyword     ),
    COLOR_ENTRY(340, T_GLOBAL,                   Keyword     ),
    COLOR_ENTRY(341, T_PUBLIC,                   Keyword     ),
    COLOR_ENTRY(342, T_PROTECTED,                Keyword     ),
    COLOR_ENTRY(343, T_PRIVATE,                  Keyword     ),
    COLOR_ENTRY(344, T_FINAL,                    Keyword     ),
    COLOR_ENTRY(345, T_ABSTRACT,                 Keyword     ),
    COLOR_ENTRY(346, T_STATIC,                   Keyword     ),
    COLOR_ENTRY(347, T_VAR,                      Keyword     ),
    COLOR_ENTRY(348, T_UNSET,                    Keyword     ),
    COLOR_ENTRY(349, T_ISSET,                    Keyword     ),
    COLOR_ENTRY(350, T_EMPTY,                    Keyword     ),
    COLOR_ENTRY(351, T_HALT_COMPILER,            Keyword     ),
    COLOR_ENTRY(352, T_CLASS,                    Keyword     ),
    COLOR_ENTRY(353, T_INTERFACE,                Keyword     ),
    COLOR_ENTRY(354, T_EXTENDS,                  Keyword     ),
    COLOR_ENTRY(355, T_IMPLEMENTS,               Keyword     ),
    COLOR_ENTRY(356, T_OBJECT_OPERATOR,          None        ),
    COLOR_ENTRY(357, T_DOUBLE_ARROW,             None        ),
    COLOR_ENTRY(358, T_LIST,                     Keyword     ),
    COLOR_ENTRY(359, T_ARRAY,                    Keyword     ),
    COLOR_ENTRY(360, T_CLASS_C,                  Constant    ),
    COLOR_ENTRY(361, T_METHOD_C,                 Constant    ),
    COLOR_ENTRY(362, T_FUNC_C,                   Constant    ),
    COLOR_ENTRY(363, T_LINE,                     Constant    ),
    COLOR_ENTRY(364, T_FILE,                     Constant    ),
    COLOR_ENTRY(365, T_COMMENT,                  Comment     ),
    COLOR_ENTRY(366, T_DOC_COMMENT,              Comment     ),
    COLOR_ENTRY(367, T_OPEN_TAG,                 Tag         ),
    COLOR_ENTRY(368, T_OPEN_TAG_WITH_ECHO,       Tag         ),
    COLOR_ENTRY(369, T_CLOSE_TAG,                Tag         ),
    COLOR_ENTRY(370, T_WHITESPACE,               None        ),
    COLOR_ENTRY(371, T_START_HEREDOC,            Keyword     ),
    COLOR_ENTRY(372, T_END_HEREDOC,              Keyword     ),
    COLOR_ENTRY(373, T_DOLLAR_OPEN_CURLY_BRACES, None        ),
    COLOR_ENTRY(374, T_CURLY_OPEN,               None        ),
    COLOR_ENTRY(375, T_PAAMAYIM_NEKUDOTAYIM,     None        ),
  };

  if (tokid == 307 /* T_STRING */) {
    int type = CodeColorConstant;
    if (prev == '$') {
      type = CodeColorVariable;
    } else if (prev == 333 /* T_FUNCTION */ ||
               prev == 352 /* T_CLASS */    ||
               prev == 353 /* T_INTERFACE */) {
      type = CodeColorDeclaration;
    } else if (next == '(') {
      type = CodeColorNone;
    }
    color = palette[type * 2];
    end = palette[type * 2 + 1];
  } else if (tokid >= 258 && tokid <= 375) {
    tokid -= 258;
    char c = code[tokid];
    color = palette[(int)c];
    end = palette[(int)(c+1)];
  } else {
    color = end = NULL;
  }
}
Пример #4
0
static void get_color(int tokid, int prev, int next,
                      const char *&color, const char *&end,
                      const char **palette =
                      DebuggerClient::DefaultCodeColors) {

#undef YYTOKENTYPE
#ifdef YYTOKEN_MAP
#undef YYTOKEN_MAP
#undef YYTOKEN
#endif
#define YYTOKEN(num, name) (char)(CodeColorKeyword * 2)
#define YYTOKEN_MAP static char code[] =
#include <util/parser/hphp.tab.hpp>
#undef YYTOKEN_MAP
#undef YYTOKEN

#define COLOR_ENTRY(name, type) \
  code[name - YYTOKEN_MIN] = (char)(CodeColor ## type * 2)

  static bool code_inited = false;
  if (!code_inited) {
    code_inited = true;

    COLOR_ENTRY(T_SR_EQUAL,                 None        );
    COLOR_ENTRY(T_SL_EQUAL,                 None        );
    COLOR_ENTRY(T_XOR_EQUAL,                None        );
    COLOR_ENTRY(T_OR_EQUAL,                 None        );
    COLOR_ENTRY(T_AND_EQUAL,                None        );
    COLOR_ENTRY(T_MOD_EQUAL,                None        );
    COLOR_ENTRY(T_CONCAT_EQUAL,             None        );
    COLOR_ENTRY(T_DIV_EQUAL,                None        );
    COLOR_ENTRY(T_MUL_EQUAL,                None        );
    COLOR_ENTRY(T_MINUS_EQUAL,              None        );
    COLOR_ENTRY(T_PLUS_EQUAL,               None        );
    COLOR_ENTRY(T_BOOLEAN_OR,               None        );
    COLOR_ENTRY(T_BOOLEAN_AND,              None        );
    COLOR_ENTRY(T_IS_NOT_IDENTICAL,         None        );
    COLOR_ENTRY(T_IS_IDENTICAL,             None        );
    COLOR_ENTRY(T_IS_NOT_EQUAL,             None        );
    COLOR_ENTRY(T_IS_EQUAL,                 None        );
    COLOR_ENTRY(T_IS_GREATER_OR_EQUAL,      None        );
    COLOR_ENTRY(T_IS_SMALLER_OR_EQUAL,      None        );
    COLOR_ENTRY(T_SR,                       None        );
    COLOR_ENTRY(T_SL,                       None        );
    COLOR_ENTRY(T_DEC,                      None        );
    COLOR_ENTRY(T_INC,                      None        );
    COLOR_ENTRY(T_LNUMBER,                  None        );
    COLOR_ENTRY(T_DNUMBER,                  None        );
    COLOR_ENTRY(T_STRING,                   None        );
    COLOR_ENTRY(T_STRING_VARNAME,           Variable    );
    COLOR_ENTRY(T_VARIABLE,                 Variable    );
    COLOR_ENTRY(T_NUM_STRING,               None        );
    COLOR_ENTRY(T_INLINE_HTML,              Html        );
    COLOR_ENTRY(T_ENCAPSED_AND_WHITESPACE,  String      );
    COLOR_ENTRY(T_CONSTANT_ENCAPSED_STRING, String      );
    COLOR_ENTRY(T_OBJECT_OPERATOR,          None        );
    COLOR_ENTRY(T_DOUBLE_ARROW,             None        );
    COLOR_ENTRY(T_CLASS_C,                  Constant    );
    COLOR_ENTRY(T_METHOD_C,                 Constant    );
    COLOR_ENTRY(T_FUNC_C,                   Constant    );
    COLOR_ENTRY(T_LINE,                     Constant    );
    COLOR_ENTRY(T_FILE,                     Constant    );
    COLOR_ENTRY(T_DIR,                      Constant    );
    COLOR_ENTRY(T_COMMENT,                  Comment     );
    COLOR_ENTRY(T_DOC_COMMENT,              Comment     );
    COLOR_ENTRY(T_OPEN_TAG,                 Tag         );
    COLOR_ENTRY(T_OPEN_TAG_WITH_ECHO,       Tag         );
    COLOR_ENTRY(T_CLOSE_TAG,                Tag         );
    COLOR_ENTRY(T_WHITESPACE,               None        );
    COLOR_ENTRY(T_DOLLAR_OPEN_CURLY_BRACES, None        );
    COLOR_ENTRY(T_CURLY_OPEN,               None        );
    COLOR_ENTRY(T_PAAMAYIM_NEKUDOTAYIM,     None        );
  }

  if (tokid == T_STRING) {
    int type = CodeColorConstant;
    if (prev == '$') {
      type = CodeColorVariable;
    } else if (prev == T_FUNCTION || prev == T_CLASS || prev == T_INTERFACE) {
      type = CodeColorDeclaration;
    } else if (next == '(') {
      type = CodeColorNone;
    }
    color = palette[type * 2];
    end = palette[type * 2 + 1];
  } else if (tokid >= YYTOKEN_MIN && tokid <= YYTOKEN_MAX) {
    tokid -= YYTOKEN_MIN;
    char c = code[tokid];
    color = palette[(int)c];
    end = palette[(int)(c+1)];
  } else {
    color = end = NULL;
  }
}
Пример #5
0
void loadTheme() {
	#define COLOR_ENTRY(name) { #name, CONFIG_TYPE_HEXDECIMAL, (void *)&name }
	ConfigEntry colors_entries[] = {
		// Shell colors
		COLOR_ENTRY(BACKGROUND_COLOR),
		COLOR_ENTRY(TITLE_COLOR),
		COLOR_ENTRY(PATH_COLOR),
		COLOR_ENTRY(DATE_TIME_COLOR),

		// Settings colors
		COLOR_ENTRY(SETTINGS_MENU_COLOR),
		COLOR_ENTRY(SETTINGS_MENU_FOCUS_COLOR),
		COLOR_ENTRY(SETTINGS_MENU_TITLE_COLOR),
		COLOR_ENTRY(SETTINGS_MENU_ITEM_COLOR),
		COLOR_ENTRY(SETTINGS_MENU_OPTION_COLOR),

		// File browser colors
		COLOR_ENTRY(FOCUS_COLOR),
		COLOR_ENTRY(FILE_COLOR),
		COLOR_ENTRY(SFO_COLOR),
		COLOR_ENTRY(TXT_COLOR),
		COLOR_ENTRY(FOLDER_COLOR),
		COLOR_ENTRY(IMAGE_COLOR),
		COLOR_ENTRY(ARCHIVE_COLOR),
		COLOR_ENTRY(SCROLL_BAR_COLOR),
		COLOR_ENTRY(SCROLL_BAR_BG_COLOR),
		COLOR_ENTRY(MARKED_COLOR),

		// Context menu colors
		COLOR_ENTRY(CONTEXT_MENU_TEXT_COLOR),
		COLOR_ENTRY(CONTEXT_MENU_FOCUS_COLOR),
		COLOR_ENTRY(CONTEXT_MENU_COLOR),
		COLOR_ENTRY(CONTEXT_MENU_MORE_COLOR),
		COLOR_ENTRY(INVISIBLE_COLOR),

		// Dialog colors
		COLOR_ENTRY(DIALOG_COLOR),
		COLOR_ENTRY(DIALOG_BG_COLOR),
		COLOR_ENTRY(PROGRESS_BAR_COLOR),
		COLOR_ENTRY(PROGRESS_BAR_BG_COLOR),

		// Hex editor colors
		COLOR_ENTRY(HEX_COLOR),
		COLOR_ENTRY(HEX_OFFSET_COLOR),
		COLOR_ENTRY(HEX_NIBBLE_COLOR),

		// Text editor colors
		COLOR_ENTRY(TEXT_COLOR),
		COLOR_ENTRY(TEXT_FOCUS_COLOR),
		COLOR_ENTRY(TEXT_LINE_NUMBER_COLOR),
		COLOR_ENTRY(TEXT_LINE_NUMBER_COLOR_FOCUS),
		COLOR_ENTRY(TEXT_HIGHLIGHT_COLOR),

		// Photo viewer colors
		COLOR_ENTRY(PHOTO_ZOOM_COLOR),

		// Audio player colors
		COLOR_ENTRY(AUDIO_INFO_ASSIGN),
		COLOR_ENTRY(AUDIO_INFO),
		COLOR_ENTRY(AUDIO_SPEED),
		COLOR_ENTRY(AUDIO_TIME_CURRENT),
		COLOR_ENTRY(AUDIO_TIME_SLASH),
		COLOR_ENTRY(AUDIO_TIME_TOTAL),
		COLOR_ENTRY(AUDIO_TIME_BAR),
		COLOR_ENTRY(AUDIO_TIME_BAR_BG),
	};

	int i;

	// Load default config file
	readConfigBuffer(&_binary_resources_colors_txt_start, (int)&_binary_resources_colors_txt_size, colors_entries, sizeof(colors_entries) / sizeof(ConfigEntry));

	// Load custom config file
	if (use_custom_config) {
		char path[MAX_PATH_LENGTH];

		char *theme_name = NULL;
		ConfigEntry theme_entries[] = {
			{ "THEME_NAME", CONFIG_TYPE_STRING, (void *)&theme_name },
		};

		// Load theme config
		readConfig("ux0:VitaShell/theme/theme.txt", theme_entries, sizeof(theme_entries) / sizeof(ConfigEntry));

		if (theme_name) {
			// Load colors config
			snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/colors.txt", theme_name);
			readConfig(path, colors_entries, sizeof(colors_entries) / sizeof(ConfigEntry));
			
			// Font
			snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/font.pgf", theme_name);
 			font = vita2d_load_custom_pgf(path);
			
			// Load theme
			for (i = 0; i < N_THEME_IMAGES; i++) {
				snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/%s", theme_name, theme_images[i].name);
				if (theme_images[i].texture && *(theme_images[i].texture) == NULL)
					*(theme_images[i].texture) = vita2d_load_PNG_file(path);
			}
		}
	}

	// Load default theme
	for (i = 0; i < N_THEME_IMAGES; i++) {
		if (theme_images[i].texture && *(theme_images[i].texture) == NULL && theme_images[i].default_buf)
			*(theme_images[i].texture) = vita2d_load_PNG_buffer(theme_images[i].default_buf);
	}

	// Load default pngs
	if (!dialog_image) {
		dialog_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT);
		void *data = vita2d_texture_get_datap(dialog_image);

		int y;
		for (y = 0; y < SCREEN_HEIGHT; y++) {
			int x;
			for (x = 0; x < SCREEN_WIDTH; x++) {
				((uint32_t *)data)[x + SCREEN_WIDTH * y] = DIALOG_BG_COLOR;
			}
		}
	}

	if (!context_image) {
		context_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT);
		void *data = vita2d_texture_get_datap(context_image);

		int y;
		for (y = 0; y < SCREEN_HEIGHT; y++) {
			int x;
			for (x = 0; x < SCREEN_WIDTH; x++) {
				((uint32_t *)data)[x + SCREEN_WIDTH * y] = CONTEXT_MENU_COLOR;
			}
		}
	}

	if (!context_more_image) {
		context_more_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT);
		void *data = vita2d_texture_get_datap(context_more_image);

		int y;
		for (y = 0; y < SCREEN_HEIGHT; y++) {
			int x;
			for (x = 0; x < SCREEN_WIDTH; x++) {
				((uint32_t *)data)[x + SCREEN_WIDTH * y] = CONTEXT_MENU_MORE_COLOR;
			}
		}
	}

	if (!settings_image) {
		settings_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT);
		void *data = vita2d_texture_get_datap(settings_image);

		int y;
		for (y = 0; y < SCREEN_HEIGHT; y++) {
			int x;
			for (x = 0; x < SCREEN_WIDTH; x++) {
				((uint32_t *)data)[x + SCREEN_WIDTH * y] = SETTINGS_MENU_COLOR;
			}
		}
	}

	// Load system fonts
	if (!font)
		font = loadSystemFonts();

	// Font size cache
	for (i = 0; i < 256; i++) {
		char character[2];
		character[0] = i;
		character[1] = '\0';

		font_size_cache[i] = vita2d_pgf_text_width(font, FONT_SIZE, character);
	}
}
Пример #6
0
/*
 * APOLLO_init
 *
 *	initialises window to occupy current window
 */
APOLLO_init()
{
	pad_$window_desc_t 	window;
	int 	size, prefx, prefy, prefxs, prefys, x, y, w, h;
	short 	i;

	pad_$set_scale(stream_$stdout,
		       1,
		       1,
		       status);

	pad_$inq_windows(stream_$stdout,
			 window_info,
				  10,
			   n_windows,
			     status);

	w = window_info[0].width;
	h = window_info[0].height;
	x = window_info[0].left;
	y = window_info[0].top;

	getprefposandsize(&prefx, &prefy, &prefxs, &prefys);

	if (prefx > -1) {
		x = prefx;
		y = prefy;
	}

	if (prefxs > -1) {
		w = prefxs;
		h = prefys;
	}

	size = MIN(w, h);
	vdevice.sizeX = vdevice.sizeY = size - 1;
	vdevice.sizeSx = w - 1;
	vdevice.sizeSy = h - 1;

        init_bitmap_size.x_size = w;
        init_bitmap_size.y_size = h;

	source.window_base.x_coord = source.window_base.y_coord = 0;
	source.window_size.x_size = init_bitmap_size.x_size;
	source.window_size.y_size = init_bitmap_size.y_size;
	dest_pos.x_coord = dest_pos.y_coord = 0;

	/*
	 * Inquire about the actual display ....
	 */

	gpr_$inq_disp_characteristics(mode,
				      stream_$stdout,
				      (short)60,
				      disp,
				      disp_len,
				      status);

	vdevice.depth = disp.n_planes;
	hi_plane_id = disp.n_planes - 1;

	if (prefx == -1 && prefxs == -1) {
		stream_id = stream_$stdout;
	} else {
		window.top = y;
		window.left = x;
		window.width = w;
		window.height = h;

		pad_$create_window("", 0,
				pad_$transcript, 
				1, 
				window,
				stream_id,
				status
		);

		pad_$set_auto_close(stream_id, 1, true, status);
	}

        gpr_$init(mode,
                  stream_id,
                  init_bitmap_size,
                  hi_plane_id,
                  front_bitmap,
                  status);

	current_bitmap = front_bitmap;

	gpr_$set_auto_refresh(true, status);
  
	gpr_$set_cursor_active(false,status);

	/*  Set up all the character stuff  */

	first_time = 1;

	/*  create a key set for the event interupts  */

	lib_$init_set(keys, (short)256);
	lib_$init_set(mouse_keys, (short)6);

	lib_$add_to_set(mouse_keys, (short)6, KBD_$M1D);
	lib_$add_to_set(mouse_keys, (short)6, KBD_$M2D);
	lib_$add_to_set(mouse_keys, (short)6, KBD_$M3D);
	lib_$add_to_set(mouse_keys, (short)6, KBD_$M1U);
	lib_$add_to_set(mouse_keys, (short)6, KBD_$M2U);
	lib_$add_to_set(mouse_keys, (short)6, KBD_$M3U);

	for (i = 0; i < 128; i++) 
		lib_$add_to_set(keys, (short)256, (short)i);

	gpr_$enable_input(gpr_$keystroke, keys, status);
	gpr_$enable_input(gpr_$buttons, keys, status);
	gpr_$enable_input(gpr_$locator, keys, status);

	/*  set default color (colour)   */

	if (disp.n_planes > 1) {
		gpr_$inq_color_map(0L, (short)MAXCOLORS, old_color_value, status);
		gpr_$inq_color_map(0L, (short)MAXCOLORS, color_value, status);

		color_value[0] = COLOR_ENTRY(0,0,0);         /* color--black   */
		color_value[1] = COLOR_ENTRY(255,0,0);       /* color--red     */
		color_value[2] = COLOR_ENTRY(0,255,0);       /* color--green   */
		color_value[3] = COLOR_ENTRY(255,255,0);     /* color--yellow  */
		color_value[4] = COLOR_ENTRY(0,0,255);       /* color--blue    */
		color_value[5] = COLOR_ENTRY(255,0,255);     /* color--magenta */
		color_value[6] = COLOR_ENTRY(0,255,255);     /* color--cyan    */
		color_value[7] = COLOR_ENTRY(255,255,255);   /* color--white   */

		/* modify color table */
		gpr_$acquire_display(status);
		gpr_$set_color_map((long)0,
				    (short)MAXCOLORS,
				    color_value,
				    status);
		gpr_$release_display(status);
	}

	back_used = 0;

	return(1);
}