e1c7747253
Sort include directives within each block (separated by a blank line) in lexicographic order (except to prioritize `sys/types.h` first). First run `clang-format` with the config file: --- SortIncludes: false ... Commit the result temporarily. Then run `clang-format` again with: --- SortIncludes: true IncludeCategories: - Regex: 'sys/types.h' Priority: -1 ... Commit the result temporarily. Start a new branch and cherry-pick the second commit. Manually resolve conflicts to preserve indentation of re-ordered includes. This cleans up the include ordering without changing any other style. Use the following command to run `clang-format`: $ git ls-files -z -- \ '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' | egrep -z -v '(Lexer|Parser|ParserHelper)\.' | egrep -z -v '^Source/cm_sha2' | egrep -z -v '^Source/(kwsys|CursesDialog/form)/' | egrep -z -v '^Utilities/(KW|cm).*/' | egrep -z -v '^Tests/Module/GenerateExportHeader' | egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' | xargs -0 clang-format -i This selects source files that do not come from a third-party. Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
147 lines
2.9 KiB
C++
147 lines
2.9 KiB
C++
|
|
/*** 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 <stdlib.h>
|
|
|
|
/* include the X library headers */
|
|
#include <X11/Xlib.h>
|
|
#include <X11/Xos.h>
|
|
#include <X11/Xutil.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);
|
|
};
|