[Cmake-commits] [cmake-commits] hoffman committed CMakeLists.txt 1.8.12.1 1.8.12.2 HelloWorldX11.cxx NONE 1.2.2.2
cmake-commits at cmake.org
cmake-commits at cmake.org
Sun Apr 20 20:45:01 EDT 2008
Update of /cvsroot/CMake/CMake/Tests/X11
In directory public:/mounts/ram/cvs-serv31631/Tests/X11
Modified Files:
Tag: CMake-2-6
CMakeLists.txt
Added Files:
Tag: CMake-2-6
HelloWorldX11.cxx
Log Message:
ENH: merge in from main tree
Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/X11/CMakeLists.txt,v
retrieving revision 1.8.12.1
retrieving revision 1.8.12.2
diff -C 2 -d -r1.8.12.1 -r1.8.12.2
*** CMakeLists.txt 25 Mar 2008 23:59:46 -0000 1.8.12.1
--- CMakeLists.txt 21 Apr 2008 00:44:59 -0000 1.8.12.2
***************
*** 1,5 ****
# a simple C only test case
cmake_minimum_required (VERSION 2.6)
! PROJECT (UseX11 C)
INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
--- 1,5 ----
# a simple C only test case
cmake_minimum_required (VERSION 2.6)
! PROJECT (UseX11 CXX C)
INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
***************
*** 24,26 ****
--- 24,35 ----
INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(UseX11 ${X11_LIBRARIES})
+ IF(APPLE)
+ ADD_EXECUTABLE(HelloWorldX11 HelloWorldX11.cxx)
+ TARGET_LINK_LIBRARIES(HelloWorldX11 ${X11_LIBRARIES})
+ install( TARGETS HelloWorldX11 DESTINATION bin)
+ # build a CPack driven installer package
+ set(CPACK_PACKAGE_NAME HelloWorldX11Package)
+ set(CPACK_PACKAGE_EXECUTABLES HelloWorldX11 HelloWorldX11)
+ include(CPack)
+ ENDIF(APPLE)
ENDIF(X11_FOUND)
--- NEW FILE: HelloWorldX11.cxx ---
/*** START MAIN.H ***/
/* http://www.geocities.com/jeff_louie/x11/helloworld.htm* */
/*
* main.h
* TestX
*
* Created by Jeff Louie on Tue Feb 03 2004.
* Copyright (c) 2004 __MyCompanyName__. All rights reserved.
*
*/
#ifndef MAIN_H
#define MAIN_H 1
#include <iostream>
/* include the X library headers */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
class Main {
public:
// constructor
Main(int argc, char * const argv[]);
//virtual ~Main();
private:
/* here are our X variables */
Display *dis;
int screen;
Window win;
GC gc;
/* here are our X routines declared! */
void init_x();
void close_x();
void redraw();
int delay(int i);
};
#endif
/*** END MAIN.H ***/
/*** START MAIN.CPP ***/
// modified from Brian Hammond's Howdy program at
// http://www.insanityengine.com/doc/x11/xintro.html
// jeff louie 02.05.2004
int main (int argc, char * const argv[]) {
Main m(argc, argv);
return 0;
}
//Main::~Main() {;};
Main::Main (int argc, char * const argv[]) {
XEvent event; // XEvent declaration
KeySym key; // KeyPress Events
char text[255]; // char buffer for KeyPress Events
init_x();
// event loop
while(1) {
// get the next event and stuff it into our event variable.
// Note: only events we set the mask for are detected!
XNextEvent(dis, &event);
switch (event.type) {
int x;
int y;
case Expose:
if (event.xexpose.count==0) {
redraw();
}
break;
case KeyPress:
if (XLookupString(&event.xkey,text,255,&key,0)==1) {
// use the XLookupString routine to convert the invent
// KeyPress data into regular text. Weird but necessary...
if ((text[0]=='q') || (text[0]=='Q')) {
close_x();
}
else {
// echo key press
printf("You pressed the %c key!\n",text[0]);
}
}
break;
case ButtonPress:
// get cursor position
x= event.xbutton.x;
y= event.xbutton.y;
strcpy(text,"X is FUN!");
XSetForeground(dis,gc,rand()%event.xbutton.x%255);
// draw text at cursor
XDrawString(dis,win,gc,x,y, text, strlen(text));
break;
default:
printf("Unhandled event.\n");
}
}
}
void Main::init_x() {
unsigned long black,white;
dis=XOpenDisplay(NULL);
screen=DefaultScreen(dis);
black=BlackPixel(dis,screen),
white=WhitePixel(dis, screen);
win=XCreateSimpleWindow(dis,DefaultRootWindow(dis),0,0,
300, 300, 5,black, white);
XSetStandardProperties(dis,win,"Hello World","Hi",None,NULL,0,NULL);
XSelectInput(dis, win, ExposureMask|ButtonPressMask|KeyPressMask);
// get Graphics Context
gc=XCreateGC(dis, win, 0,0);
XSetBackground(dis,gc,white);
XSetForeground(dis,gc,black);
XClearWindow(dis, win);
XMapRaised(dis, win);
};
void Main::close_x() {
XFreeGC(dis, gc);
XDestroyWindow(dis,win);
XCloseDisplay(dis);
exit(1);
};
void Main::redraw() {
XClearWindow(dis, win);
};
More information about the Cmake-commits
mailing list