vte를 이용한 간단한 터미널
Programming/GTK+ 2007. 1. 14. 12:00

간단한 위젯인데.. 이거 하나만 쓰면 그냥 터미널이 바로 뜨니..
조금만 해보면 자신만의 터미널을 만드는것도 쉬울거 같네요..
gnome-terminal,tilda가 이 vte 라이브러리를 사용하네요
아마 가상 터미널 애뮬리이팅? 의 약자인듯하네여..
30줄도 안대는 코드로 터미널 하나가 완성됩니다
해더->vte/vte.h,gtk/gtk.h
1 #include
2 #include
3
4 int main(int argc,char *argv[])
5 {
6 GtkWidget *terminal;
7 GtkWidget *window;
8
9 gtk_init(&argc,&argv);
10
11 window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
12
13 terminal=vte_terminal_new(); //위젯 생성
14 //터미널 씰헁조건 같은거..
15 vte_terminal_fork_command(VTE_TERMINAL(terminal),
16 getenv("SHELL"),NULL,NULL,"/home/lowid",
17 TRUE,TRUE,TRUE);
18
19 gtk_container_add(GTK_CONTAINER(window),terminal);
20
21 g_signal_connect(GTK_OBJECT(window),"destroy",gtk_main_quit,NULL);
22 g_signal_connect(GTK_OBJECT(terminal),"child-exited",gtk_main_quit,NULL); //터미널에서 exit 쳤을때
23 gtk_widget_show_all(window);
24
25 gtk_main();
26 return 0;
27 }
다른건 gtk창만드는것과 같고 다른게 있다면 vte의 함수를 가따 썻다는거 뿐
함수는 다음을 참고 하세연..클뤽~!
참고하면 좋은 소스
링크타고 보시면 아시겠지만 터미널을 제어할수 있는 함수가 몇개 되더군요..
이거 이용하면 그놈터미널정도(?)의 수준으로 터미널 만드는건 아주 어려운일 같은 정도는 아닌거 같습니다
추가>vte_terminal_fork_command 함수의 두번째 인자 getenv("SHELL")을 해야 쉘이 뜹니당..(처음 프로그램 정해줌)
안해주면 커서만 가만히 놀고 있음.. 이거 몰라가꾸 하루죙일 뻘짓,..
'Programming > GTK+' 카테고리의 다른 글
xlib 에러 해결! (2) | 2007.02.28 |
---|---|
gtk Thread (2) | 2007.02.27 |
libglade 컴파일법 (1) | 2006.12.14 |
TODAY.... 삽질 DAY (6) | 2006.08.09 |
(초보) gtk 작성팁 (10) | 2006.08.04 |