balor ?

일본의 syanji 라는 분이 만든 C++ Windows GUI 라이브러리.

 사이트 http://d.hatena.ne.jp/syanji/archive

balor은 Java나 .NET과 같이 사용하기 쉽고, MFC와 같이 Win32 API와 연동하기 쉬운 라이브러리를 목표로 한다.

라이센스: 비 상용, 상용 상관없이 사용할 수있다.

코드는 http://d.hatena.ne.jp/syanji/20110815/1313411983


위 코드를 받아서 VS2013에서 빌드를 하면 빌드 실패가 발생하고, 주석이 일본어로 되어 있어서 일부는 번역을 했고 나머지는 파일 인코딩 형식을 utf-8로 바꾸어서 제대로 나오게 했다. 일본어 주석은 앞으로 조금씩 번역해 나갈 예정이며, 번역되지 않은 부분은 네이버나 구글 번역을 사용하기 바란다.

본인이 포팅한 소스는 https://github.com/jacking75/balor-chb



balor의 특징

.NET이나 Java와 비슷한 인터페이스.

Win32 API나 STL과 연동하기 쉽다.

람다식으로 이벤트 기술.

스태틱 링크 라이브러리.

우측값참조 지원에 의해 인스턴스 생성에 동적메모리 할당을 강요하지 않는다.



balor의 기능

GUI 라이브러리

File 패스

레지스트리

COM

DLL

Local

등등



balor 이름공간

balor: balor 구현의 근간이 되는 클래스 군

balor::Convert: 기본 데이터 형과 String 형의 변환

balor::graphics: 그래픽스(GDI) 관련

balor::gui: GUI 관련 클래스 군

  GUI 부품(버튼이나 에디터 컨트롤 이나 스크롤바 등) 클래스가 정의 되어 있다.

  balor::gui::Control

    컨트롤 기본 클래스

    balor에서는 Windows 라는 클래스는 정의 되어 있지 않다.

    Button 클래스나 Edit 클래스, 그리고 이것들의 부모 윈도우가 되느 Frame 클래스도 모두 Control에서 파생하고 있다.

    이들 컨트롤을 조합해서 화면을 만든다

  balor::gui::Frame

    탑 레벨로 다른 컨트롤의 프레임이 되는 윈도우를 나타내는 클래스

    balor::gui::Control에서 파생하고 있다.

balor::io: I/O 관련 클래스 군

balor::locale: 로케일이나 캐릭터셋

balor::system: 시스템이나 환경, OS

balor::test: 유닛테스트나 디버그 관련



코드예 

Control ctrl;

ctrl.clientSize(400, 400); // 윈도우 사이즈 설정


bool visible = ctrl.visible() // 표시 상태를 취득


ctrl.onMouseDown() = [](Control::MouseDown &e) {

                 //

            };





저작자 표시
신고
by 흥배 2014.08.25 08:00