コード例 #1
0
ファイル: main.c プロジェクト: Sorinara/lowterm
int main(int argc,char *argv[])
{
    LowTerm lowterm;
	int i;

	if(Config_Get(argc, argv, &lowterm) != 0){
        fprintf(stderr, "Total Terminal Count : %d\n", lowterm.terminal_count);
        return -1;
    }

    Stack_New(&lowterm.visible_list, lowterm.terminal_count);

	gtk_init(&argc, &argv);

    for(i = 0;i < lowterm.terminal_count; i++){
        /* fprintf(stderr, "Terminal Address : %p\n", &(lowterm.terminal[i])); */
        lowterm.terminal[i].visible_list_pointer  = &(lowterm.visible_list);
        Terminal_New(i, &(lowterm.terminal[i]));
        Terminal_Set(lowterm.terminal[i]);
        Terminal_Show_Hide(lowterm.terminal[i].window, &(lowterm.terminal[i]));
    }

    // 초기 윈도우 크기(width/height), 윈도우명, 실행명령을 파라미터로 받을수 있도록 한다.
    // urxvt를 밀어버리고 이걸로 쓸 예정, urxvt는 한글입력이 뭐같아서 싫어
	gtk_main();

	free(lowterm.terminal);
    Stack_Delete(&(lowterm.visible_list));

	return 0;
}
コード例 #2
0
ファイル: TerminalInputLine.c プロジェクト: tindzk/Jivai
int main(void) {
	Terminal term = Terminal_New(true);
	Terminal_Configure(&term, false, false);

	Terminal_InputLine line = Terminal_InputLine_New(&term);

	App app;
	app.interrupt = false;

	line.onKeyPress = Terminal_InputLine_OnKeyPress_For(&app, App_OnKeyPress);
	line.onKeyEnter = Terminal_InputLine_OnKeyEnter_For(&app, App_OnKeyEnter);

	int res = ExitStatus_Success;

	try {
		while (!app.interrupt) {
			Terminal_InputLine_Process(&line);
		}
	} catchAny {
		Exception_Print(e);
		res = ExitStatus_Failure;
	} finally {
		Terminal_InputLine_Destroy(&line);
		Terminal_Destroy(&term);
	} tryEnd;

	return res;
}
コード例 #3
0
ファイル: Terminal.c プロジェクト: tindzk/Jivai
int main(void) {
	Terminal term = Terminal_New(true);
	Terminal_Configure(&term, false, false);

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Normal,
		$("Normal."));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Normal,
		$("\n"));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Bold,
		$("Bold font.\n"));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Italics,
		$("Italic font.\n"));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Underline,
		$("Underlined font.\n"));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Blink,
		$("Blinking font.\n"));

	Terminal_Print(&term,
		Terminal_Color_ForegroundRed,
		Terminal_Font_Normal,
		$("Red foreground.\n"));

	Terminal_Print(&term,
		Terminal_Color_BackgroundRed,
		Terminal_Font_Normal,
		$("Red background."));

	Terminal_Print(&term,
		Terminal_Color_Normal,
		Terminal_Font_Normal,
		$("\n"));

	Terminal_Print(&term,
		Terminal_Color_ForegroundRed,
		Terminal_Font_Bold | Terminal_Font_Italics,
		$("Red foreground, bold and italic font.\n"));

	Terminal_Destroy(&term);

	return ExitStatus_Success;
}
コード例 #4
0
ファイル: Application.c プロジェクト: tindzk/Jivai
def(void, Init, int argc, char *argv[], char *envp[]) {
	FPU_setExceptions(FPU_Exception_All & ~FPU_Exception_InexactResult);

	size_t envItems = 0;
	for (char **cur = envp; *cur != null; cur++) {
		envItems++;
	}

	this->base   = String_FromNul(argv[0]);
	this->env    = RdStringArray_New(envItems);
	this->args   = RdStringArray_New(argc - 1);
	this->logger = Logger_New(Logger_Printer_For(this, ref(OnLogMessage)));
	this->term   = Terminal_New(false);
	Terminal_SetOutput(&this->term, Channel_StdErr);

	for (int i = 1; i < argc; i++) {
		RdStringArray_Push(&this->args, String_FromNul(argv[i]));
	}

	fwd(i, envItems) {
		RdStringArray_Push(&this->env, String_FromNul(envp[i]));
	}